Креш дефолтного браузера андройда
Столкнулся с необычной задачей. Необходимо закрешить андройд, работающий в режиме Браузера как ДефолтСкрина. Андройд поддерживает такой режим работы: включаем девайс, вылезает фуллскрин с барузером, который показывает наше приложение. 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, время: 16:42. |