Closed Bug 1949079 Opened 6 months ago Closed 5 months ago

Windows 10 taskbar auto hide stops working with Firefox

Categories

(Core :: Widget: Win32, defect)

Firefox 135
defect

Tracking

()

RESOLVED FIXED
137 Branch
Tracking Status
firefox137 --- fixed

People

(Reporter: greg, Assigned: rkraesig)

References

Details

Attachments

(2 files)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0

Steps to reproduce:

Open Firefox to full screen in Windows 10.
Switch between applications.

Actual results:

The windows taskbar auto hide feature stops popping up the taskbar when dragging the mouse to the edge of the screen. This only occurs if Firefox is open.
This has been an issue for years and I've finally given up and moved to Edge.

Expected results:

The windows taskbar should pop up.
Fix the issue and I will move back to Firefox because this glitch is intolerable.

The Bugbug bot thinks this bug should belong to the 'Firefox::Shell Integration' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Shell Integration

Reassigning based on assignment of similar bugs.

Component: Shell Integration → Widget: Win32
Product: Firefox → Core

Note that this bug cannot be consistently reproduced but is more likely to occur than not over the course of a typical day's window session with Firefox remaining open.
Since abandoning Firefox in favor of Edge specifically due to this glitch a couple of weeks ago the Windows taskbar no longer has this problem, so I can with near certainty say the culprit is Firefox.
Also note that the issue can occur without the Firefox window visible or having focus.

Since I prefer Firefox over any other browser this glitch is an unfortunate game breaker for me.

If I may give my two cents worth, my gut feel is that Firefox is making a perfectly legal shell method call which is misbehaving in a specific case (possibly within some keepalive code), so I am not confident you're ever going to be able to resolve this.

I'm on Win10 and have my taskbar set to autohide, and while I've seen some odd behavior lately involving the taskbar not staying unhidden, I haven't seen this.

  • Does it ever happen on a fresh profile (no add-ons, etc. installed)?
  • When it happens, does it stay broken when you switch between applications, or is it fragile?
    • If the former, would you be willing to go back to Firefox for a day or two to try to get some logging data?

