Closed Bug 1789522 Opened 2 years ago Closed 2 years ago

select "change" event no longer provides user input/gesture activation

Categories

(Core :: DOM: Core & HTML, defect)

Firefox 85
defect

Tracking

()

VERIFIED FIXED
106 Branch
Tracking Status
firefox-esr91 --- wontfix
firefox-esr102 --- wontfix
firefox104 --- wontfix
firefox105 --- wontfix
firefox106 --- verified

People

(Reporter: karlt, Assigned: emilio)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: parity-chrome, regression)

Attachments

(2 files)

Attached file open-on-select.html (deleted) —

STR:

  1. Open testcase.
  2. Click on "Option 1".
  3. Wait at least 6 seconds.
  4. Click on "Option 2".

Actual: no new tab.
Expected: new tab, as in Chrome.

Popup control state is set to openControlled for the "change" event and UserActivation::IsHandlingUserInput() returns true, but ConsumeTransientUserGestureActivation() returns false (even though it is documented to always return true).

https://pernos.co/debug/LxB00Tnch0Glp37OHui6kg/index.html#f{m[BAnH,AWxQYg_,t[AWk,OJiC_,f{e[BAnH,AWxQWw_,s{af5g1bXAA,bAX8,ukCE,oCMng,f[BGwaqg,xvSeYw____,v[{wiLg,v[{f'list',q'stdouterr',p{_,xAYag_,{f'container',q'stack',p{_,xAYag_,{f'notebook',q'notebook',p.,xAYag_,{f'list',q'explainer',p{'explainFocus'{'data'{'producer'{'returnValue'{'addressSpace'{'execs'AQ,'task'{'serial'AWk,'tid'OJiC__,'function'{'addressSpaceUid'{'execs'AQ,'task'{'serial'AWk,'tid'OJiC__,'anyMoment'{'event'BAnH,'instr'AY+NQg_,'entryMoment'{'event'BAnH,'instr'AY+NQA_,'returnMoment'{'event'BAnH,'instr'AY+NRQ_,'subprogram'{'baseAddress'f5g1bXAA,'binary'AX8,'subprogram'{f{d[BGwaqg,xvSeYw__,oCMl3_,'unit'kCE_,'taskUid'{'serial'AWk,'tid'OJiC__,'task'{'serial'AWk,'tid'OJiC___,'renderer'{'dwarfType'{'deref'{'level'AA_,'type_'{'baseAddress'f5g1bXAA,'binary'AX8,'type'{f{d[BGwaqg,xvSeYw__,oTY8_,'unit'kCE____,'frame'{'addressSpaceUid'{'execs'AQ,'task'{'serial'AWk,'tid'OJiC__,'anyMoment'{'event'BAnH,'instr'AY+NQg_,'entryMoment'{'event'BAnH,'instr'AY+NQA_,'returnMoment'{'event'BAnH,'instr'AY+NRQ_,'subprogram'{'baseAddress'f5g1bXAA,'binary'AX8,'subprogram'{f{d[BGwaqg,xvSeYw__,oCMl3_,'unit'kCE_,'taskUid'{'serial'AWk,'tid'OJiC__,'moment'{'event'BAnH,'instr'AY+NRQ_,'node'AQ,'tuid'{'serial'AWk,'tid'OJiC___,xAYag___,{w/eg,v[{f'source',q'source',p{_,xAYag_,{f'list',q'callees',p{_,xAYag_,{f'list',q'execution',p{'symbol''mozilla:3A%3Adom%3A%3ADocument%3A%3AConsumeTransientUserGestureActivation','print'':24time'_,xAYag_,{f'list',q'execution',p{'symbol''mozilla:3A%3Adom%3A%3AElement%3A%3ASetInnerHTML','print'':24time'_,xAYag____/

This is a regression from https://hg.mozilla.org/mozilla-central/rev/68af110cd33e39111ef50541073b3c681a59bc2b#l3.12

Activation triggering input was previously specified to include "change" events, but "high-level" events were dropped as unnecessary because high-level events are always triggered from low-level user input events such as mousedown/keydown. That is probably true but the triggering low-level events do not necessarily cause "firing of an activation triggering input event in B's active document". With selects, Firefox dispatches to the document mousedown, but not keydown when the events were received on an open select dropdown. Chrome dispatches neither.
Even in Firefox, isTrusted is false because the synthetic event was constructed with the content window.

In 2018, the "change" event triggered activation in all browsers.

selectAudioOutput() also wants transient activation during "change".
e.g. https://jan-ivar.github.io/dummy/gum_picker_output2.html

Blocks: 1498512

Set release status flags based on info from the regressing bug 1679456

:emilio, since you are the author of the regressor, bug 1679456, could you take a look? Also, could you set the severity field?

For more information, please visit auto_nag documentation.

Assignee: nobody → emilio
Flags: needinfo?(emilio)
Pushed by ealvarez@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/bba0d5a3d579 Provide transient user activation when handling user input from JS. r=smaug

Thank you for the quick solution!

Blocks: 1577516
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 106 Branch

The patch landed in nightly and beta is affected.
:emilio, is this bug important enough to require an uplift?

  • If yes, please nominate the patch for beta approval.
  • If no, please set status-firefox105 to wontfix.

For more information, please visit auto_nag documentation.

Flags: needinfo?(emilio)

probably not, it's a fairly old regression.

Flags: needinfo?(emilio)
QA Whiteboard: [qa-106b-p2]

I've reproduced this issue on an affected nightly build from 2022-09-06, on Win 10.
Verified as fixed on Firefox 106.0 (20221010110315) on Win 10, Ubuntu 21.04 and mac0S 10.15.

Status: RESOLVED → VERIFIED
QA Whiteboard: [qa-106b-p2]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: