[165] [DFN[[CODE(JS)@en[window.open]]]] は、
新しい[[閲覧文脈]]を開くことを求めるものです。

* 仕様書

[REFS[
- [72] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#current-document-readiness>
- [157] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2016-09-16 22:41:59 +09:00]]) <https://html.spec.whatwg.org/#throw-on-dynamic-markup-insertion-counter>
- [7] '''[CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#dom-document-open>'''
- [31] '''[CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#dom-open>'''
- [43] [CITE@en[CSSOM View Module]] ([TIME[2015-05-06 18:05:35 +09:00]] 版) <http://dev.w3.org/csswg/cssom-view/#the-features-argument-to-the-open()-method>
- [58] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#an-overridden-reload>
]REFS]

* メソッド呼び出し

[75] [CODE(DOMi)@en[[[Window]]]] [[インターフェイス]]の
[DFN[[CODE(DOMm)@en[[[open]]]]]] [[メソッド]]は、
新しい[[窓]] ([[補助閲覧文脈]]) を[[ポップアップ]]するものです。
次の[[引数]]があります。
[FIG(table)[
:n:
:t:[[型]]
:o:省略
:d:説明

:n:1
:t:[CODE(IDL)@en[USVString]]
:o:省略可能
:d:新しく表示する[[文書]]の [[URL]]。

:n:2
:t:[CODE(IDL)@en[[[DOMString]]]]
:o:省略可能
:d:[[妥当な閲覧文脈名またはキーワード]]。省略時は [CODE(HTML)@en[[[_blank]]]]。

:n:3
:t:[CODE(IDL)@en[[[DOMString]]]]
:o:省略可能
:d:[[ポップアップ]]の表示オプション。
]FIG]

[32] [CODE(DOMi)@en[[[Window]]]] [[インターフェイス]]の
[CODE(DOMm)@en[open][window.open]] [[メソッド]]は、
次のようにしなければ[MUST[なりません]] [SRC[>>31]]。

[FIG(steps)[
= [248] [VAR[URL]] を、第1[[引数]]を [CODE(IDL)@en[USVString]] として解釈した結果に設定します。
[[既定値]]は [CODE(MIME)@en[about:blank]] とします。
= [249] [VAR[対象]]を、第2[[引数]]を [CODE(IDL)@en[DOMString]] として解釈した結果に設定します。
[[既定値]]は [CODE(HTML)@en[_blank]] とします。
= [172] [VAR[機能群]]を、第3[[引数]]を [CODE(IDL)@en[DOMString]] として解釈した結果に設定します。
[[既定値]]は[[空文字列]]とします。
ただし [CODE[null]] は[[空文字列]]とします ([CODE(IDL)@en[TreatNullAs=EmptyString]])。
= [153] [VAR[URL]]、[VAR[対象]]、[VAR[機能群]]について、[[窓を開く手順群]]を実行した結果を返します。
ただし[[例外]]が[[投げ]]られたら、[[再び投げ]]ます。
]FIG]

[8] [CODE(DOMi)@en[[[Document]]]] [[インターフェイス]]の
[DFN[[CODE(DOMm)@en[[[open]]]]]] [[メソッド]]は、現在の[[文書]]を
[CODE(JS)@en[[[document.write]]]] によって指定した [[HTML]] ソースコードで置き換えるべく、
現在の内容を消去して[[構文解析器]]を起動するものです。次の[[引数]]があります。
[FIG(table)[
:n:
:t:[[型]]
:o:省略
:d:説明

:n:1
:t:[CODE(IDL)@en[[[DOMString]]]]
:o:省略可能
:d:無視されます。
[HISTORY[
[138] かつては、
[[MIME型]]を表していました。
[CODE[text/plain]] なら[[テキストファイルのDOM構築]]を意味していました。
しかし実装が不安定で、廃止されました。
現在の挙動は
[CODE[text/html]]
に相当します。
]HISTORY]

:n:2
:t:[CODE(IDL)@en[[[DOMString]]]]
:o:省略可能
:d:無視されます。
[HISTORY[
[137] かつては、
[CODE[[[replace]]]] なら[[置換有効]]、[[空文字列]] (既定値) なら無効を表していました。
しかし実装が不安定で、廃止されました。
現在の挙動は
[CODE[replace]]
に相当します。
]HISTORY]
]FIG]

;; [74] このメソッドは [[DOM0]] 時代のもので、現在では通常の [[DOM木]]の操作を用いるべきと一般的には考えられています。

[73] [CODE(DOMi)@en[[[Document]]]] [[インターフェイス]]の
[CODE(DOMm)@en[[[open]]]] [[メソッド]]は、
次のようにしなければ[MUST[なりません]] [SRC[>>7]]。

[FIG(steps)[
= [250] [[引数]]が3つ[[以上]]ある場合、
== [154] [VAR[URL]] を、第1[[引数]]を [CODE(IDL)@en[USVString]] として解釈した結果に設定します。
[[既定値]]は [CODE(MIME)@en[about:blank]] とします。
== [155] [VAR[対象]]を、第2[[引数]]を [CODE(IDL)@en[DOMString]] として解釈した結果に設定します。
[[既定値]]は [CODE(HTML)@en[_blank]] とします。
== [251] [VAR[機能群]]を、第3[[引数]]を [CODE(IDL)@en[DOMString]] として解釈した結果に設定します。
[[既定値]]は[[空文字列]]とします。
@@ ただし [CODE[null]] は[[空文字列]]とします ([CODE(IDL)@en[TreatNullAs=EmptyString]])。
== [254] [[文脈オブジェクト]]の[F[活性文書]]が[[偽]]の場合、
=== [255] [CODE[InvalidAccessError]] [CODE(DOMi)@en[DOMException]] を[[投げ]]、
ここで停止します。
== [252] [VAR[URL]]、[VAR[対象]]、[VAR[機能群]]について、[[窓を開く手順群]]を実行した結果を返します。
ただし[[例外]]が[[投げ]]られたら、[[再び投げ]]ます。
= [253] それ以外の場合、
== [184] [VAR[型]]を、第1[[引数]]を [CODE(IDL)@en[DOMString]] として解釈した結果に設定します。
== [185] [VAR[置換]]を、第2[[引数]]を [CODE(IDL)@en[DOMString]] として解釈した結果に設定します。
== [256] [CODE[CEReactions]] の事前処理を実行します。
== [183] [[文書を開く手順群]]を、
[[文脈オブジェクト]]について実行します。
[[例外]]が[[投げ]]られたら、[CODE[CEReactions]] の事後処理を実行し、
[[例外]]を[[再び投げ]]、ここで停止します。
== [257] [CODE[CEReactions]] の事後処理を実行します。
== [223] [VAR[文書]]を返します。
]FIG]

;; [69] [CODE(JS)@en[[[document.open]]]] 相当の処理は、 [CODE(JS)@en[[[document.write]]]]
から呼び出されることがあります。

* [CODE(DOMi)@en[Window]] 用の処理

[33] [DFN[[RUBYB[窓を開く手順群]@en[window open steps]]]]は、
[VAR[URL]]、[VAR[対象]]、[VAR[機能群]]について、
次のようにします [SRC[>>31]]。

[FIG(steps)[
= [304] 
[[イベントループ]]の[F[termination nesting level]] が [N[0]]
でない場合、
== [305] 
ここで停止します。
= [34] [VAR[[[始点閲覧文脈]]]]を、[[入口設定群オブジェクト]]の[[有責閲覧文脈]]とします。
= 
[328] 
[VAR[字句化済機能群]], [VAR[noopener]], [VAR[noreferrer]]
を、
[VAR[機能群]]を処理 (>>329) した結果に設定します。
= [40] [VAR[対象閲覧文脈]]、[VAR[[[置換有効]]]]、[VAR[[[利用者]]が[[閲覧文脈]]を明示した]]を[[閲覧文脈の選択]]の結果に設定します。
[FIG(list members)[
: [VAR[[[閲覧文脈名]]]] : [VAR[対象]]
: [VAR[機能群]] : [VAR[機能群]]
: [VAR[noopener]] : [VAR[noopener]]
]FIG]
= [76] [VAR[対象閲覧文脈]]が「なし」の場合、
== [162] [CODE[null]] を返し、ここで停止します。
= [163] [VAR[URL]] が[[空文字列]]以外なら、
== [179] [VAR[URL記録]]を、
[VAR[URL]] を[[入口設定群オブジェクト]]の[F[API基底URL]]に対して[[解決][URLの解決]]した結果に設定します。
== [177] [VAR[URL記録]]が[[失敗]]の場合、
=== [180] [CODE[SyntaxError]] [CODE(DOMi)@en[DOMException]] を[[投げ]]、
ここで停止します。
== [226] それ以外の場合、
=== [VAR[新しい[[資源]]]]を、[VAR[結果]]に設定します。
= [247] [VAR[URL]] が[[空文字列]]の場合、
== [VAR[[[置換有効]]]]が[[偽]]なら、
=== [VAR[対象閲覧文脈]]の [CODE(DOMi)@en[[[WindowProxy]]]] [[オブジェクト]]を返し、停止します。
== [318] 
[VAR[URL記録]]を、
[[URL]] [CODE(URI)@en[[[about:blank]]]] 
に設定します。
= [316] 
[VAR[要求]]を、
新しい[[要求]]に設定します。
[FIG(list members)[ [317] [[要求]]

: [F[URL][要求URL]] : [VAR[URL記録]]

]FIG]
= [319] 
[VAR[noreferrer]] が[[真]]の場合、
== [320] 
[VAR[要求]]の[F[参照元ポリシー]]を、
[CODE[noreferrer]] に設定します。
= [90] [VAR[URL記録]]が [[URL]] [CODE(URI)@en[[[about:blank]]]] で、
[VAR[[[置換有効]]]]が[[真]]の場合、
== [91] [[タスク]]を[[タスクキュー]]に追加します。
[FIG(list members)[
[FIGCAPTION[
[[タスク]]
]FIGCAPTION]
:[[タスク源]]:?
:処理:
[FIG(steps)[
= [89] [[単純イベントを発火]]します。
[FIG(list members)[
[FIGCAPTION[
[[単純イベント]]
]FIGCAPTION]
:[[イベント型]]:[CODE(DOMe)@en[[[load]]]]
:[[対象]]:[VAR[対象閲覧文脈]]の [CODE(DOMi)@en[[[Window]]]] [[オブジェクト]]
:[[target override]]:[VAR[対象閲覧文脈]]の [CODE(DOMi)@en[[[Window]]]] [[オブジェクト]]の[[文書]]
]FIG]
]FIG]
]FIG]
= [78] それ以外なら、
== [146] [[navigate]] します。
[FIG(list members middle)[
: [VAR[[[navigate]] する[[閲覧文脈]]]] : [VAR[対象閲覧文脈]]
: [VAR[要求]] : [VAR[要求]]
: [VAR[例外有効]] : [[真]]
: [VAR[置換有効]] : [VAR[置換有効]]
: [VAR[新しい[[最上位閲覧文脈]]]] : [VAR[置換有効]]
: [VAR[始点閲覧文脈]] : [VAR[始点閲覧文脈]]
: [VAR[[[利用者]]が[[閲覧文脈]]を明示した]] : [VAR[[[利用者]]が[[閲覧文脈]]を明示した]]
]FIG]
[[例外]]が[[投げ]]られたら、[[再度投げ]]ます。
= [100] [VAR[noopener]] が[[真]]の場合、
== [104] [VAR[対象閲覧文脈]]について [[disown]] します。
== [101] [CODE[null]] を返します。
= [102] それ以外の場合、
== [103] [VAR[対象閲覧文脈]]の [F[[CODE(DOMi)@en[[[WindowProxy]]]] [[オブジェクト]]]]を返します。
]FIG]

