[8] 閲覧文脈の作成は、窓を開くなどの利用者の操作により、
あるいは iframe
要素の挿入などのスクリプトの操作により、
行われます。
[41] 閲覧文脈を作成すると、閲覧文脈に対応する JavaScript
オブジェクトであり大域オブジェクトでもある Window
と、 JavaScript から実際にアクセスできるオブジェクトである
WindowProxy
が作成されます。更に、
閲覧文脈の初期状態である about:blank
の文書が作成されます。
そしてこれらの関連付けと初期化が行われます。
[2] 新しい閲覧文脈の作成 >>1 は、 作成子閲覧文脈 (閲覧文脈または無指定)、 入れ子か最上位か、補助閲覧文脈か否か、 noopener (既定値は偽)、 閲覧文脈群群を、 次のようにします。
[10] Window
は大域オブジェクトですから、
付随して環境設定群オブジェクト、 JavaScript 実行環境、
Web IDL インターフェイスオブジェクトなども作られます。
この Window
は、 navigate により次の文書に再利用されることがあります。
[11] 本項の初期化手順の後に、閲覧文脈が使われる各文脈に依存した次の処理が (必要なら) 行われます。
[12] Webブラウザーで新たなタブを開いたことによる閲覧文脈の作成の場合には、 about:newtab などの Webブラウザー依存の初期ページや、 利用者の設定したホームページへと置換有効で navigate されます。
[13] 外部アプリケーションから Webブラウザーに URL を指定して起動 (あるいはプロセス間通信により URL を開くことを指示) した場合には、その URL へと置換有効で navigate されます。
[14] お気に入りや閲覧履歴などの Webブラウザー依存の利用者インターフェイスを通して URL を指定して新しい閲覧履歴が開かれた場合には、 その URL へと置換有効で navigate されます。
[28] 作成した閲覧文脈がいつ利用者に表示されるかは、作成される場面や利用者エージェントの設計方針により異なります。 入れ子閲覧文脈の場合は、次のレンダリングの更新の時点と思われます。 最上位閲覧文脈の場合は、ただちに表示されるのが普通と思われますが、 敢えてそうしないこともあるかもしれません (navigate 参照)。
[54] いずれにせよ、 閲覧文脈の作成と前後して、その閲覧文脈の表示のための窓やタブ、 関係する利用者インターフェイスなどの作成と初期化を適宜行う必要があります。
[36] 閲覧文脈は、 作成子閲覧文脈、 作成子URL、 作成子基底URL、 作成子起源 >>1 を持ちます。 これらは閲覧文脈の作成時に (あれば) 設定されます。 作成子閲覧文脈は、いくつかの処理で参照されます。 作成子基底URLは、フォールバック基底URLの決定で参照されます。 作成子URLと作成子起源は、 仕様書上の新しい閲覧文脈の作成手順群でのみ参照されるので、 実際には閲覧文脈の状態として保持し続ける必要はありません。
[44] かつては作成子閲覧文脈と作成子Document
でした。
[94] 一時は 作成子文脈セキュリティーや作成子参照元ポリシーがありました。
about:blank
文書[4] 閲覧文脈の作成時に作成される文書は、仕様書中では
「閲覧文脈作成時に追加された about:blank
文書」、
「初期『about:blank
』文書」などと呼ばれます。
[21] 閲覧文脈作成時にセッション履歴に追加された
about:blank
文書は、次の場面で特別に扱われます。
[5] 初期文書かどうかは、置換有効で navigate するかどうかの判断に使われます。 つまり初期文書は当該閲覧文脈で navigate が最初に発生した時にセッション履歴から削除されることになります。
[6] この判断は初期文書かどうか否かで行うので、スクリプトにより内容を操作しているか否かは影響しません。 (ただし document.open
や
pushState
でセッション履歴エントリーが新たに追加されていれば、
初期文書が唯一のセッション履歴エントリーであるとの条件を満たさなくなります。)
[7] replaceState
や document.open
でセッション履歴エントリーが置換された場合で URL
が about:blank
でなくなった場合、
あるいは about:blank
のままでセッション履歴エントリーが置き換わった場合にどう影響するのかは明確ではありません。
初期「about:blank
」文書であるかどうかの判断が文書に於けるものかセッション履歴エントリーに於けるものかで変わってきます。
[34] Refactor browsing context creation · whatwg/html@357f649 ( 版) https://github.com/whatwg/html/commit/357f649a2fda01b0ae07c3d7643d3123d29a5538
[46] Rewrite global object initialization to delegate to ES · whatwg/html@cf0355d ( 版) https://github.com/whatwg/html/commit/cf0355d7e0e229b98f7fbd51b8c7608010c787f5
[56] Rewrite script execution on top of ES · whatwg/html@4891d18 ( 版) https://github.com/whatwg/html/commit/4891d18aaf2df1d40aa61f467a5a10cfc19dd85d
[57] Define security around Window, WindowProxy, and Location properly · whatwg/html@acae3df ( 版) https://github.com/whatwg/html/commit/acae3df652b382e9f4f1d1b4dc7e08e2b00df821
[58] Remove the origin aliasing concept · whatwg/html@438155d ( 版) https://github.com/whatwg/html/commit/438155d2a2255aa5ea84ae390744d8a8662ebec2
[59] Sync with recent changes to the JS spec's job queue · whatwg/html@5af258f ( 版) https://github.com/whatwg/html/commit/5af258f33e3e2f55eb30e611cb7aee625a8bd16a
[60] Define the origin of non-initial about:blank documents · whatwg/html@baad9fd ( 版) https://github.com/whatwg/html/commit/baad9fd10e5a49c1c72fc89426ffa2a26e0b72e4
[61] Merge effective script origin into origin · whatwg/html@8a843f2 ( 版) https://github.com/whatwg/html/commit/8a843f2169a6864a3024c4329528dccb2051d275
[40] Remove the concept of creator Document so we don't leak a document · whatwg/html@a996f3b ( 版) https://github.com/whatwg/html/commit/a996f3b4982f20697f71a23c919567a638519959
[3] Integrate with the Referrer Policy spec, part 2 of n ( (domenic著, )) https://github.com/whatwg/html/commit/176e74243c649b709b9959b7d08b327290c2f403
[62] Cleanup "create a new browsing context" ( (annevk著, )) https://github.com/whatwg/html/commit/f139279fb116bbde5d5ee3d257d21778cd774144
[65] Define initial about:blank document better ( (annevk著, )) https://github.com/whatwg/html/commit/8edc92d6e42878662c7f9f75a43352bd341ae01d
[66] Use fullscreen logic for initial about:blank documents too ( (annevk著, )) https://github.com/whatwg/html/commit/c2a8d605e0115c80d1ccb4b15371ecaa56a33e30
[67] Make allowfullscreen and allowusermedia match implementations (annevk著, ) https://github.com/whatwg/html/commit/9f6b91cb14a0f497ee5b3e7118ee65e687eaea78
[68] Add 'creator context security' (mikewest著, ) https://github.com/whatwg/html/commit/91f1919249bc75e4a6491ee7ec650c9843f9da50
[69] Fixing some links and cleaning up lists. (mikewest著, ) https://github.com/w3c/webappsec-secure-contexts/commit/5f36532e8909c8bf72daa431724b6372bc5366ab
[72] Add environment's execution ready flag (jungkees著, ) https://github.com/whatwg/html/commit/d358c7814de8a053dcb8615a5d87e8c2e0e19257
[74] Snapshot allowpaymentrequest and allowusermedia attributes (zcorpan著, ) https://github.com/whatwg/html/commit/b3224a8457e32015153ed91f26b6212e25df1d6b
[76] Centralize setting the active document (annevk著, ) https://github.com/whatwg/html/commit/4257a9bf03f8ebbd6cc8b41933b6c5b619611662
[73] Make noopener stop the copying of session storage (mystor著, ) https://github.com/whatwg/html/commit/a68a1f712b641981d7367d78758596b21a04521c
[78] Mention `sessionStorage` copying in logic for creating auxiliary browsing contexts · Issue #2681 · whatwg/html () https://github.com/whatwg/html/issues/2681
[79] Mention sessionStorage copying in logic for creating a new browsing context by mystor · Pull Request #2832 · whatwg/html () https://github.com/whatwg/html/pull/2832
[80] Drop creator context security (annevk著, ) https://github.com/whatwg/html/commit/5952d8361b5930a3dfe7a6d814a194be6e013d8b
[70] Creator context security used incorrectly · Issue #48 · w3c/webappsec-secure-contexts () https://github.com/w3c/webappsec-secure-contexts/issues/48
[81] Drop creator context security by annevk · Pull Request #3150 · whatwg/html () https://github.com/whatwg/html/pull/3150
[82] Editorial: Define "realm execution context" in a separate step (TimothyGu著, ) https://github.com/whatwg/html/commit/b5f9ad629cb498206bd9e4144de9ec58e27fef98
[84] Editorial: Define "realm execution context" in a separate step by TimothyGu · Pull Request #3314 · whatwg/html () https://github.com/whatwg/html/pull/3314
[85] Fix calls to InitializeHostDefinedRealm (TimothyGu著, ) https://github.com/whatwg/html/commit/39c948ba5ec55677e209bc4fc631636f1e8e2baf
[83] Editorial: initialize feature policy before document creation (dtapuska著, ) https://github.com/whatwg/html/commit/2a397f6a8fce75855fa84785b3b952f9e6fce2d9
[87] Editorial: initialize feature policy before document creation (dtapuska著, ) https://github.com/whatwg/html/commit/2a397f6a8fce75855fa84785b3b952f9e6fce2d9
[88] Expose new algorithms to create a Feature Policy before document is c… by dtapuska · Pull Request #324 · w3c/webappsec-feature-policy () https://github.com/w3c/webappsec-feature-policy/pull/324
[89] Use the newly exposed methods to initialize feature policy. by dtapuska · Pull Request #4772 · whatwg/html () https://github.com/whatwg/html/pull/4772
[93] Editorial: inline "creator referrer policy" (shvaikalesh, , ) https://github.com/whatwg/html/commit/f60852c385a2ab13e7a35fb2fb8057d43a9f26a4
[95] Inline "creator referrer policy" · Issue #4721 · whatwg/html () https://github.com/whatwg/html/issues/4721
[96] Editorial: inline "creator referrer policy" by shvaikalesh · Pull Request #4740 · whatwg/html () https://github.com/whatwg/html/pull/4740
[97] Imperatively allocate window agents and agent clusters (dtapuska, , ) https://github.com/whatwg/html/commit/04044721e6f94ce62b05b3b20b24d30f97b2b694
[99] Refactor the navigation algorithm (dtapuska, , ) https://github.com/whatwg/html/commit/061e782437c6cff600f18bc96c1a11489e09c3ab
[38] Refactor navigation algorithm. by dtapuska · Pull Request #4664 · whatwg/html () https://github.com/whatwg/html/pull/4664
[39] Snapshot sandbox at the start of navigation (clelland, , ) https://github.com/whatwg/html/commit/eb13fece2cadc45863dc61079358b72478756f8b