@@ -1666,17 +1666,38 @@ of the <a for="environment">target browsing context</a>'s <a>active document</a>
1666
1666
<a>environment settings object</a> .
1667
1667
1668
1668
<p> A <a for=/>request</a> has an associated
1669
- <dfn export for=request id=concept-request-window>window</dfn>
1670
- ("<code> no-window</code> ", "<code> client</code> ", or an
1671
- <a>environment settings object</a> whose
1672
- <a for="environment settings object">global object</a> is a
1673
- {{Window}} object). Unless stated otherwise it is
1674
- "<code> client</code> ".
1669
+ <dfn export for=request id=concept-request-window>traversable for user prompts</dfn> , that is
1670
+ "<code> no-traversable</code> ", "<code> client</code> ", or a <a for=/>traversable navigable</a> .
1671
+ Unless stated otherwise it is "<code> client</code> ".
1672
+
1673
+ <div class=note>
1674
+ <p> This is used to determine whether and where to show necessary UI for the request, such as
1675
+ authentication prompts or client certificate dialogs.
1676
+
1677
+ <dl>
1678
+ <dt> "<code> no-traversable</code> "
1679
+ <dd> No UI is shown; usually the request fails with a <a>network error</a> .
1680
+
1681
+ <dt> "<code> client</code> "
1682
+ <dd> This value will automatically be changed to either "<code> no-traversable</code> " or to a
1683
+ <a for=/>traversable navigable</a> derived from the request's <a for=request>client</a> during
1684
+ <a lt=fetch for=/>fetching</a> . This provides a convenient way for standards to not have to
1685
+ explicitly set a request's <a for=request>traversable for user prompts</a> .
1686
+
1687
+ <dt> a <a for=/>traversable navigable</a>
1688
+ <dd> The UI shown will be associated with the browser interface elements that are displaying that
1689
+ <a for=/>traversable navigable</a> .
1690
+ </dl>
1691
+ </div>
1675
1692
1676
- <p class=note> The "<code> client</code> " value is changed to "<code> no-window</code> " or
1677
- <a for=/>request</a> 's <a for=request>client</a> during <a lt=fetch for=/>fetching</a> . It provides
1678
- a convenient way for standards to not have to explicitly set <a for=/>request</a> 's
1679
- <a for=request>window</a> .
1693
+ <p> When displaying a user interface associated with a request in that request's
1694
+ <a for=request>traversable for user prompts</a> , the user agent should update the address bar to
1695
+ display something derived from the request's <a for=request>current URL</a> (and not, e.g., leave
1696
+ it at its previous value, derived from the URL of the request's initiator). Additionally, the user
1697
+ agent should avoid displaying content from the request's initiator in the
1698
+ <a for=request>traversable for user prompts</a> , especially in the case of cross-origin requests.
1699
+ Displaying a blank page behind such prompts is a good way to fulfill these requirements. Failing to
1700
+ follow these guidelines can confuse users as to which origin is responsible for the prompt.
1680
1701
1681
1702
<p id=keep-alive-flag> A <a for=/>request</a> has an associated boolean
1682
1703
<dfn for=request export id=request-keepalive-flag>keepalive</dfn> . Unless stated otherwise it is
@@ -4334,7 +4355,8 @@ the response. [[!HTTP-CACHING]]
4334
4355
<li><p><var> request</var> 's <a for=request>mode</a> is "<code> same-origin</code> ",
4335
4356
"<code> cors</code> ", or "<code> no-cors</code> "
4336
4357
4337
- <li><p><var> request</var> 's <a for=request>window</a> is an <a>environment settings object</a>
4358
+ <li><p><var> request</var> 's <a for=request>client</a>' s
4359
+ <a for="environment settings object">global object</a> is a {{Window}} object
4338
4360
4339
4361
<li><p><var> request</var> 's <a for=request>method</a> is `<code> GET</code> `
4340
4362
@@ -4354,7 +4376,7 @@ the response. [[!HTTP-CACHING]]
4354
4376
<a for="fetch params">preloaded response candidate</a> to <var> response</var> .
4355
4377
4356
4378
<li><p> Let <var> foundPreloadedResource</var> be the result of invoking
4357
- <a>consume a preloaded resource</a> for <var> request</var> 's <a for=request>window </a> , given
4379
+ <a>consume a preloaded resource</a> for <var> request</var> 's <a for=request>client </a> , given
4358
4380
<var> request</var> 's <a for=request>URL</a>, <var>request</var>' s <a for=request>destination</a> ,
4359
4381
<var> request</var> 's <a for=request>mode</a>, <var>request</var>' s
4360
4382
<a for=request>credentials mode</a> , <var> request</var> 's <a for=request>integrity metadata</a> ,
@@ -4439,15 +4461,36 @@ the response. [[!HTTP-CACHING]]
4439
4461
<p> To <dfn>populate request from client</dfn> given a <a for=/>request</a> <var> request</var> :
4440
4462
4441
4463
<ol>
4442
- <li><p> If <var> request</var> 's <a for=request>window</a> is "<code> client</code> ", then: set
4443
- <var> request</var> 's <a for=request>window</a> to <var>request</var>' s <a for=request>client</a>
4444
- if <var> request</var> 's <a for=request>client</a>' s
4445
- <a for="environment settings object">global object</a> is a {{Window}} object; otherwise
4446
- "<code> no-window</code> ".
4447
-
4448
- <li><p> If <var> request</var> 's <a for=request>origin</a> is "<code> client</code> ", then set
4449
- <var> request</var> 's <a for=request>origin</a> to <var>request</var>' s <a for=request>client</a> 's
4450
- <a for="environment settings object">origin</a> .
4464
+ <li>
4465
+ <p> If <var> request</var> 's <a for=request>traversable for user prompts</a> is "<code> client</code> ":
4466
+
4467
+ <ol>
4468
+ <li><p> Set <var> request</var> 's <a for=request>traversable for user prompts</a> to
4469
+ "<code> no-traversable</code> ".
4470
+
4471
+ <li>
4472
+ <p> If <var> request</var> 's <a for=request>client</a> is non-null, then:
4473
+
4474
+ <ol>
4475
+ <li><p> Let <var> global</var> be <var> request</var> 's <a for=request>client</a>' s
4476
+ <a for="environment settings object">global object</a> .
4477
+
4478
+ <li><p> If <var> global</var> is a {{Window}} object, and <var> global</var> 's
4479
+ <a for=Window>navigable</a> is not null, then set <var> request</var> 's
4480
+ <a for=request>traversable for user prompts</a> to <var> global</var> 's <a for=Window>navigable</a>' s
4481
+ <a for=navigable>traversable navigable</a> .
4482
+ </ol>
4483
+ </ol>
4484
+
4485
+ <li>
4486
+ <p> If <var> request</var> 's <a for=request>origin</a> is "<code> client</code> ":
4487
+
4488
+ <ol>
4489
+ <li><p> <a>Assert</a> : <var> request</var> 's <a for=request>client</a> is non-null.
4490
+
4491
+ <li><p> Set <var> request</var> 's <a for=request>origin</a> to <var>request</var>' s
4492
+ <a for=request>client</a> 's <a for="environment settings object">origin</a> .
4493
+ </ol>
4451
4494
4452
4495
<li>
4453
4496
<p> If <var> request</var> 's <a for=request>policy container</a> is "<code> client</code> ":
@@ -5517,10 +5560,13 @@ run these steps:
5517
5560
<a for="fetch params">canceled</a> :
5518
5561
5519
5562
<ol>
5520
- <li><p> If <var> request</var> 's <a for=request>window</a> is "<code> no-window</code> " and
5521
- <var> request</var> 's <a for=request>redirect mode</a> is "<code> error</code> ", then set
5522
- <var> httpFetchParams</var> to <var> fetchParams</var> and <var> httpRequest</var> to
5523
- <var> request</var> .
5563
+ <li>
5564
+ <p> If <var> request</var> 's <a for=request>traversable for user prompts</a> is "<code> no-traversable</code> " and
5565
+ <var> request</var> 's <a for=request>redirect mode</a> is "<code> error</code> ", then set
5566
+ <var> httpFetchParams</var> to <var> fetchParams</var> and <var> httpRequest</var> to
5567
+ <var> request</var> .
5568
+
5569
+ <p class=note> If user prompts are possible, then we need to clone <var> request</var> because ???
5524
5570
5525
5571
<li>
5526
5572
<p> Otherwise:
@@ -5919,8 +5965,8 @@ run these steps:
5919
5965
<li>
5920
5966
<p> If <var> response</var> 's <a for=response>status</a> is 401, <var>httpRequest</var>' s
5921
5967
<a for=request>response tainting</a> is not "<code> cors</code> ", <var> includeCredentials</var> is
5922
- true, and <var> request</var> 's <a for=request>window</a> is an <a>environment settings object</a> ,
5923
- then :
5968
+ true, and <var> request</var> 's <a for=request>traversable for user prompts</a> is a
5969
+ <a for=/>traversable navigable</a> :
5924
5970
5925
5971
<ol>
5926
5972
<li class=XXX><p> Needs testing: multiple `<code> WWW-Authenticate</code> ` headers, missing,
@@ -5948,7 +5994,7 @@ run these steps:
5948
5994
5949
5995
<li><p> Let <var> username</var> and <var> password</var> be the result of prompting the end user
5950
5996
for a username and password, respectively, in <var> request</var> 's
5951
- <a for=request>window </a> .
5997
+ <a for=request>traversable for user prompts </a> .
5952
5998
5953
5999
<li><p> <a>Set the username</a> given <var> request</var> 's <a for=request>current URL</a> and
5954
6000
<var> username</var> .
@@ -5965,8 +6011,8 @@ run these steps:
5965
6011
<p> If <var> response</var> 's <a for=response>status</a> is 407, then:
5966
6012
5967
6013
<ol>
5968
- <li><p> If <var> request</var> 's <a for=request>window </a> is
5969
- "<code> no-window </code> ", then return a <a>network error</a> .
6014
+ <li><p> If <var> request</var> 's <a for=request>traversable for user prompts </a> is
6015
+ "<code> no-traversable </code> ", then return a <a>network error</a> .
5970
6016
5971
6017
<li class=XXX><p> Needs testing: multiple `<code> Proxy-Authenticate</code> ` headers, missing,
5972
6018
parsing issues.
@@ -5976,7 +6022,7 @@ run these steps:
5976
6022
5977
6023
<li>
5978
6024
<p> Prompt the end user as appropriate in <var> request</var> 's
5979
- <a for=request>window </a> and store the result as a
6025
+ <a for=request>traversable for user prompts </a> and store the result as a
5980
6026
<a>proxy-authentication entry</a> . [[!HTTP]]
5981
6027
5982
6028
<p class=note> Remaining details surrounding proxy authentication are defined by HTTP.
@@ -6156,10 +6202,9 @@ optional boolean <var>forceNewConnection</var> (default false), run these steps:
6156
6202
<p> If the HTTP request results in a TLS client certificate dialog, then:
6157
6203
6158
6204
<ol>
6159
- <li><p> If <var> request</var> 's <a for=request>window</a>
6160
- is an <a>environment settings object</a> , make the dialog
6161
- available in <var> request</var> 's
6162
- <a for=request>window</a> .
6205
+ <li><p> If <var> request</var> 's <a for=request>traversable for user prompts</a> is a
6206
+ <a for=/>traversable navigable</a> , then make the dialog available in <var> request</var> 's
6207
+ <a for=request>traversable for user prompts</a> .
6163
6208
6164
6209
<li><p> Otherwise, return a <a>network error</a> .
6165
6210
</ol>
@@ -7741,19 +7786,19 @@ constructor steps are:
7741
7786
<li><p> Let <var> origin</var> be <a>this</a> 's <a>relevant settings object</a>' s
7742
7787
<a for="environment settings object">origin</a> .
7743
7788
7744
- <li><p> Let <var> window </var> be "<code> client</code> ".
7789
+ <li><p> Let <var> traversableForUserPrompts </var> be "<code> client</code> ".
7745
7790
7746
- <li><p> If <var> request</var> 's <a for=request>window </a> is
7747
- an <a>environment settings object</a> and its
7791
+ <li><p> If <var> request</var> 's <a for=request>traversable for user prompts </a>
7792
+ is an <a>environment settings object</a> and its
7748
7793
<a for="environment settings object">origin</a> is <a>same origin</a> with
7749
- <var> origin</var> , then set <var> window </var> to <var> request </var> 's
7750
- <a for=request>window </a> .
7794
+ <var> origin</var> , then set <var> traversableForUserPrompts </var> to
7795
+ <var> request </var> 's < a for=request>traversable for user prompts </a> .
7751
7796
7752
7797
<li><p> If <var> init</var> ["{{RequestInit/window}}"] <a for=map>exists</a> and is non-null, then
7753
7798
<a>throw</a> a {{TypeError}} .
7754
7799
7755
7800
<li><p> If <var> init</var> ["{{RequestInit/window}}"] <a for=map>exists</a> , then set
7756
- <var> window </var> to "<code> no-window </code> ".
7801
+ <var> traversableForUserPrompts </var> to "<code> no-traversable </code> ".
7757
7802
7758
7803
<li>
7759
7804
<p> Set <var> request</var> to a new <a for=/>request</a> with the following properties:
@@ -7774,8 +7819,8 @@ constructor steps are:
7774
7819
<dt> <a for=request>client</a>
7775
7820
<dd> <a>This</a> 's <a>relevant settings object</a> .
7776
7821
7777
- <dt> <a for=request>window </a>
7778
- <dd><var> window </var> .
7822
+ <dt> <a for=request>traversable for user prompts </a>
7823
+ <dd><var> traversableForUserPrompts </var> .
7779
7824
7780
7825
<dt> <a for=request>internal priority</a>
7781
7826
<dd><var> request</var> 's <a for=request>internal priority</a> .
0 commit comments