パーティション分割されていないサードパーティ ストレージ、Service Worker、Communication API の非推奨トライアルに参加する

Chrome 115 では、ストレージ API、Service Worker API、通信 API がサードパーティのコンテキストでパーティション分割されています。サードパーティのコンテキストで使用される影響を受ける API は、同一オリジン ポリシーによって分離されるだけでなく、トップレベル コンテキストのサイトでも分離されます。サードパーティのストレージ パーティショニングのサポートを実装する時間がないサイトは、非推奨トライアルに参加することで、一時的にパーティショニング解除(同一オリジン ポリシーによる分離を継続し、トップレベル サイトによる分離を削除)し、サイトに埋め込まれたコンテンツ内のストレージ API、Service Worker、通信 API の以前の動作を復元できます。

一般的なパーティショニング解除の非推奨トライアルに加えて、window.sessionStorage 専用の非推奨トライアルに参加できます。このトライアルは、一部のサイトで Firebase signInWithRedirect フローを移行する必要があるためにご利用いただけます。この移行の詳細については、こちらの記事をご覧ください。

利用可能な非推奨トライアル

Chrome 115 以降、2 つの非推奨トライアルを公開します。

  1. DisableThirdPartyStoragePartitioning: トップレベル サイトで、ページに埋め込まれたサードパーティ コンテンツのストレージ、Service Worker、通信 API のパーティショニングを解除(最上位サイトによる分離を一時的に削除)できるようにします。
  2. DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning: サイトはナビゲーション間で sessionStorage のパーティショニングを解除できます。

これにより、Chrome 115 でサードパーティのパーティショニングがロールアウト プロセスを開始する前に、サイトで問題を検出して修正できるようになります。

以下に、非推奨トライアルの概要と今後の見通しを示します。このトライアル中にフィードバックがある場合や、問題が発生した場合は、Partitioned Storage Deprecation Trial GitHub リポジトリからお知らせください。

DisableThirdPartyStoragePartitioning

DisableThirdPartyStoragePartitioning のサポート終了トライアルにトップレベル サイトを登録した場合、サードパーティのコンテキストでは Storage API(localStorage、sessionStorage、IndexedDB、Quota など)、通信 API(BroadcastChannel、SharedWorkers、WebLocks など)、ServiceWorker API はパーティション分割されません。

例:

ストレージ パーティショニング図

詳しくは、プロジェクトの説明をご覧ください。

DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning

DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning 非推奨トライアルに登録すると、登録済みのオリジンにタブに移動すると、同じオリジンのすべてのクロスサイト iframe は、Window.sessionStorage についてのみ、その特定のタブの存続期間中のみパーティション分割されません。DisableThirdPartyStoragePartitioning の非推奨トライアルは、登録済みのオリジンに埋め込まれたすべてのサードパーティ コンテキストに影響しますが、DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning の非推奨トライアルは特定のオリジンを登録し、サードパーティのコンテキストに埋め込まれた場合にパーティション分割されていないアクセスを受け取ります。

例:

一般的なパリトニング後のストレージ パーティショニング図。

ウェブ デベロッパーへの影響

サイトは、サードパーティのコンテキストにおけるパーティション分割されていないストレージ、Service Worker、通信 API の使用状況を監査し、必要に応じて、これらの非推奨トライアルが期限切れになる前にサードパーティのパーティショニングに備える必要があります。2024 年 9 月 3 日の Chrome 127 リリースをもって、これらの非推奨化トライアルは終了します。

ページに埋め込まれたサードパーティ コンテンツのストレージのパーティショニングを解除するようブラウザに指示するには、トップレベル サイトで、非推奨トライアルのいずれかまたは両方を登録し、対応するトライアル トークンを HTTP レスポンス ヘッダーに追加する必要があります(下記の詳細な例を参照)。

各非推奨トライアルは Windows、Mac、Linux、ChromeOS、Android でご利用いただけます。

非推奨トライアルに参加する

以下では、非推奨トライアルのいずれかまたは両方の参加方法の概要を説明します。詳しい手順については、オリジン トライアルを使ってみるをご覧ください。

  1. Chrome バージョン 115 以降を起動し、ThirdPartyStoragePartitioning フラグが有効になっていることを確認します。
  2. 最上位サイトに埋め込まれたサードパーティのコンテンツの動作が、ストレージ パーティショニングによって破損していることを確認します(そうでない場合は、非推奨トライアルに参加する必要はありません)。
  3. 非推奨トライアルに登録し、以下にアクセスしてドメインのトークンを取得します。
    1. 最上位のサイトで、サードパーティの埋め込みコンテンツでストレージ、Service Worker、通信 API のパーティション分割を解除する場合: DisableThirdPartyStoragePartitioning
    2. トップレベル サイトでナビゲーション間で sessionStorage のパーティション分割を解除する場合: DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
  4. オリジン トライアル トークンをページに追加します。
    1. DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning トライアルでは、トップレベル サイトの HTTP レスポンス ヘッダーに Origin-Trial: <DEPRECATION TRIAL TOKEN> を追加できます。<DEPRECATION TRIAL TOKEN> には、非推奨トライアルの登録時に取得したトークンが含まれます。このコマンドは HTML ` でも実行できます。 インスタンスにしか適用できません
    2. DisableThirdPartyStoragePartitioning トライアルでは、JavaScript で挿入した HTML <meta> タグでトークンを指定する必要があります。HTTP ヘッダー メソッドはサポートされていません。
  5. ThirdPartyStoragePartitioning を有効にした状態で Chrome 115 以降でウェブサイトを読み込み、パーティショニング関連の問題が適切に軽減されていることを確認します。
  6. 非推奨トライアルへの参加を停止するには、ステップ 2 で追加したトークンを削除します。

DisableThirdPartyStoragePartitioning 非推奨トライアルはサードパーティ オリジン トライアル機能をサポートしていますが、トークンを挿入するサードパーティのスクリプトは、パーティショニングが適用されていないサードパーティの iframe が読み込まれる前に、トップレベル フレームで評価される必要があります。DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning 非推奨トライアルは、サードパーティのオリジン トライアルをサポートしていません。対象となるタブの存続期間のある時点で登録者はトップレベル サイトである必要があるためです。Chrome のオリジン トライアルのトラブルシューティングのガイドには、トークンが正しく構成されていることを確認するための詳細なチェックリストが記載されています。

フィードバックを共有する

フィードバックや問題がありましたら、Partitioned Storage Deprecation Trial GitHub リポジトリまでお送りください。