Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 001401163eab13ecfa88bb58726721ac450edb3c
      
https://github.com/WebKit/WebKit/commit/001401163eab13ecfa88bb58726721ac450edb3c
  Author: Aditya Keerthi <[email protected]>
  Date:   2023-10-16 (Mon, 16 Oct 2023)

  Changed paths:
    A 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/disabled-elements/disabled-checkbox-click-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/disabled-elements/disabled-checkbox-click.html
    M Source/WebCore/dom/EventDispatcher.cpp

  Log Message:
  -----------
  REGRESSION (266316@main): Disabled checkboxes change state when clicked
https://bugs.webkit.org/show_bug.cgi?id=263148
rdar://116927372

Reviewed by Chris Dumez and Brian Weinstein.

266316@main enabled the `SendMouseEventsToDisabledFormControlsEnabled` setting,
originally implemented in 264098@main.

Prior to that change, `EventDispatcher::dispatchEvent` was elided for disabled
form controls. Following the change, events can be dispatched on disabled
controls. If the event is trusted, the event path is shrunk to remove the
disabled control. This means that trusted mouse events are not dispatched on
the clicked control itself. However, `HTMLInputElement::willDispatchEvent` is
still called on the disabled control, which triggers the state change.

To fix, elide the call to `HTMLInputElement::willDispatchEvent` in
`EventDispatcher::dispatchEvent` when the node is a disabled control and the
event is trusted. Untrusted click events can still change the checked state of
checkboxes.

* 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/disabled-elements/disabled-checkbox-click-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/disabled-elements/disabled-checkbox-click.html:
 Added.
* Source/WebCore/dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):

Canonical link: https://commits.webkit.org/269376@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to