Chrome 115 以降、ストレージ、Service Worker、通信 API はサードパーティのコンテキストで分割されています。サードパーティのコンテキストで使用される影響を受ける API は、同一オリジン ポリシーによって分離されるだけでなく、トップレベル コンテキストのサイトでも分離されます。サードパーティのストレージ パーティショニングのサポートを実装する時間がないサイトは、デプリケーション トライアルに参加して一時的にパーティショニングを解除し(同一オリジン ポリシーによる分離を継続しますが、トップレベル サイトによる分離を解除)、サイトに埋め込まれたコンテンツ内のストレージ API、Service Worker API、通信 API の以前の動作を復元できます。
一般的なパーティショニング解除のデプリケーション トライアルに加えて、window.sessionStorage
専用のデプリケーション トライアルのみに参加できます。このトライアルは、一部のサイトで Firebase signInWithRedirect
フローを移行する必要があるため、利用できます。この移行の詳細については、こちらの記事をご覧ください。
利用可能なデプリケーション トライアル
Chrome 115 以降、次の 2 つのデプリケーション トライアルを開始します。
DisableThirdPartyStoragePartitioning
: トップレベル サイトで、ページに埋め込まれたサードパーティ コンテンツのストレージ API、Service Worker API、通信 API でパーティショニングを解除(トップレベル サイトによる分離を一時的に解除)できます。DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
: サイトがナビゲーションをまたいでsessionStorage
のパーティショニングを解除できるようにします。
これにより、サードパーティ パーティショニングが Chrome 115 でロールアウト プロセスを開始する前に、サイトが問題を検出して修正できるようになります。
デプリケーション トライアルの概要と今後の流れを以下に示します。フィードバックがございましたら、Partitioned Storage Deprecation Trial GitHub リポジトリからお知らせください。
DisableThirdPartyStoragePartitioning
DisableThirdPartyStoragePartitioning
デプリケーション トライアルにトップレベル サイトを登録しても、Storage API(localStorage、sessionStorage、IndexedDB、Quota など)、Communication API(BroadcastChannel、SharedWorkers、WebLocks など)、ServiceWorker API の API は、サードパーティのコンテキストでパーティション分割されません。
例:
詳細については、プロジェクトの説明をご覧ください。
DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
デプリケーション トライアルに登録すると、タブから登録済みのオリジンに移動すると、同じオリジンのすべてのクロスサイト iframe が Window.sessionStorage
の間のみパーティション分割されないままとなり、そのタブが存続します。DisableThirdPartyStoragePartitioning
デプリケーション トライアルは登録されたオリジンに埋め込まれたすべてのサードパーティ コンテキストに影響しますが、DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
デプリケーション トライアルは代わりに特定のオリジンを登録し、サードパーティのコンテキストに埋め込まれたときにパーティション分割されていないアクセスを受け取ります。
例:
ウェブ デベロッパーへの影響
サイトは、パーティション分割されていないストレージ、Service Worker、通信 API の使用状況をサードパーティのコンテキストで監査し、必要に応じて、これらのデプリケーション トライアルが終了する前にサードパーティのパーティショニングの準備を行う必要があります。2024 年 7 月 23 日の Chrome 127 のリリースで、これらのデプリケーション トライアルを期限切れにする予定です。Chrome バージョン 111 ~ 126 のユーザーの場合、デプリケーション トライアルは 2024 年 9 月 3 日に期限切れになります。
ページに埋め込まれたサードパーティ コンテンツのストレージのパーティショニングを解除するようブラウザに指示するには、トップレベル サイトは一方または両方のデプリケーション トライアルに登録し、対応するトライアル トークンを HTTP レスポンス ヘッダーに追加する必要があります(下記の詳細な例を参照)。
各デプリケーション トライアルは、Windows、Mac、Linux、ChromeOS、Android でご利用いただけます。
デプリケーション トライアルに参加する
以下では、一方または両方のデプリケーション トライアルに参加する方法の概要を説明します。詳しい手順については、オリジン トライアルのスタートガイドをご覧ください。
- Chrome バージョン 115 以降を起動し、
ThirdPartyStoragePartitioning
フラグが有効になっていることを確認します。 - 最上位サイトに埋め込まれたサードパーティ コンテンツの動作が、ストレージ パーティショニングによって破損していることを確認します(そうでない場合は、非推奨トライアルに参加する必要はありません)。
- 次にアクセスしてデプリケーション トライアルに登録し、ドメインのトークンを取得します。
- トップレベル サイトでサードパーティの埋め込みコンテンツ内のストレージ、Service Worker、通信 API のパーティショニングを解除する場合:
DisableThirdPartyStoragePartitioning
- トップレベルのサイトでナビゲーション間で sessionStorage のパーティショニングを解除する場合:
DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
- トップレベル サイトでサードパーティの埋め込みコンテンツ内のストレージ、Service Worker、通信 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 Deprecation Trial GitHub リポジトリまでお寄せください。