7.10. web の閲覧


7.10. ~webの閲覧

【この訳に特有な表記規約】

この訳の,~algoや定義の記述に利用されている各種記号( ~LET, ~IF, ε, コレ, ~THROW 等々)の意味や定義の詳細は,~SYMBOL_DEF_REFを~~参照されたし。

7.10.2. ~HTML~file用の~page読込n処理~model

`~HTML文書が読込まれる@ ことになるときは、~UAは,所与の ( `~navi~params$ %~navi~params ) に対し,`~network用~task源$から次を走らす`~taskを~queueする$モノトスル: ◎ When an HTML document is to be loaded, given navigation params navigationParams, the user agent must queue a task on the networking task source to:

  1. %文書 ~LET `文書を作成して初期化する$( `html^l, `text/html^l, %~navi~params ) ◎ Let document be the result of creating and initializing a Document object given "html", "text/html", and navigationParams.
  2. 新たな`~HTML構文解析器$を作成して %文書 に結付ける — この構文解析器に対しては ⇒ ~fetchingを走らせている間に`~network用~task源$から `~task~queue$に入れられる各`~task$は、~fetchされた~byte列で構文解析器への`入力~byte~stream$を埋めた上で,構文解析器に入力~streamの適切な処理を遂行させるモノトスル。 ◎ Create an HTML parser and associate it with the document.\ Each task that the networking task source places on the task queue while fetching runs must then fill the parser's input byte stream with the fetched bytes and cause the HTML parser to perform the appropriate processing of the input stream.

    注記: `入力~byte~stream$に渡された~byte列は、文字~並びに変換されて`~tokenizer$に渡される。 この処理nの一部は、資源の~~真の `~Content-Type~metadata$ から見出される文字~符号化法~情報に依拠する — `資源から算出された~MIME型$は、その目的には利用されない。 ◎ The input byte stream converts bytes into characters for use in the tokenizer. This process relies, in part, on character encoding information found in the real Content-Type metadata of the resource; the computed type is not used for this purpose.

加えて、~UAは次に従うモノトスル: ◎ ↓

  • 可用な~byte列が尽きたときは、次を走らす(これは、最終的に `load$et ~eventを発火させることになる) ⇒ 構文解析器が暗黙の~EOF文字を処理するための `大域~taskを~queueする$( `~network用~task源$, 新たに作成された`文書$に`関連な大域~obj$ ) ◎ When no more bytes are available, the user agent must queue a global task on the networking task source given the newly-created Document's relevant global object for the parser to process the implied EOF character, which eventually causes a load event to be fired.
  • `文書$を作成した後, かつ ~scriptが実行される前の, ほぼ間違いなく構文解析器が`停止-$する前に ⇒ `新たな~pageで~session履歴を更新する$( %~navi~params ) ◎ After creating the Document object, but before any script execution, certainly before the parser stops, the user agent must update the session history with the new page given navigationParams.

注記: 【`~app~cache用$の注記】 ◎ Application cache selection happens in the HTML parser.

7.10.3. ~XML~file用の~page読込n処理~model

~XML~fileを~inlineに表示することになった場合、~UAは,供された ( `~navi~params$ %~navi~params, 文字列 %~MIME型 ) に対し、次に挙げる各種 仕様に定義される要件に従う下で ⇒# `XML^cite `XML$r, `Namespaces in XML^cite `XMLNS$r, `XML Media Types^cite `RFC7303$r, `DOM^cite `DOM$r, 関連な他の`文書$を作成するための仕様と対応する`~XML構文解析器$ ◎終 次を行うモノトスル: ◎ When faced with displaying an XML file inline, provided navigation params navigationParams and a string type, user agents must follow the requirements defined in XML and Namespaces in XML, XML Media Types, DOM, and other relevant specifications\

  1. `文書を作成して初期化する$( `xml^l, %~MIME型, %~navi~params ) ◎ to create and initialize a Document object given "xml", type, and navigationParams.\
  2. 対応する`~XML構文解析器$を作成する ◎ They must also create a corresponding XML parser. [XML] [XMLNS] [RFC7303] [DOM]

注記: これを書いている時点では,~XML仕様~communityは、実際には,~XMLと~DOMとがどう相互作用するか まだ指定していない。 ◎ At the time of writing, the XML specification community had not actually yet specified how XML and the DOM interact.

~UAは、`文書$ %文書 を作成したときは: ◎ ↓

  • 上に挙げた各 仕様の規則に則って,文字~符号化法を決定するときには、実際の~HTTP~headerや他の~metadataのうち[ この仕様が与える~algoにより[ 変異される/含意される ]~header ]でないものを利用した上で、 %文書 の`文字~符号化法$docは,そのように確立された符号化法に設定するモノトスル。 ◎ The actual HTTP headers and other metadata, not the headers as mutated or implied by the algorithms given in this specification, are the ones that must be used when determining the character encoding according to the rules given in the above specifications. Once the character encoding is established, the document's character encoding must be set to that character encoding.
  • 【`~app~cache用$の条件と処理~要件】 ◎ If the document element, as parsed according to XML cited above, is found to be an html element with an attribute manifest whose value is not the empty string, then, as soon as the element is inserted into the document, the user agent must parse the value of that attribute relative to that element's node document, and if that is successful, must apply the URL serializer algorithm to the resulting URL record with the exclude fragment flag set to obtain manifest URL, and then run the application cache selection algorithm with manifest URL as the manifest URL, passing in the newly-created Document. Otherwise, if the attribute is absent, its value is the empty string, or parsing its value fails, then as soon as the document element is inserted into the document, the user agent must run the application cache selection algorithm with no manifest, and passing in the Document. ◎ Because the processing of the manifest attribute happens only once the document element is parsed, any URLs referenced by processing instructions before the document element (such as <?xml-stylesheet?> PIs) will be fetched from the network and cannot be cached.
  • 次を走らすモノトスル ⇒ `新たな~pageで~session履歴を更新する$( %~navi~params )

    その時機は ⇒# %文書 が完全に構文解析される前でもヨイ(したがって `増分的に具現化する^i ことになる)/ どの~script実行よりも前に行うモノトスル

    ◎ Then, with the newly created Document, the user agent must update the session history with the new page given navigationParams. User agents may do this before the complete document has been parsed (thus achieving incremental rendering), and must do this before any scripts are to be executed.
  • 構文解析-時の~error(例えば ~XML名前空間 整形式性~error)に際しては、 %文書 を変異して~inlineに報告してもヨイ。 ◎ Error messages from the parse process (e.g., XML namespace well-formedness errors) may be reported inline by mutating the Document.

7.10.4. ~text~file用の~page読込n処理~model

素な~text文書を読込むことになるときは、~UAは,供された ( `~navi~params$ %~navi~params, 文字列 %~MIME型 ) に対し、`~network用~task源$から,次を走らす`~taskを~queueする$モノトスル: ◎ When a plain text document is to be loaded, provided navigation params navigationParams and a string type, the user agent must queue a task on the networking task source to:

  1. %文書 ~LET `文書を作成して初期化する$( `html^l, %~MIME型, %~navi~params ) ◎ Let document be the result of creating and initializing a Document object given "html", type, and navigationParams.
  2. 新たな`~HTML構文解析器$を作成して %文書 に結付ける — この構文解析器は: ◎ Create an HTML parser and associate it with the document.\

    • その~tokenizerが すでに次を順に行ったかのようにしておく ⇒# ~tag名 `pre^l の開始tag~tokenを発した; 1 個の文字 U+000A (LF)を発した; `~PLAINTEXT状態$に切替えた ◎ Act as if the tokenizer had emitted a start tag token with the tag name "pre" followed by a single U+000A LINE FEED (LF) character, and switch the HTML parser's tokenizer to the PLAINTEXT state.\
    • ~fetchingを走らせている間に`~network用~task源$から`~task~queue$に入れられる各`~task$は、構文解析器の`入力~byte~stream$を~fetchされた~byte列で埋めて,構文解析器に入力~streamの適切な処理を遂行させるモノトスル。 ◎ Each task that the networking task source places on the task queue while fetching runs must then fill the parser's input byte stream with the fetched bytes and cause the HTML parser to perform the appropriate processing of the input stream.

素な~text文書である %資源 に対しては、次に挙げる要件が~UAに課される: ◎ ↓

  • %資源 の~byte列を 実際の文字に変換する規則,および その~textを利用者~向けに実際に具現化する規則は、`資源から算出された~MIME型$の仕様により定義される。 ◎ The rules for how to convert the bytes of the plain text document into actual characters, and the rules for actually rendering the text to the user, are defined by the specifications for the computed MIME type of the resource (i.e., type).
  • %資源 の`文字~符号化法$docは、 %資源 の復号-時に利用された文字~符号化法に設定するモノトスル。 ◎ The document's character encoding must be set to the character encoding used to decode the document.
  • 【`~app~cache用$の処理~要件】 ◎ Upon creation of the Document object, the user agent must run the application cache selection algorithm with no manifest, and passing in the newly-created Document.
  • 可用な~byte列が尽きたときは、次を走らすモノトスル(これは、最終的に `load$et ~eventを発火させることになる) ⇒ 構文解析器が暗黙の~EOF文字を処理するための `大域~taskを~queueする$( `~network用~task源$, 新たに作成された`文書$に`関連な大域~obj$ ) ◎ When no more bytes are available, the user agent must queue a global task on the networking task source given the newly-created Document's relevant global object for the parser to process the implied EOF character, which eventually causes a load event to be fired.
  • %資源 から`文書$を作成した後, かつ ~pageを構文解析し終えて`なければその前に$,次を走らすモノトスル ⇒ `新たな~pageで~session履歴を更新する$( %~navi~params ) ◎ After creating the Document object, but potentially before the page has finished parsing, the user agent must update the session history with the new page given navigationParams.

    【 “`なければその前に@” — 原文の “`, but potentially before^en” の意図が[ 要件の一部 / 可能性があることを示す単なる説明 / 終える前にそうしてよいことの明示的な許可 ]のどれなのか はっきりしないが、同じ要件~文の一部として `but^en 節の中に記されているので,要件と解釈する下で和訳している。 】

  • `文書$の `head$e 要素に内容を追加してもヨイ — 例: ~stylesheetへ~linkする, ~scriptを供する, 文書に `title$e を与える, 等々。 ◎ User agents may add content to the head element of the Document, e.g., linking to a style sheet, providing script, or giving the document a title.

    注記: 特に、 RFC 3676 の `Format=Flowed^c 特能を~supportする~UAは、[ ~textを正しく折返す/ 【行頭の ">" による】 引用用の特能を取扱う ]ために,何らかの~styleを適用する必要が生じることになる。 これは、例えば~CSS拡張を利用して遂行することもできる。 ◎ In particular, if the user agent supports the Format=Flowed feature of RFC 3676 then the user agent would need to apply extra styling to cause the text to wrap correctly and to handle the quoting feature. This could be performed using, e.g., a CSS extension.

