Changeset 238393 in webkit


Ignore:
Timestamp:
Nov 20, 2018 12:53:57 AM (5 years ago)
Author:
rniwa@webkit.org
Message:

Click on node assigned to slot in button's shadow cause loss of button focus
https://bugs.webkit.org/show_bug.cgi?id=191694
<rdar://problem/46107920>

Reviewed by Wenson Hsieh.

Source/WebCore:

Fixed the bug by traversing the parent in the composed tree when looking for an element to focus.

Test: fast/shadow-dom/focus-slot-parent.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchMouseEvent): Fixed the bug. Also use RefPtr instead of a raw pointer.

LayoutTests:

Added a regression test.

  • fast/shadow-dom/focus-slot-parent-expected.txt: Added.
  • fast/shadow-dom/focus-slot-parent.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r238382 r238393  
     12018-11-19  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        Click on node assigned to slot in button's shadow cause loss of button focus
     4        https://bugs.webkit.org/show_bug.cgi?id=191694
     5        <rdar://problem/46107920>
     6
     7        Reviewed by Wenson Hsieh.
     8
     9        Added a regression test.
     10
     11        * fast/shadow-dom/focus-slot-parent-expected.txt: Added.
     12        * fast/shadow-dom/focus-slot-parent.html: Added.
     13
    1142018-11-19  Justin Fan  <justin_fan@apple.com>
    215
  • trunk/Source/WebCore/ChangeLog

    r238390 r238393  
     12018-11-19  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        Click on node assigned to slot in button's shadow cause loss of button focus
     4        https://bugs.webkit.org/show_bug.cgi?id=191694
     5        <rdar://problem/46107920>
     6
     7        Reviewed by Wenson Hsieh.
     8
     9        Fixed the bug by traversing the parent in the composed tree when looking for an element to focus.
     10
     11        Test: fast/shadow-dom/focus-slot-parent.html
     12
     13        * page/EventHandler.cpp:
     14        (WebCore::EventHandler::dispatchMouseEvent): Fixed the bug. Also use RefPtr instead of a raw pointer.
     15
    1162018-11-19  Fujii Hironori  <Hironori.Fujii@sony.com>
    217
  • trunk/Source/WebCore/page/EventHandler.cpp

    r238345 r238393  
    25992599
    26002600    // Walk up the DOM tree to search for an element to focus.
    2601     Element* element;
    2602     for (element = m_elementUnderMouse.get(); element; element = element->parentOrShadowHostElement()) {
     2601    RefPtr<Element> element;
     2602    for (element = m_elementUnderMouse.get(); element; element = element->parentElementInComposedTree()) {
    26032603        if (element->isMouseFocusable())
    26042604            break;
     
    26232623    // If focus shift is blocked, we eat the event.
    26242624    auto* page = m_frame.page();
    2625     if (page && !page->focusController().setFocusedElement(element, m_frame))
     2625    if (page && !page->focusController().setFocusedElement(element.get(), m_frame))
    26262626        return false;
    26272627
Note: See TracChangeset for help on using the changeset viewer.