[2] [[閲覧文脈]]の現在の[[文書]]を[DFN[[RUBYB[[[活性文書]]]@en[active document]]]]といいます。

* 仕様書

[REFS[
- [1] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#active-document>
]REFS]

* 意味

[3] [[閲覧文脈]]には常時1つの[[文書]]が[RUBYB[指示]@en[designate]]されており、
これを[[活性文書]]といいます。

[10] [VAR[閲覧文脈]]の[DFN[活性文書]]は、
[VAR[閲覧文脈]]の [F[[CODE(DOMi)@en[WindowProxy]]]] の
[F(ss)[Window]] の[F[関連付けられた文書]]です [SRC[>>1]]。

[4] [[活性文書]]は、[[セッション履歴]]の[[現在エントリー]]の[[文書]]です。

[6] [[活性文書]]で更に条件をみたすものは[[完全に活性]]であるといいます。

[8] [CODE(JS)@en[[[window.document]]]] は[[活性文書]]を返すことになります。

* 処理

[11] [[閲覧文脈]][VAR[閲覧文脈]]と[[文書]][VAR[文書]]について[DFN[[RUBYB[活性文書を設定]@en[set the active document]]]]するには、
次のようにします [SRC[>>1]]。

[FIG(steps)[
= [13] [VAR[窓]]を、[VAR[文書]]の[F[関連大域オブジェクト]]に設定します。
= [14] [VAR[閲覧文脈]]の [F[[CODE(DOMi)@en[WindowProxy]]]] の
[F(ss)[Window]] を、[VAR[窓]]に設定します。
= [15] [VAR[窓]]の[F[関連付けられた文書]]を、[VAR[文書]]に設定します。
= [16] [VAR[窓]]の[F[関連設定群オブジェクト]]の[F[実行準備完了フラグ]]を、
[[真]]に設定します。
]FIG]

[5] 次の場面で呼び出されます。

[FIG(short list)[ [17] [[活性文書を設定]]する場面
- [[閲覧文脈の作成]]
- [[履歴の探索]]
- [CODE(JS)@en[document.open]]
]FIG]

[18] 新しい[[活性文書]]が設定されると、元の[[活性文書]]は[[活性文書]]ではなくなります。

[19] 他に、[[閲覧文脈を捨てる]]処理により[[閲覧文脈]]が破棄され、
[[文書]]はなおも参照され続けているケースで、
[[活性文書]]が[[活性文書]]ではなくなると思われます (が、現在の[[仕様書]]の規定上はあまり明確ではありません)。

[20] ある[[文書]]が複数の[[閲覧文脈]]の[[活性文書]]となることはありません。

-*-*-

[7] [[文書]]が[[活性文書]]かどうかが変化すると、次のものに影響を与えます。
[FIG(list)[
- [[完全に活性]]
- [[閲覧文脈包含子]]が [[in seamless mode]] かどうか
- [[閲覧文脈]]の属する[[関連する類似起源閲覧文脈の単位]]
]FIG]

* 歴史

[9] [CITE@en[Centralize setting the active document]]
([[annevk]]著, [TIME[2017-05-18 13:20:38 +09:00]])
<https://github.com/whatwg/html/commit/4257a9bf03f8ebbd6cc8b41933b6c5b619611662>

[21] [CITE@en[document.open() simplifications, part 1]]
([[TimothyGu]]著, [TIME[2018-08-17 07:20:44 +09:00]])
<https://github.com/whatwg/html/commit/6f769b8089a843066aa19f5991405bf4c84458b3>