7.10.5. `multipart/x-mixed-replace^c 資源~用の~page読込n処理~model

型 `multipart/x-mixed-replace$c を伴う資源を `閲覧文脈$内に読込むことになるときは、~UAは次に従うモノトスル: ◎ When a resource with the type multipart/x-mixed-replace is to be loaded in a browsing context, the user agent must\ ↓parse the resource using the rules for multipart types. [RFC2046]

この~algoには`~navi~params$が渡されるが、それを正確に どう利用するかは,明瞭でない。 ◎ This algorithm is passed navigation params, but it's unclear how exactly to use them.

  • `RFC2046$r による `multipart^c 型~用の規則を利用して資源を構文解析する。 ◎ ↑
  • 資源から得された ~EACH( %本体~部位 ) に対し,出現順に 次を走らす ⇒ 次を除いて、この節を呼出した`~navi$と同じものを与える下で,`~navigate応答を処理する$ ⇒ %応答 の本体には %本体~部位 を利用する。 加えて、これまでの~~反復で ある`文書$を`作成して初期化-$していた場合、 `履歴~取扱い$nvPを `置換-$i に設定する下で行うとする。 ◎ For each body part obtained from the resource, the user agent must run process a navigate response using the new body part and the same browsing context, with history handling set to "replace" if a previous body part from the same resource resulted in a creating and initializing a Document object, and otherwise using the same setup as the navigate attempt that caused this section to be invoked in the first place.
  • 前項による,[ 各 本体~部位を,完全に自立的な資源であったかのように処理する目的 ]においては、各 本体~部位に対し[ それに後続する境界に達した所で,当の資源~用の~byte列は尽きた ]かのように動作する。 ◎ For the purposes of algorithms processing these body parts as if they were complete stand-alone resources, the user agent must act as if there were no more bytes for those resources whenever the boundary following the body part is reached.

注記: したがって, `load$et ~event(および,対になる `unload$et ~event)は、各~本体~部位が読込まれる度に発火されることになる。 ◎ Thus, load events (and for that matter unload events) do fire for each body part loaded.

7.10.6. ~media用の~page読込n処理~model

[ 画像 / 動画 / 音声 ]資源を読込むことになるときは、~UAは,供された ( `~navi~params$ %~navi~params, 文字列 %~MIME型 ) に対し,次を行うベキである: ◎ When an image, video, or audio resource is to be loaded, provided navigation params navigationParams and a string type, the user agent should:

  1. %文書 ~LET `文書を作成して初期化する$( `html^l, %~MIME型, %~navi~params ) ◎ Let document be the result of creating and initializing a Document object given "html", type, and navigationParams.
  2. %文書 に `html$e 要素を付加する ◎ Append an html element to document.
  3. `html$e 要素に `head$e 要素を付加する ◎ Append a head element to the html element.
  4. `html$e 要素に `body$e 要素を付加する ◎ Append a body element to the html element.
  5. `body$e 要素に[ 資源の~mediaに応じて,次の表の 2 列目に与えられる要素 ]を付加する:

    ~media型 要素 属性
    画像 `img$e `~src-img$a
    動画 `video$e `~src-media$a
    音声 `audio$e `~src-media$a
    ◎ Append an element host element for the media, as described below, to the body element.
  6. 前~段で付加した要素の[ 対応する,前~段の表の 3 列目の属性 ]の値 ~SET 資源の~address ◎ Set the appropriate attribute of the element host element, as described below, to the address of the image, video, or audio resource. ◎ The element host element to create for the media is the element given in the table below in the second cell of the row whose first cell describes the media. The appropriate attribute to set is the one given by the third cell in that same row. ◎ Type of media | Element for the media | Appropriate attribute Image | img | src Video | video | src Audio | audio | src

次に,~UAは、`構文解析を停止した$かのように動作するモノトスル。 ◎ Then, the user agent must act as if it had stopped parsing.

【`~app~cache用$の処理~要件】 ◎ Upon creation of the Document object, the user agent must run the application cache selection algorithm with no manifest, and passing in the newly-created Document.

~UAは、`文書$を作成した後, かつ ~pageを構文解析し終えて`なければその前に$,次を走らすモノトスル ⇒ `新たな~pageで~session履歴を更新する$( %~navi~params ) ◎ After creating the Document object, but potentially before the page has finished fully loading, the user agent must update the session history with the new page given navigationParams.

~UAは、`文書$の `head$e 要素に内容を追加してもヨイ / %~host要素 に内容~属性を追加してもヨイ — 例: ~stylesheetへの~link / ~scriptを供する / 文書に `title$e を与える / ~mediaを `autoplay$a にする 等々。 ◎ User agents may add content to the head element of the Document, or attributes to the element host element, e.g., to link to a style sheet, to provide a script, to give the document a title, or to make the media autoplay.

7.10.7. ~pluginを利用する内容~用の~page読込n処理~model

外部~資源を具現化することを要する資源を読込むことになるときは、~UAは,供された ( `~navi~params$ %~navi~params, 文字列 %~MIME型 ) に対し,次を行うベキである: ◎ When a resource that requires an external resource to be rendered is to be loaded, provided navigation params navigationParams and a string type, the user agent should:

  1. %文書 ~LET `文書を作成して初期化する$( `html^l, %~MIME型, %~navi~params ) ◎ Let document be the result of creating and initializing a Document object given "html", type, and navigationParmas.
  2. %文書 を `~plugin文書@ とする ◎ Mark document as being a plugin document
  3. `文書$に `html$e 要素を付加する ◎ Append an html element to document.
  4. `html$e 要素に `head$e 要素を付加する ◎ Append a head element to the html element.
  5. `html$e 要素に `body$e 要素を付加する ◎ Append a body element to the html element.
  6. `body$e 要素に `embed$e 要素を付加する ◎ Append an embed to the body element
  7. `embed$e 要素の `~src-embed$a 属性を資源の~addressに設定する ◎ Set the src attribute of the embed element to the address of the resource.

注記: 用語 `~plugin文書$は、次を確保する仕組みの一部として, `CSP$r により利用される ⇒ `iframe$e を利用しても, `plugin-types^dir 指令をかいくぐることはできない ◎ The term plugin document is used by Content Security Policy as part of the mechanism that ensures iframes can't be used to evade plugin-types directives. [CSP]

次に,~UAは、`構文解析を停止した$かのように動作するモノトスル。 ◎ Then, the user agent must act as if it had stopped parsing.

【`~app~cache用$の処理~要件】 ◎ Upon creation of the Document object, the user agent must run the application cache selection algorithm with no manifest, and passing in the newly-created Document.

~UAは、`文書$を作成した後, かつ ~pageを構文解析し終えて`なければその前に$,次を走らすモノトスル ⇒ `新たな~pageで~session履歴を更新する$( %~navi~params ) ◎ After creating the Document object, but potentially before the page has finished fully loading, the user agent must update the session history with the new page given navigationParams.

~UAは[ `文書$の `head$e 要素 / `embed$e 要素の属性 ]に内容を追加してもヨイ — 例: ~stylesheetへ~linkする, 文書に `title$e を与える, 等々。 ◎ User agents may add content to the head element of the Document, or attributes to the embed element, e.g. to link to a style sheet or to give the document a title.

注記: [ `閲覧文脈~sandbox化( ~plugin )~flag$ ~IN `文書$の`作動中の~sandbox法~flag集合$ ]の下で[ 関連な`~plugin$を`~secure化でき$なかった ]場合には、合成された `embed$e 要素は, 内容を具現化するのに失敗することになる。 ◎ If the Document's active sandboxing flag set has its sandboxed plugins browsing context flag set, the synthesized embed element will fail to render the content if the relevant plugin cannot be secured.

7.10.8. ~DOMを有さない~inline内容~用の~page読込n処理~model

~UAは、~pageを~inlineに表示するときは、供された ( `閲覧文脈$ %B ) に対し,次を行うベキである: ◎ When the user agent is to display a user agent page inline, provided a browsing context browsingContext, the user agent should:

  1. %~navi~params ~LET 次のようにされた新たな`~navi~params$ ⇒# `要請$nvP ~SET ~NULL, `応答$nvP ~SET ~NULL†, `生成元$nvP ~SET 新たな`不透明な生成元$, `最終-~sandbox~flag集合$nvP ~SET 空~集合, `非同一-生成元~opener施策$nvP ~SET `unsafe-none$l, `予約-済み環境$nvP ~SET ~NULL , `閲覧文脈$nvP ~SET %B, `閲覧文脈の切替nが必要$nvP ~SET ~F ◎ Let navigationParams be a new navigation params whose request is null, response is null, origin is a new opaque origin, final sandboxing flag set is an empty set, cross-origin opener policy is "unsafe-none", reserved environment is null, browsing context is browsingContext, and browsing context switch needed is false.

    † 次の段で~callされる~algoは、 ~NULL にされた`応答$nvPを どう処するか~~指定していない。 おそらく,代わりになる応答を合成するベキである。 ◎ The algorithm called in the next step is not prepared to deal with a null response. Probably we should synthesize one instead.

  2. %文書 ~LET `文書を作成して初期化する$( `html^l, `text/html^l, %~navi~params ) ◎ Let document be the result of creating and initializing a Document object given "html", "text/html", and navigationParams.
  3. 次のいずれかを行う: ◎ Either\

    • %文書 を[ `文書$の通常の具現化~規則を利用して具現化されない ]ような~customな具現化に結付ける ◎ associate document with a custom rendering that is not rendered using the normal Document rendering rules, or\
    • %文書 を[ それが~UAが具現化しようと求める内容を表現する ]よう変異させる ◎ mutate document until it represents the content the user agent wants to render.

