Skip to content

Commit a31d15a

Browse files
committed
CLEAR: Reload sandboxed contexts after clearing.
1 parent 5b7a9af commit a31d15a

File tree

1 file changed

+54
-3
lines changed

1 file changed

+54
-3
lines changed

specs/clear-site-data/index.src.html

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,20 +39,33 @@ <h1>Clear Site Data</h1>
3939
text: IDBDatabase; url: idl-def-IDBDatabase
4040
spec: HTML5; urlPrefix: http://www.w3.org/TR/html5/
4141
type: dfn
42+
urlPrefix: embedded-content-0.html
43+
text: an iframe srcdoc document
4244
urlPrefix: browsers.html
4345
text: ancestor browsing context
4446
text: active document
4547
text: browsing context
48+
text: browsing context container
4649
text: creating a new document object; url: create-a-document-object
4750
text: nested browsing context
4851
text: active sandboxing flag set
4952
text: parse a sandboxing directive; url: sandboxing:parse-a-sandboxing-directive
53+
text: replacement enabled
54+
text: exceptions enabled
55+
text: source browsing context
56+
text: reload-triggered navigation; url: reload-triggered-navigation
5057
urlPrefix: webappapis.html
5158
text: environment settings object; url: settings-object
5259
text: incumbent settings object
5360
text: responsible document
5461
text: responsible browsing context
5562
text: relevant settings object for a script
63+
type: interface
64+
urlPrefix: browsers.html
65+
text: Location
66+
type: method
67+
urlPrefix: browsers.html
68+
text: reload(); for: Location; url: dom-location-reload
5669
spec: HTML; urlPrefix: https://html.spec.whatwg.org/multipage/
5770
urlPRefix: webstorage.html
5871
type: dfn
@@ -427,6 +440,10 @@ <h3 id="clear">
427440
7. Execute [[#clear-cache]] on <var>response</var>'s {{Response/url}}'s
428441
<a>origin</a>, with <var>subdomain state</var>.
429442

443+
8. If <var>exclusions</var> does not contain "<code>contexts</code>", execute
444+
[[#reload-contexts]] on <var>response</var>'s {{Response/url}}'s
445+
<a>origin</a>, with <var>subdomain state</var>.
446+
430447
<h4 id="neuter-contexts">
431448
Neuter browsing contexts matching <var>origin</var> with
432449
<var>subdomain state</var>
@@ -436,16 +453,21 @@ <h4 id="neuter-contexts">
436453
of either <a><code>Include Subdomains</code></a> or <a><code>Exclude
437454
Subdomains</code></a>, this algorithm walks through the set of <a>browsing
438455
contexts</a> which the user agent knows about, and sandboxes each in order
439-
to prevent them from recreating wiped data (from in-memory JavaScript
440-
variables, for instance):
456+
to prevent them from recreating cleared data (from in-memory JavaScript
457+
variables, for instance). Once data is cleared, the affected browsing
458+
contexts will be hard-reloaded, as defined in [[#reload-contexts]]:
441459

442460
1. For each <var>context</var> in the user agent's set of <a>browsing
443461
contexts</a>:
444462

445463
1. Let <var>document</var> be <var>context</var>'s <a>active
446464
document</a>.
447465

448-
2. If [[#matches-origin]] returns <a><code>Matches</code></a> when
466+
2. While <var>document</var> is <a>an <code>iframe srcdoc</code>
467+
document</a>, let <var>document</var> be the <a>active document</a>
468+
of <var>document</var>'s <a>browsing context container</a>.
469+
470+
3. If [[#matches-origin]] returns <a><code>Matches</code></a> when
449471
executed on <var>context</var>'s <a>origin</a>, <var>origin</var>, and
450472
<code>subdomain state</code>:
451473

@@ -456,6 +478,35 @@ <h4 id="neuter-contexts">
456478
ISSUE: This won't be an atomic set of operations. How can we prevent collusion
457479
between browsing contexts to potentially bypass neutering?
458480

481+
<h4 id="reload-contexts">
482+
Reload browsing contexts matching <var>origin</var> with
483+
<var>subdomain state</var>
484+
</h4>
485+
486+
Given an <a>origin</a> (<var>origin</var>) and a <var>subdomain state</var>
487+
of either <a><code>Include Subdomains</code></a> or <a><code>Exclude
488+
Subdomains</code></a>, this algorithm walks through the set of <a>browsing
489+
contexts</a> which the user agent knows about and reloads each of them:
490+
491+
1. For each <var>context</var> in the user agent's set of <a>browsing
492+
contexts</a>:
493+
494+
1. Let <var>document</var> be <var>context</var>'s <a>active
495+
document</a>.
496+
497+
2. While <var>document</var> is <a>an <code>iframe srcdoc</code>
498+
document</a>, let <var>document</var> be the <a>active document</a>
499+
of <var>document</var>'s <a>browsing context container</a>.
500+
501+
3. If [[#matches-origin]] returns <a><code>Matches</code></a> when
502+
executed on <var>context</var>'s <a>origin</a>, <var>origin</var>, and
503+
<code>subdomain state</code>:
504+
505+
1. Navigate <var>context</var> to <var>document</var>'s {{URL}} with
506+
<a>replacement enabled</a> and <a>exceptions enabled</a>. The
507+
<a>source browsing context</a> is <var>context</var>. This is a
508+
<a>reload-triggered navigation</a>.
509+
459510
<h4 id="clear-cache">
460511
Clear cache for <var>origin</var> with <var>subdomain state</var>
461512
</h4>

0 commit comments

Comments
 (0)