Skip to content

Commit f28ba7e

Browse files
[fetch] Add TAO destination check for navigation redirect chains whatwg/fetch@aa0bd92
+Review Draft Publication: June 2026 whatwg/fetch@45097d9
1 parent 3c4966a commit f28ba7e

1 file changed

Lines changed: 180 additions & 12 deletions

File tree

Fetch-ja.html

Lines changed: 180 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,8 @@
207207
●●options
208208

209209
spec_title:Fetch
210-
spec_date:2026-06-05
211-
trans_update:2026-06-11
210+
spec_date:2026-06-25
211+
trans_update:2026-06-28
212212
source_checked:250918
213213
spec_status:LS
214214
original_url:https://fetch.spec.whatwg.org/
@@ -860,6 +860,7 @@
860860
rq.計時許容に失敗したか:#timing-allow-failed
861861
rq.~top-level~navi起動元~生成元:#request-top-level-navigation-initiator-origin
862862
rq.~WebTransport~hash~list:#request-webtransport-hash-list
863+
rq.~navi計時~許容-値~群~list:#request-navigation-timing-allow-values-list
863864
rq.~WebDriver~ID:#concept-webdriver-id
864865

865866
行先~種別:#destination-type
@@ -905,6 +906,7 @@
905906
rs.本体~報:#concept-response-body-info
906907
rs.~sw計時~報:#response-service-worker-timing-info
907908
rs.~redirect~taint:#response-redirect-taint
909+
rs.~navi計時~許容-値~群~list:#response-navigation-timing-allow-values-list
908910

909911
応答の~Location~URLを得る:#concept-response-location-url
910912

@@ -1099,6 +1101,8 @@
10991101

11001102
~CORS検査:#concept-cors-check
11011103
~TAO検査:#concept-tao-check
1104+
~navi~TAO検査:#navigation-tao-check
1105+
要請の~navi計時~許容-値~群~listに付加する:#append-to-a-requests-navigation-timing-allow-values-list
11021106

11031107
整数を直列化する:#serialize-an-integer
11041108

@@ -1221,6 +1225,9 @@
12211225
中止されたときは:~INFRA#if-aborted
12221226
~BREAK:~INFRA#iteration-break
12231227
~CONTINUE:~INFRA#iteration-continue
1228+
~IN:~INFRA#list-contain
1229+
i.失敗:~INFRA#failure
1230+
i.成功:~INFRA#success
12241231

12251232
真偽値:~INFRA#boolean
12261233
~byte列:~INFRA#byte-sequence
@@ -1898,7 +1905,6 @@
18981905
%応答の本体~終了~時の処理n:processResponseEndOfBody
18991906
%応答の本体~終了~時の処理n用の~task:processResponseEndOfBodyTask
19001907
%応答の本体を消費する処理n:processResponseConsumeBody
1901-
-:doneAlgorithm
19021908
%~CORS予行を為すか:makeCORSPreflight
19031909
%資格証を含めるか:includeCredentials
19041910
%資格証を伴うか:credentials
@@ -1910,7 +1916,6 @@
19101916
%本体の処理n:processBody
19111917
%成功~手続き:successSteps
19121918
%~error手続き:~errorSteps
1913-
-:continueAlgorithm
19141919
%要請~素片:requestFragment
19151920
%接続~群:connections
19161921
%不依拠-可能を要求するか:requireUnreliable
@@ -1927,7 +1932,6 @@
19271932
%大域~obj:global
19281933
%大域~obj:globalObject
19291934
%~sw開始~時刻:serviceWorkerStartTime
1930-
%-:handleFetchDone
19311935
%形式変換~stream:transformStream
19321936
%形式変換~algo:transformAlgorithm
19331937
%恒等変換~algo:identityTransformAlgorithm
@@ -2012,6 +2016,10 @@
20122016
%符号化-済みな模倣された言語:encodedEmulatedLanguage
20132017
%空な~stream:emptyStream
20142018
%復号器:decoder
2019+
%~TAO値~群:taoValues
2020+
%行先:destination
2021+
%行先の素:potentialDestination
2022+
%行先~生成元:destinationOrigin
20152023

20162024
●URL
20172025
hostname::::ホスト名
@@ -2740,7 +2748,7 @@
27402748

27412749
Commits:
27422750
https://github.com/whatwg/fetch/commits
2743-
<a href="https://fetch.spec.whatwg.org/commit-snapshots/30140d05af57eb9d24d43a2c18f108abac7964ce/" id="commit-snapshot-link">Snapshot as of this commit</a>
2751+
<a href="https://fetch.spec.whatwg.org/commit-snapshots/aa0bd92cfe376b9ad77a1fee4306776cf7cb4194/" id="commit-snapshot-link">Snapshot as of this commit</a>
27442752
<a href="https://twitter.com/fetchstandard">@fetchstandard</a>
27452753

