Креш дефолтного браузера андройда
Столкнулся с необычной задачей. Необходимо закрешить андройд, работающий в режиме Браузера как ДефолтСкрина. Андройд поддерживает такой режим работы: включаем девайс, вылезает фуллскрин с барузером, который показывает наше приложение. PROFIT. Нужно проверить поведение андройда при креше браузера. Для ВебКита не наешел популярного креша, сломал так:
<script type="text/javascript"> i = 1; var a = {}; d1 = document.createElement('div'); document.body.appendChild(d1); while(true){ setInterval(function () { (function () { while (true) { d = document.createElement('div'); d1.appendChild(d); d1 = d; a.push[d]; a.push[a]; } }, 1)(); }); } </script> Срабатывает меморик в SetInterval'е. Что происходит внутри не так важно, в зависимости от фантазии рано или поздно попадаем на OutOfMemory. Мой Chrome на 64битной винде с 8ГБ оперативки это крешит за 15 секунд. Если воспользоваться просто браузером на андройде, тот же результат - браузер вылетает. А вот если браузер работает как ДефолтСкрин, то мы видим белый фон. Ждали около 20 минут ничего не меняется. Есть подозрение, что в этом режиме браузер работает в "песочнице" и толи как-то более оптимально очищает память, толи ребутается. Непонятно. Если у кого-то есть информация, что именно происходит или есть какой-нибудь эксплойт для вебкита, который убивает его мгновенно буду очень благодарен за помощь |
Да, забыл, речь идет об андройде 3.2
|
ужас :blink: внутри бесконечного while засунуть setInterval да еще и написанный с ошибками код
Вы хоть сами то посмотрите на код, не слишком много бесконечных циклов???? <script type="text/javascript"> i = 1; var a = {}; d1 = document.createElement('div'); document.body.appendChild(d1); while(true){ setInterval(function () { (function () { while (true) { d = document.createElement('div'); d1.appendChild(d); d1 = d; a.push[d]; a.push[a]; } }, 1)(); }); } </script> |
от такого любой браузер в креш уйдет
|
Часовой пояс GMT +3, время: 14:36. |