Skip to content

Commit

Permalink
Don't fire dblclick on disabled form control elements
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=265071
rdar://problem/118584431

Reviewed by Tim Nguyen.

This patch extends to not fire double click events on disabled elements similar to click event aligning with
Gecko / Firefox, Blink / Chromium and agreed behavior in web specification issue [1]:

[1] whatwg/html#2368 (comment)

* Source/WebCore/dom/EventDispatcher.cpp:
(EventDispatcher::dispatchEvent):
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/disabled-elements/disabled-event-dispatch.tentative-expected.txt: Rebaselined
* LayoutTests/platform/ios-simulator-16-wk2/imported/w3c/web-platform-tests/html/semantics/disabled-elements/disabled-event-dispatch.tentative-expected.txt: Rebaselined
* LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/disabled-elements/disabled-event-dispatch.tentative-expected.txt: Rebaselined

Canonical link: https://commits.webkit.org/270951@main
  • Loading branch information
Ahmad-S792 authored and Ahmad Saleem committed Nov 19, 2023
1 parent 77cb22c commit 74ae3ea
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ PASS Testing click events when clicking child of disabled button.
PASS Testing click events when clicking child of disabled my-control.
PASS Testing click events when clicking disabled button.
PASS Testing click events when clicking disabled my-control.
FAIL Testing dblclick events when clicking child of disabled button. assert_equals: parent element received dblclick events expected false but got true
FAIL Testing dblclick events when clicking child of disabled my-control. assert_equals: parent element received dblclick events expected false but got true
FAIL Testing dblclick events when clicking disabled button. assert_equals: parent element received dblclick events expected false but got true
FAIL Testing dblclick events when clicking disabled my-control. assert_equals: parent element received dblclick events expected false but got true
PASS Testing dblclick events when clicking child of disabled button.
PASS Testing dblclick events when clicking child of disabled my-control.
PASS Testing dblclick events when clicking disabled button.
PASS Testing dblclick events when clicking disabled my-control.

Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ PASS Testing click events when clicking child of disabled button.
PASS Testing click events when clicking child of disabled my-control.
PASS Testing click events when clicking disabled button.
PASS Testing click events when clicking disabled my-control.
FAIL Testing dblclick events when clicking child of disabled button. assert_equals: child element received dblclick events expected true but got false
FAIL Testing dblclick events when clicking child of disabled my-control. assert_equals: child element received dblclick events expected true but got false
PASS Testing dblclick events when clicking child of disabled button.
PASS Testing dblclick events when clicking child of disabled my-control.
PASS Testing dblclick events when clicking disabled button.
PASS Testing dblclick events when clicking disabled my-control.

Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ PASS Testing click events when clicking child of disabled button.
PASS Testing click events when clicking child of disabled my-control.
PASS Testing click events when clicking disabled button.
PASS Testing click events when clicking disabled my-control.
FAIL Testing dblclick events when clicking child of disabled button. assert_equals: child element received dblclick events expected true but got false
FAIL Testing dblclick events when clicking child of disabled my-control. assert_equals: child element received dblclick events expected true but got false
PASS Testing dblclick events when clicking child of disabled button.
PASS Testing dblclick events when clicking child of disabled my-control.
PASS Testing dblclick events when clicking disabled button.
PASS Testing dblclick events when clicking disabled my-control.

2 changes: 1 addition & 1 deletion Source/WebCore/dom/EventDispatcher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ void EventDispatcher::dispatchEvent(Node& node, Event& event)
EventPath eventPath { node, event };

if (node.document().settings().sendMouseEventsToDisabledFormControlsEnabled() && event.isTrusted() && event.isMouseEvent()
&& (event.type() == eventNames().mousedownEvent || event.type() == eventNames().mouseupEvent || event.type() == eventNames().clickEvent)) {
&& (event.type() == eventNames().mousedownEvent || event.type() == eventNames().mouseupEvent || event.type() == eventNames().clickEvent || event.type() == eventNames().dblclickEvent)) {
eventPath.adjustForDisabledFormControl();
}

Expand Down

0 comments on commit 74ae3ea

Please sign in to comment.