27462754
Tests:
@@ -8052,8 +8060,27 @@ <h3 title="Requests">2.2.5. 要請</h3>
80528060
ある真偽値
80538061
80548062
Unless stated otherwise, it is unset.
8063+
</dd>
8064+
8065+
<dt>
8066+
`~navi計時~許容-値~群~list@rq
8067+
( « » )
8068+
8069+
A request has an associated navigation timing allow values list\
8070+
</dt>
8071+
<dd>
8072+
`文字列$たちが成す`~list$たちが成す`~list$
80558073
8056-
↓ A request’s URL list, current URL, redirect count, response tainting, done flag, and timing allow failed flag are used as bookkeeping details by the fetch algorithm.
8074+
(a list of lists of strings). Unless stated otherwise, it is « ».
8075+
</dd>
8076+
<dd class="note">注記:
8077+
この~listを成す各`~item$は、[
8078+
ある~naviの~redirect連鎖を成す ある~redirect`応答$の `Timing-Allow-Origin$h ~field値を成す値~群
8079+
]を保持する。
8080+
8081+
Each item in the navigation timing allow values list holds the `Timing-Allow-Origin` values of one redirect response in a navigation’s redirect chain.
8082+
8083+
↓ A request’s URL list, current URL, redirect count, response tainting, done flag, timing allow failed flag, and navigation timing allow values list are used as bookkeeping details by the fetch algorithm.
80578084
</dd>
80588085

80598086
<dt>
@@ -8091,11 +8118,12 @@ <h3 title="Requests">2.2.5. 要請</h3>
80918118
`~redirect回数$rq,
80928119
`応答~tainting$rq,
80938120
`済んだか$rq,
8094-
`計時許容に失敗したか$rq
8121+
`計時許容に失敗したか$rq,
8122+
`~navi計時~許容-値~群~list$rq
80958123
80968124
↑</p>
80978125

8098-
<hr>
8126+
<hr>
80998127

81008128
<p>
81018129
`下位資源~要請@
@@ -8809,6 +8837,31 @@ <h3 title="Responses">2.2.6. 応答</h3>
88098837
要請の`計時許容に失敗したか$rqを利用して内部的に追跡される。
88108838
88118839
This is used so that the caller to a fetch can determine if sensitive timing data is allowed on the resource fetched by looking at the flag of the response returned. Because the flag on the response of a redirect has to be set if it was set for previous responses in the redirect chain, this is also tracked internally using the request’s timing allow failed flag.
8840+
</dd>
8841+
8842+
<dt>
8843+
`~navi計時~許容-値~群~list@rs
8844+
( « » )
8845+
8846+
A response has an associated navigation timing allow values list\
8847+
</dt>
8848+
<dd>
8849+
`文字列$たちが成す`~list$たちが成す`~list$
8850+
8851+
(a list of lists of strings). Unless stated otherwise, it is « ».
8852+
</dd>
8853+
<dd class="note">注記:
8854+
この~listを成す各`~item$は、[
8855+
ある~naviの~redirect連鎖を成す ある~redirect`応答$の `Timing-Allow-Origin$h ~field値を成す値~群
8856+
]を保持する。
8857+
これは、[
8858+
当の~naviの行先~生成元が既知になったなら,
8859+
【当の~naviの】~call元が[
8860+
当の~redirect連鎖を成すどの~redirectも,当の生成元を許容する
8861+
]か否かを決定できる
8862+
]ようにするために利用される。
8863+
8864+
This holds the `Timing-Allow-Origin` values of each redirect response in a navigation’s redirect chain. It is used so that callers can determine, once the navigation’s destination origin is known, whether that origin is allowed by every redirect in the redirect chain.
88128865
</dd>
88138866

