diff --git a/spec.bs b/spec.bs
index 533584c..eb57a0f 100644
--- a/spec.bs
+++ b/spec.bs
@@ -2436,6 +2436,45 @@ in the [[#nested-traversables-intro]].
1. Return |navigables|.
+
+ Modify the [=Document/inclusive ancestor navigables=] algorithm to take a new optional
+ [=boolean=] argument unfenced that defaults to
+ false.
+
+ Further rewrite step 1 of this algorithm to:
+
+ 1. Let navigables be document's [=Document/ancestor
+ navigables=] with [=an-unfenced|unfenced=] set to
+ [=inclusive-an-unfenced|unfenced=].
+
+
+
+ Modify the [=Document/ancestor navigables=] algorithm to take a new optional [=boolean=]
+ argument unfenced that defaults to false, and rewrite the algorithm
+ like so:
+
+ 1. Let |navigable| be |document|'s [=node navigable=]'s [=navigable/parent=].
+
+ 1. If |navigable| is null and [=an-unfenced|unfenced=] is true, set |navigable| to |document|'s
+ [=node navigable=]'s [=navigable/traversable navigable=]'s [=traversable navigable/unfenced
+ parent=].
+
+ 1. Let |ancestors| be an empty list.
+
+ 1. While |navigable| is not null:
+
+ 1. [=list/Prepend=] |navigable| to |ancestors|.
+
+ 1. Set |navigable| to |navigable|'s [=navigable/parent=].
+
+ 1. If |navigable| is null and [=an-unfenced|unfenced=] is true, set |navigable| to
+ |navigable|'s [=navigable/traversable navigable=]'s [=traversable navigable/unfenced
+ parent=].
+
+ 1. Return |ancestors|.
+
+
+
Modifications to the focusing algorithms
The [[HTML]] standard defines how to handle focusing elements and {{Window}}s, both by user gesture
@@ -2863,8 +2902,10 @@ CORP violation report=] algorithm, as leaving it unfenced may cause a privacy le
Insert these steps immediately after step 20, the step that goes [=in parallel=], so that what
follows are the first steps that run [=in parallel=] in the patched algorithm:
- 1. If |url| is a [=urn uuid=] and |navigable| is a [=fenced navigable container/fenced
- navigable=]:
+ 1. If |url| is a [=urn uuid=], |navigable| is a [=fenced navigable container/fenced navigable=],
+ and sourceDocument's [=node navigable=] is in |navigable|'s
+ [=navigable/active document=]'s [=Document/ancestor navigables=] with [=an-unfenced|
+ unfenced=] set to true:
1. Let |config| be the result of [=fenced frame config mapping/finding a
config=] in sourceDocument's [=node navigable=]'s [=navigable/traversable
@@ -2879,8 +2920,8 @@ CORP violation report=] algorithm, as leaving it unfenced may cause a privacy le
1. Set |config|'s [=fenced frame config/embedder shared storage context=] to
|sharedStorageContext|.
- 1. Assert: |sourceSnapshotParams|'s [=source snapshot params/target fenced frame config=] is
- null.
+ 1. [=Assert=]: |sourceSnapshotParams|'s [=source snapshot params/target fenced frame config=]
+ is null.
1. Set |sourceSnapshotParams|'s [=source snapshot params/target fenced frame
config=] to |config|.
@@ -2892,9 +2933,9 @@ CORP violation report=] algorithm, as leaving it unfenced may cause a privacy le
1. Run steps in |config|'s [=fenced frame config/on navigate callback=].
- 1. If |navigable| is a [=fenced navigable container/fenced navigable=] and
- sourceDocument's [=node navigable=] is in |navigable|'s
- [=navigable/active document=]'s [=Document/ancestor navigables=]:
+ 1. If |navigable| is a [=fenced navigable container/fenced navigable=] and sourceDocument's [=node navigable=] is in |navigable|'s [=navigable/active
+ document=]'s [=Document/ancestor navigables=] with [=an-unfenced|unfenced=] set to true:
1. Let |config| be a new [=fenced frame config=] with the following [=struct/items=]:
@@ -2919,8 +2960,8 @@ CORP violation report=] algorithm, as leaving it unfenced may cause a privacy le
: [=fenced frame config/effective enabled permissions=]
:: null
- 1. Assert: |sourceSnapshotParams|'s [=source snapshot params/target fenced frame config=] is
- null.
+ 1. [=Assert=]: |sourceSnapshotParams|'s [=source snapshot params/target fenced frame config=]
+ is null.
1. Set |sourceSnapshotParams|'s [=source snapshot params/target fenced frame config=] to
|config|.