ページの終了時に同期 XMLHTTPRequest() を禁止する
Chrome では、ページが閉じられるとき、またはユーザーがページから離れたときに、ページの閉じ中に XMLHTTPRequest()
への同期呼び出しを禁止するようになりました。これは、beforeunload
、unload
、pagehide
、visibilitychange
に適用されます。
ページの読み込みが解除されたときにデータがサーバーに送信されるようにするには、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 トラッカー | Chromium のバグ
オリジンクリーンではない ImageBitmap のシリアル化と転送を削除
スクリプトがオリジンクリーンではない ImageBitmap をシリアル化または転送しようとすると、エラーが発生するようになりました。オリジンがクリーンでない ImageBitmap は、CORS ロジックによって検証されていないクロスオリジン画像のデータを含む ImageBitmap です。
削除の意向 | 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 を削除
-webkit-appearance:button
を変更し、<button>
ボタンと <input>
ボタンでのみ機能するようにしました。サポートされていない要素に button
が指定されている場合、その要素はデフォルトの外観になります。他のすべての -webkit-appearance
キーワードには、すでにこのような制限が適用されています。
削除の意向 | Chrome プラットフォームのステータス | Chromium のバグ
非推奨ポリシー
プラットフォームの健全性を維持するため、サポートが終了した API を Web Platform から削除することがあります。API が削除される理由はさまざまです。たとえば、次のような理由が考えられます。
- 新しい API に置き換えられています。
- 仕様の変更を反映し、他のブラウザとの整合性と一貫性を保つように更新されています。
- これらは、他のブラウザでは実用化されなかった初期段階のテストであり、ウェブ デベロッパーのサポート負担が増加する可能性があります。
これらの変更の一部は、ごく少数のサイトに影響します。事前に問題を軽減するため、Google はデベロッパーに事前通知し、サイトの継続的な運用に必要な変更を加えてもらうよう努めています。
Chrome には現在、 API の非推奨化と削除のプロセスがあります。主な内容は次のとおりです。
- blink-dev メーリング リストで発表します。
- ページで使用が検出されたときに、Chrome DevTools Console で警告を設定し、時間スケールを指定します。
- しばらく待って使用状況が減少したら、機能を削除します。
サポートが終了したすべての機能のリストは、chromestatus.com の サポートが終了した機能のフィルタ で確認できます。削除された機能については、削除された機能のフィルタを適用してください。また、これらの投稿では、変更点、理由、移行パスの一部をまとめることも予定しています。