(In reply to Greg Christos from comment #0)

Open Firefox to full screen in Windows 10.

Do you actually mean full screen (achieved by pressing F11 or going to "View" -> "Full Screen" or hitting some widget on a webpage that does that; no window-chrome at the top unless you move the mouse there), or merely maximized (achieved by pressing the square in the upper right, or Alt-Space -> X; window-chrome is present at the top, and there's a πŸ——-ish symbol in it)?

(The awkward terminological distinction is from the old days, unfortunately, and we're stuck with it.)

The taskbar should be blocked from appearing when a Firefox window is fullscreen and topmost on its associated monitor, but not at any other time.

... which brings to mind another possibility, and I'm not sure whether it's a bug or not:

  • Do you use multiple monitors?
    • If so, does this only occur in the particular case where the topmost window is on a secondary monitor, but a Firefox full-screen window is on the monitor with the taskbar?
Flags: needinfo?(greg)

Does it ever happen on a fresh profile (no add-ons, etc. installed)?

So I have 2 extensions installed. IDM and uBlock. On a fresh profile with both the extensions installed I have not seen this glitch.
When I then configure that profile as my working profile and begin to use it the issue reappears.
My toolbar is 2 rows high grouped into 4 individual toolbars as per screenshot link, and is locked in the registry using HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\TaskbarLockAll to circumvent another bug in Win10 where the 2 row setting is intermittently lost on a re-login.

does it stay broken

If I close all windows it recovers otherwise I have to switch using the keyboard.

go back to Firefox for a day or two

I am going to do this until the error reappears. I am busy with year-end financials (Feb/Mar 25) so my time using a browser and other apps will be limited.
The error seemed to predictably appear when certain web pages were open (I do not recall which). I didn't pay much attention to that because I understood web pages to be sandboxed within the browser, but is that perhaps possible?

Do you actually mean full screen

Sorry, maximized

Do you use multiple monitors?

I have a monitor connected to my laptop. It's set to "duplicate" but the laptop lid is closed, and the screen is off.

Give me some time to switch to Firefox for a while and pay more attention to see if I cannot reliably reproduce the problem and then come back to you rather than waste your time.

Flags: needinfo?(greg)
Attached image TypicalScreenshot.jpg β€”

(Attaching previous screenshot for future reference.)

(In reply to Greg Christos from comment #5)

go back to Firefox for a day or two

I am going to do this until the error reappears. I am busy with year-end financials (Feb/Mar 25) so my time using a browser and other apps will be limited.

When it happens, in order to collect logs, please do the following:

  • Go to https://profiler.firefox.com. Click "Enable Firefox Profiler Menu Button". (This can be done ahead of time.)
  • Go to about:logging. Change the "Logging preset" dropdown to "Windows" and click "Set Log Modules".
  • Click the profiler button. (It's next to the hamburger menu, and looks like a gauge.)
  • Alt-tab to another Firefox window. Press F11 twice.
  • Click the profiler button again to stop the profiler run.
  • When the profiler appears with the completed run, click "Upload Local Profile". Uncheck all the boxes (if any are checked), and click "Upload".
  • Paste the resultant link here so we can look at it.

The error seemed to predictably appear when certain web pages were open (I do not recall which). I didn't pay much attention to that because I understood web pages to be sandboxed within the browser, but is that perhaps possible?

They don't have anything even vaguely like direct access, but it's entirely possible that certain webpages have code that triggers a Firefox bug.

Okay, the web page https://m365.cloud.microsoft is doing it. On this specific page the issue is not persistent. If I restore down and then maximize again or switch to another tab, the issue goes away.
Historically there are other pages where the issue is more persistent.

Steps to reproducing:

  1. Open Firefox and maximize.
  2. Go to https://m365.cloud.microsoft (in my case I am logged in)
  3. If auto hide is still working open Outlook and or File Explorer first.
  4. If it's still working try setting your Win taskbar to 2 rows.

Let me know if your can reproduce the bug using this web page.
If you can't replicate it I will run the profiler.

I can't reproduce in that particular way, but this morning I have found I can produce a different bug which I'm having trouble nailing down the repro procedure for. It doesn't seem to be related to the website, but does (EDIT) appear to go away when going to fullscreen and back, suggesting it's the result of a misfiring heuristic on Windows' end.

Never mind the logging β€” can you do the following?

  • Get a maximized Firefox window into a state where the taskbar won't appear.
  • Press F11 twice.
  • Check to see if the taskbar will appear now.
Flags: needinfo?(greg)

F11 does kickstart the taskbar again.
Alt-Tab also gets it working again. This is normally not the case when the taskbar has frozen in the past.

Dragging the mouse over the web page's tab control also gets it working again. This is an easy workaround so I am going to keep using Firefox as my default to see if I can reproduce a more severe case of the issue.

Have you tried setting Firefox to open previous windows and tabs and then have https://m365.cloud.microsoft open as the active tab on startup.

Flags: needinfo?(greg)

(In reply to Greg Christos from comment #10)

F11 does kickstart the taskbar again.

In that case, even if we're looking at two different bugs, I very likely have a fix for both. I'll post a link to a test build shortly so you can check whether it fixes things on your end.

(I'll need to do some exploratory coding before landing it, because the fact that it seems to work means that the documentation for ITaskbarList2::MarkFullscreenWindow is wrong in a different way than it used to be.)

Have you tried setting Firefox to open previous windows and tabs and then have https://m365.cloud.microsoft open as the active tab on startup.

Oh, no, I can get it to break with about:blank now. I couldn't repro earlier mostly because I was using an existing Fx instance.

Assignee: nobody → rkraesig

Apologies for the delay. Here's the test build:

https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/cCTo3QbsSDedrn6NghiboQ/runs/0/artifacts/public/build/target.zip

Let me know if it exhibits the same behavior.

Flags: needinfo?(greg)

Windows appears to detect maximized windows with custom titlebars as
"full screen", and hides the taskbar behind them when autohide is
enabled. (This appears to have been due to a change to their explicitly
undocumented heuristics.)

To avert this, arrange for just-maximized windows to be marked as not
being fullscreen. Per the relevant documentation this should have no
effect, but it observably does -- it doesn't fix the issue in all cases,
but it does for the common cases of "clicking the maximize icon" and
"restoring maximized windows at Firefox start".

(In reply to Ray Kraesig [:rkraesig] from comment #12)

Apologies for the delay. Here's the test build:

https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/cCTo3QbsSDedrn6NghiboQ/runs/0/artifacts/public/build/target.zip

Let me know if it exhibits the same behavior.

Okay great. That seems to be working as far I can see.
Thanks man. Honestly surprised at how quickly you nailed that down.

Flags: needinfo?(greg)

(In reply to Greg Christos from comment #14)

Thanks man. Honestly surprised at how quickly you nailed that down.

For the record (and in particular, for future archaeologists): as implied in the commit summary, I haven't entirely. It still fails in several cases β€” e.g. if one maximizes a window by pressing Ctrl+Space β†’ X, or if one moves the maximized window to another monitor and back via Shift+Win+Left and Shift+Win+Right.

But it'll do as a stopgap while I investigate further.

Blocks: 1950441
Pushed by rkraesig@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9b47ac760d41 explicitly mark maximized windows as not fullscreen r=win-reviewers,handyman
Status: UNCONFIRMED → RESOLVED
Closed: 5 months ago
Resolution: --- → FIXED
Target Milestone: --- → 137 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: