diff --git a/dom/html/nsGenericHTMLElement.cpp b/dom/html/nsGenericHTMLElement.cpp index b43eb52840ffd..d6b614e58c712 100644 --- a/dom/html/nsGenericHTMLElement.cpp +++ b/dom/html/nsGenericHTMLElement.cpp @@ -1968,6 +1968,12 @@ bool nsGenericHTMLFormElement::IsElementDisabledForEvents(WidgetEvent* aEvent, case eLegacyMouseLineOrPageScroll: case eLegacyMousePixelScroll: return false; + case ePointerDown: + case ePointerUp: + case ePointerCancel: + case ePointerGotCapture: + case ePointerLostCapture: + return !StaticPrefs::dom_forms_always_allow_pointer_events_enabled(); default: break; } diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml index f0eddf60d2f5d..d390defe56213 100644 --- a/modules/libpref/init/StaticPrefList.yaml +++ b/modules/libpref/init/StaticPrefList.yaml @@ -2887,6 +2887,11 @@ value: true mirror: always +- name: dom.forms.always_allow_pointer_events.enabled + type: bool + value: @IS_NIGHTLY_BUILD@ + mirror: always + # Is support for HTMLInputElement.showPicker enabled? - name: dom.input.showPicker type: bool diff --git a/testing/web-platform/meta/pointerevents/pointerevent_disabled_form_control.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_disabled_form_control.html.ini index d6bb72ba6115d..cedf82737e9ff 100644 --- a/testing/web-platform/meta/pointerevents/pointerevent_disabled_form_control.html.ini +++ b/testing/web-platform/meta/pointerevents/pointerevent_disabled_form_control.html.ini @@ -1,15 +1,5 @@ -[pointerevent_disabled_form_control.html?mouse] - expected: TIMEOUT - [mouse pointerevent attributes] - expected: NOTRUN - - +prefs: [dom.forms.always_allow_pointer_events.enabled:true] [pointerevent_disabled_form_control.html?pen] expected: if (os == "android") and fission: [ERROR, TIMEOUT] ERROR - -[pointerevent_disabled_form_control.html?touch] - expected: TIMEOUT - [touch pointerevent attributes] - expected: NOTRUN diff --git a/testing/web-platform/tests/html/semantics/disabled-elements/event-propagate-disabled.tentative.html b/testing/web-platform/tests/html/semantics/disabled-elements/event-propagate-disabled.tentative.html new file mode 100644 index 0000000000000..0c00cc8db078b --- /dev/null +++ b/testing/web-platform/tests/html/semantics/disabled-elements/event-propagate-disabled.tentative.html @@ -0,0 +1,243 @@ + + + +