;; [81] [[Chrome]] は[[ポップアップ]]がブロックされた場合 ([VAR[対象閲覧文脈]]が無い場合)
に [CODE(JS)@en[[[undefined]]]] を返し、[[例外]]は投げないようです。 [TIME[2015-07-19T02:02:52.700Z]]

* [CODE(DOMi)@en[Document]] 用の処理

[46] [DFN[[RUBYB[文書を開く手順群]@en[document open steps]]]]は、
[VAR[文書]]、[VAR[型]]について、
次のようにしなければ[['''なりません''']]。

[FIG(steps)[
= [118] 事前条件確認:
== [119] 
[FIG(list)[
- [159] [VAR[文書]]の[F[型]]が [[XML文書]]
- [160] [VAR[文書]]の [F[throw-on-dynamic-markup-insertion counter]] が[[正]]
]FIG]
... のいずれかの場合、
=== [120] [CODE(DOMe)@en[[[InvalidStateError]]]] [[例外]]を投げ、停止します [SRC[>>7]]。
== [224] 
[VAR[入口文書]]を、
[[入口大域オブジェクト]]の[F[関連付けられた文書]]に設定します。
== [128] [VAR[文書]]の[F[[[文書の起源]]]]が[VAR[入口文書]]の[F[起源][文書の起源]]と[[同じ起源]]で''ない''場合、
=== [129] [CODE(DOMe)@en[[[SecurityError]]]] [[例外]]を投げ、停止します [SRC[>>7]]。
= [309] 次のいずれかの場合:
-- [124] [VAR[文書]]の[F[活性構文解析器]]が [CODE[null]] で''なく''、
[VAR[文書]]の[F[活性構文解析器]]の [F[script nesting level]] が[[正]]
-- [126] [VAR[文書]]の [F[ignore-opens-during-unload counter]] が[[正]]
-- [125] [VAR[文書]]の[F[活性構文解析器がabortされた]]が[[真]]
== [127] [VAR[文書]]を返し、ここで停止します [SRC[>>7]]。
= [87] [VAR[文書]]の新規化 [SRC[>>7]]:
== [121] 
[VAR[文書]]の[F[閲覧文脈]]が
[CODE[null]] ではなく、
[VAR[文書]]の[F[閲覧文脈]]が
[[navigate]]
しようとしている場合、
=== [229] [VAR[文書]]について[[文書読み込みを停止]]します。
== [230] [VAR[文書]]の[[影を含む包括的子孫]]の各[VAR[節点]]について、
=== [207] [VAR[節点]]について[[すべてのイベントリスナー群とイベントハンドラー群を消去]]します。
== [285] 
[VAR[文書]]の[F[関連大域オブジェクト]]の[F[[[関連付けられた[CODE[Document]]]]]]が[VAR[文書]]の場合、
=== [122] 
[VAR[文書]]の[F[関連大域オブジェクト]]について[[すべてのイベントリスナー群とイベントハンドラー群を消去]]します。
== [108] [VAR[文書]]について[[変異イベント]]無効で、 [[null]] に[[すべて置換]]します。
== [88] [VAR[文書]]の [F[[CODE(DOMi)@en[[[Window]]]]]] の [F[[[HTTPS状態]]]]を、
[[入口設定群オブジェクト]]の[F[[[有責文書]]]]の [F[[CODE(DOMi)@en[[[Window]]]]]]
の [F[[[HTTPS状態]]]]に設定します。
== [234] 
[VAR[文書]]の[F[完全に活性]]が[[真]]の場合、
=== [235] 
[VAR[新URL]]を、
[VAR[入口文書]]の[F[URL][文書の番地]]に設定します。
=== [236] 
[VAR[入口文書]]が[VAR[文書]]で''ない''場合、
==== [237] 
[VAR[新URL]]の[F[素片][素片識別子]]を、
[CODE[null]] に設定します。
=== [209] 
[VAR[文書]]と[VAR[新URL]]について、
[[URLおよび履歴更新手順群]]を実行します。
= [238] [VAR[文書]]の [F[iframe load in progress]] フラグが[[真]]の場合、
== [239] [VAR[文書]]の [F[mute iframe load]] フラグを、[[真]]に設定します [SRC[>>7]]。
= [217] [VAR[文書]]の[F[モード][DOCTYPEスイッチ]]を、
[[非奇癖モード]]に設定します。
= [240] [VAR[文書]]の[F[構文解析器]]を、
新しい[[HTML構文解析器]]に設定します [SRC[>>7]]。
[FIG(list members middle)[ [241] [[HTML構文解析器]]
: [F[script-created parser]] : [[真]]
: [F[confidence]] : [[irrelevant]]
]FIG]
= [70] [VAR[文書]]の[F[現在文書準備度]]を、 [CODE[[[loading]]]] に設定します [SRC[>>7]]。
= [71] [[単純イベントを発火]]します。 [SRC[>>72]]
[FIG(list members middle)[
: [VAR[[[型][イベント型]]]] : [CODE(DOMe)@en[[[readystatechange]]]]
: [VAR[[[対象][イベント対象]]]] : [VAR[文書]]
]FIG]
= [140] [VAR[文書]]の[F[構文解析器]]の[F[挿入点]]を、
[F[入力ストリーム]]の末尾に設定します。 [SRC[>>7]]
= [141] [VAR[文書]]を返します。 [SRC[>>7]]
]FIG]

;; [246] [CODE(JS)@en[document.open]] だけでなく、
[CODE(JS)@en[document.write]] や
[CODE(JS)@en[document.writeln]] からも呼び出されます。

[45] [[文書]]は、 [DFN[[F[ignore-opens-during-unload counter]]]] を持ちます [SRC[>>7]]。
初期値は [N[0]] です [SRC[>>7]]。 [[prompt to unload a document]] や
[[unload a document]] からの [CODE(JS)@en[[[document.open]]]] を抑制するために使われます。

[158] [[文書]]は、  [DFN[[F[throw-on-dynamic-markup-insertion counter]]]]
を持ちます [SRC[>>157]]。 初期値は [N[0]] です [SRC[>>157]]。
[[カスタム要素構築器]]の実行中の [CODE(JS)@en[document.open]] や
[CODE(JS)@en[document.write]] を抑制するために使われます。

[HISTORY[
[123] かつては第1引数で [[HTML]] か[[平文]]かを指定できました。
[[平文]]の場合[[テキストファイルのDOM構築]]が行われていました。

[51] 第1引数の元々の意図は [[MIME型]]の指定だったようですが、実際には [[HTML]]
かどうかの区別の意味しか無くなっていたようです。

[52] しかも元の[[文書]]の[[HTML構文解析器]]の動作中には必ず [[HTML]]
と解釈されるようです。 [[IE]] と [[Firefox]] は[[構文解析器]]の停止後には[[平文]]にも対応するようですが、
[[Chrome]] は常に [[HTML]] と解釈します。 [TIME[2015-05-06T13:57:53.00Z]]

;; [53] [[IE]] は [CODE(URI)@en[[[javascript:]]]] の [[navigate]]
なら正しく処理できますが、 [CODE(DOMa)@en[[[onclick]]]] ではなぜか
[CODE(JS)@en[[[document.write]]]] が反映されずに真っ白な状態になります。

[54] デモ:
[REFS[
- [50] [CITE[Index of /~wakaba/test/web/dom/document/writing/open]] ([TIME[2015-05-06 22:54:55 +09:00]] 版) <http://suika.suikawiki.org/~wakaba/test/web/dom/document/writing/open/>
]REFS]
]HISTORY]

[93] [CODE(JS)@en[[[document.open]]]] は [[DOM0]] 時代の遺物です。当時は[[文書]]の[[要素]]の書き換えができなかった
(せいぜい[[フォーム制御子]]の現在の状態や[[画像]]の [[URL]] を変更できる程度だった)
ので、[CODE(URI)@en[[[data:]]]] [[URL]] もありませんから、
[[クライアント]]側で[[文書]]を生成する必要があれば [CODE(JS)@en[[[document.open]]]]
を使う他ありませんでした。

[94] 現在となっては [CODE(JS)@en[[[document.open]]]] を使うべき理由はまったくありません。
実装により細かな挙動が異なり不安定なので、使うべきではありません。


