Skip to content

Commit 8fb2816

Browse files
noamrtabatkins
andauthored
[css-values-4][css-images-4][css-fonts-4] URL request modifiers (w3c#8222)
Co-authored-by: Tab Atkins Jr. <jackalmage@gmail.com>
1 parent 9578e4d commit 8fb2816

File tree

3 files changed

+57
-24
lines changed

3 files changed

+57
-24
lines changed

css-fonts-4/Overview.bs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3254,7 +3254,7 @@ downloadable fonts to avoid large page reflows where possible.
32543254
Font fetching requirements</h4>
32553255

32563256
<div algorithm>
3257-
To <dfn>fetch a font</dfn> given a selected [=/url=] |url| for ''@font-face'' |rule|,
3257+
To <dfn>fetch a font</dfn> given a selected <<url>> |url| for ''@font-face'' |rule|,
32583258
[=fetch a style resource|fetch=] |url|,
32593259
with stylesheet being |rule|'s <a spec=cssom for=CSSRule>parent CSS style sheet</a>,
32603260
destination "font",

css-images-4/Overview.bs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ Fetching External Images {#fetching-images}
140140
-------------------------------------------
141141

142142
To <dfn>fetch an external image for a stylesheet</dfn>,
143-
given a [=/url=] |url| and {{CSSStyleSheet}} sheet,
143+
given a <<url>> |url| and {{CSSStyleSheet}} sheet,
144144
[=fetch a style resource=] given |url|,
145145
with stylesheet {{CSSStyleSheet}},
146146
destination "image",

css-values-4/Overview.bs

Lines changed: 55 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1069,46 +1069,79 @@ URL Modifiers</h4>
10691069
URL Processing Model</h4>
10701070

10711071
<div algorithm>
1072-
To <dfn export>fetch a style resource</dfn> from [=/url=] |url|,
1073-
given a {{CSSStyleSheet}} |sheet|,
1072+
To <dfn export>fetch a style resource</dfn> from [=/url=] or
1073+
<<url>> |urlValue|, given a {{CSSStyleSheet}} |sheet|,
10741074
a string |destination| matching a {{RequestDestination}},
10751075
a "no-cors" or "cors" |corsMode|,
10761076
and an algorithm |processResponse| accepting a [=/response=] and a null, failure or byte
10771077
stream:
10781078

10791079
1. Let |environmentSettings| be |sheet|'s [=relevant settings object=].
10801080

1081-
3. Let |documentBase| be |environmentSettings|'s [=API base URL=].
1081+
2. Let |base| be |sheet|'s <a spec=cssom>stylesheet base URL</a> if it is not null, otherwise
1082+
|environmentSettings|'s [=API base URL=]. [[CSSOM]]
10821083

1083-
4. Let |base| be |sheet|'s <a spec=cssom>stylesheet base URL</a>. [[CSSOM]]
1084-
1085-
5. Let |referrer| be |documentBase|.
1086-
1087-
6. If |base| is null, set |base| to |documentBase|.
1088-
1089-
7. Let |parsedUrl| be the result of the [=URL parser=] steps with |url| and |base|.
1084+
3. Let |parsedUrl| be the result of the [=URL parser=] steps with |urlValue|'s [=/url=] and |base|.
10901085
If the algorithm returns an error, return.
10911086

1092-
8. If |corsMode| is "cors", set |referrer| to |sheet|'s
1093-
<a spec=cssom>location</a>. [[CSSOM]]
1094-
1095-
9. Let |req| be a new [=/request=] whose [=request/url=] is |parsedUrl|, whose
1087+
4. Let |req| be a new [=/request=] whose [=request/url=] is |parsedUrl|, whose
10961088
[=request/destination=] is |destination|, [=request/mode=] is |corsMode|,
10971089
[=request/origin=] is |environmentSettings|'s [=environment settings object/origin=],
10981090
[=request/credentials mode=] is "same-origin", [=request/use-url-credentials flag=] is
10991091
set, [=request/client=] is |environmentSettings|, and whose [=request/referrer=] is
1100-
|referrer|.
1092+
|environmentSettings|'s [=API base URL=].
1093+
1094+
5. [=Apply request modifiers from URL value=] given |req| and |urlValue|.
11011095

1102-
10. If |sheet|'s <a spec=cssom>origin-clean flag</a> is set, set |req|'s
1103-
[=request/initiator type=] to "css". [[CSSOM]]
1096+
6. If |req|'s [=request/mode=] is "cors",
1097+
set |req|'s [=request/referrer=] to |sheet|'s <a spec=cssom>location</a>. [[CSSOM]]
11041098

1105-
11. [=/Fetch|fetching=] |req|, with [=fetch/processresponseconsumebody=] set to
1106-
|processResponse|.
1099+
7. If |sheet|'s <a spec=cssom>origin-clean flag</a> is set,
1100+
set |req|'s [=request/initiator type=] to "css". [[CSSOM]]
1101+
1102+
8. [=/Fetch=] |req|,
1103+
with [=fetch/processresponseconsumebody=] set to |processResponse|.
11071104
</div>
11081105

1109-
Note: Resources loaded through CSS style sheets
1110-
are cached and cleared the same as any other resources
1111-
linked from the document.
1106+
<h4 id='request-url-modifiers'>
1107+
Request URL Modifiers</h4>
1108+
1109+
The <dfn><<request-url-modifier>></dfn>s represent <<url-modifier>>s
1110+
that affect the resource's [=/request=].
1111+
Each <<request-url-modifier>> has a <dfn>request modifier steps</dfn>
1112+
which accepts a [=/request=].
1113+
1114+
<pre class=prod>
1115+
<<request-url-modifier>> = <<crossorigin-modifier>> | <<integrity-modifier>> | <<referrerpolicy-modifier>>
1116+
<<crossorigin-modifier>> = crossorigin(anonymous | use-credentials)
1117+
<<integrity-modifier>> = integrity(<<string>>)
1118+
<<referrerpolicy-modifier>> = referrerpolicy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url)
1119+
</pre>
1120+
1121+
<dl dfn-for="<<request-url-modifier>>">
1122+
<dt><dfn><<crossorigin-modifier>></dfn> = <dfn function lt="crossorigin()">crossorigin</dfn>(<dfn value>anonymous</dfn> | <dfn value>use-credentials</dfn>)
1123+
<dd>The [=request modifier steps=] for this modifier given [=/request=] |req| are:
1124+
1. Set [=/request=]'s [=request/mode=] to "cors".
1125+
1126+
2. If the given value is ''use-credentials'', set [=/request=]'s
1127+
[=request/credentials mode=] to "include".
1128+
1129+
<dt><dfn><<integrity-modifier>></dfn> = <dfn function lt="integrity()">integrity</dfn>(<<string>>)
1130+
<dd>The [=request modifier steps=] for this modifier given [=/request=] |req| are to set
1131+
[=/request=]'s [=request/integrity metadata=] to the given <<string>>.
1132+
1133+
<dt><dfn><<referrerpolicy-modifier>></dfn> = <dfn function lt="referrerpolicy()">referrerpolicy</dfn>(<dfn value>no-referrer</dfn> | <dfn value>no-referrer-when-downgrade</dfn> | <dfn value>same-origin</dfn> | <dfn value>origin</dfn> | <dfn value>strict-origin</dfn> | <dfn value>origin-when-cross-origin</dfn> | <dfn value>strict-origin-when-cross-origin</dfn> | <dfn value>unsafe-url</dfn>)
1134+
<dd>The [=request modifier steps=] for this modifier given [=/request=] |req| are to set
1135+
[=/request=]'s [=request/referrer policy=] to the {{ReferrerPolicy}} that matches the given value.
1136+
</dl>
1137+
1138+
<div algorithm>
1139+
To <dfn>apply request modifiers from URL value</dfn>
1140+
given a [=/request=] |req|
1141+
and a <<url>> |url|,
1142+
call the [=request modifier steps=] for |url|'s <<request-url-modifier>>s in sequence
1143+
given |req|.
1144+
</div>
11121145

11131146
<h2 id="numeric-types">
11141147
Numeric Data Types</h2>

0 commit comments

Comments
 (0)