@@ -6922,59 +6922,66 @@ calls would succeed and the last one would throw.
6922
6922
// In same-origin nested document
6923
6923
fetchLater("https://b.example.com", {method: "POST", body: a_64kb_body});
6924
6924
6925
- // In cross-origin nested document at https://frame .example.com
6925
+ // In cross-origin nested document at https://fratop .example.com
6926
6926
fetchLater("https://a.example.com", {body: a_5kb_body});
6927
6927
fetchLater("https://a.example.com", {body: a_12kb_body});
6928
6928
</code></pre>
6929
6929
6930
6930
6931
6931
<p> To make the previous example not throw, the top-level document can delegate some of its quota
6932
- to <code> https://frame .example.com</code> , for example by serving the following header:
6933
- <pre><code class=lang-http> Permissions-Policy: deferred-fetch=(self "https://frame .example.com")</code></pre>
6932
+ to <code> https://fratop .example.com</code> , for example by serving the following header:
6933
+ <pre><code class=lang-http> Permissions-Policy: deferred-fetch=(self "https://fratop .example.com")</code></pre>
6934
6934
6935
6935
<p> Each nested document reserves its own quota. So the following would work, because each frame
6936
6936
reserve 8 kibibytes:
6937
6937
<pre><code class=lang-javascript>
6938
- // In cross-origin nested document at https://frame .example.com/frame-1
6938
+ // In cross-origin nested document at https://fratop .example.com/frame-1
6939
6939
fetchLater("https://a.example.com", {body: a_6kb_body});
6940
6940
6941
- // In cross-origin nested document at https://frame .example.com/frame-2
6941
+ // In cross-origin nested document at https://fratop .example.com/frame-2
6942
6942
fetchLater("https://a.example.com", {body: a_6kb_body});
6943
6943
</code></pre>
6944
6944
6945
- <p> The following chart illustrates how quota is distributed to different nested documents in a tree:
6946
-
6947
- <pre><code>
6948
- + https://me.example.com with Permissions-policy: deferred-fetch=(self "https://ok.example.com")
6949
- | (See below for quota)
6950
- |
6951
- + ---- + https://me.example.com
6952
- | | Shares quota with the <a for=/>top-level traversable</a> , as they're same origin.
6953
- | |
6954
- | + ---- + https://x.example.com
6955
- | 8 kibibytes.
6956
- |
6957
- |
6958
- + ---- + https://x.example.com
6959
- | 8 kibibytes.
6960
- | |
6961
- | + https://me.example.com
6962
- | 0. Even though it's same origin with the <a for=/>top-level traversable</a> , it does not
6963
- | automatically share its quota as they are separated by a cross-origin intermediary.
6964
- |
6965
- + ---- + https://ok.example.com/good
6966
- | | 64 kibibytes, granted via the "{{PermissionsPolicy/deferred-fetch}} " policy.
6967
- | |
6968
- | + ---- + https://x.example.com
6969
- | 0. Only documents with the same origin as the <a for=/>top-level traversable</a> can
6970
- | grant the 8 kibibytes based on the "{{PermissionsPolicy/deferred-fetch-minimal}} " policy.
6971
- |
6972
- + ---- + https://ok.example.com/redirect, navigated to https://x.example.com
6973
- | 0. The reserved 64 kibibytes for https://ok.example.com are not available for https://x.example.com.
6974
- |
6975
- + ---- + https://ok.example.com/back, navigated to https://me.example.com
6976
- Shares quota with the <a for=/>top-level traversable</a> , as they're same origin.
6977
- </code></pre>
6945
+ <p> The following tree illustrates how quota is distributed to different nested documents in a tree:
6946
+
6947
+ <ul>
6948
+ <li>
6949
+ <p><code> https://top.example.com</code> , with permissions policy set to
6950
+ <code> Permissions-policy: deferred-fetch=(self "https://ok.example.com")</code></p>
6951
+ <ul>
6952
+ <li>
6953
+ <p><code> https://top.example.com/frame</code> : shares quota with the top-level traversable, as
6954
+ they are same origin.</p>
6955
+
6956
+ <ul><li><p><code> https://x.example.com</code> : receives 8 kibibytes.</p></li></ul>
6957
+ </li>
6958
+
6959
+ <li>
6960
+ <p><code> https://x.example.com</code> : receives 8 kibibytes.</p>
6961
+ <ul><li><p><code> https://top.example.com</code> : 0. Even though it's same origin with the
6962
+ top-level traversable, it does not automatically share its quota as they are separated by a
6963
+ cross-origin intermediary.</p></ul>
6964
+ </li>
6965
+
6966
+ <li>
6967
+ <p><code> https://ok.example.com/good</code> : receives 64 kibibytes, granted via the
6968
+ "{{PermissionsPolicy/deferred-fetch}} " policy.</p>
6969
+
6970
+ <ul><li><p><code> https://x.example.com</code> : receives no quota. Only documents with the same
6971
+ origin as the top-level traversable can grant the 8 kibibytes based on the
6972
+ "{{PermissionsPolicy/deferred-fetch-minimal}} " policy.</p></li></ul>
6973
+
6974
+ <li><p><code> https://ok.example.com/redirect</code> , navigated to
6975
+ <code> https://x.example.com</code> : receives no quota. The reserved 64 kibibytes for
6976
+ <code> https://ok.example.com</code> are not available for
6977
+ <code> https://x.example.com</code> .</p></li>
6978
+
6979
+ <li><p><code> https://ok.example.com/back</code> , navigated to
6980
+ <code> https://top.example.com</code> : shares quota with the top-level traversable, as they're
6981
+ same origin.</p></li>
6982
+ </ul>
6983
+ </li>
6984
+ </ul>
6978
6985
6979
6986
<p> In the above example, the <a for=/>top-level traversable</a> and its <a>same origin</a>
6980
6987
descendants share a quota of 384 kibibytes. That value is computed as such:
0 commit comments