* [VAR[features]] 引数の処理

[80] 新しい[[補助閲覧文脈]]が開かれる場合 ([[ポップアップ]]の場合)、
第3引数 [DFN[[VAR[features]]]] の指示が適用されます。

[HISTORY[
[325] 
[VAR[features]]
[[引数]]は
[[JavaScript 1.0]]
時代からの超古参なのですが、
長らくどの[[仕様書]]も無視してまともに規定していませんでした。

[326] 
[[平成時代]]後期になってようやく、紆余曲折ありつつも
[CITE[HTML Standard]]
と
[CITE[CSSOM View]]
に規定が入ったのですが、
その[[歴史的経緯]]のために規定が分散して入り組んだいびつな形のままになっています。

]HISTORY]

[77] [VAR[対象閲覧文脈]]が新しい[[閲覧文脈]]かつ[[補助閲覧文脈]]なら、
[[CSSOM View]] の規定を適用しなければ[MUST[なりません]] [SRC[>>31]]。
[SEE[ [[閲覧文脈の選択]] ]]

-*-*-

[79] 次の機能があります。

[FIG(short list)[ [44] [VAR[features]] [[引数]]で指定できる機能
- [CODE(HTML)@en[[[noopener]]]]
- [CODE[left]]
- [CODE[top]]
- [CODE[width]]
- [CODE[height]]

[HISTORY[
- [CODE[screenx]] 
- [CODE[screeny]] 
- [CODE[innerwidth]] 
- [CODE[innerheight]] 
]HISTORY]
]FIG]

-*-*-

[329] 
[VAR[機能群]]の処理は、
次のようにします。
[SRC[>>31]]

[FIG(steps)[
= [41] 
[VAR[字句化済機能群]]を、 [VAR[機能群]]を[[字句化][featuresの字句化]]した結果に設定します。
= [261] 
[VAR[字句化済機能群]] [ [CODE[noopener]] ] が[[存在][map exists]]する場合、
== [332] 
[VAR[noopener]]
を、
[VAR[字句化済機能群]] [ [CODE[noopener]] ] を[[boolean関数として構文解析]]した結果に設定します。
== [333] 
[VAR[字句化済機能群]] [ [CODE[noopener]] ] を[[削除][map remove]]します。
= [312] 
[VAR[字句化済機能群]] [ [CODE[noreferrer]] ] が[[存在][map exists]]する場合、
== [313]  
[VAR[noreferrer]]
を、
[VAR[字句化済機能群]] [ [CODE[noreferrer]] ] を[[boolean関数として構文解析]]した結果に設定します。
== [314]  
[VAR[字句化済機能群]] [ [CODE[noreferrer]] ] を[[削除][map remove]]します。
= [330] 
[VAR[字句化済機能群]], [VAR[noopener]], [VAR[noreferrer]] 
を返します。
]FIG]

-*-*-

[191] [DFN[[RUBYB[機能分離子]@en[feature separator]]]]は、
[[ASCII空白]]と [CODE[=]] と [CODE[,]] です。 [SRC[>>31]]

[FIG(railroad)[
= |
== [[ASCII空白]]
== [CODE[=]]
== [CODE[,]]
]FIG]

[42] [DFN[[RUBYB[[VAR[features]]引数の字句化]@en[tokenize the [VAR[features]] argument]]]]は、
[VAR[features]] を次のようにします [SRC[>>31]]。

[FIG(steps)[
= [173] [VAR[機能群]]を、新しい[[順序付き写像]]に設定します。
= [193] [VAR[features]] の[[符号位置]]を次の通り先頭から末尾まで順番に読んでいきます。
== [194] [[機能分離子]]をあるだけ読みます。
== [195] [VAR[名前]]を、[[機能分離子]]''以外''をあるだけ読んだ結果に設定します。
== [196] [[ASCII空白]]をあるだけ読みます。
== [197] [CODE[=]] を読んだ場合、
=== [198] [CODE[,]] ''以外''の[[機能分離子]]をあるだけ読みます。
=== [199] [VAR[値]]を、[[機能分離子]]''以外''をあるだけ読んだ結果に設定します。
== [200] それ以外の場合、
=== [201] [VAR[値]]を、[[空文字列]]に設定します。
== [202] [VAR[名前]]を、[VAR[名前]]を[[ASCII小文字化]]した結果に設定します。
== [178] [VAR[名前]]を、[VAR[名前]]に[[機能名の正規化]]を適用した結果に設定します。
== [188] [VAR[名前]]が[[空文字列]]でない場合、
=== [203] [VAR[値]]を、[VAR[値]]を[[ASCII小文字化]]した結果に設定します。
=== [189] [VAR[機能群]]のキー[VAR[名前]]の値を、[VAR[値]]に設定します。
== [174] 繰り返して更に続きを読みます。
= [190] [VAR[機能群]]を返します。
]FIG]

[175] [DFN[[RUBYB[機能名を正規化]@en[normalize a feature name]]]]するとは、
次の通り[VAR[機能名]]を置き換えることをいいます。 [SRC[>>31]]

[FIG(switch)[
: [CODE[screenx]] : [CODE[left]]
: [CODE[screeny]] : [CODE[top]]
: [CODE[innerwidth]] : [CODE[width]]
: [CODE[innerheight]] : [CODE[height]]
: それ以外 : [VAR[機能名]]
]FIG]

* 歴史

[166] [CODE(JS)@en[window.open]] と [CODE(JS)@en[document.open]] は、
[[DOM0]] で導入されました。

[5]
[CITE[Latest topics > Chromeウィンドウを最前面にする・最背面にする - outsider reflex]] ([[Piro(SHIMODA Hiroshi)]] 著, [CODE[2007-09-29 12:59:12 +09:00]] 版) <http://piro.sakura.ne.jp/latest/blosxom/mozilla/xul/2007-09-26_zlevel.htm>
([[名無しさん]])

[6]
[[Firefox]] 2、[[Safari]] 3.1.1、[[Opera]] 9.27 
のいずれも、
[CODE(DOMm)@en[[[createDocument]]]] で作成した [CODE(DOMi)@en[[[Document]]]]
は [CODE(DOMi)@en[[[HTMLDocument]]]] ではなく、したがって
[CODE(JS)@en[[[document]].[[open]]()]] は使えないようです。


[9]
[CITE@ja[ブラウザごとのwindowオブジェクトの違いを理解する :CodeZine]] ([TIME[2008-10-25 14:23:50 +09:00]] 版) <http://codezine.jp/article/detail/3065?p=4>

