Chrome 132 以降、デベロッパーは、ウェブ ポップアップの新しいアプローチであるパーティション化されたポップインのデベロッパー トライアルに参加できます。このデベロッパー トライアルはパソコンでのみご利用いただけます。この機能は Android ではまだご利用いただけません。
分割ポップインは、ログインや簡単な確認など、短時間の操作を目的とした新しいタイプのポップアップです。このブラウザは、次の 2 つの独自の機能を備えたウェブ コンテンツを読み込みます。
パーティション分割されたポップアップが必要な理由
パーティション分割されたポップインは、パーティション分割された iframe のプライバシー プロパティとポップアップのセキュリティ プロパティを維持するように設計されています。
サードパーティの Cookie を使用しないブラウジングをオプトインするユーザーが増えるにつれて、後でサードパーティのコンテキストで取得するためにポップアップにデータを保存するフロー(サイト間でユーザー セッションを維持するなど)が中断される可能性があります。パーティション分割されたポップインは、この問題に対処することを目的としています。
パーティション分割されたポップアップの仕組み
パーティション分割されたポップインのストレージは、そのオープナーにパーティション分割されます。ストレージ パーティショニングにより、クロスサイト データへのアクセスが制限され、トラッキング リスクとスクリプト挿入攻撃が軽減されます。ストレージ パーティショニングの仕組みについては、ドキュメントをご覧ください。
third-party.example のコンテンツを埋め込んでいる opener.example ウェブサイトについて考えてみましょう。opener.example にパーソナライズされたコンテンツを表示するには、ユーザーが third-party.example にログインする必要があります。ユーザーのブラウザでサードパーティ Cookie がブロックされている場合、現在のポップアップ フローは次のようになります。
- ユーザーがログイン ボタンをクリックします。
- ダイアログが開きます。
- ユーザーが
third-party.exampleの最上位コンテキストからログインし、パーティショニングされていない認証 Cookie が書き込まれます。 opener.exampleに埋め込まれたthird-party.exampleコンテンツは、ファーストパーティ コンテキストで表示されたときに、third-party.exampleに書き込まれた独自のトップレベル Cookie にアクセスできません。これは、認証 Cookie がパーティション化されておらず、サードパーティ Cookie であるためです。
opener.example に埋め込まれた third-party.example iframe は、third-party.example ポップアップの最上位コンテキストで設定された独自のパーティション化されていない Cookie セットにアクセスできません。パーティション分割されたポップアップのストレージは、オープナーにパーティション分割されます。これにより、フローのステップ 3 ~ 4 が変更されます。
ユーザーが
third-party.exampleのトップレベル コンテキストからログインします。パーティション分割されたポップインで開いているため、ストレージはopener.exampleでパーティション分割されます。opener.exampleに埋め込まれたthird-party.exampleコンテンツは、同じパーティション ストレージを共有しているため、ポップインで設定された独自の Cookie にアクセスできます。
opener.example に埋め込まれた third-party.example iframe は、third-party.example ポップインのトップレベル コンテキストで設定された独自のパーティション化された Cookie セットにアクセスできます。これは、Cookie が opener.example によってパーティション化されているためです。モーダル風 UI を開いたタブに相対的に表示
パーティション分割されたポップインは、ポップアップの表示元とポップインが関連していることをユーザーに理解してもらうことを目的としています。
- ユーザーが別のタブに切り替えると、モーダルがオープナー タブがアクティブな場合にのみ表示されるのと同じように、ポップインは自動的に非表示になり、アクセスできなくなります。
- ユーザーがオープナー タブに戻ると、ポップインが再び表示されます。
- ユーザーはポップインのブラウザのアドレスバーで変更を行うことはできません。
試してみる
Chrome 132 では、パーティション分割されたポップイン機能のデベロッパー トライアルが導入されます。つまり、この機能はフラグの背後で利用可能になります。パーティション分割されたポップインを試す方法は次のとおりです。
- Chrome 132 以降を使用していることを確認します。
chrome://flags#partitioned-popinsに移動して、フィーチャー トグルを有効にします。- Chrome を再起動します。
- デモをお試しください。
ウェブサイトでパーティション分割されたポップインを使用する
ウェブサイトで分割されたポップインを使用するには、popin パラメータを渡して window.open() メソッドを呼び出します。
window.open("third-party-popin.example", "_blank", "popin");
フィードバックをお寄せください
Google では、パーティション分割されたポップインを検討しており、デベロッパーの皆様からのフィードバックを求めています。考えられるユースケース シナリオは次のとおりです。
- ユーザー認証フロー。カスタム認証フローが実装されていて、認証がサイトとは異なるドメインで行われる場合(たとえば、
site.exampleユーザーがauth-site.exampleにログインする場合)、ポップインで認証ページを開いて、オープナー ページのセッション Cookie を使用してみてください。 - 埋め込みコンテンツ。パーティション分割されたポップインを試して、設定ダイアログ、画像、PDF などのサードパーティ ウィジェットの追加コンテンツ(通常はポップアップで読み込まれるその他のコンテンツ)を、より大きなウィンドウでレンダリングして表示します。この場合、パーティション分割されたポップインは、サードパーティ ウィジェットとサイトの間でユーザー セッションの状態を保持することを目的としています。
ソリューションにこれらのシナリオがある場合、他のユースケースを検討している場合、またはこの機能の将来を形作ることに貢献したい場合は、ぜひお試しください。
- 問題は発生しましたか?
- ユーザー エクスペリエンスを向上させるためのご提案はありますか?
- UI を改善するための提案はありますか?具体的には、オープナーとポップインが関連していることが UI で明確に示されていると思いますか?
- この機能はどの程度役に立っていますか?
- パーティション分割されたポップインを使用したい他のユースケースはありますか?
ご意見を GitHub で問題として報告してください。