Closed Bug 1720959 Opened 3 years ago Closed 3 years ago

Pressing escape to cancel page behavior also exits full-screen on some sites, e.g., GitHub, Gmail, Google Photos

Categories

(Core :: Widget: Cocoa, defect)

defect

Tracking

()

RESOLVED INVALID
Tracking Status
firefox-esr78 --- unaffected
firefox90 --- unaffected
firefox91 --- unaffected
firefox92 --- affected

People

(Reporter: Mardak, Unassigned)

References

(Regression)

Details

(Keywords: regression)

Bug 1688584 added the ability to exit full screen matching the behavior of Safari, but some websites seem to handle <esc> but sometimes not preventDefault, so this might just be a site-specific implementation issue?

For example, GitHub and Bugzilla have searchboxes that shows a custom autocomplete. Pressing escape dismisses that UI but also causes Firefox to now exit full-screen. The same happens on Safari, so at least it's consistent.

I've also run into issues on Gmail when pressing escape to close a chat window also now exits full-screen.

Google Photos does seem to preventDefault if it would have done something such as exiting edit mode to view; photo view to album; single album view to albums view. But if you press escape one more time thinking it would go from albums view to the "home" view, the page doesn't actually handle that and Firefox exits full-screen. Also same issue as GitHub where pressing escape to dismiss the search autocomplete UI results in exiting full-screen.

I'd argue that if the site did not call preventDefault on the event, the expectation is that we continue to exit fullscreen. I'm not sure how we'd differentiate between a site handling the event or not when preventDefault isn't called on it. Emilio, what do you think?

Flags: needinfo?(emilio)

Yeah, preventDefault is the way to deal with this. We could add heuristics to deal with the event listeners but that's only prone to all sorts of false positives / negatives. It may be feasible to add a pref to avoid exiting fullscreen if the event was sent to content or something. That'd be more reliable. But unclear if that'd be useful to Mardak / others.

Flags: needinfo?(emilio)

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

Resolving this per comment 2, and to get it off the release tracker.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INVALID

(In reply to Emilio Cobos Álvarez (:emilio) from comment #2)

It may be feasible to add a pref to avoid exiting fullscreen if the event was sent to content or something. That'd be more reliable. But unclear if that'd be useful to Mardak / others.

I've successfully gone a couple days of without accidentally triggering this although it does require some mental energy to make sure I don't hit escape and use some non-escape behavior instead. At least for my usage of full-screen, I'm almost always in macOS' side-by-side Split View where I have two Firefox windows open (on an external monitor), so accidental escape results in a little bit more work to restore the layout (as opposed to simply cmd-shift-f). So probably no need to add complexity for a likely rarely occurring situation.

See Also: → 1725884
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.