Chrome 115 以降、ストレージ API、Service Worker API、通信 API はサードパーティのコンテキストでパーティショニングされます。サードパーティのコンテキストで使用される該当の API は、同一オリジン ポリシーによって分離されるだけでなく、トップレベル コンテキストのサイトでも分離されます。
サードパーティのストレージ パーティショニングのサポートを実装する時間がないサイトは、サポート終了予定のトライアルに参加して、一時的にパーティショニングを解除(同一オリジン ポリシーによる分離を継続するが、最上位サイトによる分離は削除)し、サイトに埋め込まれたコンテンツのストレージ API、サービス ワーカー API、通信 API の以前の挙動を復元できます。
パーティショニングなしの一般的なサポート終了トライアルに加えて、window.sessionStorage
専用のサポート終了トライアルに参加することもできます。このトライアルは、一部のサイトで Firebase signInWithRedirect
フローを移行する必要があるため提供されています。この移行の詳細については、サードパーティのストレージ アクセスをブロックするブラウザで signInWithRedirect を使用する場合のベスト プラクティスをご覧ください。
デベロッパーがストレージ パーティショニングの新しい実装に適応するための時間を十分に確保できるように、非推奨トライアルは Chrome 127 のリリース(2024 年 7 月 23 日予定)まで利用できます。非推奨トライアルは、Chrome バージョン 111 ~ 126 のユーザーを対象に 2024 年 9 月 3 日に終了します。
利用可能な非推奨トライアル
Chrome 115 以降では、次の 2 つの非推奨トライアルを利用できます。
DisableThirdPartyStoragePartitioning
: 最上位サイトが、ページに埋め込まれたサードパーティ コンテンツのストレージ API、サービス ワーカー API、通信 API のパーティショニングを解除(最上位サイトによる分離を一時的に削除)できるようにします。DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
: サイトがナビゲーション間でsessionStorage
をパーティショニング解除できるようにします。
非推奨トライアルの概要と今後の流れは以下のとおりです。このトライアル中にフィードバックをお送りいただくか、問題が発生した場合は、パーティショニング ストレージのサポート終了トライアルの GitHub リポジトリで報告してください。
DisableThirdPartyStoragePartitioning
DisableThirdPartyStoragePartitioning
非推奨トライアルにトップレベル サイトを登録した場合、次の API はサードパーティのコンテキストでパーティショニングされません。ストレージ API(localStorage、sessionStorage、IndexedDB、Quota など)、通信 API(BroadcastChannel、SharedWorkers、WebLocks など)、ServiceWorker API。
例:
詳しくは、プロジェクトの説明をご覧ください。
DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
非推奨トライアルに登録すると、登録されたオリジンにタブを移動すると、その同じオリジンのすべてのクロスサイト iframe が、Window.sessionStorage
の間のみ、その特定のタブの存続期間のみ、パーティション分割されなくなります。DisableThirdPartyStoragePartitioning
デプリケーション トライアルは、登録済みのオリジン内に埋め込まれたすべてのサードパーティ コンテキストに影響しますが、DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
デプリケーション トライアルは、サードパーティ コンテキストに埋め込まれたときにパーティショニングされていないアクセスを受け取るように特定のオリジンを登録します。
例:
ウェブ デベロッパーへの影響
サイトは、サードパーティのコンテキストでパーティショニングされていないストレージ API、サービス ワーカー API、通信 API の使用状況を監査し、必要に応じて、これらの非推奨トライアルの有効期限が切れる前にサードパーティのパーティショニングに備える必要があります。2024 年 9 月 3 日の Chrome 127 のリリースをもって、これらの非推奨トライアルを終了する予定です。
ページに埋め込まれたサードパーティ コンテンツのストレージをパーティショニング解除するようブラウザに指示するには、トップレベル サイトがサポート終了トライアルの 1 つまたは両方に登録し、対応するトライアル トークンを HTTP レスポンス ヘッダーに追加する必要があります(下記の詳細な例を参照)。
各デプリケーション トライアルは、Windows、Mac、Linux、ChromeOS、Android で利用できます。
非推奨トライアルに参加する
非推奨トライアルの 1 つまたは両方に参加する方法の概要は次のとおりです。詳細な手順については、オリジン トライアルの開始をご覧ください。
- Chrome バージョン 115(以降)を起動し、
ThirdPartyStoragePartitioning
フラグが有効になっていることを確認します。 - トップレベル サイトに埋め込まれたサードパーティ コンテンツの動作がストレージ パーティショニングによって破損していることを確認します(破損していない場合は、非推奨トライアルに参加する必要はありません)。
- サポート終了トライアルに登録し、ドメインのトークンを取得するには、以下にアクセスしてください。
- 最上位サイトがサードパーティの埋め込みコンテンツのストレージ API、サービス ワーカー API、通信 API のパーティショニングを解除する場合:
DisableThirdPartyStoragePartitioning
- トップレベル サイトがナビゲーション全体で sessionStorage をパーティショニング解除する場合:
DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
- 最上位サイトがサードパーティの埋め込みコンテンツのストレージ API、サービス ワーカー API、通信 API のパーティショニングを解除する場合:
- ページにオリジン トライアル トークンを追加します。
DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
トライアルの場合は、トップレベルのサイトの HTTP レスポンス ヘッダーにOrigin-Trial: <DEPRECATION TRIAL TOKEN>
を追加します。ここで、<DEPRECATION TRIAL TOKEN>
には非推奨トライアルの登録時に取得したトークンを含めます。これは HTML の ` インスタンスにしか適用できませんDisableThirdPartyStoragePartitioning
トライアルでは、JavaScript を介して挿入された HTML<meta>
タグを使用してトークンを指定する必要があります。HTTP ヘッダー メソッドはサポートされていません。
ThirdPartyStoragePartitioning
を有効にしたまま Chrome 115(以降)でウェブサイトを読み込み、パーティショニング関連の問題が適切に軽減されていることを確認します。- 非推奨トライアルへの参加を停止するには、手順 2 で追加したトークンを削除します。
DisableThirdPartyStoragePartitioning
非推奨トライアルはサードパーティ オリジン トライアル機能をサポートしていますが、パーティショニングが適用されないサードパーティ iframe が読み込まれる前に、トークンを挿入するサードパーティ スクリプトをトップレベル フレームで評価する必要があります。DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
のサポート終了トライアルでは、登録者が特定のタブの有効期間中のいずれかの時点でトップレベル サイトである必要があります。そのため、サードパーティのオリジンのトライアルはサポートされていません。Chrome のオリジン トライアルのトラブルシューティングのガイドでは、トークンが正しく設定されていることを確認するためのチェックリストがすべて用意されています。
フィードバックを共有
フィードバックや問題が発生した場合は、Partitioned Storage 非推奨トライアルの GitHub リポジトリに送信してください。