88148867
<dt>
@@ -14391,6 +14444,15 @@ <h3 title="Main fetch">4.1. ~main~fetch</h3>
1439114444
</li>
1439214445
<li>
1439314446
~IF[
14447+
%要請 は`~navi要請$である
14448+
14449+
14450+
%内部~応答 の`~navi計時~許容-値~群~list$rs ~SET %要請 の`~navi計時~許容-値~群~list$rqを`~cloneする$
14451+
14452+
If request is a navigation request, then set internalResponse’s navigation timing allow values list to a clone of request’s navigation timing allow values list.
14453+
</li>
14454+
<li>
14455+
~IF[
1439414456
%要請 の`計時許容に失敗したか$rq ~EQ ~F
1439514457
1439614458
@@ -16065,6 +16127,15 @@ <h3 title="HTTP fetch">4.4. ~HTTP~fetch</h3>
1606516127
</p>
1606616128
<ol>
1606716129
<li>
16130+
~IF[
16131+
%要請 は`~navi要請$である
16132+
16133+
16134+
`要請の~navi計時~許容-値~群~listに付加する$( %要請, %内部~応答 )
16135+
16136+
If request is a navigation request, then append to a request’s navigation timing allow values list given request and internalResponse.
16137+
</li>
16138+
<li>
1606816139
<p>
1606916140
~IF[
1607016141
%内部~応答 の`状態s$rs ~NEQ `303$st
@@ -19280,7 +19351,6 @@ <h3 title="CORS-preflight cache">4.9. ~CORS予行~cache</h3>
1928019351
1928119352
</li>
1928219353
</ul>
19283-
1928419354
1928519355
one of
1928619356
• its header name is a byte-case-insensitive match for headerName
@@ -19295,7 +19365,7 @@ <h3 title="CORS check">4.10. ~CORS検査</h3>
1929519365

1929619366
<div class="algo">
1929719367
<p>
19298-
`~CORS検査@
19368+
` @
1929919369
を遂行する
1930019370
~algoは、
1930119371
所与の
@@ -19477,6 +19547,104 @@ <h3 title="TAO check">4.11. ~TAO検査</h3>
1947719547
</li>
1947819548
</ol>
1947919549

19550+
<div class="algo">
19551+
<p>
19552+
`要請の~navi計時~許容-値~群~listに付加する@
19553+
~algoは、
19554+
所与の
19555+
( `要請$ %要請, `応答$ %応答 )
19556+
に対し:
19557+
19558+
To append to a request’s navigation timing allow values list, given a request request and a response response:
19559+
</p>
19560+
<ol>
19561+
<li>
19562+
~Assert:
19563+
%要請 は`~navi要請$である。
19564+
19565+
Assert: request is a navigation request.
19566+
</li>
19567+
<li>
19568+
%~TAO値~群 ~LET `~header~listから値を取得して復号して分割する$( `Timing-Allow-Origin$h, %応答 の`~header~list$rs )
19569+
19570+
Let taoValues be the result of getting, decoding, and splitting `Timing-Allow-Origin` from response’s header list.
19571+
</li>
19572+
<li>
19573+
~IF[
19574+
%~TAO値~群 ~EQ ~NULL
19575+
19576+
19577+
%~TAO値~群 ~SET « »
19578+
19579+
If taoValues is null, then set taoValues to « ».
19580+
</li>
19581+
<li>
19582+
%要請 の`~navi計時~許容-値~群~list$rqに %~TAO値~群 を`付加する$
19583+
19584+
Append taoValues to request’s navigation timing allow values list.
19585+
</li>
19586+
</ol>
19587+
</div>
19588+
19589+
<div class="algo">
19590+
<p>
19591+
`~navi~TAO検査@
19592+
を遂行する~algoは、
19593+
所与の
19594+
( `応答$ %応答, `生成元$ %行先~生成元 )
19595+
に対し:
19596+
19597+
To perform a navigation TAO check for a response response and an origin destinationOrigin:
19598+
</p>
19599+
<ol>
19600+
<li>
19601+
<p>
19602+
%応答 の`~navi計時~許容-値~群~list$rsを成す
19603+
~EACH( %~TAO値~群 )
19604+
に対し:
19605+
19606+
For each taoValues of response’s navigation timing allow values list:
19607+
</p>
19608+
<ol>
19609+
<li>
19610+
<p>
19611+
~IF[
19612+
~AND↓
19613+
]…
19614+
19615+
</p>
19616+
<ul>
19617+
<li>
19618+
`*^l ~NIN %~TAO値~群
19619+
</li>
19620+
<li>
19621+
次の結果 ~NIN %~TAO値~群
19622+
19623+
`生成元を直列化する$( %行先~生成元 )
19624+
</li>
19625+
</ul>
19626+
<p>
19627+
…ならば
19628+
19629+
~RET `失敗^i
19630+
</p>
19631+
19632+
If taoValues contains "*", then continue.
19633+
19634+
If taoValues contains destinationOrigin, serialized, then continue.
19635+
19636+
Return failure.
19637+
</li>
19638+
</ol>
19639+
</li>
19640+
<li>
19641+
~RET `成功^i
19642+
19643+
Return success.
19644+
</li>
19645+
</ol>
19646+
</div>
19647+
1948019648
</section>
1948119649
<section id="deferred-fetch">
1948219650
<h3 title="Deferred fetching">4.12. 先送d~fetch法</h3>
@@ -26795,7 +26963,7 @@ <h2 title="Intellectual property rights">知的財産権</h2>
2679526963
</p>
2679626964

2679726965
<p>
26798-
This is the Living Standard. Those interested in the patent-review version should view the <a href="https://fetch.spec.whatwg.org/review-drafts/2025-12/">Living Standard Review Draft</a>.
26966+
This is the Living Standard. Those interested in the patent-review version should view the <a href="https://fetch.spec.whatwg.org/review-drafts/2026-06/">Living Standard Review Draft</a>.
2679926967
</p>
2680026968
</div>
2680126969

0 commit comments

Comments
 (0)