11/09/2017

Chromeはどのようにウェブを壊したか

Slashdotより

読者のTablizerが伝える(編集され、要約されている):
ソフトウェアエンジニアのNikita Prokopovによると、ChromeチームはChromeをよりうまく機能させるために"ウェブを壊した"と言う。その話はこのようになる。広く使われている"addEventListener"と呼ばれるDOM APIの部品が存在する。おそらくJSで動的に何かをするほとんど全てのウェブサイトやウェブアプリはこのメソッドに何らかの形で依存している。2016年、Googleが現れ、このAPIが十分に拡張できないと判断した。しかし、話はこれで終わりではない。Chromeチームは、モバイルサイトのスクロールを高速化するため、パッシブオプションを加えるためにAPI変更を提案した。その要点は、onscroll/ontouchイベントリスナーにパッシブのマークを付けると、Google Chrome Mobileはページをより早くスクロールする事ができる(詳細は話さないでおくが、それが次のようなものだ)。古いウェブサイトは引き続き機能し(依然遅い)、新しいウェブサイトは追加の機能チェックと一つのオプションを追加するだけで、より速くする事ができる。これはウィンウィンでしょ? 結局、Googleはあなたのウェブサイトの事を全く心配していない事が判明した。自社のGoogle Chrome Mobileの製品性能をより心配していたのだ。そのせいで、2017年2月1日に、全てのトップレベルのイベントリスナーをデフォルトでパッシブにした。彼らはそれを"介入"と呼ぶ。さて、これはとんでもな事である。非常に非常に悪い事だ。実際は、Chromeはユーザのウェブサイトの半分を壊した。タッチ/スクロールのイベントに依存していたものが、このオプションの最適化をまだ認識していないウェブサイトのパフォーマンスを勝ち取るために取り消す事ができる。これは決して後方互換のある変更ではない。あらゆる種類のドラッグ可能なUI(スライダ、マップ、並び替えリスト、スライドイン・パネル)を行なった全てのウェブサイトとウェブアプリは、この変更によって影響を受け、本質的に壊れた。