~UAは、~pageが設定しておかれたなら,`構文解析を停止した$かのように動作するモノトスル。 ◎ Once the page has been set up, the user agent must act as if it had stopped parsing.

【`~app~cache用$の処理~要件】 ◎ Upon creation of the Document object, the user agent must run the application cache selection algorithm with no manifest, passing in the newly-created Document.

~UAは、`文書$を作成した後, かつ ~pageを完全に設定して`なければその前に$,次を走らすモノトスル ⇒ `新たな~pageで~session履歴を更新する$( %~navi~params ) ◎ After creating the Document object, but potentially before the page has been completely set up, the user agent must update the session history with the new page given navigationParams.

7.10.9. 素片への~navigate法

`素片へ~navigateする@ ときは、所与の ( `閲覧文脈$ %B, `~URL$ %~URL, `履歴を取扱うときの挙動$ %履歴~取扱い ) に対し,次を走らすモノトスル: ◎ To navigate to a fragment given a browsing context browsingContext, a URL url, and a history handling behavior historyHandling:

  1. ~Assert: %~URL の`素片$url ~NEQ ~NULL 【この段は、この訳による補完。】
  2. %履歴 ~LET %B の`~session履歴$ ◎ ↓
  3. ~IF[ %履歴~取扱い ~NEQ `置換-$i ] ⇒ %履歴 から[ その`現在の~entry$より後にある~entryすべて ]を除去する ◎ If historyHandling is not "replace", then remove all the entries in browsingContext's session history after the current entry. (If the current entry is the last entry in the session history, then no entries are removed.)

    注記: これは、~UAの~UIに影響するとは限らない。 ◎ This doesn't necessarily have to affect the user agent's user interface.

  4. `履歴~辿り~task源$から~queueされた`~task$のうち,次を満たすものすべてを除去する ⇒ `~task$の`文書$tK ~IN %B の`~top-level閲覧文脈$の`文書~族$ ◎ Remove any tasks queued by the history traversal task source that are associated with any Document objects in browsingContext's top-level browsing context's document family.
  5. %~entry ~LET 次を伴う新たな`~session履歴~entry$ ⇒# `~URL$shE ~SET %~url, `文書$shE ~SET `現在の~entry$の`文書$shE, `~scroll復旧~mode$shE ~SET `現在の~entry$の`~scroll復旧~mode$shE ◎ Append a new session history entry to the session history whose URL is url, document is the current entry's document, and scroll restoration mode is the current entry's scroll restoration mode.
  6. %履歴 に %~entry を付加する ◎ ↑
  7. %~entry へ`履歴を辿る$ — 次を与える下で ⇒# `履歴の取扱い$V ~SET %履歴~取扱い, `~eventは他を阻まない$V ~SET ~T ◎ Traverse the history to the new entry, with historyHandling set to historyHandling and with nonBlockingEvents set to true.\

    注記: これは、今や文書の`~URL$docになった %~URL の`素片へ~scrollする$ことになる。 素片が指す`~ID$を有する要素が まだ構文解析されていないため,~scrollできなかった場合、代わりに,元の`~navi$~algoから呼ばれる[ `新たな~pageで~session履歴を更新する$~algo ]の最後の方で,~scrollingが~careされることになる。 ◎ This will scroll to the fragment given in what is now the document's URL. ◎ If the scrolling fails because the relevant ID has not yet been parsed, then the original navigation algorithm will take care of the scrolling instead, as the last few steps of its update the session history with the new page algorithm.


%文書 の `素片へ~scrollする@ よう要求されたときは、~UAは,次を行うモノトスル: ◎ When the user agent is required to scroll to the fragment and\

  1. %部位 ~LET %文書 内の`指示された部位$doc ◎ the indicated part of the document,\
  2. ~IF[ %部位 ~EQ ε ]~OR[ %部位 は`具現化されて$いない ] ⇒ ~RET ◎ if any, is being rendered,\
  3. 次のいずれかを行う: ◎ the user agent must either\

    • 下に述べるように,文書の~scroll位置を %部位 に変更する。 ◎ change the scrolling position of the document using the following algorithm,\
    • %部位 に利用者の注目を引くような他の何らかの動作を遂行する。 ◎ or perform some other action such that the indicated part of the document is brought to the user's attention. If there is no indicated part, or if the indicated part is not being rendered, then the user agent must do nothing.\

`文書$ %文書 の~scroll位置を %部位 に変更するときは: ◎ The aforementioned algorithm is as follows:

  1. %文書 の`標的~要素$ ~SET ~NULL ◎ If there is no indicated part of the document, set the Document's target element to null.
  2. %部位 に応じて:

    `文書の上端^i ◎ If the indicated part of the document is the top of the document, then:
    %文書 の`開始位置へ~scroll$する `CSSOMVIEW$r ◎ Set the Document's target element to null. ◎ Scroll to the beginning of the document for the Document. [CSSOMVIEW]
    要素である ◎ Otherwise:
    1. %文書 の`標的~要素$ ~SET %部位 ◎ Let target be element that is the indicated part of the document. ◎ Set the Document's target element to target.
    2. %部位 を`~viewの中へ~scrollする$( `auto^l, `start^l, `nearest^l ) `CSSOMVIEW$r ◎ Scroll target into view, with behavior set to "auto", block set to "start", and inline set to "nearest". [CSSOMVIEW]
    3. `~objを~focusする$( %部位, %文書 の`表示域$ ) ◎ Run the focusing steps for target, with the Document's viewport as the fallback target.
    4. %文書 における`逐次的~focus~naviの始点$ ~SET %部位 ◎ Move the sequential focus navigation starting point to target.

`文書$ %文書 内の `指示された部位@doc は、`素片$urlがあれば,それが指示するものになる。 `素片$urlから~nodeにどう対応付けるかの意味論は、 %文書 が利用している`~MIME型$を定義する仕様により定義される(例えば、`~XML~MIME型$用の`素片$urlの処理は `RFC7303$r が担当する)。 ◎ The indicated part of the document is the one that the fragment, if any, identifies. The semantics of the fragment in terms of mapping it to a node is defined by the specification that defines the MIME type used by the Document (for example, the processing of fragments for XML MIME types is the responsibility of RFC7303). [RFC7303]

各 `文書$には、 `target$ps 疑似類を定義するために利用される `標的~要素@ がある。 それは、初期~時は~NULLであり,上の~algoで更新される。 ◎ There is also a target element for each Document, which is used in defining the :target pseudo-class and is updated by the above algorithm. It is initially null.

~HTML文書(および, `~HTML~MIME型$ ) %文書 に対しては、 %文書 内の`指示された部位$docを決定するときは,次の処理~modelに従うモノトスル。 ◎ For HTML documents (and HTML MIME types), the following processing model must be followed to determine what the indicated part of the document is.

  1. %素片 ~LET %文書 の`~URL$docの`素片$url ◎ Let fragment be the document's URL's fragment.
  2. ~Assert: %素片 ~NEQ ~NULL 【この段は、この訳による補完。】
  3. ~IF[ %素片 ~EQ 空~文字列 ] ⇒ ~RET `文書の上端^i ◎ If fragment is the empty string, then the indicated part of the document is the top of the document; return.
  4. ~IF[ `指示された要素を見出す$( %文書, %素片 ) ~NEQ ~NULL ] ⇒ ~RET その結果 ◎ If find a potential indicated element with fragment returns non-null, then the return value is the indicated part of the document; return.
  5. %素片~byte列 ~SET `文字列を~byte列に~percent-復号する$( %素片 ) ◎ Let fragmentBytes be the result of percent-decoding fragment.
  6. %復号-済み素片 ~LET `~BOMはそのままに~UTF-8復号する$( %素片~byte列 ) ◎ Let decodedFragment be the result of running UTF-8 decode without BOM on fragmentBytes.
  7. ~IF[ `指示された要素を見出す$( %文書, %復号-済み素片 ) ~NEQ ~NULL ] ⇒ ~RET その結果 ◎ If find a potential indicated element with decodedFragment returns non-null, then the return value is the indicated part of the document; return.
  8. ~IF[ %復号-済み素片 ~EQ`大小無視$sub `top^l ] ⇒ ~RET `文書の上端^i ◎ If decodedFragment is an ASCII case-insensitive match for the string top, then the indicated part of the document is the top of the document; return.
  9. ~RET ε ◎ There is no indicated part of the document.

`指示された要素を見出す@ ときは、所与の ( `文書$ %文書, 文字列 %素片 ) に対し,次を走らす: ◎ To find a potential indicated element given a string fragment, run these steps:

  1. ~IF[ %文書 の`~tree内$に[ `~ID$ ~EQ %素片 ]を満たす要素はある ] ⇒ ~RET 該当する要素のうち,`~tree順序$で最初のもの ◎ If there is an element in the document tree that has an ID equal to fragment, then return the first such element in tree order.
  2. ~IF[ %文書 の`~tree内$に[ `name$a 属性を有していて,その値 ~EQ %素片 ]を満たす `a$e 要素はある ] ⇒ ~RET 該当する要素のうち,`~tree順序$で最初のもの ◎ If there is an a element in the document tree that has a name attribute whose value is equal to fragment, then return the first such element in tree order.
  3. ~RET ~NULL ◎ Return null.

7.10.10. 履歴の辿り

`~session履歴~entry$ %~entry へ `履歴を辿る@ ~algoは、次も入力にとり,以下を走らすモノトスル:

  • `履歴を取扱うときの挙動$ `履歴の取扱い@V (省略時は `既定$i )
  • 真偽値 `~eventは他を阻まない@V (省略時は ~F )
  • 真偽値 `明示的な履歴~navi@V (省略時は ~F )
