Closed Bug 1779559 Opened 1 month ago Closed 28 days ago

Consider making `document.visibilityState` work in chrome docs (reflect window occlusion)

Categories

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

task

Tracking

()

RESOLVED FIXED
104 Branch
Tracking Status
firefox104 --- fixed

People

(Reporter: emilio, Assigned: emilio)

References

(Blocks 2 open bugs, Regressed 1 open bug)

Details

(Keywords: power)

Attachments

(3 files)

Seems it'd make the code a bit simpler and more consistent.

Just like it manages content, so that we stop chrome animations and such
in hidden or fully-occluded windows too. This already happened on macOS
for minimized windows via PauseCompositor, but this should be better and
more consistent.

This simplifies a bit the tabbrowser/tab switcher code, and makes it
work in all windows.

Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6d3f5ad32cd2
Make tabbrowser manage chrome BC activeness. r=Gijs

Backed out for causing multiple bc failures

  • Backout link
  • Push with failures
  • Failure Log
  • Failure line: TEST-UNEXPECTED-FAIL | browser/components/places/tests/browser/browser_toolbar_other_bookmarks.js | Test timed out -
  • Failure Log 2
  • Failure line 2: TEST-UNEXPECTED-FAIL | browser/base/content/test/gesture/browser_gesture_navigation.js | should be stopping anim -
Flags: needinfo?(emilio)
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ea2b3be0fb5c
Disable Windows' window occlusion in some more mochitests. r=sotaro
Flags: needinfo?(emilio)
Keywords: leave-open
Keywords: leave-open
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a68a015349ed
Make tabbrowser manage chrome BC activeness. r=Gijs
https://hg.mozilla.org/integration/autoland/rev/23fe4f24d483
Do this in toolkit instead. r=Gijs
Pushed by emilio@crisal.io:
https://hg.mozilla.org/integration/autoland/rev/645bdd59bb99
Annotate a test on Linux for now.
Blocks: 1780212
Pushed by bszekely@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/eab896a61170
Annotate another Linux test for now.
Pushed by emilio@crisal.io:
https://hg.mozilla.org/integration/autoland/rev/fbb29df4aa9e
Disable occlusion in another mochitest.

Backed out for causing wpt failures on unload-bubbles.html

Flags: needinfo?(emilio)
Flags: needinfo?(emilio)
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/939cb6d24171
Make tabbrowser manage chrome BC activeness. r=Gijs
https://hg.mozilla.org/integration/autoland/rev/02862be5276f
Do this in toolkit instead. r=Gijs
Blocks: 1578123
Status: NEW → RESOLVED
Closed: 28 days ago
Resolution: --- → FIXED
Target Milestone: --- → 104 Branch

Thanks for fixing this!

Here is a profile of the tab throbber animation with the patches applied: https://share.firefox.dev/3RHLaNE

(Steps to reproduce: I loaded http://tests.themasta.com/load-never-finishes.php in a tab (this page keeps the tab loading animation going forever), started the profiler, and then made the window fully occluded (in a way that Mac OS would detect, ie. I resized the window to avoid touching the left/right edges of the screen to avoid bug 1779557).)

What I see in the profile: when the window is fully occluded, the RefreshDriverTick (and CSS animation iteration) markers are throttled in the parent process main thread (the patches work!), but the full activity continues in the Renderer and Compositor threads, ie I can still reproduce bug 1768495.

Blocks: power-usage
Keywords: power
Duplicate of this bug: 1781719
Regressions: 1783289
You need to log in before you can comment on or make changes to this bug.