Title: [281492] trunk
- Revision
- 281492
- Author
- [email protected]
- Date
- 2021-08-24 05:57:41 -0700 (Tue, 24 Aug 2021)
Log Message
Move cancel dialog task to `defaultKeyboardEventHandler`.
https://bugs.webkit.org/show_bug.cgi?id=228845
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Updated test expectations.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-keydown-preventDefault-expected.txt:
Source/WebCore:
Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-keydown-preventDefault.html
Allows preventDefault() on keydown event to prevent cancelation.
Also rename HTMLDialogElement::cancel to HTMLDialogElement::queueCancelTask to reflect better what the function does.
* html/HTMLDialogElement.cpp:
(WebCore::HTMLDialogElement::queueCancelTask):
(WebCore::HTMLDialogElement::cancel): Deleted.
* html/HTMLDialogElement.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::internalKeyEvent):
(WebCore::EventHandler::defaultKeyboardEventHandler):
Modified Paths
Diff
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (281491 => 281492)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2021-08-24 10:07:43 UTC (rev 281491)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2021-08-24 12:57:41 UTC (rev 281492)
@@ -1,5 +1,16 @@
2021-08-24 Tim Nguyen <[email protected]>
+ Move cancel dialog task to `defaultKeyboardEventHandler`.
+ https://bugs.webkit.org/show_bug.cgi?id=228845
+
+ Reviewed by Antti Koivisto.
+
+ Updated test expectations.
+
+ * web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-keydown-preventDefault-expected.txt:
+
+2021-08-24 Tim Nguyen <[email protected]>
+
Implement inert attribute behind feature flag
https://bugs.webkit.org/show_bug.cgi?id=165279
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-keydown-preventDefault-expected.txt (281491 => 281492)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-keydown-preventDefault-expected.txt 2021-08-24 10:07:43 UTC (rev 281491)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-keydown-preventDefault-expected.txt 2021-08-24 12:57:41 UTC (rev 281492)
@@ -1,7 +1,7 @@
Test cancel event with preventDefault on keydown event for dialog element
+Hello World
-Harness Error (TIMEOUT), message = null
-NOTRUN Test cancel event with preventDefault on keydown event for dialog element
+PASS Test cancel event with preventDefault on keydown event for dialog element
Modified: trunk/Source/WebCore/ChangeLog (281491 => 281492)
--- trunk/Source/WebCore/ChangeLog 2021-08-24 10:07:43 UTC (rev 281491)
+++ trunk/Source/WebCore/ChangeLog 2021-08-24 12:57:41 UTC (rev 281492)
@@ -1,3 +1,24 @@
+2021-08-24 Tim Nguyen <[email protected]>
+
+ Move cancel dialog task to `defaultKeyboardEventHandler`.
+ https://bugs.webkit.org/show_bug.cgi?id=228845
+
+ Reviewed by Antti Koivisto.
+
+ Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-keydown-preventDefault.html
+
+ Allows preventDefault() on keydown event to prevent cancelation.
+
+ Also rename HTMLDialogElement::cancel to HTMLDialogElement::queueCancelTask to reflect better what the function does.
+
+ * html/HTMLDialogElement.cpp:
+ (WebCore::HTMLDialogElement::queueCancelTask):
+ (WebCore::HTMLDialogElement::cancel): Deleted.
+ * html/HTMLDialogElement.h:
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::internalKeyEvent):
+ (WebCore::EventHandler::defaultKeyboardEventHandler):
+
2021-08-24 Philippe Normand <[email protected]>
REGRESSION(r281305) [GStreamer] fast/mediastream/getDisplayMedia-frame-rate.html timeouts
Modified: trunk/Source/WebCore/html/HTMLDialogElement.cpp (281491 => 281492)
--- trunk/Source/WebCore/html/HTMLDialogElement.cpp 2021-08-24 10:07:43 UTC (rev 281491)
+++ trunk/Source/WebCore/html/HTMLDialogElement.cpp 2021-08-24 12:57:41 UTC (rev 281492)
@@ -95,7 +95,7 @@
});
}
-void HTMLDialogElement::cancel()
+void HTMLDialogElement::queueCancelTask()
{
document().eventLoop().queueTask(TaskSource::UserInteraction, [protectedThis = GCReachableRef { *this }] {
auto cancelEvent = Event::create(eventNames().cancelEvent, Event::CanBubble::No, Event::IsCancelable::Yes);
Modified: trunk/Source/WebCore/html/HTMLDialogElement.h (281491 => 281492)
--- trunk/Source/WebCore/html/HTMLDialogElement.h 2021-08-24 10:07:43 UTC (rev 281491)
+++ trunk/Source/WebCore/html/HTMLDialogElement.h 2021-08-24 12:57:41 UTC (rev 281492)
@@ -43,10 +43,10 @@
ExceptionOr<void> showModal();
void close(const String&);
- void cancel();
-
bool isModal() const { return m_isModal; };
+ void queueCancelTask();
+
private:
HTMLDialogElement(const QualifiedName&, Document&);
Modified: trunk/Source/WebCore/page/EventHandler.cpp (281491 => 281492)
--- trunk/Source/WebCore/page/EventHandler.cpp 2021-08-24 10:07:43 UTC (rev 281491)
+++ trunk/Source/WebCore/page/EventHandler.cpp 2021-08-24 12:57:41 UTC (rev 281492)
@@ -3520,13 +3520,6 @@
}
}
- if (auto* activeModalDialog = m_frame.document()->activeModalDialog()) {
- if (initialKeyEvent.type() == PlatformEvent::KeyDown && initialKeyEvent.windowsVirtualKeyCode() == VK_ESCAPE) {
- activeModalDialog->cancel();
- return true;
- }
- }
-
#if ENABLE(FULLSCREEN_API)
if (m_frame.document()->fullscreenManager().isFullscreen()) {
if (initialKeyEvent.type() == PlatformEvent::KeyDown && initialKeyEvent.windowsVirtualKeyCode() == VK_ESCAPE) {
@@ -3807,7 +3800,10 @@
m_frame.editor().handleKeyboardEvent(event);
if (event.defaultHandled())
return;
- if (event.keyIdentifier() == "U+0009")
+ if (event.key() == "Escape") {
+ if (auto* activeModalDialog = m_frame.document()->activeModalDialog())
+ activeModalDialog->queueCancelTask();
+ } else if (event.keyIdentifier() == "U+0009")
defaultTabEventHandler(event);
else if (event.keyIdentifier() == "U+0008")
defaultBackspaceEventHandler(event);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes