diff --git a/css-navigation-1/Overview.bs b/css-navigation-1/Overview.bs
index ef8f16040ea..1db4cf38929 100644
--- a/css-navigation-1/Overview.bs
+++ b/css-navigation-1/Overview.bs
@@ -68,12 +68,12 @@ The ''@route'' rule can be defined in one of two ways:
: with the pattern descriptor
:: in this case the URL pattern represented is
the one represented by the <baseURL descriptor is not given then one is created from
the [=style resource base URL=] of the rule.
@@ -185,14 +185,14 @@ The syntax of the ''@navigation'' rule is:
with <
- <
The above grammar is purposely very loose for forwards-compatibility reasons,
@@ -231,106 +231,24 @@ as follows:
:: The result is whether the result of
[=URL pattern/match|match a URL pattern=] is non-null
given urlPattern as
- the [=navigation location URL pattern=] of <from: when it matches in the old page.
-
- * its [=activation=] is non-null,
- the document's [=has been revealed=] is false or
- was false at the start of the current [=task=],
- and the activation's {{NavigationActivation/from}}'s
- {{NavigationHistoryEntry/url}}
- is non-null and
- [=URL pattern/match|match a URL pattern=] is non-null when
- given urlPattern as
- the [=navigation location URL pattern=] of <from: when it matches in the new page.
+ the [=current from URL=] from of the document is non-null and
+ [=URL pattern/match|match a URL pattern=] is non-null when
+ given urlPattern as
+ the [=navigation location URL pattern=] of <to: when it matches in the old page.
-
- * its [=activation=] is non-null,
- the document's [=has been revealed=] is false or
- was false at the start of the current [=task=],
- and the activation's {{NavigationActivation/entry}}'s
- {{NavigationHistoryEntry/url}}
- is non-null and
- [=URL pattern/match|match a URL pattern=] is non-null
- given urlPattern as
- the [=navigation location URL pattern=] of <to: when it matches in the new page.
-
- ISSUE: The above definitions of from and to apparently don't work right
- if you start a same-document navigation (e.g., with {{History/pushState}})
- in the middle of a cross-document navigation.
-
- ISSUE: Generally improve integration with the HTML spec for these definitions,
- instead of monkeypatching.
- This includes the interaction with [=has been revealed=]
- and the interaction with the {{pageswap}} event,
- and other things where this section links to non-exported definitions.
+ the [=current to URL=] to of the document is non-null and
+ [=URL pattern/match|match a URL pattern=] is non-null when
+ given urlPattern as
+ the [=navigation location URL pattern=] of <Current navigation URLs
+
+Both the ''@navigation'' rule and the '':link-to()'' pseudo-class
+rely on the following definitions of
+the [=current from URL=] and [=current to URL=].
+
+The current from URL of a [=/document=] is a URL or null.
+It is defined as follows:
+
+1. If the [=document's navigation API=] of the document is non-null and
+ its [=transition=] is non-null,
+ its [=from entry=]'s {{NavigationHistoryEntry/url}}.
+
+ NOTE: This part is for when the old document in the navigation
+ is still the current document.
+
+1. If the [=document's navigation API=] of the document is non-null and
+ its [=activation=] is non-null,
+ the document's [=has been revealed=] is false or
+ was false at the start of the current [=task=],
+ the activation's {{NavigationActivation/from}}'s
+ {{NavigationHistoryEntry/url}}.
+
+ NOTE: This part is for when the new document in the navigation
+ has become the current document.
+
+1. Otherwise, null.
+
+ NOTE: The previous two branches can also produce null results.
+
+The current to URL of a [=/document=] is a URL or null.
+It is defined as follows:
+
+1. If the [=document's navigation API=] of the document is non-null and
+ its [=ongoing navigate event=] is non-null:
+
+ 1. if the {{pageswap}} event has fired since that navigation began,
+ and its {{PageSwapEvent/activation}} was non-null,
+ and that {{PageSwapEvent/activation}}'s
+ {{NavigationActivation/entry}}'s
+ {{NavigationHistoryEntry/url}} is non-null,
+ then that
+ {{NavigationHistoryEntry/url}}.
+
+ NOTE: This part does expose the result of redirects.
+
+ ISSUE: Is the final "non-null" check needed?
+
+ 1. otherwise, the [=ongoing navigate event=]'s
+ {{NavigateEvent/destination}}'s
+ {{NavigationDestination/url}}
+
+ NOTE: This part does not expose the result of redirects.
+
+ ISSUE: This assumes that the [=ongoing navigate event=]
+ and the [=transition=] have the same lifetime,
+ but this isn't really
+ true if the event is intercepted.
+ After
+ whatwg/html#11690 /
+ whatwg/html#11692.
+ we could probably define this more like "from" above.
+ But which lifetime is the one we want?
+
+ NOTE: This part is for when the old document in the navigation
+ is still the current document.
+
+1. If the [=document's navigation API=] of the document is non-null and
+ its [=activation=] is non-null,
+ the document's [=has been revealed=] is false or
+ was false at the start of the current [=task=],
+ and the activation's {{NavigationActivation/entry}}'s
+ {{NavigationHistoryEntry/url}}.
+
+ NOTE: This part is for when the new document in the navigation
+ has become the current document.
+
+1. Otherwise, null.
+
+ NOTE: The previous two branches can also produce null results.
+
+ISSUE: The above definitions of from and to apparently don't work right
+if you start a same-document navigation (e.g., with {{History/pushState}})
+in the middle of a cross-document navigation.
+
+ISSUE: Generally improve integration with the HTML spec for these definitions,
+instead of monkeypatching.
+This includes the interaction with [=has been revealed=]
+and the interaction with the {{pageswap}} event,
+and other things where this section links to non-exported definitions.
+
The ''url-pattern()'' function