diff --git a/css-view-transitions-2/Overview.bs b/css-view-transitions-2/Overview.bs index cb85d182449..ed9bc813d28 100644 --- a/css-view-transitions-2/Overview.bs +++ b/css-view-transitions-2/Overview.bs @@ -20,6 +20,7 @@ Markup Shorthands: css yes, markdown yes
@@ -267,8 +268,17 @@ The viewTransition [=getter steps=] are
 
 
 # Algorithms # {#algorithms}
+## Data Structures ## {#concepts}
 
-## Additions to {{ViewTransition}} ## {#view-transitions-extension}
+### Additions to {{Document}} ### {#additions-to-document}
+
+	A {{Document}} additionally has:
+
+	
+ : is revealed + :: a boolean, initially false. + +### Additions to {{ViewTransition}} ## {#view-transitions-extension} A {{ViewTransition}} additionally has:
@@ -282,37 +292,26 @@ The viewTransition [=getter steps=] are Prepend a step at the beginning of the task [=queue a global task|queued=] on |navigable|'s [=active window=] when applying the history step (14.11.1, here): - If |changingNavigationContinuation| update-only is false, then [=setup outbound cross-document view transition=] given |oldDocument|, |newDocument| and the remaining steps and return from these steps. + If |changingNavigationContinuation| update-only is false and |targetEntry| is not |navigable|'s [=current session history entry=], then [=setup outbound cross-document view transition=] given |oldDocument|, |newDocument| and the remaining steps and return from these steps. Note: This would wait until a transition is captured or skipped before proceeding to unloading the old document and activating the new one. -
- Run the following step at the end of [=unblock rendering=]: - - 1. [=reveal document|reveal=] |document|. - - Issue: Reword the text in the [=render-blocked=] definition, to call [=reveal document=] |document| if the [=implementation-defined=] timeout value has been exceeded. -
- -
- In the Script processing model section, - move unblock rendering step to the end. +
+ Run the following step in [=update the rendering|updating the renedering=], before [=running the animation frame callbacks=]: - Note: this ensures that the [=reveal document=] steps are called after firing script `load` or `error` events. + 1. For each [=fully active=] {{Document}} |doc| in |docs|, [=reveal document|reveal=] |doc|.
- Run the following step in [=Document/reactivate=], before step 4 (querying for [=page showing=]): + Run the following step at the end of [=Document/reactivate=]: - 1. [=Reveal document|reveal=] |document|. + 1. Set |document|'s [=is revealed=] to false.
To reveal {{Document}} |document|: - 1. Assert: |document|'s [=page showing=] is false. - - 1. If |document| is [=render-blocked=], then return. + 1. If |document|'s [=document/is revealed=] is true, then return. 1. Let |transition| be the result of getting the [=inbound cross-document view-transition=] for |document|. @@ -322,6 +321,8 @@ The viewTransition [=getter steps=] are using {{PageRevealEvent}}. 1. If |transition| is not null, then [=activate view transition|activate=] |transition|. + + 1. Set |document|'s [=document/is revealed=] to true.
## Setting up and activating the cross-document view transition ## {#setting-up-and-activating-the-cross-document-view-transition} @@ -416,7 +417,7 @@ To prevent cross-origin issues, at this point cross-document view transitions ca same-origin navigations. As discussed in WICG/view-transitions#200, this still presents two potential threats: -1. The Cross-Origin-Opener-Policy of both documents might be different. +1. The [=environment settings object/cross-origin isolated capability=] in both documents might be different. This can cause a situation where a {{Document}} that is [=environment settings object/cross-origin isolated capability|cross-origin isolated=] can read image data from a document that is not cross-origin isolated. This is already mitigated in [[css-view-transitions-1#sec], as the same restriction applies for captured cross-origin iframes. @@ -433,6 +434,11 @@ this still presents two potential threats: Note: this only applies to server-side redirects. A client-side redirect, e.g. using [^meta/http-equiv/refresh^], is equivalent to a new navigation. +1. This feature exposes more information to CSS, as so far CSS was not aware of anything navigation-related. + This can raise concerns around safety 3rd-party CSS. However, as a general rule, 3rd-party stylesheets should come + from trusted sources to begin with, as CSS can learn about the document or change it in many ways. + + See Issue #8684 and WICG/view-transitions#200 for detailed discussion.