◎ To traverse the history to a session history entry entry, with an optional history handling behavior historyHandling (default "default"), an optional boolean nonBlockingEvents (default false), and an optional boolean explicitHistoryNavigation (default false):

注記: この~algoは、明示的に`履歴を前/後に辿る$ときのみならず,他の状況においても呼出される — 例えば、閲覧文脈を`~navigate$するときに,`新たな~pageで~session履歴を更新する$一部として。 ◎ This algorithm is not just invoked when explicitly going back or forwards in the session history — it is also invoked in other situations, for example when navigating a browsing context, as part of updating the session history with the new page.

  1. %履歴 ~LET %~entry が属する`~session履歴$ ◎ ↓
  2. %B ~LET %履歴 を有する`閲覧文脈$ ◎ ↓
  3. %現在の~entry ~LET %履歴 の`現在の~entry$ ◎ ↓
  4. ~IF[ %~entry の`文書$shE ~EQ ~NULL ]: ◎ If entry's document is null, then:

    1. %要請 ~LET 次のようにされた新たな`要請$ ⇒ `~URL$rq ~SET %~entry の`~URL$shE ◎ Let request be a new request whose url is entry's URL.
    2. ~IF[ %明示的な履歴~navi ~EQ ~T ] ⇒ %要請 の`履歴~navi~flag$rq ~SET ~T ◎ If explicitHistoryNavigation is true, then set request's history-navigation flag.
    3. ~Assert: %履歴の取扱い ~NEQ `置換-$i ◎ Assert: historyHandling is not "replace".
    4. %B を %要請 へ`~navigate$する — 次を与える下で ⇒# `履歴~取扱い$V ~SET `~entry更新$i `~source閲覧文脈$ ~SET %~entry を最初に作成したときに利用した`~source閲覧文脈$ ◎ Navigate the browsing context to request with historyHandling set to "entry update". The navigation must be done using the same source browsing context as was used the first time entry was created.

      注記: `~navigate$ ~algoは、辿りを完了するために,この~algoを再び呼出す — %~entry の`文書$shEは、その時点で ~NULL 以外になる。 ◎ The "navigate" algorithm reinvokes this "traverse" algorithm to complete the traversal, at which point entry's document is non-null.

      注記: 資源が非冪等~動作を利用して得されたものであった場合( 例えば `POST^hm による~form提出)や, 資源はもはや可用でない場合(例えば~computerは今や~offlineになっていて,~pageも~cacheされていないため)など、再度そこへ~navigateできないこともある。 この事例では、~naviの結果は,以前と異なる~pageになる — 例えば,問題を説明する~error~messageや, ~formを再度~提出する~UIを提供するなど。 ◎ If the resource was obtained using a non-idempotent action, for example a POST form submission, or if the resource is no longer available, for example because the computer is now offline and the page wasn't cached, navigating to it again might not be possible. In this case, the navigation will result in a different page than previously; for example, it might be an error message explaining the problem or offering to resubmit the form.

    5. ~RET ◎ Return.
  5. ~IF[ %現在の~entry の`~title$shE ~EQ ~NULL ] ⇒ %現在の~entry の`~title$shE ~SET `document.title$m ~IDL属性が返す値 ◎ If the current entry's title is null, then set its title to the value returned by the document.title IDL attribute.
  6. %現在の~entry に`持続される状態を保存する$ ◎ Save persisted state to the current entry.
  7. %新たな文書 ~LET %~entry の`文書$shE ◎ Let newDocument be entry's document.
  8. %現在の文書 ~LET %B にて`作動中の文書$ ◎ ↓
  9. ~Assert: %現在の文書 ~EQ %現在の~entry の`文書$shE 【この段は、この訳による補完。】
  10. ~IF[ %新たな文書 ~NEQ %現在の文書 ]: ◎ If newDocument is different than the current entry's document, then:

    1. `履歴~辿り~task源$から~queueされた`~task$のうち,次を満たすものすべてを除去する ⇒ `~task$の`文書$tK ~IN %B の`~top-level閲覧文脈$の`文書~族$ ◎ Remove any tasks queued by the history traversal task source that are associated with any Document objects in the top-level browsing context's document family.
    2. ~IF[ ( %新たな文書 の`生成元$, %現在の文書 の`生成元$ ) は`同一-生成元$でない ]: ◎ If newDocument's origin is not same origin with the current entry's document's origin, then:

      1. %履歴 を成す ~EACH( ~entry %e ) に対し ⇒ ~IF[ ( %e の`文書$shEの`生成元$, %現在の文書 の`生成元$ ) は`同一-生成元$である ]~AND[ %e は %現在の~entry と連続的である 【~~参照】 ] ⇒ %e の`閲覧文脈~名$shE ~SET %B の`閲覧文脈~名$ ◎ Let entriesToUpdate be all entries in the session history whose document's origin is same origin as the active document and that are contiguous with the current entry. ◎ For each entryToUpdate of entriesToUpdate, set entryToUpdate's browsing context name to the current browsing context name.
      2. ~IF[ %B は`~top-level閲覧文脈$である ]~AND[ %B は`補助~閲覧文脈$でない ] ⇒ %B の`閲覧文脈~名$ ~SET 空~文字列 ◎ If the browsing context is a top-level browsing context, but not an auxiliary browsing context, then set the browsing context's name to the empty string.
    3. `閲覧文脈にて作動中の文書を設定する$( %B, %新たな文書 ) ◎ Set the active document of the browsing context to newDocument.
    4. ~Assert: %B にて`作動中の文書$ ~EQ %新たな文書 【この段は、この訳による補完。】
    5. ~IF[ %~entry の`閲覧文脈~名$shE ~NEQ ~NULL ]: ◎ If entry's browsing context name is not null, then:

      1. %B の`閲覧文脈~名$ ~SET %~entry の`閲覧文脈~名$shE ◎ Set the browsing context's name to entry's browsing context name.
      2. %履歴 を成す ~EACH( ~entry %e ) に対し ⇒ ~IF[ ( %e の`文書$shEの`生成元$, %新たな文書 の`生成元$ ) は`同一-生成元$である ]~AND[ %e は %~entry と連続的である【~~参照】 ] ⇒ %e の`閲覧文脈~名$shE ~SET ~NULL ◎ Let entriesToUpdate be all entries in the session history whose document's origin is same origin as the new active document and that are contiguous with entry. ◎ For each entryToUpdate of entriesToUpdate, set entryToUpdate's browsing context name to null.
    6. %新たな文書 内の ~EACH( ~form~control %E ) に対し ⇒ ~IF[ %E の`~autofill欄~名$ ~EQ `off$v ] ⇒ %E の`再設定~algo$を呼出す ◎ If newDocument has any form controls whose autofill field name is "off", invoke the reset algorithm of each of those elements.
    7. ~IF[ %新たな文書 の`現在の準備度$doc ~EQ `complete^l ] ⇒ 次を走らす`大域~taskを~queueする$( `~DOM操作~task源$, %新たな文書 に`関連な大域~obj$ ) ◎ If newDocument's current document readiness "complete", then queue a global task on the DOM manipulation task source given newDocument's relevant global object to run the following steps:

      1. ~IF[ %新たな文書 の`~page表示中~flag$doc ~EQ ~T ] ⇒ ~RET ◎ If newDocument's page showing flag is true, then abort these steps.
      2. %新たな文書 の`~page表示中~flag$doc ~SET ~T ◎ Set newDocument's page showing flag to true.
      3. `適用-可能な仕様$により定義されている `~session履歴~文書の可視性を変更する手続き@ があれば、それらの各~手続きを %新たな文書 を渡して走らす ◎ Run any session history document visibility change steps for newDocument that are defined by other applicable specifications.

        注記: これは、特定的には, `Page Visibility^cite `PAGEVIS$r からの利用に意図されている。 ◎ This is specifically intended for use by Page Visibility. [PAGEVIS]

      4. %新たな文書 に`関連な大域~obj$に向けて,名前 `pageshow$et の`~eventを発火する$( `~targetを上書きする^i ) — `PageTransitionEvent$I を利用し,次のように初期化して ⇒# `persisted$m 属性 ~SET ~T ◎ Fire an event named pageshow at newDocument's relevant global object, using PageTransitionEvent, with the persisted attribute initialized to true, and legacy target override flag set.
  11. %新たな文書 の`~URL$doc ~SET %~entry の`~URL$shE ◎ Set newDocument's URL to entry's URL.
  12. %~hash変化あり ~LET ~F ◎ Let hashChanged be false,\
  13. %旧~URL ~LET ~NULL ◎ and let oldURL\
  14. %新~URL ~LET ~NULL ◎ and newURL be null.
  15. ~IF[ %~entry の`~URL$shEの`素片$url ~NEQ【!identical】 %現在の~entry の`~URL$shEの`素片$url ]~AND[ %新たな文書【!%~entry の`文書$shE】 ~EQ %現在の文書 ] ⇒# %~hash変化あり ~SET ~T; %旧~URL ~SET %現在の~entry の`~URL$shE; %新~URL ~SET %~entry の`~URL$shE; ◎ If entry's URL's fragment is not identical to the current entry's URL's fragment, and entry's document equals the current entry's document, then set hashChanged to true, set oldURL to the current entry's URL, and set newURL to entry's URL.
  16. ~IF[ %履歴の取扱い ~EQ `置換-$i ] ⇒ %履歴 内で %~entry の直前にある~entryを除去する ◎ If historyHandling is "replace", then remove the entry immediately before entry in the session history.
  17. ~IF[ %~entry の`持続される利用者~状態$shE ~EQ ~NULL ]~AND[ %~entry の`~URL$shEの`素片$url ~NEQ ~NULL ] ⇒ %新たな文書 を`素片へ~scrollする$ ◎ If entry's persisted user state is null, and its URL's fragment is non-null, then scroll to the fragment.
  18. %履歴 の`現在の~entry$ ~SET %~entry ◎ Set the current entry to entry.
  19. %宛先~realm ~LET `現在の~Realm~Record$ ◎ Let targetRealm be the current Realm Record.
  20. %状態 ~LET ~NULL ◎ Let state be null.
  21. ~IF[ %~entry の`直列形の状態$shE ~NEQ ~NULL ] ⇒ %状態 ~SET `StructuredDeserialize$jA( %~entry の`直列形の状態$shE, %宛先~realm ) ⇒ 例外が投出されたときは、~catchして (例外は無視する) ◎ If entry's serialized state is not null, then set state to StructuredDeserialize(entry's serialized state, targetRealm). If this throws an exception, catch it and ignore the exception.
  22. %新たな文書 の `History$I ~objの`状態$hsT ~SET %状態 ◎ Set newDocument's History object's state to state.
  23. %状態~変化あり ~LET [ 次が満たされるならば ~T / ~ELSE_ ~F ] ⇒ %新たな文書 の`最近の~entry$ ~NIN { ε, %~entry } ◎ Let stateChanged be true if newDocument has a latest entry, and that entry is not entry; otherwise let it be false.
  24. %新たな文書 の`最近の~entry$ ~SET %~entry ◎ Set newDocument's latest entry to entry.
  25. %~eventは他を阻まない に応じて:

    • ~F ⇒ 下に与える下位手続き (A) を`即時$に走らす
    • ~T ⇒ 下に与える下位手続き (A) を走らす`大域~taskを~queueする$( `~DOM操作~task源$, %新たな文書 に`関連な大域~obj$ )

    下位手続き (A) は、次を走らすとする:

    ◎ If nonBlockingEvents is false, then run the following steps immediately.\ Otherwise, queue a global task on the DOM manipulation task source given newDocument's relevant global object to run the following steps instead.
    1. ~IF[ %状態~変化あり ~EQ ~T ] ⇒ %新たな文書 に`関連な大域~obj$に向けて,名前 `popstate$et の`~eventを発火する$ — `PopStateEvent$I を利用し,次のように初期化して ⇒# `state$m 属性 ~SET %状態 ◎ If stateChanged is true, then fire an event named popstate at newDocument's relevant global object, using PopStateEvent, with the state attribute initialized to state.
    2. %~entry から`持続された状態を復旧する$ ◎ Restore persisted state from entry.
    3. ~IF[ %~hash変化あり ~EQ ~T ] ⇒ %B にて`作動中の~window$に向けて,名前 `hashchange$et の`~eventを発火する$ — `HashChangeEvent$I を利用し,次のように初期化して ⇒# `oldURL$m 属性 ~SET %旧~URL, `newURL$m 属性 ~SET %新~URL ◎ If hashChanged is true, then fire an event named hashchange at the browsing context's active window, using HashChangeEvent, with the oldURL attribute initialized to oldURL and the newURL attribute initialized to newURL.

7.10.10.1 持続される履歴~entry状態

`~session履歴~entry$ %~entry に `持続される状態を保存する@ ときは: ◎ To save persisted state to a session history entry entry:

  1. %~entry の`~scroll位置~data$shEを[ %~entry の`文書$shEの`復旧-可能な~scroll可能な領域$ ]すべての~scroll位置を包含するように設定する ◎ Set the scroll position data of entry to contain the scroll positions for all of entry's document's restorable scrollable regions.
  2. 任意選択で ⇒ 各~form欄の値など,~UAが持続するよう望む状態があれば、それらを反映するように, %~entry の`持続される利用者~状態$shEを更新する ◎ Optionally, update entry's persisted user state to reflect any state that the user agent wishes to persist, such as the values of form fields.

`~session履歴~entry$ %~entry から `持続された状態を復旧する@ ときは: ◎ To restore persisted state from a session history entry entry:

  1. 任意選択で ⇒ ~IF[ %~entry の`~scroll復旧~mode$shE ~EQ `auto$l ] ⇒ %~entry の`~scroll位置~data$shEを利用して[ %~entry の`文書$shEの`復旧-可能な~scroll可能な領域$の各~scroll位置 ]を復旧する ◎ If entry's scroll restoration mode is "auto", then the user agent may use entry's scroll position data to restore the scroll positions of entry's document's restorable scrollable regions.

    注記: ~UAが~scroll位置を復旧しないことは、[ ~scroll位置を特定0の値(例: (0,0) )に~~保つ ]ことは含意しない。 実際の~scroll位置は、[ ~naviの種別や, ~UAによる~caching-strategy ]に依存する。 なので、~web~appは,特定0の~scroll位置に決まるとは見做せない — ~appには、自身が求めるものに設定することが督促される。 ◎ The user agent not restoring scroll positions does not imply that scroll positions will be left at any particular value (e.g., (0,0)). The actual scroll position depends on the navigation type and the user agent's particular caching strategy. So web applications cannot assume any particular scroll position but rather are urged to set it to what they want it to be.

  2. 任意選択で ⇒ %~entry の`文書$shEとその具現化を成す他の側面を更新する — 一例として,~UAが以前に %~entry の`持続される利用者~状態$shE内に記録した~form欄の値など。 ◎ Optionally, update other aspects of entry's document and its rendering, for instance values of form fields, that the user agent had previously recorded in entry's persisted user state.

    注記: 持続される状態が,そのような~controlにおける利用者~入力の書字方向性を含む場合、これには,次に該当する要素の `dir$a 属性を更新することも含まれる ⇒ `textarea$e 要素 / `input$e 要素のうち[ その `type$a 属性の状態 ~IN { `Text$st, `Search$st } ]を満たすもの ◎ This can even include updating the dir attribute of textarea elements or input elements whose type attribute is in either the Text state or the Search state, if the persisted state includes the directionality of user input in such controls.


`文書$ %文書 の `復旧-可能な~scroll可能な領域@ は、 %文書 の`表示域$, および[ %文書 の`子~閲覧文脈$を除く, %文書 内の各~scroll可能な領域【~CSSによる`~scroll容器$など】 ]すべてからなる。 ◎ The restorable scrollable regions of a Document document are document's viewport, and all of document's scrollable regions excepting any child browsing contexts of document.

注記: `子~閲覧文脈$に対する~scroll復旧は、それらにて`作動中の文書$【!' Documents】用の`~session履歴~entry$により取扱われる。 ◎ Child browsing context scroll restoration is handled by the history entry for those browsing contexts' Documents.

7.10.10.2. `PopStateEvent^I ~interface

[Exposed=Window]
interface `PopStateEvent@I : `Event$I {
  constructor(DOMString %type, optional `PopStateEventInit$I %eventInitDict = {});

  readonly attribute any `state$m;
};

dictionary `PopStateEventInit@I : `EventInit$I {
  any state = null;
};
%event . `state$m
`pushState()$m / `replaceState()$m に供された情報の複製を返す。 ◎ Returns a copy of the information that was provided to pushState() or replaceState().
`state@m
取得子は、初期化-時の値を返すモノトスル。 ◎ The state attribute must return the value it was initialized to.\
この~event用の文脈~情報を表現する。 表現される状態が`文書$の初期~状態の場合は ~NULL になる。 ◎ It represents the context information for the event, or null, if the state represented is the initial state of the Document.

7.10.10.3. `HashChangeEvent^I ~interface

[Exposed=Window]
interface `HashChangeEvent@I : `Event$I {
  constructor(DOMString %type, optional `HashChangeEventInit$I %eventInitDict = {});

  readonly attribute USVString `oldURL$m;
  readonly attribute USVString `newURL$m;
};

