非推奨になった機能と削除(Chrome 80)

ジョー・メドレー
Joe Medley

ページ終了時の同期 XMLHTTPRequest() を禁止する

Chrome では、ユーザーがページから移動したとき、またはユーザーがページを閉じたときのページ終了時の XMLHTTPRequest() の同期呼び出しが禁止されるようになりました。これは、beforeunloadunloadpagehidevisibilitychange に適用されます。

ページがアンロードされたときにデータが確実にサーバーに送信されるようにするには、sendBeacon() または Fetch keep-alive をおすすめします。現時点では、企業ユーザーは AllowSyncXHRInPageDismissal ポリシーフラグを、デベロッパーはオリジン トライアル フラグ allow-sync-xhr-in-page-dismissal を使用して、ページのアンロード中の同期 XHR リクエストを許可できます。これは一時的な「オプトアウト」措置であり、Chrome 88 ではこのフラグが削除される予定です。

この設定と代替方法について詳しくは、ページ終了中の同期 XMLHTTPRequest() を禁止するをご覧ください。

削除の目的 | Chrome プラットフォームのステータス | Chromium のバグ

FTP サポートのサポート終了

Chrome に現在実装されている FTP では、暗号化接続(FTPS)もプロキシもサポートされていません。ブラウザでの FTP の使用量は十分に少ないため、既存の FTP クライアントの改善に投資することは不可能です。また、影響を受けるすべてのプラットフォームで、より高機能の FTP クライアントを利用できます。

Chrome 72 では、FTP によるドキュメントのサブリソースの取得と、トップレベル FTP リソースのレンダリングのサポートが削除されました。現在 FTP URL にアクセスすると、リソースの種類に応じてディレクトリ リストまたはダウンロードが表示されます。Google Chrome 74 以降のバグにより、HTTP プロキシ経由の FTP URL へのアクセスのサポートが終了しました。FTP のプロキシのサポートは、Google Chrome 76 で完全に削除されました。

Google Chrome の FTP 実装の残りの機能は、ディレクトリ リストの表示または暗号化されていない接続を介したリソースのダウンロードのいずれかに制限されます。

サポート終了のタイムラインは暫定的に次のように設定されています。

Chrome 80(2020 年 2 月に安定版)

FTP は、エンタープライズ以外のクライアントではデフォルトで無効になっていますが、--enable-ftp または --enable-features=FtpProtocol コマンドライン フラグを使用して有効にできます。または、chrome://flags の #enable-ftp オプションを使用して有効にすることもできます。

Chrome 81(2020 年 3 月に安定版)

FTP は、すべての Chrome インストールではデフォルトで無効になっていますが、--enable-ftp または --enable-features=FtpProtocol コマンドライン フラグを使用して有効にできます。

Chrome 82(2020 年 4 月に安定版)

FTP サポートは完全に削除されます。

削除の目的 | Chrome プラットフォームのステータス | Chromium のバグ

ページのアンロード中のポップアップの許可を禁止する

アンロード中にページで window.open() を使用して新しいページを開くことができなくなりました。これは、すでに Chrome のポップアップ ブロッカーによって禁止されていましたが、現在、ポップアップ ブロッカーが有効であるかどうかにかかわらず、禁止されています。

企業は AllowPopupsDuringPageUnload ポリシーフラグを使用して、アンロード中のポップアップを許可できます。このフラグは Chrome 82 で削除される予定です。

削除の目的 | Chromestatus Tracker | Chromium のバグ

オリジンのクリーンでない ImageBitmap のシリアル化と転送を削除しました

スクリプトがオリジンのクリーンでない ImageBitmap をシリアル化または転送しようとすると、エラーが発生するようになりました。オリジンでクリーンでない ImageBitmap とは、CORS ロジックで検証されていないクロスオリジン画像からのデータを含むマップです。

削除の目的 | Chrome プラットフォームのステータス | Chromium のバグ

プロトコル処理に安全なコンテキストが必要になりました

メソッド registerProtocolHandler()unregisterProtocolHandler() には、安全なコンテキストが必要になりました。これらのメソッドは、潜在的な機密データをネットワーク上で伝送できるようにクライアントの状態を再構成できます。

registerProtocolHandler() メソッドは、ユーザーが同意した後にプロトコルを処理するようにウェブページを登録するメカニズムをウェブページに提供します。たとえば、ウェブベースのメール アプリケーションは、mailto: スキームを処理するために登録できます。対応する unregisterProtocolHandler() メソッドを使用すると、サイトはプロトコル処理の登録を放棄できます。

削除の目的 | Chrome プラットフォームのステータス | Chromium のバグ

Web Components v0 の削除

Web Components v0 は Chrome から削除されました。Web Components v1 API は、Chrome、Safari、Firefox、および(近日提供予定の)Edge に付属しているウェブ プラットフォームの標準です。アップグレードのガイダンスについては、Web Components のアップデート: v1 API へのアップグレードに要する時間の追加をご覧ください。次の機能が削除されました。このサポート終了の対象は、以下の項目です。

カスタム要素

削除の目的 | Chrome プラットフォームのステータス | Chromium のバグ

HTML インポート

削除の目的 | Chrome プラットフォームのステータス | Chromium のバグ

Shadow DOM

削除の目的 | Chrome プラットフォームのステータス | Chromium のバグ

任意の要素の -webkit-appearance:button を削除

<button> ボタンと <input> ボタンでのみ機能するように -webkit-appearance:button を変更しました。サポートされていない要素に button が指定された場合、その要素はデフォルトの外観になります。他のすべての -webkit-appearance キーワードには、すでにそのような制限があります。

削除の目的 | Chrome プラットフォームのステータス | Chromium のバグ

非推奨ポリシー

プラットフォームの健全性を保つため、Google はコースを実施したウェブ プラットフォームから API を削除することがあります。API の削除には、以下のようにさまざまな理由があります。

  • 新しい API が優先されます。
  • 他のブラウザとの整合と一貫性を持たせるため、仕様の変更を反映するように更新されています。
  • これは初期段階の試験運用であり、他のブラウザでは実現したことがないため、ウェブ デベロッパーに対するサポートの負担が増える可能性があります。

これらの変更の一部は、ごく一部のサイトに影響するものです。事前に問題を軽減するため、Google はデベロッパーに事前通知を行い、サイトを実行し続けるために必要な変更を行えるようにしています。

Chrome には現在、 API のサポート終了と削除のプロセスがあります。具体的には、次のとおりです。

  • blink-dev メーリング リストで発表します。
  • ページ上で使用状況が検出された場合に、Chrome DevTools Console で警告を設定し、時間尺度を表示します。
  • しばらく待ってモニタリングを行い、使用量が低下したらその機能を削除する。

chromestatus.com でサポートが終了した機能の一覧は、 サポートが終了したフィルタ でご確認いただけます。削除された機能については、削除済みのフィルタを適用してください。また、これらの投稿で変更点、理由、移行パスの一部についてまとめます。