CARVIEW |
Select Language
HTTP/2 200
date: Thu, 24 Jul 2025 19:50:32 GMT
content-type: text/html; charset=utf-8
cache-control: max-age=0, private, must-revalidate
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
link: ; rel=preload; as=fetch; crossorigin=use-credentials
referrer-policy: no-referrer-when-downgrade
server-timing: issue_layout-fragment;desc="issue_layout fragment";dur=243.999269,issue_conversation_content-fragment;desc="issue_conversation_content fragment";dur=1071.525779,issue_conversation_sidebar-fragment;desc="issue_conversation_sidebar fragment";dur=54.401135,nginx;desc="NGINX";dur=1.256088,glb;desc="GLB";dur=100.541154
strict-transport-security: max-age=31536000; includeSubdomains; preload
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With, Accept,Accept-Encoding, Accept, X-Requested-With
x-content-type-options: nosniff
x-frame-options: deny
x-voltron-version: a2eb102
x-xss-protection: 0
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=sg3DmvVEvteatOfWOkmdlfWnh%2FLg0sKpbK5db058jQt%2BLvl6QbGSnUrHz1V2wCaIKQgwLl%2BqYsgyePNBISP%2BZgkXOG92gYFDTg%2FVdQdEk%2B62QNE5a39ieQIKRsTfrr2lIeCDLHI046LI%2FvtxHp5aqaPHVvyQsR71wS1rRcWYFViERqsBG5DMUjA0bDOWc1ub8Em%2F8hlOYttgfauO0jYeoIXiWmte5kK9lQohoN%2F7Y56ei%2F74aU6ma2KW7JLcKCJkUsT54aJlqRR0K8N0DWKPOA%3D%3D--c9Hs6V8sVR2RO2lx--kUgN%2BzQA41XqYdgcpkHHfg%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.2069947799.1753386631; Path=/; Domain=github.com; Expires=Fri, 24 Jul 2026 19:50:31 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Fri, 24 Jul 2026 19:50:31 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: 8D36:63E3F:16454:1D637:68828E87
[css-view-transitions-1] Behaviour of the `finished` promise Β· Issue #7956 Β· w3c/csswg-drafts Β· GitHub
No one assignedNo typeNo projectsNo milestoneNone yetNo branches or pull requests
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 731
Closed
Labels
css-view-transitions-1View Transitions; Bugs onlyView Transitions; Bugs only
Description
const transition = document.createViewTransition(updateDOMCallback);
await transition.finished;
There are two other promises:
domUpdated
- resolves with the promise returned byupdateDOMCallback
.ready
- the transition has successfully prepared, and the pseudo-elements can now be targeted with JavaScript (eg web animation API). It will reject if the transition cannot be ready, either due to misconfiguration, or ifupdateDOMCallback
returns a rejected promise.
I see two possible behaviours for finished
:
Option 1: Fulfill on full uninterrupted completion of the transition
If the transition animation does not fully play through, finished
rejects. This can happen if:
updateDOMCallback
rejects - a failed DOM update is not transitioned- A misconfiguration means that, although the DOM successfully updated, a transition cannot be performed. For example, multiple elements have the same
view-transition-name
, when they're supposed to be unique. - The transition is aborted due to a newer transition.
Option 2: Fulfill on the 'end state' being visible to the user
The 'end state' being the state after a successful DOM change. This means finished
will resolve with whatever happens first:
- The transition plays through to completion
- The transition is aborted, so it visually appears to skip to the end
finished
will only reject if updateDOMCallback
returns a rejected promise. In this case the DOM change failed, so it does not reach a valid end state.
I originally spec'd option 1, but I've been convinced on option 2, since this is slower in spirit to animation.finished
, which will resolve even if the animation is skipped to the end (via animation.finish()
).
birtles
Metadata
Metadata
Assignees
Labels
css-view-transitions-1View Transitions; Bugs onlyView Transitions; Bugs only
Type
Projects
Milestone
Relationships
Development
Issue actions
You canβt perform that action at this time.