[webkit-changes] [WebKit/WebKit] 0bd9e4: [popover] Prevent hidePopover from causing a recur...
Rob Buis
noreply at github.com
Fri May 26 23:17:38 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0bd9e48790d43285feb2f971e6b5ae12dc290fc8
https://github.com/WebKit/WebKit/commit/0bd9e48790d43285feb2f971e6b5ae12dc290fc8
Author: Rob Buis <rbuis at igalia.com>
Date: 2023-05-26 (Fri, 26 May 2023)
Changed paths:
M LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-light-dismiss-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-light-dismiss.html
M LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/semantics/popovers/popover-light-dismiss-expected.txt
M LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/popovers/popover-light-dismiss-expected.txt
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/PopoverData.h
M Source/WebCore/html/HTMLElement.cpp
Log Message:
-----------
[popover] Prevent hidePopover from causing a recursive loop
https://bugs.webkit.org/show_bug.cgi?id=256379
Reviewed by Tim Nguyen.
Fix hideAllPopoversUntil for the case where hiding an auto popover changes the auto popover
list (through beforetoggle) so the same auto popover is on top, causing a loop. To fix this, when
this is detected, continue the loop without firing events.
See:
https://github.com/whatwg/html/pull/9198
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-light-dismiss-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-light-dismiss.html:
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/semantics/popovers/popover-light-dismiss-expected.txt:
* LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/popovers/popover-light-dismiss-expected.txt:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::topmostAutoPopover const):
(WebCore::Document::hideAllPopoversUntil):
* Source/WebCore/dom/PopoverData.h:
(WebCore::PopoverData::ScopedStartShowingOrHiding::ScopedStartShowingOrHiding):
(WebCore::PopoverData::ScopedStartShowingOrHiding::~ScopedStartShowingOrHiding):
(WebCore::PopoverData::ScopedStartShowingOrHiding::wasShowingOrHiding const):
* Source/WebCore/html/HTMLElement.cpp:
(WebCore::HTMLElement::showPopover):
(WebCore::HTMLElement::hidePopoverInternal):
Canonical link: https://commits.webkit.org/264623@main
More information about the webkit-changes
mailing list