[10] [CITE[Bug 325352 – document.open doesn't clear the document]] ([TIME[2008-11-30 18:28:19 +09:00]] 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=325352>

[11] [CITE[window.openでポップアップブロックされた時の挙動はブラウザによって違う - SEの行き着くところ…]] ([TIME[2009-04-19 17:07:23 +09:00]] 版) <http://d.hatena.ne.jp/AWAWA/20090414/1239691058>

[12]
>>11 <http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#dom-open>,
<http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>

[CODE(JS)@en[[[null]]]] を返すのが仕様上正しい実装かな。不可視の[[閲覧文脈]]が選ばれているとみなすなら [[Opera]] も正しいといえるかも。

[13] [CITE@en[Web Applications 1.0 r7304     Fix an infinite loop. There's no interop here, really, so I tried to find a compromise between what browsers do and keeping the requirements sane and simple. Tests at: http://www.hixie.ch/tests/adhoc/dom/level0/document/open/unload/ -- See also IRC ranting starting at http://krijnhoetmer.nl/irc-logs/whatwg/20120831#l-67 and ending at http://krijnhoetmer.nl/irc-logs/whatwg/20120901#l-140]]
( ([TIME[2012-09-01 08:46:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7303&to=7304>

[14] [CITE[IRC logs: freenode / #whatwg / 20120831]]
( ([TIME[2012-09-07 20:52:20 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20120831>

[15] [CITE[''''''[''''''whatwg'''''']'''''' Details on window.open]]
( ([TIME[2012-12-19 08:53:20 +09:00]] 版))
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2012-December/038408.html>

[16] [CITE@en[Web Applications 1.0 r7593 Try to better define how popup blockers work.]]
( ([TIME[2012-12-19 08:48:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7592&to=7593>

[17] [CITE@en[Web Applications 1.0 r7626     Make document.open() do nothing on non-active documents]]
( ([TIME[2012-12-31 14:16:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7625&to=7626>

[18] [CITE@en[Web Applications 1.0 r7729     document.open() legacy hack for compat]]
( ([TIME[2013-03-05 10:07:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7728&to=7729>

[19] [CITE@en[Web Applications 1.0 r8201     Make the parser not execute scripts pending for the document after document.open() has been called on it.]]
( ([TIME[2013-10-02 03:46:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=8200&to=8201>

[20] [CITE@en[Bug 25709 – Take over open() features argument spec http://dev.w3.org/csswg/cssom-view/#the-features-argument-to-the-open()-method]]
( ([TIME[2014-05-17 05:29:27 +09:00]] 版))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=25709>

[21] [CITE@en-US[Window.open - Web API Interfaces | MDN]]
( ([TIME[2014-03-27 08:00:30 +09:00]] 版))
<https://developer.mozilla.org/en-US/docs/Web/API/Window.open>

[22] [CITE[解決:window.open()を使いつつIEでRefererを渡す方法 - @blog.justoneplanet.info]]
( ([TIME[2014-07-25 00:52:00 +09:00]] 版))
<http://blog.justoneplanet.info/2007/07/18/windowopen%E3%82%92%E4%BD%BF%E3%81%84%E3%81%A4%E3%81%A4ie%E3%81%A7referer%E3%82%92%E6%B8%A1%E3%81%99%E6%96%B9%E6%B3%95/>

[23] [CITE@en[Web Applications 1.0 r8701     Defer to CSSOM View for window.open(..., ..., features, ...)]]
( ([TIME[2014-08-05 03:57:00 +09:00]] 版))
<http://html5.org/r/8701>

[24] [CITE[IRC logs: freenode / #whatwg / 20140820]]
( ([TIME[2014-08-21 02:29:23 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20140820#l-856>

[25] [CITE@en[Web Applications 1.0 r8777 Recast window.open() in terms of an algorithm.]]
( ([TIME[2014-09-17 06:23:00 +09:00]] 版))
<https://html5.org/r/8777>

[26] [CITE@en[Web Applications 1.0 r8778 Simplify window.open even further]]
( ([TIME[2014-09-17 06:26:00 +09:00]] 版))
<https://html5.org/r/8778>

[27] [CITE@en[Web Applications 1.0 r8779     Fix window.open('') to be more like deployed browsers rather than defaulting to 'about:blank'.]]
( ([TIME[2014-09-17 06:36:00 +09:00]] 版))
<https://html5.org/r/8779>

[28] [CITE@en[Web Applications 1.0 r8795     Match browsers better]]
( ([TIME[2014-09-20 06:21:00 +09:00]] 版))
<https://html5.org/r/8795>

[29] [CITE@en[Web Applications 1.0 r8816     Make window.open() match browsers better]]
( ([TIME[2014-09-25 07:21:00 +09:00]] 版))
<https://html5.org/r/8816>

[30] [CITE@en[RE: Figuring out the behavior of WindowProxy in the face of  non-configurable properties]]
( ([[Travis Leithead]] 著, [TIME[2015-01-15 10:49:45 +09:00]] 版))
<https://lists.w3.org/Archives/Public/public-script-coord/2015JanMar/0033.html>

[FIG(quote)[
[FIGCAPTION[
[1] [CITE@ja[IE11 の環境で DPI が既定値から変更されていると HTML アプリケーション (.hta) が縮小表示される]]
([TIME[2015-02-16 12:47:44 +09:00]] 版)
<http://support.microsoft.com/kb/2923604/ja>
]FIGCAPTION]

> Internet Explorer 11 の環境で、DPI 値 を既定の 100% から変更していると、HTML アプリケーション (.hta) が縮小表示される場合があります。
> HTML アプリケーションが frame 構造で、frame 内のコンテンツより window.open を使用して同一 frame 内にコンテンツを表示する場合、縮小表示される現象が発生します。 

]FIG]

[3] [[Gecko]]、[[Opera]] は [CODE(JS)@en[[[document.open]]]] [[メソッド]]で開かれた[[文書]]の
[[charset]] を [[UTF-8]]、 [[WinIE]] は [[UTF-16]] ([CODE(charset)@en[[[unicode]]]])
にしますが、 [[WebKit]] は元(?)の [[charset]] を引き継ぎます。

[2] [CITE[Part2 - browsersec - Browser Security Handbook, part 2 - Browser Security Handbook - Google Project Hosting]]
([TIME[2015-03-31 16:48:24 +09:00]] 版)
<https://code.google.com/p/browsersec/wiki/Part2#Window_appearance_restrictions>

[4] [CITE@en[717339 – Selection's Ranges should be removed on document.open()]]
([TIME[2015-05-05 19:42:43 +09:00]] 版)
<https://bugzilla.mozilla.org/show_bug.cgi?id=717339>

[35] [CITE[Bug 9726 – Spec the features argument]]
( ([TIME[2010-09-29 01:57:54 +09:00]] 版))
<http://www.w3.org/Bugs/Public/show_bug.cgi?id=9726>

[36] [CITE[Inline Images on Web Pages]]
( ([TIME[2005-10-31 14:52:43 +09:00]] 版))
<http://elf.org/essay/inline-image.html>

[37] [CITE[''''''[''''''whatwg'''''']'''''' location.reload() on document.open()ed documents]]
( ([TIME[2010-12-08 08:41:11 +09:00]] 版))
<http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-December/029360.html>

[38] [CITE@en[Web Applications 1.0 r8058     Try to match reality a bit better for popup blockers.]]
( ([TIME[2013-07-16 05:45:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=8057&to=8058>

[39] [CITE[''''''[''''''whatwg'''''']'''''' Details on window.open]]
( ([TIME[2013-07-16 07:02:49 +09:00]] 版))
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-July/040083.html>

[FIG(quote)[
[FIGCAPTION[
[83] [CITE[Web Security Context: User Interface Guidelines]]
([TIME[2010-08-04 20:09:50 +09:00]] 版)
<http://www.w3.org/TR/wsc-ui/#robustness-apis-obscure-security-ui>
]FIGCAPTION]

> Web user agents MUST prevent web content from obscuring, hiding, or disabling user interfaces that display security context information, except in response to a user interaction.
> User agents MUST restrict window sizing and moving operations consistent with section 7.1 Keep Security Chrome Visible. This prevents attacks wherein agent chrome is obscured by moving it off the edges of the visible screen.
> User agents MUST NOT allow web content to open new windows with the agent's security UI hidden. Allowing this operation facilitates picture-in-picture attacks, where artificial chrome (usually indicating a positive security state) is supplied by the web content in place of the hidden UI.
> User agents MUST prevent web content from overlaying chrome. This helps to ensure that user interactions that are perceived to target agent chrome are not redirected to Web applications.

]FIG]


[85] [CITE@en[Integrate Fetch into HTML · whatwg/html@7c5555a]]
([TIME[2015-09-18 18:00:18 +09:00]] 版)
<https://github.com/whatwg/html/commit/7c5555a16f2920c02244c10756bb2f1a11e87a22>

[86] [CITE@en[Add 'HTTPS state' to settings objects · whatwg/html@6de5241]] ([TIME[2015-09-29 23:41:32 +09:00]] 版) <https://github.com/whatwg/html/commit/6de524157fcf341e10efb3eec634bcf7325e6ee4>

[FIG(quote)[
[FIGCAPTION[
[92] [CITE@ja[window.open() の dialog オプションは非対応となりました | Firefox サイト互換性情報]]
([TIME[2015-11-05 06:12:09 +09:00]] 版)
<https://www.fxsitecompat.com/ja/docs/2015/dialog-option-for-window-open-is-no-longer-supported/>
]FIGCAPTION]

> window.open メソッドの dialog オプションが Web コンテンツから使用できなくなりました。この非標準機能は、最小化、最大化、復元ボタンをウィンドウのタイトルバーから取り除くものでしたが、Windows 版の Firefox とその他 Gecko ベースのブラウザしか対応していませんでした。

]FIG]

[95] [CITE@en[Add and populate global object's "CSP list" · whatwg/html@479dfbf]] ([TIME[2015-11-06 22:58:26 +09:00]] 版) <https://github.com/whatwg/html/commit/479dfbf1ff68b746ed3f81cc7415165e3342709e>

[97] [CITE@en[Move 'HTTPS state' from Window to Document · whatwg/html@68390ce]] ([TIME[2015-11-06 23:19:37 +09:00]] 版) <https://github.com/whatwg/html/commit/68390cea99f9f19881a16e1c8adaf1b130b4d1cc>

[99] [CITE@en[Add a 'noopener' <link rel> keyword and window feature · whatwg/html@2992ea9]] ([TIME[2015-11-12 22:22:48 +09:00]] 版) <https://github.com/whatwg/html/commit/2992ea921bc75e44157451a37a807a8ce0b9a884>

[98] [CITE@en[Per #290 window.open() can now return null · whatwg/html@1cf1475]]
([TIME[2015-11-08 16:36:26 +09:00]] 版)
<https://github.com/whatwg/html/commit/1cf14758fda3d7c157c0a89334bd3bc0cad7686e>

[105] [CITE@en[27419 – Need to define that document.open() also creates a new Realm and global environment record per https://esdiscuss.org/topic/relationship-between-globals-realms-and-global-environment-records]]
([TIME[2015-12-16 12:29:04 +09:00]] 版)
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=27419>

[106] [CITE@en[Remove the storage mutex due to lack of implementation · whatwg/html@1b918cf]] ([TIME[2015-12-16 14:38:10 +09:00]] 版) <https://github.com/whatwg/html/commit/1b918cf72fcbba011f83b92ab5d1f483fb1cafa3>

[107] [CITE@en[Rewrite global object initialization to delegate to ES · whatwg/html@cf0355d]]
([TIME[2015-12-16 19:05:13 +09:00]] 版)
<https://github.com/whatwg/html/commit/cf0355d7e0e229b98f7fbd51b8c7608010c787f5>

[114] [CITE@en[Rewrite script execution on top of ES · whatwg/html@4891d18]]
([TIME[2015-12-23 01:03:30 +09:00]] 版)
<https://github.com/whatwg/html/commit/4891d18aaf2df1d40aa61f467a5a10cfc19dd85d>

[FIG(quote)[
[FIGCAPTION[
[116] [CITE[Windows XP SP2上でのwindow.open: Oka Laboratory 備忘録]]
([TIME[2016-01-18 20:49:58 +09:00]] 版)
<http://okalab.cocolog-nifty.com/blog/2004/11/windows_xp_sp2w.html>
]FIGCAPTION]

> 例えば<a>タグ内にwindow.openを組み込んでいる場合、開いた別窓の下部にステータスバーが常時表示されてしまいます。またアドレスバーを非表示に設定しているときはタイトルバーのタイトルの前にドメイン名が表示されます。

]FIG]


[117] [CITE@en[Fix #536: abort document.open() if origins mismatch · whatwg/html@05599ab]]
([TIME[2016-01-29 17:57:18 +09:00]] 版)
<https://github.com/whatwg/html/commit/05599abc3f79d5ef644f9a8464532cc4626a3d46>

[130] [CITE@en[Tie Location to the Window object · whatwg/html@fdd8216]]
([TIME[2016-02-04 21:16:20 +09:00]] 版)
<https://github.com/whatwg/html/commit/fdd8216a902a065dd3e205cbbc1b5a6b527970a2>


[131] [CITE@en[Location has a strong tie with Window · Issue #24 · annevk/html-cross-origin-objects]]
([TIME[2016-02-04 21:17:29 +09:00]] 版)
<https://github.com/annevk/html-cross-origin-objects/issues/24>

[132] [CITE@en[Tie Location to the Window object by annevk · Pull Request #584 · whatwg/html]]
([TIME[2016-02-04 21:19:40 +09:00]] 版)
<https://github.com/whatwg/html/pull/584>

[133] [CITE@en[Make document.open() and close() check for an XML document · whatwg/html@0ee9935]]
([TIME[2016-03-23 21:22:35 +09:00]] 版)
<https://github.com/whatwg/html/commit/0ee993535960c18ea154ab6ec37fa62edcad1057>

[134] [CITE@en[Sync with recent changes to the JS spec's job queue · whatwg/html@5af258f]]
([TIME[2016-03-24 21:48:31 +09:00]] 版)
<https://github.com/whatwg/html/commit/5af258f33e3e2f55eb30e611cb7aee625a8bd16a>

[135] [CITE@en[Clarify settings object, realm, and global relationships · whatwg/html@0866f1b]]
([TIME[2016-03-28 00:36:44 +09:00]] 版)
<https://github.com/whatwg/html/commit/0866f1b3f4b4ea5a99a30909e9bbe557dea0b460>

[136] [CITE@en[Reset the "fired unload" flag at the end of document.open() · whatwg/html@1f6fa09]]
([TIME[2016-04-13 14:49:24 +09:00]] 版)
<https://github.com/whatwg/html/commit/1f6fa09728b2842091b401cfdcbf462944698e93>

[143] [CITE@en[Formalize custom element reactions · whatwg/html@27aa7bc]]
([TIME[2016-04-26 18:51:43 +09:00]] 版)
<https://github.com/whatwg/html/commit/27aa7bc4fa6f168654a8c858f0773e611f679b39>

[144] [CITE@en[Assign document's origin during creation · whatwg/html@b94d600]]
([TIME[2016-05-01 14:29:18 +09:00]] 版)
<https://github.com/whatwg/html/commit/b94d600e0e4de5ddea2215078611d6dfd0800391>

[145] [CITE@en[Editorial: turn "exceptions enabled" into a flag]]
( ([[annevk]]著, [TIME[2016-05-02 16:13:36 +09:00]]))
<https://github.com/whatwg/html/commit/879edbfcb25586caec8df93f303a434a700a18bc>

[147] [CITE@en[Use USVString for all URLs]]
( ([[domenic]]著, [TIME[2016-05-20 22:02:29 +09:00]]))
<https://github.com/whatwg/html/commit/018b983b77b2cd908f6d00100e7e0abe893dd2c3>

[148] [CITE@en[Integrate with the Referrer Policy spec, part 2 of n]]
( ([[domenic]]著, [TIME[2016-05-18 01:52:35 +09:00]]))
<https://github.com/whatwg/html/commit/176e74243c649b709b9959b7d08b327290c2f403>

[149] [CITE@en[Define the document's referrer in terms of Fetch]]
( ([[annevk]]著, [TIME[2016-06-04 02:52:59 +09:00]]))
<https://github.com/whatwg/html/commit/148dcd7d8214433b80de92b19d27cc5de128f849>

[151] [CITE@en[Use relevant settings object for pushState/replaceState URL parsing]]
([[domenic]]著, [TIME[2016-07-07 01:48:15 +09:00]])
<https://github.com/whatwg/html/commit/b568cf93ac374c440e29e01a2619365dde7c45c8>

[152] [CITE@en[Remove the "replace" argument to window.open()]]
([[domenic]]著, [TIME[2016-07-19 02:20:54 +09:00]])
<https://github.com/whatwg/html/commit/f444d452cb062ba848570c7b69e6cfcf8aac5c62>

[156] [CITE@en[Make document.write etc. throw during parsing custom elements]]
([[domenic]]著, [TIME[2016-08-17 15:44:39 +09:00]])
<https://github.com/whatwg/html/commit/00c6fa07bdb9f0d08a28f6c6e1ababca7d08618c>

[161] [CITE@en[Do not throw when window.open() is popup blocked]]
([[annevk]]著, [TIME[2016-10-03 18:36:22 +09:00]])
<https://github.com/whatwg/html/commit/fbbc480d527224afbff15d5ec4284ab8cbd0a1a4>

[164] [CITE@en[Return null when window.open() is popup blocked]]
([[annevk]]著, [TIME[2016-10-04 17:45:11 +09:00]])
<https://github.com/whatwg/html/commit/29ded68f4147ad84c12a2a08b1db817a790c3c09>

[167] [CITE@en[Clarify origin check in document.open()]]
([[jeisinger]]著, [TIME[2017-02-16 00:43:44 +09:00]])
<https://github.com/whatwg/html/commit/87e60aba2af808d16201d906101e93d0c62b8339>

[168] [CITE@en[Add additional feature names to window.open() · Issue #2464 · whatwg/html]]
([TIME[2017-03-26 00:01:55 +09:00]])
<https://github.com/whatwg/html/issues/2464>

[169] [CITE@en['''['''cssom-view''']''' Move tokenizing of window.open's features arg to HTML]]
([[zcorpan]]著, [TIME[2017-04-06 23:47:41 +09:00]])
<https://github.com/w3c/csswg-drafts/commit/48c88c28bdc9a1ef2e52e38544cf7f90517b72e0>

[170] [CITE@en['''['''cssom-view''']''' Make window.open's features use Web-exposed screen area]]
([[zcorpan]]著, [TIME[2017-03-30 17:37:38 +09:00]])
<https://github.com/w3c/csswg-drafts/commit/80c0561f714b96ae696d17f46774b26c1d251e90>

[171] [CITE@en[Specify the tokenizer for window.open's features argument]]
([[zcorpan]]著, [TIME[2017-04-06 23:54:32 +09:00]])
<https://github.com/whatwg/html/commit/b649435b454f5a3243a84b694c8555e327fe87a8>

[176] [CITE@en[Make window.open() throw for URL parser failures]]
([[annevk]]著, [TIME[2017-05-04 13:56:23 +09:00]])
<https://github.com/whatwg/html/commit/ea52bf4d50cfb4ef88489bff76276b660b40781b>

[181] [CITE@en[Revamp the rules for choosing a browsing context]]
([[annevk]]著, [TIME[2017-05-09 16:31:28 +09:00]])
<https://github.com/whatwg/html/commit/5578a0495f826a56597288b7ba1f71163f17cdd6>

[182] [CITE@en[Editorial: refactor document.open()/write()/writeln()]]
([[annevk]]著, [TIME[2017-05-16 14:12:59 +09:00]])
<https://github.com/whatwg/html/commit/d43b7050b4fe83ebce7724ea005e4707f06a86f7>

[225] [CITE@en[Clarify document.open() and refactor window.open()]]
([[annevk]]著, [TIME[2017-05-13 01:19:09 +09:00]])
<https://github.com/whatwg/html/commit/29afad43e373140a6c59e2e99753e8f2da1c7c70>

[258] [CITE@en[Centralize setting the active document]]
([[annevk]]著, [TIME[2017-05-18 13:20:38 +09:00]])
<https://github.com/whatwg/html/commit/4257a9bf03f8ebbd6cc8b41933b6c5b619611662>

[259] [CITE@en[27875 – Abstract the parts of window.open that deal with about:blank]]
([TIME[2017-07-23 14:16:03 +09:00]])
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=27875>

[260] [CITE@en[Make noopener stop the copying of session storage]]
([[mystor]]著, [TIME[2017-09-06 06:56:03 +09:00]])
<https://github.com/whatwg/html/commit/a68a1f712b641981d7367d78758596b21a04521c>

[262] [CITE@en[Mention sessionStorage copying in logic for creating a new browsing context by mystor · Pull Request #2832 · whatwg/html]]
([TIME[2017-09-10 20:53:14 +09:00]])
<https://github.com/whatwg/html/pull/2832>

[263] [CITE@en[Regression fix: continue to defer to CSSOM for window.open()'s features]]
([[annevk]]著, [TIME[2017-10-10 02:35:35 +09:00]])
<https://github.com/whatwg/html/commit/e1533f1dbb7405ffc0814bbc4eaf9e8b0442c035>

[264] [CITE@en[Regression fix: tokenize features earlier in window.open()]]
([[annevk]]著, [TIME[2017-10-10 01:59:23 +09:00]])
<https://github.com/whatwg/html/commit/0ce114d22c285dd52c64c5f00b2185e4ed8edf84>

[265] [CITE@en[Window open steps use tokenizedFeatures before setting it · Issue #3107 · whatwg/html]]
([TIME[2017-10-10 22:51:03 +09:00]])
<https://github.com/whatwg/html/issues/3107>

[266] [CITE@en[Regression fix: tokenize features earlier in window.open() by annevk · Pull Request #3108 · whatwg/html]]
([TIME[2017-10-10 22:52:55 +09:00]])
<https://github.com/whatwg/html/pull/3108>

[267] [CITE@en[Remove the 'opener' restriction.]]
([[mikewest]]著, [TIME[2017-10-18 16:20:30 +09:00]])
<https://github.com/w3c/webappsec-secure-contexts/commit/98f2c2634f7371bca6ffacbf73e984b22af521ab>

[268] [CITE@en[Should opener be taken into consideration when determining if a context is secure? · Issue #42 · w3c/webappsec-secure-contexts]]
([TIME[2017-10-19 12:25:15 +09:00]])
<https://github.com/w3c/webappsec-secure-contexts/issues/42>

[269] [CITE@en[Cleaning up algorithms and issues.]]
([[mikewest]]著, [TIME[2017-10-18 15:59:03 +09:00]])
<https://github.com/w3c/webappsec-secure-contexts/commit/2cc0b2f634b5062f82d540349233d30cab84e0c3>

[270] [CITE@en[Editorial: Define "realm execution context" in a separate step]]
([[TimothyGu]]著, [TIME[2018-01-15 08:06:05 +09:00]])
<https://github.com/whatwg/html/commit/b5f9ad629cb498206bd9e4144de9ec58e27fef98>

[271] [CITE@en[Editorial: Define "realm execution context" in a separate step by TimothyGu · Pull Request #3314 · whatwg/html]]
([TIME[2018-02-12 13:41:15 +09:00]])
<https://github.com/whatwg/html/pull/3314>

[272] [CITE@en[Integrate Feature Policy: "sync-xhr"]]
([[clelland]]著, [TIME[2018-03-03 03:22:56 +09:00]])
<https://github.com/whatwg/xhr/commit/67a423f9f5d95ee240d48d4cf82c57e2d33876a2>

[273] [CITE@en[Allow developers to opt-out of sync XHR with feature policy · Issue #178 · whatwg/xhr]]
([TIME[2018-03-03 12:49:39 +09:00]])
<https://github.com/whatwg/xhr/issues/178>

[274] [CITE@en[Integrate feature policy by clelland · Pull Request #177 · whatwg/xhr]]
([TIME[2018-03-03 12:52:28 +09:00]])
<https://github.com/whatwg/xhr/pull/177>

[275] [CITE@en[Feature proposal: sync-xhr · Issue #126 · WICG/feature-policy]]
([TIME[2018-03-03 12:55:48 +09:00]])
<https://github.com/WICG/feature-policy/issues/126>

[276] [CITE@en[Remove processing for document.open()'s type parameter]]
([[annevk]]著, [TIME[2018-03-14 18:28:06 +09:00]])
<https://github.com/whatwg/html/commit/ac52e65a6a37b6c4163de32082a50c7da15c6c96>

[186] [CITE@en[document.open() doesn't set contentType (document's content type) · Issue #3546 · whatwg/html]]
([TIME[2018-03-17 17:34:23 +09:00]])
<https://github.com/whatwg/html/issues/3546>

[187] [CITE@en[Remove processing for document.open()'s type parameter by annevk · Pull Request #3559 · whatwg/html]]
([TIME[2018-03-17 17:34:48 +09:00]])
<https://github.com/whatwg/html/pull/3559>

[192] [CITE@en[Use DOM's "replace all" primitive in document.open()]]
([[annevk]]著, [TIME[2018-05-01 01:44:29 +09:00]])
<https://github.com/whatwg/html/commit/423c66403522b09138dc3b366bf96111bc030a04>

[204] [CITE@en[Use DOM's "replace all" primitive in document.open() by annevk · Pull Request #3598 · whatwg/html]]
([TIME[2018-05-03 10:36:27 +09:00]])
<https://github.com/whatwg/html/pull/3598>

[205] [CITE@en[Introduce "remove all event listeners" primitive by annevk · Pull Request #641 · whatwg/dom]]
([TIME[2018-05-03 10:46:47 +09:00]])
<https://github.com/whatwg/dom/pull/641>

[206] [CITE@en[Clarify document.open() event listener removal]]
([[annevk]]著, [TIME[2018-05-02 18:16:11 +09:00]])
<https://github.com/whatwg/html/commit/d5903c45237223c9b57aca1c4271414232be7209>

[208] [CITE@en[It is unclear whether "Unregister all event listeners registered on the Document node and its descendants." means also nodes in shadow DOM · Issue #2302 · whatwg/html]]
([TIME[2018-05-03 10:50:10 +09:00]])
<https://github.com/whatwg/html/issues/2302>

[243] [CITE@en[Clarify document.open() event listener removal by annevk · Pull Request #3653 · whatwg/html]]
([TIME[2018-05-03 10:51:40 +09:00]])
<https://github.com/whatwg/html/pull/3653>

[244] [CITE@en[Make document.open() not reset the encoding to UTF-8]]
([[annevk]]著, [TIME[2018-05-02 20:15:08 +09:00]])
<https://github.com/whatwg/html/commit/fdbeb95b40d8d355549bb7f9b28647ed560a67d3>

[232] [CITE@en['''['''''']''' (0) Make document.open() reset the character encoding to UTF-16. M…]]
([[Hixie]]著, [TIME[2008-05-22 08:40:01 +09:00]])
<https://github.com/whatwg/html/commit/37c4d16c18fc33eeb40f820ca88209284761a25b>

[277] [CITE@en['''['''giow''']''' (2) Make document.open() reset the charset to UTF-8 instead of…]]
([[Hixie]]著, [TIME[2010-07-28 04:22:32 +09:00]])
<https://github.com/whatwg/html/commit/011b5e8403a557071961eb3f54bcee8dfa01138c>

[278] [CITE@en[Make document.open() not reset the encoding to UTF-8 by annevk · Pull Request #3661 · whatwg/html]]
([TIME[2018-05-03 11:09:17 +09:00]])
<https://github.com/whatwg/html/pull/3661>

[279] [CITE@en[380383 - '''['''FIX''']'''about:blank encoding is not consistent]]
([TIME[2018-05-03 11:10:09 +09:00]])
<https://bugzilla.mozilla.org/show_bug.cgi?id=380383>

[280] [CITE@en[Editorial: separate out document.open() methods definitions]]
([[TimothyGu]]著, [TIME[2018-06-29 00:27:08 +09:00]])
<https://github.com/whatwg/html/commit/8f2816a2e89ce5614fac92ce2a8185070fc6b6e7>

[281] [CITE@en[Separate out document.open() method declaration definitions · Issue #3565 · whatwg/html]]
([TIME[2018-06-29 23:14:13 +09:00]])
<https://github.com/whatwg/html/issues/3565>

[282] [CITE@en[Editorial: separate out document.open() methods definitions by TimothyGu · Pull Request #3778 · whatwg/html]]
([TIME[2018-06-29 23:14:23 +09:00]])
<https://github.com/whatwg/html/pull/3778>

[283] [CITE@en[Fix calls to InitializeHostDefinedRealm]]
([[TimothyGu]]著, [TIME[2018-07-29 04:10:47 +09:00]])
<https://github.com/whatwg/html/commit/39c948ba5ec55677e209bc4fc631636f1e8e2baf>

[115] [CITE@en[Revise event listener removal in document.open()]]
([[TimothyGu]]著, [TIME[2018-08-10 05:50:45 +09:00]])
<https://github.com/whatwg/html/commit/823f4bcb5a4d80b231c81503dbc7c71c209617e5>

[286] [CITE@en[Revise event listener removal in document.open() by TimothyGu · Pull Request #3893 · whatwg/html]]
([TIME[2018-08-14 19:44:17 +09:00]])
<https://github.com/whatwg/html/pull/3893>


** 文書の singleton オブジェクトの置き換え

[47] [[文書]]の [[singleton]] を置き換える際、具体的にどの[[オブジェクト]]が該当するかは、
例示にとどまっていて、完全なリストはありません。

[48] 次のものが該当します。
[FIG(list)[
- [CODE(DOMi)@en[[[Window]]]] と[[環境設定群オブジェクト]] [SRC[>>7]]
-- [DEL[[CODE(DOMi)@en[[[Location]]]] [SRC[>>7]]]]
-- [CODE(DOMi)@en[[[History]]]] [SRC[>>7]]
-- [CODE(DOMi)@en[[[ApplicationCache]]]] [SRC[>>7]]
-- [CODE(DOMi)@en[[[Navigator]]]] [SRC[>>7]]
--- [CODE(DOMi)@en[[[PluginArray]]]]
---- [CODE(DOMi)@en[[[Plugin]]]]
--- [CODE(DOMi)@en[[[MimeTypeArray]]]]
---- [CODE(DOMi)@en[[[MimeType]]]]
-- 各種 [CODE(DOMi)@en[[[BarProp]]]] [SRC[>>7]]
-- 両 [CODE(DOMi)@en[[[Storage]]]] [SRC[>>7]]
-- [CODE(DOMi)@en[[[Selection]]]] [SRC[>>7]]
- 各種 [CODE(DOMi)@en[[[HTMLCollection]]]] [SRC[>>7]]
- [[Web IDL]] [[プロトタイプ]] [SRC[>>7]]
]FIG]

[49] [[大域オブジェクト]]も置き換わるので、他のフラグの再設定も合わせて、
[CODE(DOMa)@en[[[document]]]] [[オブジェクト]]への参照がすべて別の[[文書]]に書き換わったのとほぼ同じ結果となるようです。しかし引き継がれる状態もあるようです。

[62] 自[[文書]]を [CODE(JS)@en[[[document.open]]]] する[[スクリプト]]の
[CODE(JS)@en[[[document.open]]]] 前に [CODE(DOMa)@en[[[window]]]] の [[expando]]
を設定し、後に参照すると、 [[IE]] と [[Firefox]] では [CODE(JS)@en[[[undefined]]]]
になっていますが (仕様通り)、 [[Chrome]] では前と同じ値が得られます。
[TIME[2015-05-07T00:32:37.800Z]]

[63] [CODE(JS)@en[[[var]]]] で宣言した変数はどのブラウザーでも前後同じ値が得られます。
前に [CODE(JS)@en[[[var]]]] で宣言した変数に後で [CODE(JS)@en[[[window]]]]
からアクセスしてもどのブラウザーでも [CODE(JS)@en[[[undefined]]]] になります。
前に [[expando]] で設定したのと同じ名前の [CODE(JS)@en[[[var]]]] に後でアクセスしても、
どのブラウザーでも [CODE(JS)@en[[[undefined]]]] になります。
[TIME[2015-05-07T00:37:34.100Z]]

[64] [[Chrome]] では [CODE(JS)@en[[[history]]]] や [CODE(JS)@en[[[location]]]]
や [CODE(JS)@en[[[document.forms]]]] にアクセスしても、前と同じ値が得られます。
[[IE]] と [[Firefox]] では違う値になります。 [TIME[2015-05-07T00:42:56.400Z]]

[82] [[Chrome]] では[[適切な雛形内容所有子文書]]は変化しないように見えます。 [TIME[2015-07-19T09:54:06.700Z]]

[150] [[Chrome]] では[[イベントリスナー]]も無効化されるふいんきがあります。
[TIME[2016-06-15T14:42:14.600Z]]

**

[287] [CITE@en[document.open() simplifications, part 1]]
([[TimothyGu]]著, [TIME[2018-08-17 07:20:44 +09:00]])
<https://github.com/whatwg/html/commit/6f769b8089a843066aa19f5991405bf4c84458b3>

次の挙動は廃止されました。

- [CODE[beforeunload]], [CODE[unload]] の呼び出し
- [CODE[Window]] の差し替え
- シングルトンオブジェクトの差し替え
- [[タスク]]の消去


[109] [CITE@en[Investigate a new document.open() by annevk · Pull Request #3651 · whatwg/html]]
([TIME[2018-08-23 20:13:30 +09:00]])
<https://github.com/whatwg/html/pull/3651>

[110] [CITE@en[Calling InitializeHostDefinedRealm in document.open is probably unnecessary · Issue #1698 · whatwg/html]]
([TIME[2018-08-23 20:15:27 +09:00]])
<https://github.com/whatwg/html/issues/1698>

[111] [CITE@en[Calling InitializeHostDefinedRealm in document.open is probably unnecessary · Issue #1698 · whatwg/html]]
([TIME[2018-08-23 20:15:56 +09:00]])
<https://github.com/whatwg/html/issues/1698>

[112] [CITE@en[document.open URL handling is fishy · Issue #3286 · whatwg/html]]
([TIME[2018-08-23 20:16:58 +09:00]])
<https://github.com/whatwg/html/issues/3286>

[113] [CITE@en[How should document.open handle the beforeunload handler tearing down the world? · Issue #3306 · whatwg/html]]
([TIME[2018-08-23 20:17:29 +09:00]])
<https://github.com/whatwg/html/issues/3306>

[142] [CITE@en[No longer remove tasks for document.open() by annevk · Pull Request #3665 · whatwg/html]]
([TIME[2018-08-23 20:17:50 +09:00]])
<https://github.com/whatwg/html/pull/3665>

[219] [CITE@en[document.open() simplifications: realm creation, unloading, tasks removal by TimothyGu · Pull Request #3918 · whatwg/html]]
([TIME[2018-08-23 20:18:56 +09:00]])
<https://github.com/whatwg/html/pull/3918>

[220] [CITE@en[Editorial: Remove parameters from document.open() references]]
([[TimothyGu]]著, [TIME[2018-08-22 04:54:56 +09:00]])
<https://github.com/whatwg/html/commit/288fc16a27fc2c2990f87c9270f4ae22022a17a5>

[221] [CITE@en[document.open() simplifications, part 2 by TimothyGu · Pull Request #3946 · whatwg/html]]
([TIME[2018-09-04 16:43:43 +09:00]])
<https://github.com/whatwg/html/pull/3946>

[222] [CITE@en[document.open() simplifications, part 2]]
([[TimothyGu]]著, [TIME[2018-08-21 03:57:31 +09:00]])
<https://github.com/whatwg/html/commit/ae7cf0cc1936c6c309d7279c822dffc3af147851>

[139] [CITE@en[document.open() can make a document's URL go out of sync with its history entry · Issue #3885 · whatwg/html]]
([TIME[2018-09-05 22:39:49 +09:00]])
<https://github.com/whatwg/html/issues/3885>

[210] [CITE@en[At least Blink does not support document.open()'s replace parameter · Issue #3564 · whatwg/html]]
([TIME[2018-09-05 22:42:08 +09:00]])
<https://github.com/whatwg/html/issues/3564>

[211] [CITE@en[document.open() can make a document's URL go out of sync with its history entry · Issue #3885 · whatwg/html]]
([TIME[2018-09-05 22:43:15 +09:00]])
<https://github.com/whatwg/html/issues/3885>

[212] [CITE@en[document.open() simplifications, part 2 by TimothyGu · Pull Request #3946 · whatwg/html]]
([TIME[2018-09-05 22:43:36 +09:00]])
<https://github.com/whatwg/html/pull/3946>

[213] [CITE@en[Editorial: Factor out history.push/replaceState() steps]]
([[TimothyGu]]著, [TIME[2018-08-18 08:04:45 +09:00]])
<https://github.com/whatwg/html/commit/f42dcf0bf2ebf86bc5ca79aecea098a8fed6cf3e>

** 履歴移動

[60] [CODE(JS)@en[[[document.open]]]] で作られた[[文書]]の再読込や履歴の移動も、
あたかも通常のページであるかのように扱われることが意図されているようですが、
実装も仕様書も不安定な状態のようです。

[65] [[閲覧文脈]][VAR[閲覧文脈]]の[[再読込]]は、 [CODE(JS)@en[[[document.open]]]] 後の時、
通常の処理ではなく [[overridden reload]] となります。
[DFN[[[overridden reload]]]] は次のようにしなければ[['''なりません''']]。

[FIG(steps)[
= [84] 次の通り [[navigate]] します。
[FIG(list members)[
:[F[[[navigate]] する[[閲覧文脈]]]]: [VAR[[[閲覧文脈]]]]
:[F[新しい[[資源]]]]: 新しい[[応答]] [SRC[>>58]] で、
[FIG(list members)[
[FIGCAPTION[
[96] [[応答]]
]FIGCAPTION]
:[F[[[HTTPS状態]]]]: [VAR[[[閲覧文脈]]]]の[F[[[活性文書]]]]の [F[[[HTTPS状態]]]] [SRC[>>58]]
:[F[[[CSPリスト]]]]: [VAR[[[閲覧文脈]]]]の[F[[[活性文書]]]]の[F[[[CSPリスト]]]] [SRC[>>58]]
:[F[[[ヘッダーリスト]]]]:
[FIG(list members)[
: [CODE(HTTP)@en[Referrer-Policy]] : [VAR[閲覧文脈]]の[F[活性文書]]の[F[参照元ポリシー]] [SRC[>>58]]
:[CODE(HTTP)@en[[[Content-Type]]]]:[CODE(MIME)@en[[[text/html]]]]
]FIG]
:[F[[[本体]]]] ([[文字列]]): [VAR[[[閲覧文脈]]]]の[F[[[活性文書]]]]の 
[F[[[reload override buffer]]]] の値 [SRC[>>58]]
]FIG]
:[F[[[始点閲覧文脈]]]]:[[引数]]として指定されたもの [SRC[>>58]]
:[F[[[reload override flag]]]]:[[真]] [SRC[>>58]]
:[F[[[上書きURL]]]]: [VAR[[[閲覧文脈]]]]の[F[[[活性文書]]]]の[F[[[文書の番地]]]] [SRC[>>58]]
:[F[キャッシュ上書き]]: [[引数]]として指定されたもの
: [VAR[置換有効]] : [[真]]
: [VAR[例外有効]] : [[真]]
]FIG]
[[例外]]が[[投げ]]られたら、[[再度投げ]]ます。
]FIG]

;; [66] [[HTML Standard]] は[F[キャッシュ上書き]]フラグに言及していませんが、
本 [[navigate]] が作成した[[文書]]からの [[fetch]] に影響するかもしれません
(ししないかもしれません)。

;; [67] [CODE(JS)@en[[[location.reload]]]] も参照。

[59] [[文書]]は、 [DFN[[F[[[reload override flag]]]]]] と
[DFN[[F[[[reload override buffer]]]]]] を持ちます [SRC[>>58]]。
初期状態では未設定で [SRC[>>58]]、 [CODE(JS)@en[[[document.open]]]] 
などが設定することがあります。

[61] [[IE]] と [[Firefox]] は [[overridden reload]] に対応しているようですが、
[[Chrome]] は対応していないようです。 [TIME[2015-05-06T08:14:43.800Z]]

[55] [[IE]] は[[平文]]を [CODE(JS)@en[[[location.reload]]]] した後も[[平文]]として扱うようです。
[[Firefox]] は[[平文]]でも [CODE(JS)@en[[[location.reload]]]] 後に [[HTML]]
にしてしまうようです。現在の [[HTML Standard]] は [[Firefox]]
の動作です。 [TIME[2015-05-06T14:10:21.200Z]]

[68] [CODE(JS)@en[[[document.open]]]] で作られた[[文書]]から他の[[文書]]に移動したら、
元の[[文書]]は通常通り処理されます。 [CODE(JS)@en[[[document.open]]]]
から再度 [CODE(JS)@en[[[document.open]]]] を再度実行したら、
前の状態は [CODE(JS)@en[[[document.write]]]] で生成されたソースコードで保存されます
(>>56)。

[57] >>56 は [[Firefox]] の動作で、 [[IE]] は[[文書]]の [F[[[reload override flag]]]]
が[[偽]]なら [[navigate]] の新しい[[資源]]をソースでなく [[URL]] としているようです。
(最初の [CODE(JS)@en[[[document.open]]]] より前の[[セッション履歴エントリー]]に戻った時にネットワークアクセスが発生します。そちらの仕様なら、 [[script-created parser]] でない普通の[[構文解析器]]の時に、[[構文解析]]したテキストを保持し続けずに済みます。)
[TIME[2015-05-06T15:18:32.400Z]]


[214] [CITE@en[Remove overridden reload concept]]
([[TimothyGu]]著, [TIME[2018-08-18 05:31:49 +09:00]])
<https://github.com/whatwg/html/commit/6440ccae7340ea41d3eb5bf8ff0b3b27363eda85>

[56] [CITE@en[556002 - document.open() and write() after parsing is complete breaks reload button - we reload new, not original document]]
([TIME[2018-09-05 23:38:17 +09:00]])
<https://bugzilla.mozilla.org/show_bug.cgi?id=556002>

[215] [CITE@en[document.open() simplifications, part 2 by TimothyGu · Pull Request #3946 · whatwg/html]]
([TIME[2018-09-05 23:39:15 +09:00]])
<https://github.com/whatwg/html/pull/3946>

[216] [CITE@en[Make document.open() set the document to no-quirks]]
([[TimothyGu]]著, [TIME[2018-08-28 15:58:07 +09:00]])
<https://github.com/whatwg/html/commit/7d21798e5d546ab7012eb47e83d736fdf38c9209>

[218] [CITE@en[Tracking issue for document.open() overhaul · Issue #3818 · whatwg/html]]
([TIME[2018-09-17 19:09:15 +09:00]])
<https://github.com/whatwg/html/issues/3818>

[227] [CITE@en[Document open steps and quirks mode · Issue #3831 · whatwg/html]]
([TIME[2018-09-17 19:09:49 +09:00]])
<https://github.com/whatwg/html/issues/3831>

[228] [CITE@en[Document open steps and quirks mode · Issue #3831 · whatwg/html]]
([TIME[2018-09-17 19:10:02 +09:00]])
<https://github.com/whatwg/html/issues/3831>

[231] [CITE@en[Make document.open() set the document to no-quirks by TimothyGu · Pull Request #3966 · whatwg/html]]
([TIME[2018-09-17 19:11:51 +09:00]])
<https://github.com/whatwg/html/pull/3966>

[233] [CITE@en[document.open(): remove fragment before propagating entry document's URL]]
([[TimothyGu]]著, [TIME[2018-08-29 15:39:05 +09:00]])
<https://github.com/whatwg/html/commit/ae688ea9845f145d6a7b31c67e727b56442ceada>

[242] [CITE@en[Unclear what to do with fragments on document.open · Issue #2555 · whatwg/html]]
([TIME[2018-09-20 23:40:13 +09:00]])
<https://github.com/whatwg/html/issues/2555>

[245] [CITE@en[document.open(): remove fragment before propagating entry document's URL by TimothyGu · Pull Request #3970 · whatwg/html]]
([TIME[2018-09-20 23:42:14 +09:00]])
<https://github.com/whatwg/html/pull/3970>

[288] [CITE@en[Allow document.open()/write() to be called on non-active documents]]
([[TimothyGu]]著, [TIME[2018-09-05 05:19:06 +09:00]])
<https://github.com/whatwg/html/commit/ad541d6a5e74f56dccedc56d50750adb65184505>

[284] [CITE@en[Extend document.open/write to non-active documents · Issue #2827 · whatwg/html]]
([TIME[2018-09-29 18:51:28 +09:00]])
<https://github.com/whatwg/html/issues/2827>

[289] [CITE@en[Allow document.open() to be called on non-active documents by TimothyGu · Pull Request #3977 · whatwg/html]]
([TIME[2018-09-29 18:54:31 +09:00]])
<https://github.com/whatwg/html/pull/3977>

[290] [CITE@en[document.open(): only abort when there is a navigation]]
([[TimothyGu]]著, [TIME[2018-09-07 04:24:32 +09:00]])
<https://github.com/whatwg/html/commit/1ca520a308ffd6a3c5f7fc26a67338c145af8376>

[291] [CITE@en[Unclear what exactly should be aborted in document.open() · Issue #3975 · whatwg/html]]
([TIME[2018-10-14 20:11:32 +09:00]])
<https://github.com/whatwg/html/issues/3975>

[292] [CITE@en[Investigate a new document.open() by annevk · Pull Request #3651 · whatwg/html]]
([TIME[2018-10-14 20:11:52 +09:00]])
<https://github.com/whatwg/html/pull/3651>

[293] [CITE@en[document.open(): only abort when there is a navigation by TimothyGu · Pull Request #3999 · whatwg/html]]
([TIME[2018-10-14 20:12:11 +09:00]])
<https://github.com/whatwg/html/pull/3999>

[294] [CITE@en[Check there is a browsing context in document.open()'s abort step]]
([[TimothyGu]]著, [TIME[2018-09-08 01:10:24 +09:00]])
<https://github.com/whatwg/html/commit/ff800ef6e917a70169f8bbbefa5ae7e47022fd55>

[295] [CITE@en[document.open(): only abort when there is a navigation by TimothyGu · Pull Request #3999 · whatwg/html]]
([TIME[2018-10-17 16:06:07 +09:00]])
<https://github.com/whatwg/html/pull/3999>

[296] [CITE@en[document.open(): Check there is a browsing context by TimothyGu · Pull Request #4011 · whatwg/html]]
([TIME[2018-10-17 16:06:22 +09:00]])
<https://github.com/whatwg/html/pull/4011>

[297] [CITE@en[Request Fullscreen take additional options · Issue #123 · whatwg/fullscreen]]
([TIME[2018-10-17 16:10:47 +09:00]])
<https://github.com/whatwg/fullscreen/issues/123>

[298] [CITE@en[Return nullable WindowProxy from document.open(url, name, features)]]
([[dguenther]]著, [TIME[2018-10-18 02:49:05 +09:00]])
<https://github.com/whatwg/html/commit/ba1c3c366ac08e7f6984460a9c83a135c66c2fea>

[299] [CITE@en[Document.open(url, name, features) should return nullable WindowProxy · Issue #4091 · whatwg/html]]
([TIME[2018-11-06 16:28:31 +09:00]])
<https://github.com/whatwg/html/issues/4091>

[300] [CITE@en[Return nullable WindowProxy from Document.open(url, name, features) by dguenther · Pull Request #4092 · whatwg/html]]
([TIME[2018-11-06 16:28:46 +09:00]])
<https://github.com/whatwg/html/pull/4092>

[301] [CITE@en[Change an exception name in document.open() to "InvalidAccessError"]]
([[foolip]]著, [TIME[2018-10-09 00:48:08 +09:00]])
<https://github.com/whatwg/html/commit/5f597504213a10a52536c1f95d15862398dec854>

[302] [CITE@en[Change an exception name in document.open() to "InvalidAccessError" by foolip · Pull Request #4066 · whatwg/html]]
([TIME[2018-11-06 16:31:59 +09:00]])
<https://github.com/whatwg/html/pull/4066>

[303] [CITE@en[Should document.open really change the URL but leave the serialized state? · Issue #4285 · whatwg/html]]
([TIME[2019-02-16 18:52:53 +09:00]])
<https://github.com/whatwg/html/issues/4285>

[306] [CITE@en[Disallow window.open() during unload]]
([[TimothyGu]]著, [TIME[2018-08-25 02:49:51 +09:00]])
<https://github.com/whatwg/html/commit/3b401f95ce6d81040b6f1a9f0f89e054f277206b>

[307] [CITE@en[Disallow window.open() during unload by TimothyGu · Pull Request #3960 · whatwg/html]]
([TIME[2019-03-04 17:22:03 +09:00]])
<https://github.com/whatwg/html/pull/3960>

[308] [CITE@en[Ignore document.open/write after the active parser has been aborted]]
([[foolip]]著, [TIME[2019-10-16 17:25:18 +09:00]])
<https://github.com/whatwg/html/commit/ead4aa8ec576d7d330a04f7ec8508e336b895fdb>

[310] [CITE@en[Consider adding an "ignore document.open/write" flag on document · Issue #4723 · whatwg/html · GitHub]]
([TIME[2020-08-31 17:27:19 +09:00]])
<https://github.com/whatwg/html/issues/4723>

[311] [CITE@en[Ignore document.open/write after the active parser has been aborted by foolip · Pull Request #4907 · whatwg/html · GitHub]]
([TIME[2020-08-31 17:30:13 +09:00]])
<https://github.com/whatwg/html/pull/4907>

[315] [CITE@en[Support noreferrer for window.open()]]
([[annevk]]著, [TIME[2019-02-12 21:54:42 +09:00]])
<https://github.com/whatwg/html/commit/a9a7944f20ec9223c252578db3e8bf870bca5718>

[321] [CITE@en[Support "noreferrer" for window.open() by annevk · Pull Request #4331 · whatwg/html]]
([TIME[2020-09-19 17:54:32 +09:00]])
<https://github.com/whatwg/html/pull/4331>

[322] [CITE@en[Editorial: use responsible document a little less]]
([[annevk]]著, [TIME[2019-02-27 00:54:22 +09:00]])
<https://github.com/whatwg/html/commit/7ba98545162f90439d4ae478c3abacdb6c818c98>

[323] [CITE@en[Consider removing settings object's responsible document · Issue #4335 · whatwg/html]]
([TIME[2020-09-19 18:03:44 +09:00]])
<https://github.com/whatwg/html/issues/4335>

[324] [CITE@en[Editorial: use responsible document a little less by annevk · Pull Request #4394 · whatwg/html]]
([TIME[2020-09-19 18:04:23 +09:00]])
<https://github.com/whatwg/html/pull/4394>

[327] [CITE@en[Remove noopener/noreferrer from tokenizedFeatures]]
([[annevk]], [TIME[2019-05-03 18:40:15 +09:00]], [TIME[2021-07-02T09:54:22.000Z]])
<https://github.com/whatwg/html/commit/c0b75ea89eaecc858ccc16b45bc81a75d4e716a7>

[331] [CITE@en[noopener window.open feature seems pretty broken as implemented in browsers · Issue #1902 · whatwg/html]]
([TIME[2021-07-02T10:08:13.000Z]])
<https://github.com/whatwg/html/issues/1902>

[334] [CITE@en[Add additional feature names to window.open() · Issue #2464 · whatwg/html]]
([TIME[2021-07-02T10:21:13.000Z]])
<https://github.com/whatwg/html/issues/2464>

[335] [CITE@en['''['''cssom-view''']''' Specify aliases for window.open feature names by zcorpan · Pull Request #1128 · w3c/csswg-drafts]]
([TIME[2021-07-02T10:22:38.000Z]])
<https://github.com/w3c/csswg-drafts/pull/1128>

[336] [CITE[window.open with features]]
([TIME[2021-03-25T17:07:42.000Z]], [TIME[2021-07-02T10:27:31.185Z]])
<https://arai-a.github.io/window-open-features/>

[337] [CITE[window.open with features]]
([TIME[2021-03-25T17:07:42.000Z]], [TIME[2021-07-02T10:28:23.400Z]])
<https://arai-a.github.io/window-open-features/proposal.html>

[338] [CITE@en[Remove noopener from tokenizedFeatures by annevk · Pull Request #3297 · whatwg/html]]
([TIME[2021-07-02T10:30:30.000Z]])
<https://github.com/whatwg/html/pull/3297>