[webkit-changes] [WebKit/WebKit] 9f76fd: [css-view-transitions-2] Implement pageswap and pa...

mattwoodrow noreply at github.com
Fri Aug 9 00:57:49 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9f76fdfc2789893b2ac005d7644d1e2a10622305
      https://github.com/WebKit/WebKit/commit/9f76fdfc2789893b2ac005d7644d1e2a10622305
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2024-08-09 (Fri, 09 Aug 2024)

  Changed paths:
    M LayoutTests/TestExpectations
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-in-layer-cascade-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-in-layer-cascade-external-stylesheet-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-in-layer-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-in-matching-media-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-in-non-matching-media-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-in-shadow-dom-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-multiple-rules-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-opt-in-change-with-script-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/hide-before-reveal-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/mismatched-snapshot-containing-block-size-skips-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pagereveal-microtask-sequence-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pagereveal-no-view-transition-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pagereveal-no-view-transition-new-opt-out-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pagereveal-updatecallbackdone-promise-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pagereveal-with-view-transition-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pageswap-long-delay-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pageswap-skip-transition-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pageswap-traverse-navigation-no-bfcache.https-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/skip-outbound-vt-before-reveal-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/with-types/at-rule-with-types-parsing-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/with-types/navigation-supersedes-types-same-rule-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/with-types/navigation-supersedes-types-when-after-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/with-types/types-in-pagereveal-and-pageswap-expected.txt
    M LayoutTests/platform/glib/TestExpectations
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/mac/TestExpectations
    M Source/WebCore/CMakeLists.txt
    M Source/WebCore/DerivedSources-input.xcfilelist
    M Source/WebCore/DerivedSources-output.xcfilelist
    M Source/WebCore/DerivedSources.make
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/dom/Document.h
    M Source/WebCore/dom/EventInterfaces.in
    M Source/WebCore/dom/EventNames.json
    A Source/WebCore/dom/PageRevealEvent.cpp
    A Source/WebCore/dom/PageRevealEvent.h
    A Source/WebCore/dom/PageRevealEvent.idl
    A Source/WebCore/dom/PageSwapEvent.cpp
    A Source/WebCore/dom/PageSwapEvent.h
    A Source/WebCore/dom/PageSwapEvent.idl
    M Source/WebCore/dom/ViewTransition.cpp
    M Source/WebCore/dom/ViewTransition.h
    M Source/WebCore/loader/DocumentLoader.cpp
    M Source/WebCore/loader/DocumentLoader.h
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebCore/page/NavigationActivation.h
    M Source/WebCore/page/Page.cpp
    M Source/WebCore/page/Page.h

  Log Message:
  -----------
  [css-view-transitions-2] Implement pageswap and pagereveal events.
https://bugs.webkit.org/show_bug.cgi?id=277524
<rdar://133025306>

Reviewed by Tim Nguyen.

Adds the basic IDLs for the pageswap and pagereveal events, plus the C++
implementations.

Adds code to fire these events (gated on the cross document view transitions
preference), and passes the view transition parameter in a partially correct
way.

This is the basic needed for the WPT test infrastructure to work, and as a
result, many new tests pass. There are still lots of FIXME's and bugs left
before the remaining tests pass.

* LayoutTests/TestExpectations:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-in-layer-cascade-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-in-layer-cascade-external-stylesheet-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-in-layer-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-in-matching-media-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-in-non-matching-media-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-in-shadow-dom-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-multiple-rules-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/at-rule-opt-in-change-with-script-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/hide-before-reveal-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/mismatched-snapshot-containing-block-size-skips-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pagereveal-microtask-sequence-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pagereveal-no-view-transition-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pagereveal-no-view-transition-new-opt-out-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pagereveal-updatecallbackdone-promise-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pagereveal-with-view-transition-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pageswap-long-delay-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pageswap-skip-transition-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/pageswap-traverse-navigation-no-bfcache.https-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/skip-outbound-vt-before-reveal-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/with-types/at-rule-with-types-parsing-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/with-types/navigation-supersedes-types-same-rule-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/with-types/navigation-supersedes-types-when-after-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/navigation/with-types/types-in-pagereveal-and-pageswap-expected.txt:
* Source/WebCore/CMakeLists.txt:
* Source/WebCore/DerivedSources-input.xcfilelist:
* Source/WebCore/DerivedSources-output.xcfilelist:
* Source/WebCore/DerivedSources.make:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::reveal):
(WebCore::Document::transferViewTransitionParams):
(WebCore::Document::dispatchPageSwapEvent):
* Source/WebCore/dom/Document.h:
* Source/WebCore/dom/EventInterfaces.in:
* Source/WebCore/dom/EventNames.json:
* Source/WebCore/dom/PageRevealEvent.cpp: Copied from Source/WebCore/page/NavigationActivation.h.
(WebCore::PageRevealEvent::create):
(WebCore::PageRevealEvent::PageRevealEvent):
* Source/WebCore/dom/PageRevealEvent.h: Copied from Source/WebCore/page/NavigationActivation.h.
* Source/WebCore/dom/PageRevealEvent.idl: Added.
* Source/WebCore/dom/PageSwapEvent.cpp: Copied from Source/WebCore/page/NavigationActivation.h.
(WebCore::PageSwapEvent::create):
(WebCore::PageSwapEvent::PageSwapEvent):
* Source/WebCore/dom/PageSwapEvent.h: Copied from Source/WebCore/page/NavigationActivation.h.
* Source/WebCore/dom/PageSwapEvent.idl: Added.
* Source/WebCore/dom/ViewTransition.cpp:
(WebCore::ViewTransition::ViewTransition):
(WebCore::ViewTransition::create):
(WebCore::ViewTransition::createInbound):
(WebCore::ViewTransition::startInbound):
(WebCore::ViewTransition::callUpdateCallback):
(WebCore::ViewTransition::activateViewTransition):
(WebCore::ViewTransition::takeViewTransitionParams):
* Source/WebCore/dom/ViewTransition.h:
(WebCore::OrderedNamedElementsMap::swap):
* Source/WebCore/loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::navigationCanTriggerCrossDocumentViewTransition):
* Source/WebCore/loader/DocumentLoader.h:
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::transitionToCommitted):
* Source/WebCore/page/NavigationActivation.h:
* Source/WebCore/page/Page.cpp:
(WebCore::Page::updateRendering):
(WebCore::operator<<):
* Source/WebCore/page/Page.h:

Canonical link: https://commits.webkit.org/282038@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list