unit of related similar-origin browsing contexts

関連する類似起源閲覧文脈群の単位 (Web)

[1] 関連する類似起源閲覧文脈群の単位 (unit of related similar-origin browsing contexts) は、 Webブラウザーの動作に深く関わる閲覧文脈群の単位です。

仕様書

意味

[3] 関連閲覧文脈の単位をそれぞれ更に分割して、 document.domain 属性の適当な操作を通じて活性文書起源が同一グループの他のメンバーと同じ起源ドメインであるが、 他のグループのメンバーのいずれとも同じ起源ドメインではないような最小数のグループとします。 このようなグループそれぞれを関連する類似起源閲覧文脈群の単位 (unit of related similar-origin browsing contexts) といいます。 >>2

[4] 厳密な定義は >>3 の通りですが、これを不正確に言い換えるとすなわち、 親子関係など関係を持っている閲覧文脈のうち、サイト (eTLD+1) でまとめたグループ、ということになります。

[23] 閲覧文脈活性文書navigate履歴の探索によって変化しますから、 関連する類似起源閲覧文脈の単位に含まれる閲覧文脈も、随時変化します。

エージェント

[28] 類似 (るいじ) 起源 (きげん) (まど) (ウィンドウ) エージェント (similar-origin window agent) は、 互いに直接にまたは document.domain を介して到達する可能性を有する Window オブジェクトを含んだエージェントです。 >>27

[29] なお、 ある類似起源窓エージェントを持つエージェントクラスター起源を鍵としているの場合、 そのエージェントクラスターに属するエージェントはすべて同じ起源であり、 互いに直接に到達可能で、 document.domain は意味を持ちません。 >>27

[30] また、同じ起源Window オブジェクトであっても、 コツなる閲覧文脈群に属するなど、 異なる類似起源窓エージェントに属する場合があります。 >>27

関連する類似起源閲覧文脈群の単位の状態

[5] 関連する類似起源閲覧文脈群の単位は、次の状態を持ちます。

[8] イベントループ
今後実行するタスクその他を管理するものです。
[19] Blob URL Store >>18
信号スロットリスト
変異観察器slotchange の通知に使われます。
カスタム要素反応群スタック
今後実行するべきカスタム要素反応スタックです。
現在要素キュー
[16] mutation observer compound microtask queued flag >>14
[17] MutationObserver のリスト >>14

[26] これら仕様書上で関連する類似起源閲覧文脈群の単位ごとに定義されるオブジェクトやそれを使った処理は、 実装上は、より粗い単位で共有できます。例えば、単一プロセスで動作するWebブラウザーでは、 起源に関わらずすべてのタスクを同一のイベントループで実行することとしても構いません。 しかし、その定義より、異なる関連する類似起源閲覧文脈群の単位に属するスクリプト同士は (postMessage などを経由せずに) 直接アクセスする手段を持ちませんから、 著者はこの実装戦略の違いを直接的に観測することはできません。

歴史

[24] Rewrite script execution on top of ES · whatwg/html@4891d18 ( 版) https://github.com/whatwg/html/commit/4891d18aaf2df1d40aa61f467a5a10cfc19dd85d

[25] Merge effective script origin into origin · whatwg/html@8a843f2 ( 版) https://github.com/whatwg/html/commit/8a843f2169a6864a3024c4329528dccb2051d275

[9] Site Isolation - The Chromium Projects ( ()) https://www.chromium.org/developers/design-documents/site-isolation

The HTML spec refers to this group as a "unit of related similar-origin browsing contexts."  In Chrome, we refer to this as a SiteInstance.  All of the documents within a SiteInstance are allowed to script each other, and we must thus render them in the same process.

[6] Define agents and agent clusters (annevk著, ) https://github.com/whatwg/html/commit/4db86547f1184e7ceb4f1009cb3bef28101eda4f