Chrome が、エンドユーザーとデベロッパーへの影響を最小限に抑えながら、うまく機能しない機能を削除する方法について説明します。
Chrome には新しい機能が随時追加されていますが、機能の削除が必要になることもあります。
機能を削除すると、ブラウザのコードベースの複雑さを軽減し、潜在的な攻撃ベクトルを減らすことでブラウザの安全性とセキュリティを維持できます。ウェブ プラットフォーム全体で慎重に調整されたアプローチにより、ブラウザ ベンダーは、エンドユーザーとデベロッパーへの影響を最小限に抑えながら、うまく機能しないプラットフォーム機能を削除できます。
ブラウザ機能の削除
ブラウザが警告なしに機能を削除すると、ウェブサイトが機能しなくなり、デベロッパーが代替技術への移行を計画することが難しくなります。ブラウザ ベンダーは、機能の削除に先立って、警告、サポート リソース、詳細なタイムラインを十分に提供することで、体系的なアプローチを取っています。
非推奨と削除
Chrome から機能を削除するには、主に次の 2 つのフェーズがあります。
- 非推奨: 機能の削除が予定されていることをデベロッパーに警告し、サイトが代替機能に移行できるようリソースを提供します。サポートが終了した機能が使用されると、Chrome DevTools の [問題] パネルに警告が表示されます。また、サポート終了のスケジュールとサポートに関する情報は、Chrome Platform Status と Chrome for Developers の記事やブログ投稿で公開されます。
- 削除: まず、デフォルトで機能を無効にしますが、デベロッパーは Chrome フラグを設定するか、非推奨トライアルに参加することで、一時的に機能を継続して使用できます。サイトが無効にした機能に依存しなくなったら、コードを削除します。
Blink インテント
Chrome などの Chromium ベースのウェブブラウザは、Blink レンダリング エンジンを使用して、コードとリソースを閲覧および操作可能なウェブページに変換します。エンジニアが Blink に変更を加える場合は、blink-dev メーリング リストに投稿して、変更を進めるための承認を得ます。これらのメーリング リスト投稿は Blink インテントと呼ばれます。
エンジニアが Blink から機能を非推奨にして削除する予定がある場合、blink-dev メーリング リストに非推奨にする意図を投稿し、続いて削除する意図を投稿します。この 2 つのインテントは、非推奨化と削除のインテントとして組み合わされることがよくあります。
非推奨化の意向
ブラウザ機能の削除が予定されていることをデベロッパーに警告し始める場合、Blink エンジニアが削除予定のインテントを投稿します。この時点では、この機能は引き続き利用できますが、デベロッパーには Chrome DevTools からのサポートと情報が提供されるほか、ブログ投稿、chromestatus.com、MDN などの機能ドキュメントでも提供されます。
削除の意図
削除の意図は、Blink エンジニアが機能を無効にしてそのコードを削除する意図がある場合に投稿されます。削除のインテントは、非推奨のインテントと組み合わされて、非推奨と削除のインテントとして使用されることがよくあります。
ユーザーとデベロッパーへの影響を最小限に抑える
Chrome では、可能な限り機能の削除を回避しています。
Chrome のエンジニアは、非推奨化を進める前に、機能の使用率などのデータを必ず確認します。機能が削除されるのは、たとえば、ごく一部のユーザーしか使用しておらず、より優れた代替手段が利用できる場合や、エコシステムの変更により、その機能が重大なセキュリティ上の脆弱性を引き起こす可能性がある場合などです。他のブラウザがサポートを継続する予定の機能は、通常 Chrome から削除されません。機能の削除は、ブラウザ エンジン間で調整する必要があります。
blink-dev メーリング リストの Intent 投稿に加えて、非推奨は Chrome デベロッパー ブログで発表されます。警告とサポート情報は、Chrome DevTools と機能のドキュメントにも記載されています。タイムラインは、非推奨の機能の chromestatus.com エントリにも公開されています。
サポート終了となった機能を一時的に再度有効にする
非推奨トライアルは、削除前にデフォルトで変更または無効化された機能を一時的に再度有効にできるオリジン トライアルの一種です。たとえば、Chrome 127 以降ではミューテーション イベントが削除されました。これらのイベントを削除する前に時間を要するサイトは、非推奨トライアルに登録することで、指定したサイトでイベントを一時的に再有効化し、代替機能への移行に時間をかけることができます。
サポートが終了した一部の機能については、代替機能への移行に取り組むデベロッパーなどの個々のユーザーが一時的に機能にアクセスできるように、Chrome フラグが提供されます。
対処
デベロッパーは、ウェブ プラットフォームの変更に備える必要があります。
各ブラウザのすべての新バージョンのリリースノートを確認できますが、安定版前のブラウザ チャンネルを使用して、削除を含む今後の変更に備えてサイトをテストし、適応させることもおすすめします。少なくとも、開発チームが Chrome Dev チャンネルと Chrome Stable の両方を使用して、作業中のサイトにアクセスするようにしてください。デベロッパーは複数のチャンネルを同時に実行できます。これにより、Chrome の将来のバージョンでテストできるだけでなく、サイトを Chrome Stable で体験することもできます。Chrome Stable は、ほとんどのユーザーが使用する可能性が高いチャンネルです。
Chrome DevTools コンソールで非推奨の警告を定期的に確認します。DevTools には、非推奨の機能からの移行に役立つ情報とリソースへのリンクが用意されています。自動テストと手動テストには、複数の Chrome チャネルを使用する必要があります。