LGTM3 Super excited about this work and solving those critical use cases (for both SPA and MPA). Thanks for tackling this!!
On Tue, Jan 24, 2023, 11:06 Mike West <mk...@chromium.org> wrote: > LGTM2. > > That said, I'd note Mozilla's desire in the standards position thread to > couple this with the multi-page transition work. I agree with your position > that the two can be decoupled, and I don't see anything that screams > back-compat risk skimming through the followup issues that the TAG created. > I likewise don't see anything that jumps out at me as locking us into any > particular design for a declarative version of this mechanism as our > friends in the TAG have pointed towards. > > Shipping this as an iterative step sounds like it satisfies some developer > interest, and give us valuable implementation experience that can inform > further development. Good luck landing it! > > -mike > > > On Mon, Jan 23, 2023 at 10:19 PM Mike Taylor <miketa...@chromium.org> > wrote: > >> LGTM1 >> >> On 1/23/23 2:26 PM, Khushal Sagar wrote: >> >> >> >> On Mon, Jan 23, 2023 at 1:55 PM Mike Taylor <miketa...@chromium.org> >> wrote: >> >>> Hi Khushal, >>> >>> On 1/19/23 3:12 PM, Khushal Sagar wrote: >>> >>> Contact emails >>> bo...@chromium.org, hvanops...@chromium.org, jakearchib...@chromium.org, >>> khushalsa...@chromium.org, vmp...@chromium.org >>> >>> Explainer >>> >>> https://github.com/WICG/view-transitions/blob/main/explainer.md >>> <https://github.com/WICG/shared-element-transitions/blob/main/explainer.md> >>> >>> Specification >>> >>> https://www.w3.org/TR/css-view-transitions-1 >>> >>> Summary >>> >>> View Transitions >>> <https://developer.chrome.com/docs/web-platform/view-transitions/> is >>> an API that enables the creation of polished transitions. Web developers >>> only need minimal effort to make transitions look nice. They can choose to >>> use some default animation properties, or they can customize their own >>> transition effects to achieve a desired transition experience. >>> >>> This is accomplished by leveraging user-agents’ ability to persist >>> visual representations of rendered output (i.e. snapshots) and blend them >>> with the live DOM state’s rendered output. The API also allows these >>> animations to be customized via standard CSS animation properties. >>> >>> Note that while this intent is limited to shipping an API for >>> same-document transitions (i.e. by using document.startViewTransition, as >>> outlined in the spec), there is ongoing work to provide this feature for >>> same-origin, cross-document navigations (MPA). MPA support will be added as >>> a follow up via a separate intent to ship. >>> >>> Blink component >>> >>> Blink>ViewTransitions >>> <https://bugs.chromium.org/p/chromium/issues/list?q=component%3ABlink%3EViewTransitions&can=2> >>> >>> TAG review >>> >>> https://github.com/w3ctag/design-reviews/issues/748 >>> >>> Can you confirm that all the follow-up issues >>> <https://github.com/w3ctag/design-reviews/issues/748#issuecomment-1379517669> >>> filed in response to feedback in this review are backwards-compatible with >>> what you propose to ship now? >>> >> >> Yes, most follow-up issues filed based on TAG feedback are about >> transitions initiated from navigations. This is part of the MPA work which >> we plan to ship as a follow up and it can be shipped independently of the >> same-document transitions covered by this intent. >> >> The only issue on that review which concerns same-document transitions is >> #8319 <https://github.com/w3c/csswg-drafts/issues/8319>, a syntax which >> would allow selecting a subset of generated pseudo-elements. This syntax >> addition can be made in a backwards-compatible way. >> >> Thanks, SGTM. >> >> >>> TAG review status >>> >>> Pending >>> >>> Risks >>> Interoperability and Compatibility >>> >>> Low. As a new feature, the primary risk is that other browsers do not >>> implement it. But since this is a progressive enhancement, sites should be >>> able to feature-detect and drop usage of the feature easily in browsers >>> where it is not supported without breaking any site functionality. >>> >>> This feature can be feature-detected by checking the existence of the >>> document.startViewTransition function: >>> >>> ```js >>> >>> if (!document.startViewTransition) { >>> >>> /* feature is not available */ >>> >>> } else { >>> >>> /* start transition */ >>> >>> } >>> >>> ``` >>> >>> Gecko: Under consideration ( >>> https://github.com/mozilla/standards-positions/issues/677) >>> >>> WebKit: No signal ( >>> https://github.com/WebKit/standards-positions/issues/48) >>> >>> Web developers: Strongly positive interest in and developer >>> experimentation with the API: >>> >>> - >>> >>> Updated developer.chrome article (Twitter) >>> <https://twitter.com/jaffathecake/status/1554460598980812809> >>> - >>> >>> News about the new SET API (Twitter) >>> <https://twitter.com/jaffathecake/status/1524782819431555074> >>> - >>> >>> Dev-built demo using SET (Twitter) >>> <https://twitter.com/jh3yy/status/1550675304280035328> >>> - >>> >>> I/O Session (Youtube <https://www.youtube.com/watch?v=JCJUPJ_zDQ4>) >>> - >>> >>> Dev-built demo using SET (Reddit) >>> >>> <https://www.reddit.com/r/webdev/comments/uyoit1/i_played_around_with_chromes_new_shared_element/> >>> >>> - >>> >>> Dev-built demo using SET (Twitter) >>> >>> <https://twitter.com/OliverJAsh/status/1530261401016705026?t=CXqW2yiIMbH6bLfn8ImINw&s=19> >>> - >>> >>> Dev-built demo using SET (Twitter) >>> <https://twitter.com/charca/status/1561830946462384128> >>> - >>> >>> Dev-built demo using SET (Twitter) >>> <https://twitter.com/AdrianBeceDev/status/1567177956199485450> >>> - >>> >>> Dev-built demo using SET (Twitter) >>> <https://twitter.com/charca/status/1570835238359830529> >>> - >>> >>> https://twitter.com/dannymoerkerke/status/1597187172783693824 >>> - >>> >>> The Shared Element Transition API is Flipping Cool | Chris Coyier >>> >>> <https://chriscoyier.net/2022/10/21/the-shared-element-transition-api-is-fliping-cool/> >>> - >>> >>> Every Transition is a Page Transition? | OddBird >>> <https://www.oddbird.net/2022/06/29/shared-elements/> >>> - >>> >>> https://twitter.com/derSchepp/status/1590709783807791104 >>> - >>> >>> Astro stands to benefit highly from View Transitions | Chris Coyier >>> >>> <https://chriscoyier.net/2022/11/08/astro-stands-to-benefit-highly-from-view-transitions/> >>> >>> - >>> >>> Shared Element Transitions API Part 1 | Smashing Magazine >>> >>> <https://www.smashingmagazine.com/2022/10/ui-animations-shared-element-transitions-api-part1/> >>> >>> >>> Ergonomics >>> >>> None. >>> >>> Activation >>> >>> Low. >>> >>> As with interop/compat risks, the difficulty stems from this being a new >>> feature without support in other browsers. A polyfill for the SPA case >>> would be beneficial. That said, this feature is a progressive enhancement >>> for sites; they can easily use the API and still function correctly on >>> browsers that do not support the feature. >>> >>> Security >>> >>> The primary security constraint is ensuring isolation of graphics >>> resources from multiple origins. The design achieves that by using >>> Chromium's Viz process, similar to site isolation for iframes. >>> >>> See also the security and privacy self-review questionnaire that was >>> completed as part of the TAG review process: >>> https://github.com/WICG/view-transitions/blob/main/security-privacy-questionnaire.md >>> >>> The following issues track review from security/privacy WGs: >>> https://github.com/w3c/security-request/issues/43 and >>> https://github.com/w3cping/privacy-request/issues/107. >>> >>> >>> WebView application risks >>> >>> Does this intent deprecate or change behavior of existing APIs, such >>> that it has potentially high risk for Android WebView-based applications? >>> >>> None. This feature is fully available and functional for WebView. >>> >>> Debuggability >>> >>> The feature can be debugged using standard tooling in devtools. >>> Specifically, the animations drawer tab >>> <https://developer.chrome.com/docs/devtools/css/animations/> can be >>> used to pause and scrub through all animations on generated pseudo-elements. >>> >>> The pseudo DOM structure generated by the user agent can also be >>> inspected and targeted, like other DOM elements, in the style panel. >>> >>> Will this feature be supported on all six Blink platforms (Windows, Mac, >>> Linux, Chrome OS, Android, and Android WebView)? >>> >>> Yes >>> >>> Is this feature fully tested by web-platform-tests >>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>> ? >>> >>> Yes >>> >>> DevTrial instructions >>> >>> https://developer.chrome.com/docs/web-platform/view-transitions >>> >>> Flag name >>> >>> ViewTransition >>> >>> Requires code in //chrome? >>> >>> False >>> >>> Tracking bug >>> >>> https://bugs.chromium.org/p/chromium/issues/detail?id=1405452 >>> >>> Measurement >>> >>> Usage is tracked via a UseCounter: >>> https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/view_transition/view_transition_supplement.idl;l=9;drc=501455e6942313c87a276e8fde93e507786cc51c >>> >>> Sample links >>> >>> https://developer.chrome.com/docs/web-platform/view-transitions >>> >>> Previous milestones >>> >>> OriginTrial desktop last >>> >>> 106 >>> >>> OriginTrial desktop first >>> >>> 104 >>> >>> DevTrial on desktop >>> >>> 104 >>> >>> OriginTrial Android last >>> >>> 106 >>> >>> OriginTrial Android first >>> >>> 104 >>> >>> DevTrial on Android >>> >>> 104 >>> >>> >>> Anticipated spec changes >>> >>> Open questions about a feature may be a source of future web compat or >>> interop issues. Please list open issues (e.g. links to known github issues >>> in the project for the feature specification) whose resolution may >>> introduce web compat/interop risk (e.g., changing to naming or structure of >>> the API in a non-backward-compatible way). >>> >>> The following open issues are awaiting resolution in CSSWG: >>> https://github.com/w3c/csswg-drafts/issues?q=is%3Aopen+css-view-transitions+label%3Acss-view-transitions-1+label%3AAgenda%2B. >>> We anticipate that any change from a resolution on these issues has minimal >>> to no compat risk. >>> >>> Link to entry on the Chrome Platform Status >>> >>> https://chromestatus.com/feature/5193009714954240 >>> >>> Links to previous Intent discussions >>> >>> Intent to prototype: >>> https://groups.google.com/a/chromium.org/g/blink-dev/c/7SMI3IklO4g/m/JS-JojxNAwAJ >>> >>> Intent to Experiment: >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMLuWUyUH0939fLa7xH_EuRtgn0MWBzG8qzLMmH0zJ9GBBTh-A%40mail.gmail.com >>> >>> >>> This intent message was generated by Chrome Platform Status >>> <https://chromestatus.com/>. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "blink-dev" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to blink-dev+unsubscr...@chromium.org. >>> To view this discussion on the web visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMLuWUxa3FH0pseWhQWg3w0ESfHMhjK3KLyat8G4sQzZ0tmzOA%40mail.gmail.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMLuWUxa3FH0pseWhQWg3w0ESfHMhjK3KLyat8G4sQzZ0tmzOA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >>> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "blink-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to blink-dev+unsubscr...@chromium.org. >> To view this discussion on the web visit >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/de3e2580-8a8c-b15f-5a92-70e21f3999b2%40chromium.org >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/de3e2580-8a8c-b15f-5a92-70e21f3999b2%40chromium.org?utm_medium=email&utm_source=footer> >> . >> > -- > You received this message because you are subscribed to the Google Groups > "blink-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to blink-dev+unsubscr...@chromium.org. > To view this discussion on the web visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKXHy%3DcSv8q7GyT4hRHUfH%3DJvFLSQNVJD3PFcTXc%3D_QEP8VBZA%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKXHy%3DcSv8q7GyT4hRHUfH%3DJvFLSQNVJD3PFcTXc%3D_QEP8VBZA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfVPoRLS_Sqo45hzDM%2BRupOQi-R6YLxH%2B1Wp5XpFZs7G2Q%40mail.gmail.com.