Closed Bug 1720050 Opened 3 years ago Closed 3 years ago

Select flickers with color overrides / HCM if there's a transition; seizure risk

Categories

(Core :: Layout: Form Controls, defect, P3)

Firefox 88
defect

Tracking

()

RESOLVED FIXED
92 Branch
Tracking Status
firefox-esr78 --- wontfix
firefox-esr91 --- fixed
firefox90 --- wontfix
firefox91 --- wontfix
firefox92 --- fixed

People

(Reporter: erwinm, Assigned: emilio)

References

(Blocks 1 open bug)

Details

(Keywords: regression)

Attachments

(3 files)

Attached video (Seizure Warning) Screen Recording (deleted) —

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:88.0) Gecko/20100101 Firefox/88.0

Steps to reproduce:

(forked from bug 1694064.)

In Firefox:

about:preferences.

Search for "Color."

And set override to "Always."

Click "Edit Bug" here.

Click on the "Platform" menu and try to select a platform.

Actual results:

The menu strobes.

Expected results:

It shouldn't strobe, and should let users select a platform.

The strobing goes away if I set override to "Never."

This does not go away if I use Mozregression and test on an older version which uses user colors instead of high-contrast mode.

This does go away in Troubleshoot mode, but, well Troubleshoot mode cuts a lot of other strobe-blocking fixes.

This doesn't go away if I comment out my font size css, so that's not it.

This doesn't go away if I disable all extensions, and for safety reasons, I usually need to enable most of them.

Mozregression failed, but the reression is somewhere in here:

https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b043233ec04f06768d59dcdfb9e928142280f3cc&tochange=e8b3c73b4e328be88aa90f31e1fa9772b537507d

Has Regression Range: --- → yes

The Bugbug bot thinks this bug should belong to the 'Core::Layout: Text and Fonts' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.

Component: Untriaged → Layout: Text and Fonts
Product: Firefox → Core

I turned off all extensions again, re-enabled them a few at a time, and it appeared to be an incompatibility with No Transition... https://addons.mozilla.org/en-US/firefox/addon/no-transition/

Then turned my safety css back on and there's an incompatibility with that too.

It hurts.

It appears to come from the following in userContent.css:

*{transition-duration:1ms !important; animation-duration: 1ms !important; }

How are web users supposed to protect ourselves from web sites...?

Summary: In-page menus can strobe when users set own colors or users set high-contrast theme; seizure risk → In-page menus can strobe when users set own colors or users set high-contrast theme, in combination with anti-animation css; seizure risk
Attached file test-case (deleted) —

Ok, I can repro on mac and Linux if I force colors on a page like the attached one. It seems like a bad interaction with this event listener, most likely:

https://searchfox.org/mozilla-central/rev/2aa97aea1085cf1363582725407c514833ad47e4/toolkit/actors/SelectChild.jsm#108

transition-duration: 1ms !important causes transitions for every property, which seems fairly unfortunate, it's really inefficient.

.

Blocks: hcm
Status: UNCONFIRMED → NEW
Component: Layout: Text and Fonts → Layout: Form Controls
Ever confirmed: true
Summary: In-page menus can strobe when users set own colors or users set high-contrast theme, in combination with anti-animation css; seizure risk → Select flickers with color overrides / HCM if there's a transition; seizure risk
Severity: -- → S3
Priority: -- → P3

Options can change styles for a variety of reasons and we don't want
transitions on them to re-update the whole menulist.

Assignee: nobody → emilio
Status: NEW → ASSIGNED
Pushed by ealvarez@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/46e622adcf7a Ensure to listen to transition events on <select>, not bubbled events from options. r=Gijs
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 92 Branch

Please nominate this for ESR91 approval when you get a chance.

Flags: needinfo?(emilio)

Comment on attachment 9233939 [details]
Bug 1720050 - Ensure to listen to transition events on <select>, not bubbled events from options. r=Gijs

ESR Uplift Approval Request

  • If this is not a sec:{high,crit} bug, please state case for ESR consideration: With some combinations of rules, select elements could flicker badly.
  • User impact if declined: see above
  • Fix Landed on Version: 92
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Relatively simple patch affecting transition handling in <select>.
  • String or UUID changes made by this patch: none
Flags: needinfo?(emilio)
Attachment #9233939 - Flags: approval-mozilla-esr91?

Comment on attachment 9233939 [details]
Bug 1720050 - Ensure to listen to transition events on <select>, not bubbled events from options. r=Gijs

Approved for 91.1esr.

Attachment #9233939 - Flags: approval-mozilla-esr91? → approval-mozilla-esr91+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: