@@ -39,20 +39,33 @@ <h1>Clear Site Data</h1>
39
39
text: IDBDatabase; url: idl-def-IDBDatabase
40
40
spec: HTML5; urlPrefix: http://www.w3.org/TR/html5/
41
41
type: dfn
42
+ urlPrefix: embedded-content-0.html
43
+ text: an iframe srcdoc document
42
44
urlPrefix: browsers.html
43
45
text: ancestor browsing context
44
46
text: active document
45
47
text: browsing context
48
+ text: browsing context container
46
49
text: creating a new document object; url: create-a-document-object
47
50
text: nested browsing context
48
51
text: active sandboxing flag set
49
52
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
50
57
urlPrefix: webappapis.html
51
58
text: environment settings object; url: settings-object
52
59
text: incumbent settings object
53
60
text: responsible document
54
61
text: responsible browsing context
55
62
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
56
69
spec: HTML; urlPrefix: https://html.spec.whatwg.org/multipage/
57
70
urlPRefix: webstorage.html
58
71
type: dfn
@@ -427,6 +440,10 @@ <h3 id="clear">
427
440
7. Execute [[#clear-cache]] on < var > response</ var > 's {{Response/url}}'s
428
441
< a > origin</ a > , with < var > subdomain state</ var > .
429
442
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
+
430
447
< h4 id ="neuter-contexts ">
431
448
Neuter browsing contexts matching < var > origin</ var > with
432
449
< var > subdomain state</ var >
@@ -436,16 +453,21 @@ <h4 id="neuter-contexts">
436
453
of either < a > < code > Include Subdomains</ code > </ a > or < a > < code > Exclude
437
454
Subdomains</ code > </ a > , this algorithm walks through the set of < a > browsing
438
455
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]]:
441
459
442
460
1. For each < var > context</ var > in the user agent's set of < a > browsing
443
461
contexts</ a > :
444
462
445
463
1. Let < var > document</ var > be < var > context</ var > 's < a > active
446
464
document</ a > .
447
465
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
449
471
executed on < var > context</ var > 's < a > origin</ a > , < var > origin</ var > , and
450
472
< code > subdomain state</ code > :
451
473
@@ -456,6 +478,35 @@ <h4 id="neuter-contexts">
456
478
ISSUE: This won't be an atomic set of operations. How can we prevent collusion
457
479
between browsing contexts to potentially bypass neutering?
458
480
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
+
459
510
< h4 id ="clear-cache ">
460
511
Clear cache for < var > origin</ var > with < var > subdomain state</ var >
461
512
</ h4 >
0 commit comments