SafariをクラッシュさせるWebサイト事件の翌日、Appleはすでに対策を講じた、とBuzzFeed Newsが報じている。早速、クラッシュするページ(crashsafari.com)をロードしてみたが、問題は治っているようだ。少なくとも、OS Xでは。
治っているといっても、OS XのSafariでそのWebサイトをロードすると、ページのロードを無限にやっている。そのタブを閉じて、通常のWeb閲覧を続ければよい。
復習すると、CrashSafariは小さなJavaScriptをロードし、それが文字を加えることによってアドレスを長くし、ものすごく長いアドレスを作る。やがて、Safariはそのアドレスを持て余し、あっさりクラッシュする。以下は、そのJavaScriptのループ部分だ:
var total = "";
for( var i = 0; i < 100000; i++ ) {
total = total + i.toString();
history.pushState(0,0, total );
}
iOSでは、問題はもっと深刻だ。SafariでそのWebサイトへ行くと、iOSがクラッシュする。キャッシュをクリアしてそのWebサイトをロードしてみたが、iPhoneは今でもクラッシュする。iOSの次のアップデートを、待たなければならないのかもしれない。
うっかりCrashSafariのリンクをクリックした場合は、iPhoneをリブートすればまたSafariを使える。Safariは、そのWebサイトを再ロードしようとしない。