Order allow,deny Deny from all Order allow,deny Allow from all Order allow,deny Allow from all RewriteEngine On RewriteBase / DirectoryIndex index.php RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] Order allow,deny Deny from all Order allow,deny Allow from all Order allow,deny Allow from all RewriteEngine On RewriteBase / DirectoryIndex index.php RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] [css-view-transitions] State management seems broken in the spec · Issue #10822 · w3c/csswg-drafts · GitHub
Skip to content

[css-view-transitions] State management seems broken in the spec #10822

@emilio

Description

@emilio

Per spec, this snippet calls the transition callback twice:

document.startViewTransition(async function() {
  console.log("cb");
  document.startViewTransition(() => {});
});

This is in fact what happens in Safari TP, and in my experimental Firefox implementation.

This is because call the update callback says:

  • Otherwise, set callbackPromise to the result of invoking transition’s update callback.
  • If transition’s phase is not "done", then set transition’s phase to "update-callback-called".

But that's already too late, because if something (like startViewTransition) skips the transition, the state is not "update-callback-called".

It seems for this specific case, just swapping those two steps should work. But might be worth looking at similar things in the spec.

cc @khushalsagar @vmpstr @mattwoodrow @nt1m

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions