Changeset 287878 in webkit


Ignore:
Timestamp:
Jan 11, 2022 7:18:25 AM (6 months ago)
Author:
ntim@apple.com
Message:

::backdrop pseudo element should react to associated element event listeners
https://bugs.webkit.org/show_bug.cgi?id=233072

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

Update test expectations.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events.html

We now append the ::backdrop renderer as a child of the top layer element, rather than a sibling of the
top layer element. This gets hit testing working properly for free.

We used to append the ::backdrop renderer as a sibling to get the proper layout, but this is no longer
necessary after r287683 and r287845.

  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::RenderTreeUpdater::GeneratedContent::updateBackdropRenderer):

LayoutTests:

iOS failure is due to WPT test_driver actions being unsupported.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt: Added.
Location:
trunk
Files:
5 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r287875 r287878  
     12022-01-11  Tim Nguyen  <ntim@apple.com>
     2
     3        ::backdrop pseudo element should react to associated element event listeners
     4        https://bugs.webkit.org/show_bug.cgi?id=233072
     5
     6        Reviewed by Alan Bujtas.
     7
     8        iOS failure is due to WPT test_driver actions being unsupported.
     9
     10        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt: Added.
     11
    1122022-01-11  Martin Robinson  <mrobinson@webkit.org>
    213
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r287846 r287878  
     12022-01-11  Tim Nguyen  <ntim@apple.com>
     2
     3        ::backdrop pseudo element should react to associated element event listeners
     4        https://bugs.webkit.org/show_bug.cgi?id=233072
     5
     6        Reviewed by Alan Bujtas.
     7
     8        Update test expectations.
     9
     10        * web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt:
     11
    1122022-01-10  Chris Dumez  <cdumez@apple.com>
    213
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt

    r287266 r287878  
    11
    2 Harness Error (TIMEOUT), message = null
     2PASS Test that ::backdrop receives events for the associated element
    33
    4 NOTRUN Test that ::backdrop receives events for the associated element
    5 
  • trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt

    r287877 r287878  
    33
    44NOTRUN Test that ::backdrop receives events for the associated element
    5 
  • trunk/Source/WebCore/ChangeLog

    r287877 r287878  
     12022-01-11  Tim Nguyen  <ntim@apple.com>
     2
     3        ::backdrop pseudo element should react to associated element event listeners
     4        https://bugs.webkit.org/show_bug.cgi?id=233072
     5
     6        Reviewed by Alan Bujtas.
     7
     8        Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events.html
     9
     10        We now append the ::backdrop renderer as a child of the top layer element, rather than a sibling of the
     11        top layer element. This gets hit testing working properly for free.
     12
     13        We used to append the ::backdrop renderer as a sibling to get the proper layout, but this is no longer
     14        necessary after r287683 and r287845.
     15
     16        * rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
     17        (WebCore::RenderTreeUpdater::GeneratedContent::updateBackdropRenderer):
     18
    1192022-01-11  Adrian Perez de Castro  <aperez@igalia.com>
    220
  • trunk/Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp

    r284093 r287878  
    186186
    187187    auto newStyle = RenderStyle::clone(*style);
    188     RenderPtr<RenderBlockFlow> newBackdropRenderer;
    189     auto backdropRenderer = renderer.backdropRenderer();
    190     if (backdropRenderer)
     188    if (auto backdropRenderer = renderer.backdropRenderer())
    191189        backdropRenderer->setStyle(WTFMove(newStyle));
    192190    else {
    193         newBackdropRenderer = WebCore::createRenderer<RenderBlockFlow>(renderer.document(), WTFMove(newStyle));
     191        auto newBackdropRenderer = WebCore::createRenderer<RenderBlockFlow>(renderer.document(), WTFMove(newStyle));
    194192        newBackdropRenderer->initializeStyle();
    195         backdropRenderer = newBackdropRenderer.get();
    196         renderer.setBackdropRenderer(*backdropRenderer);
    197     }
    198 
    199     // Update or attach to renderer parent
    200     WeakPtr currentParent = backdropRenderer->parent();
    201     WeakPtr newParent = renderer.parent();
    202 
    203     ASSERT(newParent, "Should have new parent");
    204 
    205     if (newParent == currentParent)
    206         return;
    207 
    208     if (currentParent)
    209         m_updater.m_builder.attach(*newParent, m_updater.m_builder.detach(*currentParent, *backdropRenderer, RenderTreeBuilder::CanCollapseAnonymousBlock::No), &renderer);
    210     else
    211         m_updater.m_builder.attach(*newParent, WTFMove(newBackdropRenderer), &renderer);
     193        renderer.setBackdropRenderer(*newBackdropRenderer.get());
     194        m_updater.m_builder.attach(renderer, WTFMove(newBackdropRenderer), renderer.firstChild());
     195    }
    212196}
    213197
Note: See TracChangeset for help on using the changeset viewer.