Отладка сбоев браузера Android 2.3

Недавно я пытался найти (и, надеюсь, исправить) частые сбои браузера Android 2.3, которые влияют на сеть блогов SB Nation. Пользователи будут переходить на страницу, и она будет загружаться, а затем, когда вы ожидаете, что DOM завершится, браузер принудительно закроется, и вы попадете на главный экран. Это происходит не при каждой загрузке страницы, поэтому, если вы откроете браузер и повторите попытку, он часто загружается нормально.

Я несколько раз воссоздавал проблему на своем телефоне, HTC Thunderbolt (2.3.4), а также на Droid Bionic (2.3.4). У меня нет опыта разработки для Android, но я предположил, что подключение отладчика adb может дать мне некоторое представление о причине этой проблемы. Вот некоторые из журналов аварии, которые я захватил:

(Я бы разместил несколько URL-адресов в рабочей среде, которые вызвали эти сбои, но я уже исчерпал лимит в две ссылки.)

Как вы могли заметить, все журналы HTC различаются, а журналы Bionic, похоже, не содержат особых технических подробностей. Это единственная общая тема, которую я нашел во всех журналах HTC:

 D/skia    (14225): createPlugin (300,150) screen proportion:(w,h)=(0.813008,0.039288), content ratio:2.000000 mainUrl:http://athleticsnation.local:3000/
 D/skia    (14225): createPlugin F10 typical2 video content (300,150)/(369,3818), url=

Мое предположение было F10 == Flash 10, но в Droid Bionic даже не установлен Flash, поэтому я не уверен, что это является причиной.

Во всяком случае, у меня нет теорий о том, что вызывает эти сбои. Есть ли способ получить более точную информацию об этих сбоях? Может ли неверная разметка вызывать сбой браузера? Ограничения JavaScript? Любая помощь будет принята с благодарностью.


person clifff    schedule 13.11.2012    source источник
comment
Если вы запускали ссылки на эмуляторе, что такое вывод logcat (добавьте его к вопросу). Также не забудьте включить console.log() stackoverflow.com/questions/5538516/   -  person Morrison Chang    schedule 13.11.2012
comment
В обоих случаях Браузер завершается сигналом 11 (Ошибка сегментации), что означает, что родные библиотеки Браузера сделали это. что-то вроде NullPointerException. Это не должно быть возможно из-за плохой разметки и любого веб-контента, но, поскольку есть упоминание о плагинах и видео, вероятно, это что-то с видео (HTML5?). skia Кстати, это библиотека 2D-графики/чертежа.   -  person zapl    schedule 13.11.2012
comment
@MorrisonChang Мои попытки воссоздать сбой в эмуляторе 2.3.3 пока безуспешны. Если мне удастся воспроизвести там, я опубликую logcat.   -  person clifff    schedule 13.11.2012
comment
@zapl Бит ошибки сегмента имеет смысл. Интересно, это ошибка браузера, и что-то на этих страницах усугубляет проблему? На этих страницах нет тегов ‹видео› (пример: bruinsnation.com/2012/11/11/3631264/), так что, вероятно, это не так.   -  person clifff    schedule 13.11.2012
comment
@clifff Да, segfault будет ошибкой браузера, каким-то образом вызванной вашим контентом (или даже случайными событиями с побочными эффектами, происходящими на устройстве). Он должен отображать пустую / сломанную страницу или что-то в этом роде, если все в порядке. Что касается эмулятора: между эмулятором и реальным устройством есть много различий, поэтому возможно, что вы не сможете воспроизвести эту ошибку на эмуляторе.   -  person zapl    schedule 13.11.2012
comment
Похоже, здесь сообщается о той же ошибке: forum.xda-developers.com /showthread.php?p=11105749#post11105749   -  person zapl    schedule 13.11.2012


Ответы (1)


Вероятно, стоит взглянуть на разрешения местоположения (и обработку исключений) вокруг allow_geolocation_origins():

Из дампа HTC:

10: W/ContentService( 1646): binderDied() в ObserverNode name allow_geolocation_origins

person PapaK    schedule 13.11.2012
comment
Хороший улов! Тем не менее, я не понимаю, как веб-страница может вызывать проблемы с Allow_Geolocation_origins, который, кажется, часть ядра Android API. Насколько мне известно, мы не пытаемся использовать геолокацию HTML5 или что-то еще на этих страницах, и это единственная ссылка, о которой я могу думать. Может, красная селедка? - person clifff; 13.11.2012
comment
Сложно сказать — загружается как минимум 8 js-библиотек (включая рекламные сети, Twitter, Facebook, Google Analytics), изрядное количество неработающей разметки и 4 скрытых фрейма, каждый из которых включает сложные сторонние библиотеки. См.: imgur.com/WUKRn и imgur.com/7YRPV. - person PapaK; 13.11.2012
comment
Даже если с вашей страницы нет запроса на определение местоположения, браузер должен соблюдать разрешенные настройки местоположения для изменений. Это означает, что это может быть связано, но не обязательно. Вы получаете предупреждения о смерти Binder при сбое процесса, который был подключен через Binder к другому процессу. Я бы сказал, что предупреждение является результатом сбоя, а не причиной - person zapl; 14.11.2012