dictionary `HashChangeEventInit@I : `EventInit$I {
  USVString oldURL = "";
  USVString newURL = "";
};
%event . `oldURL$m
履歴を辿る直前の`~session履歴~entry$の`~URL$を返す。 ◎ Returns the URL of the session history entry that was previously current.
%event . `newURL$m
履歴を辿った直後の`~session履歴~entry$の`~URL$を返す。 ◎ Returns the URL of the session history entry that is now current.
`oldURL@m
取得子は、初期化-時の値を返すモノトスル。 ◎ The oldURL attribute must return the value it was initialized to.\
これは、この~event用の文脈~情報 — 特定的には、履歴を辿る直前の`~session履歴~entry$の~URL — を表現する。 ◎ It represents context information for the event, specifically the URL of the session history entry that was traversed from.
`newURL@m
取得子は、初期化-時の値を返すモノトスル。 ◎ The newURL attribute must return the value it was initialized to.\
これは、この~event用の文脈~情報 — 特定的には、履歴を辿った直後の`~session履歴~entry$の~URL — を表現する。 ◎ It represents context information for the event, specifically the URL of the session history entry that was traversed to.

7.10.10.4. `PageTransitionEvent^I ~interface

[Exposed=Window]
interface `PageTransitionEvent@I : `Event$I {
  constructor(DOMString %type, optional `PageTransitionEventInit$I %eventInitDict = {});

  readonly attribute boolean `persisted$m;
};

dictionary `PageTransitionEventInit@I : `EventInit$I {
  boolean persisted = false;
};
%event . `persisted$m
`pageshow$et ~eventに対しては、[ 当の~pageが新たに読込まれつつある(したがって `load$et ~eventが発火されることになる)ならば ~F / ~ELSE_ ~T ]を返す。 ◎ For the pageshow event, returns false if the page is newly being loaded (and the load event will fire). Otherwise, returns true.
`pagehide$et ~eventに対しては、[ 当の~pageが最後に消え去るときには ~F / ~ELSE_ ~T ]を返す。 ~T は、この~pageは,利用者がこの~pageに~navigateして戻った場合に(その~pageを回復可能でなくするものが他になければ)再利用され得ることを意味する。 ◎ For the pagehide event, returns false if the page is going away for the last time. Otherwise, returns true, meaning that (if nothing conspires to make the page unsalvageable) the page might be reused if the user navigates back to this page.

~pageを回復可能でなくするものには、次が含まれる: ◎ Things that can cause the page to be unsalvageable include:

  • ~UAは、当の`文書を~unload$した後に,[ その文書は,`~session履歴~entry$内で生存し続けない ]ものと裁定した ◎ The user agent decided to not keep the Document alive in a session history entry after unload
  • 回復可能でない `iframe$e があるとき ◎ Having iframes that are not salvageable
  • 作動中の `WebSocket$I ~objがあるとき ◎ Active WebSocket objects
  • `文書を中止-$したとき ◎ Aborting a Document
`persisted@m
取得子は、初期化-時の値を返すモノトスル。 ◎ The persisted attribute must return the value it was initialized to.\
これは~eventの文脈~情報を表現する。 ◎ It represents the context information for the event.

7.10.11 文書の読込n法

各 `文書$には `完全に読込まれた時刻@ (ある時刻または ~NULL )があり、初期~時には ~NULL とする。 ◎ A Document has a completely loaded time (a time or null), which is initially null.

所与の`文書$は、`完全に読込まれた時刻$ ~NEQ ~NULL ならば `完全に読込まれた@ ものと見なされる。 ◎ A Document is considered completely loaded if its completely loaded time is non-null.

`文書$ %文書 の `読込ngを完全に終わらす@ ときは: ◎ To completely finish loading a Document document:

  1. ~Assert: %文書 が`属する閲覧文脈$ ~NEQ ~NULL ◎ Assert: document's browsing context is non-null.
  2. %文書 の`完全に読込まれた時刻$ ~SET 現在の時刻 ◎ Set document's completely loaded time to the current time.
  3. %容器 ~LET %文書が`属する閲覧文脈$の`容器$bc ◎ Let container be document's browsing context's container.
  4. ~IF[ %容器 は `iframe$e 要素である ] ⇒ 次を走らす`要素~taskを~queueする$( `~DOM操作~task源$, %容器 ) ⇒ `~iframe~load~event手続き$( %容器 ) ◎ If container is an iframe element, then queue an element task on the DOM manipulation task source given container to run the iframe load event steps given container.
  5. ~ELIF[ %容器 ~NEQ ~NULL ] ⇒ 次を走らす`要素~taskを~queueする$ `~DOM操作~task源$, %容器 ) ⇒ %容器 に向けて名前 `load$et の`~eventを発火する$ ◎ Otherwise, if container is non-null, then queue an element task on the DOM manipulation task source given container to fire an event named load at container.

7.10.12. 文書の~unload法

`文書$は、次のものを持つ:

`回復可能~状態@doc
初期~時には ~T になるモノトスル。
`~page表示中~flag@doc
初期~時には ~F になるモノトスル。 この~flagは、~scriptが[ `pageshow$et, `pagehide$et ]~eventを整合的に受取る(例: `pageshow$et を間に挟むことなく 2 つの `pagehide$et ~eventを続けて受取ったり,その逆が生じることは決してない)ことを確保するために利用される。
◎ A Document has a salvageable state, which must initially be true, and a page showing flag, which must initially be false. The page showing flag is used to ensure that scripts receive pageshow and pagehide events in a consistent manner (e.g. that they never receive two pagehide events in a row without an intervening pageshow, or vice versa).

各`~event~loop$は、 `終了入子~level@ と呼ばれる~counterを有する — 初期~時には 0 になるモノトスル。 ◎ Event loops have a termination nesting level counter, which must initially be 0.

`文書の~unloadを~promptする@ ときは、所与の ( `文書$ %文書, %再帰的~flag ~IN { `再帰的^i, ε }(省略時は ε ) ) に対し,次を走らす: ◎ To prompt to unload, given a Document object document and optionally a recursiveFlag, run these steps:

  1. `~event~loop$の`終了入子~level$ ~INCBY 1 ◎ Increase the event loop's termination nesting level by 1.
  2. %文書 の`~unload中の~openは無視する~counter$ ~INCBY 1 ◎ Increase the document's ignore-opens-during-unload counter by 1.
  3. %event ~LET `~eventを作成する$( `BeforeUnloadEvent$I ) ◎ Let event be the result of creating an event using BeforeUnloadEvent.
  4. %event の属性を次のように初期化する ⇒# `type$m ~SET `beforeunload$et, `cancelable$m ~SET ~T ◎ Initialize event's type attribute to beforeunload and its cancelable attribute true.
  5. %文書 に`関連な大域~obj$に向けて %event を`配送する$ ◎ Dispatch: Dispatch event at document's relevant global object.
  6. `~event~loop$の`終了入子~level$ ~DECBY 1 ◎ Decrease the event loop's termination nesting level by 1.
  7. ~IF[ 次のいずれも満たされる ]…: ◎ ↓

    • `~sandbox化( ~modal )~flag$ ~NIN %文書 の`作動中の~sandbox法~flag集合$ ◎ If document's active sandboxing flag set does not have its sandboxed modals flag set, and\
    • [ %event の `returnValue$m 属性 ~NEQ 空~文字列 ]~OR[ %event は取消された ] ◎ the returnValue attribute of the event object is not the empty string, or if the event was canceled, then\

    …ならば ⇒ ~UAは、利用者に, %文書 の~unloadを望むかどうか確認をとってもヨイ: ◎ the user agent may ask the user to confirm that they wish to unload the document.

    注記: 利用者に示される~messageは、~custom化することはできず,~UAにより決定される。 特に、 `returnValue$m 属性の実際の値は無視される。 ◎ The message shown to the user is not customizable, but instead determined by the user agent. In particular, the actual value of the returnValue attribute is ignored.

    • ~UAは,そうすることが利用者にとって[ いらつく/紛らわしい/的外れである ]と判定したときは、利用者に確認をとらないことが奨励される。 単純な経験則として、利用者が %文書 とやりとりしていなければ,とらないことが挙げられる。 ◎ The user agent is encouraged to avoid asking the user for confirmation if it judges that doing so would be annoying, deceptive, or pointless. A simple heuristic might be that if the user has not interacted with the document, the user agent would not ask for confirmation before unloading it.
    • ~UAは,利用者に確認をとる場合には、利用者からの応答を待機している間,`静止-$するモノトスル。 ◎ If the user agent asks the user for confirmation, it must pause while waiting for the user's response.
    • 利用者から~page~naviの確認をとれなかった場合、 %文書 の `~unloadは利用者から拒否された@ とされる。 ◎ If the user did not confirm the page navigation, then the user agent refused to allow the document to be unloaded.
  8. ~IF[ %再帰的~flag ~EQ ε ]: ◎ If the recursiveFlag is not set, then:

    1. %文書 の`子孫~閲覧文脈~list$ 内の ~EACH( `閲覧文脈$ %B ) に対し: ◎ Let descendants be the list of the descendant browsing contexts of document. ◎ For each browsingContext in descendants:

      1. %作動中の文書 ~LET %B にて`作動中の文書$ ◎ ↓
      2. `文書の~unloadを~promptする$( %作動中の文書, `再帰的^i ) ◎ Prompt to unload browsingContext's active document with the recursiveFlag set.
      3. ~IF[ 前~段にて, %作動中の文書 の`~unloadは利用者から拒否された$ ] ⇒ ~BREAK — その結果, %文書 についても暗黙的に`~unloadは利用者から拒否された$ことになる ◎ If the user refused to allow the document to be unloaded, then the user implicitly also refused to allow document to be unloaded; break.
  9. %文書 の`~unload中の~openは無視する~counter$ ~DECBY 1 ◎ Decrease the document's ignore-opens-during-unload counter by 1.

`文書を~unloadする@ ときは、所与の ( `文書$ %文書, %再帰的~flag ~IN { `再帰的^i, ε }(省略時は ε ) ) に対し,次を走らす: ◎ To unload a Document document, optionally given a recursiveFlag:

  1. `~event~loop$の`終了入子~level$ ~INCBY 1 ◎ Increase the event loop's termination nesting level by one.
  2. %文書 の`~unload中の~openは無視する~counter$ ~INCBY 1 ◎ Increase document's ignore-opens-during-unload counter by one.
  3. ~IF[ %文書 の`~page表示中~flag$doc ~EQ ~T ]: ◎ If document's page showing flag is false, then jump to the step labeled unload event below (i.e. skip firing the pagehide event and don't rerun the unloading document visibility change steps).

    1. %文書 の`~page表示中~flag$doc ~SET ~F ◎ Set document's page showing flag to false.
    2. ~IF[ ~UAは、[ %文書 は,(後で履歴の辿りに再利用できるよう)`~session履歴~entry$内で生存し続ける ]ものと意図しない ] ⇒ %文書 の`回復可能~状態$doc ~SET ~F ◎ If the user agent does not intend to keep document alive in a session history entry (such that it can be reused later on history traversal), set document's salvageable state to false.
    3. %文書 に`関連な大域~obj$に向けて,名前 `pagehide$et の`~eventを発火する$( `~targetを上書きする^i ) — `PageTransitionEvent$I を利用し,次のように初期化して ⇒ `persisted$m 属性 ~SET %文書 の`回復可能~状態$doc ◎ Fire an event named pagehide at document's relevant global object, using PageTransitionEvent, with the persisted attribute initialized to true if document's salvageable state is true, and false otherwise, and legacy target override flag set.
    4. `適用-可能な仕様$により定義される `~unload中の文書の可視性~変化-時の手続き@ があれば、それらの各~手続きを %文書 を渡して走らす ◎ Run any unloading document visibility change steps for document that are defined by other applicable specifications.

      注記: これは、特定的には, `Page Visibility^cite `PAGEVIS$r からの利用-に意図されている。 ◎ This is specifically intended for use by Page Visibility. [PAGEVIS]

  4. ~IF[ %文書 の`回復可能~状態$doc ~EQ ~F ] ⇒ %文書 に`関連な大域~obj$に向けて,名前 `unload$et の`~eventを発火する$( `~targetを上書きする^i ) ◎ Unload event: If document's salvageable state is false, then fire an event named unload at document's relevant global object, with legacy target override flag set.
  5. `~event~loop$の`終了入子~level$ ~DECBY 1 ◎ Decrease the event loop's termination nesting level by one.
  6. この仕様も含む`適用-可能な仕様$にて定義される `文書~unload時の片付け手続き$があれば、それらの各~手続きを %文書 を渡して走らす ◎ Run any unloading document cleanup steps for document that are defined by this specification and other applicable specifications.
  7. ~IF[ %再帰的~flag ~EQ ε ]: ◎ If the recursiveFlag is not set, then:

    1. %子孫~list ~LET %文書 の`子孫~閲覧文脈~list$ ◎ Let descendants be the list of the descendant browsing contexts of document.
    2. %子孫~list 内の ~EACH( `閲覧文脈$ %B ) に対し: ◎ For each browsingContext in descendants:

      1. %作動中の文書 ~LET %B にて`作動中の文書$ ◎ ↓
      2. `文書を~unloadする$( %作動中の文書, `再帰的^i ) ◎ Unload the active document of browsingContext with the recursiveFlag set.
      3. ~IF[ %作動中の文書 の`回復可能~状態$doc ~EQ ~F ] ⇒ %文書 の`回復可能~状態$doc ~SET ~F ◎ If the salvageable state of the active document of browsingContext is false, then set the salvageable state of document to false also.
    3. ~IF[ %文書 の`回復可能~状態$doc ~EQ ~F ] ⇒ `文書を破棄する$( %文書 ) ◎ If document's salvageable state is false, then discarddocument.
  8. %文書 の`~unload中の~openは無視する~counter$ ~DECBY 1 ◎ Decrease document's ignore-opens-during-unload counter by one.

`適用-可能な仕様$は、 `文書~unload時の片付け手続き@ を定義できる。 この仕様が定義する`文書~unload時の片付け手続き$は、所与の ( `文書$ %文書 ) に対し,次を走らす: ◎ This specification defines the following unloading document cleanup steps. Other specifications can define more. Given a Document document:

  1. %~window ~LET %文書 に`関連な大域~obj$ ◎ Let window be document's relevant global object.
  2. ~EACH( `WebSocket$I ~obj %O ) に対し ⇒ ~IF[ %O に`関連な大域~obj$ ~EQ %~window ] ⇒ %O を`消滅させる$ ◎ For each WebSocket object webSocket whose relevant global object is window, make disappear webSocket.
  3. ~IF[ 前~段により影響された `WebSocket$I ~objはある ] ⇒ %文書 の`回復可能~状態$doc ~SET ~F ◎ If this affected any WebSocket objects, then set document's salvageable state to false.
  4. ~IF[ %文書 の`回復可能~状態$doc ~EQ ~F ]: ◎ If document's salvageable state is false, then:

    1. ~EACH( `EventSource$I ~obj %O ) に対し ⇒ ~IF[ %O に`関連な大域~obj$ ~EQ %~window ] ⇒ %O を`強制的に閉じる$ ◎ For each EventSource object eventSource whose relevant global object is equal to window, forcibly close eventSource.
    2. %文書 の`~window$の`作動中の~timer~list$を空にする ◎ Empty window's list of active timers.

7.10.12.1. `BeforeUnloadEvent^I ~interface

[Exposed=Window]
interface `BeforeUnloadEvent@I : `Event$I {
  attribute DOMString `returnValue$m;
};

注記: `BeforeUnloadEvent$I に特有な初期化~methodはない。 ◎ There are no BeforeUnloadEvent-specific initialization methods.

`BeforeUnloadEvent$I ~interfaceは、旧来の~interfaceである — それは、~eventを取消すのみならず, `returnValue$m 属性を空~文字列でない値に設定することで `文書の~unloadを~promptする$処理を制御できるようにする。 作者は `returnValue$m を利用する代わりに `preventDefault()$m ~method, または~eventを取消す他の手段を利用するベキである。 ◎ The BeforeUnloadEvent interface is a legacy interface which allows prompting to unload to be controlled not only by canceling the event, but by setting the returnValue attribute to a value besides the empty string. Authors should use the preventDefault() method, or other means of canceling events, instead of using returnValue.

`returnValue@m
この属性は、`文書の~unloadを~promptする$処理nを制御する。 ◎ The returnValue attribute controls the process of prompting to unload.\
~eventの作成-時には、この属性は空~文字列に設定されるモノトスル。 ◎ When the event is created, the attribute must be set to the empty string.\
取得子は、この属性に最後に設定された値を返すモノトスル。 ◎ On getting, it must return the last value it was set to.\
設定子は、この属性を所与の値に設定するモノトスル。 ◎ On setting, the attribute must be set to the new value.
注記: この属性が `DOMString^I にされているのは、もっぱら歴史的な理由による。 空~文字列~以外のどの値も,利用者に確認をとるよう要請するものと扱われる。 ◎ This attribute is a DOMString only for historical reasons. Any value besides the empty string will be treated as a request to ask the user for confirmation.

7.10.13. 文書~読込nの中止-法

`文書を中止する@ ときは、所与の ( `文書$ %文書 ) に対し,次を走らす: ◎ To abort a Document document:

  1. %文書 が`属する閲覧文脈$の ~EACH( `子~閲覧文脈$ %子 ) に対し:

    1. %子~文書 ~LET %子 にて`作動中の文書$
    2. `文書を中止する$( %子~文書 )
    3. ~IF[ %子~文書 の`回復可能~状態$doc ~EQ ~F ] ⇒ %文書 の`回復可能~状態$doc ~SET ~F
    ◎ Abort the active documents of every child browsing context. If this results in any of those Document objects having their salvageable state set to false, then set document's salvageable state to false also.
  2. ~IF[ %文書 の文脈~下にある`~fetch$~algoの~instanceたちがある ] ⇒

    1. それらを取消す — 以降 ⇒# それらに対し`~queueされ$る`~task$は破棄する / それらに対し~networkから受信される更なる~dataは破棄する

    2. %文書 の`回復可能~状態$doc ~SET ~F
    ◎ Cancel any instances of the fetch algorithm in the context of document, discarding any tasks queued for them, and discarding any further data received from the network for them. If this resulted in any instances of the fetch algorithm being canceled or any queued tasks or any network data getting discarded, then set document's salvageable state to false.
  3. ~IF[ %文書 には`作動中の構文解析器$がある ]: ◎ If document has an active parser, then:

    1. %文書 の`作動中の構文解析器は中止された?$ ~SET ~T ◎ Set document's active parser was aborted to true.
    2. その`構文解析器を中止する$ ◎ Abort that parser.
    3. %文書 の`回復可能~状態$doc ~SET ~F ◎ Set document's salvageable state to false.

~UAは、利用者が明示的に`文書を中止する$~algoを呼出すことを許容してもヨイ。 利用者がそれをした場合、その`文書$が`作動中の文書$であるならば、~UAは,`文書を中止する$~algoを呼出す前に,次を走らす`~taskを~queueする$ベキである ⇒ その`文書$に`関連な大域~obj$に向けて,名前 `abort$et の`~eventを発火する$ ◎ User agents may allow users to explicitly invoke the abort a document algorithm for a Document. If the user does so, then, if that Document is an active document, the user agent should queue a task to fire an event named abort at that Document object's relevant global object before invoking the abort algorithm.

`文書の読込ngを停止する@ ときは、所与の ( `文書$ %文書 ) に対し,次を走らす: ◎ To stop document loading given a Document object document, run these steps:

  1. ~IF[ %文書 は`作動中の文書$でない ] ⇒ ~RET ◎ If document is not an active document, then return.
  2. %閲覧文脈 ~LET %文書 が`属する閲覧文脈$ ◎ Let browsingContext be document's browsing context.
  3. ~IF[ %閲覧文脈 を`~navigate$しようとする既存の試みがある ]~AND[ その試みは`文書を~unloadする$~algoを現在~走らせていない ] ⇒ その`~navi$を取消す ◎ If there is an existing attempt to navigate browsingContext and that attempt is not currently running the unload a document algorithm, then cancel that navigation.
  4. `文書を中止する$( %文書 ) ◎ Abort document.

7.10.14 `X-Frame-Options^h ~header

`X-Frame-Options$h ~HTTP応答~headerは、[ `文書$は`子~閲覧文脈$の内側に どう読込まれてもよいか ]を制御する,旧来の仕方である。 それは、[ 同じ状況に対し,もっと細やかな制御を供する `frame-ancestors$dir ~CSP指令 `CSP$r ]により,廃用にされた。 それは、元々は `HTTP Header Field X-Frame-Options^cite `RFC7034$r にて定義されたが,ここでの定義と処理~modelは、その文書に取って代わる。 ◎ The `X-Frame-Options` HTTP response header is a legacy way of controlling whether and how a Document may be loaded inside of a child browsing context. It is obsoleted by the frame-ancestors CSP directive, which provides more granular control over the same situations. It was originally defined in HTTP Header Field X-Frame-Options, but the definition and processing model here supersedes that document. [CSP] [RFC7034]

注記: 特に, `HTTP Header Field X-Frame-Options^cite は、その~header値~用の変種として `ALLOW-FROM^bl も指定したが,それは実装されていない。 ◎ In particular, HTTP Header Field X-Frame-Options specified an `ALLOW-FROM` variant of the header, but that is not to be implemented.

注記: 下に与える処理~modelにより、 `X-Frame-Options$h ~headerは,同じ`応答$内に ~CSP `frame-ancestors$dir 指令も利用された場合には無視される。 ◎ Per the below processing model, if both a CSP frame-ancestors directive and an `X-Frame-Options` header are used in the same response, then `X-Frame-Options` is ignored.

[ ~web開発者/適合性~検査器 ]向けとして,その値の`~ABNF$は: ◎ For web developers and conformance checkers, its value ABNF is:

X-Frame-Options = "DENY" / "SAMEORIGIN"

`~navi応答の~X-Frame-Optionsに対する固守を検査する@ ときは、所与の ( `応答$ %応答, `閲覧文脈$ %B, `生成元$ %行先~生成元 ) に対し: ◎ To check a navigation response's adherence to `X-Frame-Options`, given a response response, a browsing context browsingContext, and an origin destinationOrigin:

  1. ~IF[ %B は`子~閲覧文脈$でない ] ⇒ ~RET ~T ◎ If browsingContext is not a child browsing context, then return true.
  2. %応答 の`~CSP~list$rsを成す ~EACH( %施策 ) に対し: ◎ For each policy of response's CSP list:

    1. ~IF[ %施策 の`処置先$ ~NEQ `enforce^bl ] ⇒ ~CONTINUE ◎ If policy's disposition is not "enforce", then continue.
    2. ~IF[ `frame-ancestors$dir 指令 ~IN %施策 の`指令~集合$ ] ⇒ ~RET ~T ◎ If policy's directive set contains a frame-ancestors directive, then return true.
  3. %生~X~frame~options ~LET `~header~listから値を取得して復号して分割する$( %応答 の`~header~list$rs, `X-Frame-Options$h ) ◎ Let rawXFrameOptions be the result of getting, decoding, and splitting `X-Frame-Options` from response's header list.
  4. ~IF[ %生~X~frame~options ~EQ ~NULL ] ⇒ ~RET ~T

    【 この段は、この訳による補完( %応答 内に `X-Frame-Options$h は無い)。 】

  5. %~X~frame~options ~LET 新たな`集合$ ◎ Let xFrameOptions be a new set.
  6. %生~X~frame~options を成す ~EACH( %値 ) に対し ⇒ %~X~frame~options に次の結果を`付加する$set ⇒ `~ASCII小文字~化する$( %値 ) ◎ For each value of rawXFrameOptions, append value, converted to ASCII lowercase, to xFrameOptions.
  7. ~IF[ %~X~frame~options の`~size$ ~GT 1 ]: ◎ ↓

    1. %~X~frame~options を成す ~EACH( %値 ) に対し ⇒ ~IF[ %値 ~IN { `deny^bl, `allowall^bl, `sameorigin^bl } ] ⇒ ~RET ~F ◎ If xFrameOptions's size is greater than 1, and xFrameOptions contains any of "deny", "allowall", or "sameorigin", then return false.

      注記: ここでの意向は、 `X-Frame-Options$h が[ 妥当な何かを行おうと試行しているが,紛らわしく現れる ]場合には,それを適用する際に 【埋込もうとする】どの試みも阻止することにある。 ◎ The intention here is to block any attempts at applying `X-Frame-Options` which were trying to do something valid, but appear confused.

      注記: 旧来の `ALLOWALL^bl 値による処理~modelに対する影響iは、ここに限られる。 ◎ This is the only impact of the legacy `ALLOWALL` value on the processing model.

    2. ~RET ~T ◎ If xFrameOptions's size is greater than 1, then return true.

      注記: ~headerは、複数個の妥当でない値を包含している — この場合、~headerが まるごと省略されていたときと同じ仕方で扱う。 ◎ This means it contains multiple invalid values, which we treat the same way as if the header was omitted entirely.

  8. ~IF[ %~X~frame~options[ 0 ] ~EQ `deny^bl ] ⇒ ~RET ~F ◎ If xFrameOptions[0] is "deny", then return false.
  9. ~IF[ %~X~frame~options[ 0 ] ~EQ `sameorigin^bl ]: ◎ If xFrameOptions[0] is "sameorigin", then:

    1. ~WHILE 無条件:

      1. %容器~文書 ~LET %B の`容器~文書$
      2. ~IF[ %容器~文書 ~EQ ~NULL ] ⇒ ~BREAK
      3. ~IF[ ( %容器~文書 の`生成元$, %行先~生成元 ) は`同一-生成元$でない ] ⇒ ~RET ~F
      4. %B ~LET %容器~文書 が`属する閲覧文脈$
      5. ~IF[ %B ~EQ ~NULL ] ⇒ ~BREAK
      ◎ Let containerDocument be browsingContext's container document. ◎ While containerDocument is not null: • If containerDocument's origin is not same origin with destinationOrigin, then return false. • Let containerBC be containerDocument's browsing context. • Set containerDocument to containerBC's container document, if containerBC is non-null; otherwise, null.
  10. ~RET ~T ◎ Return true.

    注記: ここまで達した場合、妥当でない 1 個の値からなる(旧来の[ `ALLOWALL^bl / `ALLOW-FROM^bl ]形も該当する) — この場合、~headerは まるごと省略されていたかのように扱う。 ◎ If we've reached this point then we have a lone invalid value (which could potentially be one the legacy `ALLOWALL` or `ALLOW-FROM` forms). These are treated as if the header were omitted entirely.


この~header用の様々な値の処理を — 不適合tなものも含め — 次の表に示す: ◎ The following table illustrates the processing of various values for the header, including non-conformant ones:

`X-Frame-Options$h 妥当? 結果
`DENY^bl 埋込みは許容されない
`SAMEORIGIN^bl 同一-生成元なら埋込みは許容される
`INVALID^bl 埋込みは許容される
`ALLOWALL^bl 埋込みは許容される
`ALLOW-FROM=https://example.com/^bl 埋込みは許容される(どこからでも)
◎ `X-Frame-Options` Valid Result `DENY` ✅ embedding disallowed `SAMEORIGIN` ✅ same-origin embedding allowed `INVALID` ❌ embedding allowed `ALLOWALL` ❌ embedding allowed `ALLOW-FROM=https://example.com/` ❌ embedding allowed (from anywhere)

複数の値を孕んでいる,様々な不適合tな事例がどう処理されるかを,次の表に示す: ◎ The following table illustrates how various non-conformant cases involving multiple values are processed:

`X-Frame-Options$h 結果
`SAMEORIGIN, SAMEORIGIN^bl 同一-生成元なら埋込みは許容される
`SAMEORIGIN, DENY^bl 埋込みは許容されない
`SAMEORIGIN,^bl 埋込みは許容されない
`SAMEORIGIN, ALLOWALL^bl 埋込みは許容されない
`SAMEORIGIN, INVALID^bl 埋込みは許容されない
`ALLOWALL, INVALID^bl 埋込みは許容されない
`ALLOWALL,^bl 埋込みは許容されない
`INVALID, INVALID^bl 埋込みは許容される
◎ `X-Frame-Options` Result `SAMEORIGIN, SAMEORIGIN` same-origin embedding allowed `SAMEORIGIN, DENY` embedding disallowed `SAMEORIGIN,` embedding disallowed `SAMEORIGIN, ALLOWALL` embedding disallowed `SAMEORIGIN, INVALID` embedding disallowed `ALLOWALL, INVALID` embedding disallowed `ALLOWALL,` embedding disallowed `INVALID, INVALID` embedding allowed

値たちが[ ~commaで区切られた値を伴う 1 個の~header, 複数個の~header ]どちらで送達されようが,得される結果は同じになる。 ◎ The same results are obtained whether the values are delivered in a single header whose value is comma-delimited, or in multiple headers.

7.11. ~offline~web~app

この特能は、~web~platformから除去されつつある過程にある(何年もかかるであろう)。 今では、~offline~web~app特能は,利用しないことが強く奨励される。 代わりに、~sw `SW$r を利用すること。 ◎ This feature is in the process of being removed from the web platform. (This is a long process that takes many years.) Using any of the offline web application features at this time is highly discouraged. Use service workers instead. [SW]

【 以下、この節の内容は未訳。 このサイトのこの仕様の和訳における `~app~cache用@ … と記された箇所も未訳であり、実際の原文では,この節にて定義される各種~用語を利用する内容が記述されている。 言い換えれば、和訳は,~UAがこの節に述べられる機能を~supportしていないかのように単純~化して記述している。 】