Closed Bug 1358454 Opened 8 years ago Closed 8 years ago

NoDisplaySleepAssertion

Categories

(Core :: Audio/Video: Playback, defect, P1)

54 Branch
x86_64
macOS
defect

Tracking

()

RESOLVED DUPLICATE of bug 1373888

People

(Reporter: scott, Unassigned)

References

Details

(Keywords: steps-wanted)

Firefox often indefinitely prevents MacOS display sleep, setting one or more NoDisplaySleepAssertion power assertions, which are left active even after closing all tabs and windows. I *think* this occurs after watching a video of some sort, for example via YouTube. * MacOS Sierra 10.12.4 * Firefox 54.0a2 (2017-04-20) (64-bit) Sample output of pmset -g assertions when this occurs: > Assertion status system-wide: > BackgroundTask 0 > ApplePushServiceTask 0 > UserIsActive 1 > PreventUserIdleDisplaySleep 1 > PreventSystemSleep 0 > ExternalMedia 0 > PreventUserIdleSystemSleep 0 > NetworkClientActive 0 > Listed by owning process: > pid 525(firefox): [0x00002c95000583f7] 03:10:57 NoDisplaySleepAssertion named: "screen" > pid 525(firefox): [0x00002c85000583e9] 03:11:13 NoDisplaySleepAssertion named: "screen" > pid 102(hidd): [0x0000591b00098634] 00:00:59 UserIsActive named: "com.apple.iohideventsystem.queue.tickle.4294968192.11" > Timeout will fire in 598 secs Action=TimeoutActionRelease > No kernel assertions. > Idle sleep preventers: IODisplayWrangler
Markus, do you know more about this and where to redirect this for more detailed diagnosis / a fix? (Moving to core as it seems unlikely, at face value, that this is a frontend bug)
Component: General → Untriaged
Flags: needinfo?(mstange)
Product: Firefox → Core
We have a WakeLock infrastructure, and one of the callers is here: http://searchfox.org/mozilla-central/rev/baf47b352e873d4516d7656186d6d7c7447d3873/dom/html/HTMLVideoElement.cpp#315 With good steps to reproduce this should be relatively easy to debug.
Component: Untriaged → Audio/Video
Flags: needinfo?(mstange)
Keywords: steps-wanted
Component: Audio/Video → Audio/Video: Playback
I've been unable to replicate this since logging. Will close for now, and reopen if I ever figure out steps to replicate.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WORKSFORME
Sorry - I'm reopening this as it happened to me again last night. I still don't have steps to reproduce, but I'm now thinking this has something to do with Netflix (presumably therefore the Widevine plugin or container). I'll try and get some useful data on this one over the weekend.
Status: RESOLVED → UNCONFIRMED
Ever confirmed: false
Flags: needinfo?(scott)
Resolution: WORKSFORME → ---
It should stop the display going to sleep when playing videos in Full Screen.
Flags: needinfo?(cpearce)
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #5) > It should stop the display going to sleep when playing videos in Full Screen. Correct. The issue I was having was that even after closing all Firefox windows, the NoDisplaySleepAssertion was not cleared. Annoyingly, I've not been able to replicate this since reporting the issue.
I thought I'd seen this as well, and I also thought it was related to video playback too, but I was unable to figure out reliable STR. Maybe plugging/unplugging headphones would help reproduce the bug occur? (In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #5) > It should stop the display going to sleep when playing videos in Full Screen. We stop the screen saver kicking in whenever a visible video is playing.
Flags: needinfo?(cpearce)
I've been unable to replicate this.
Status: UNCONFIRMED → RESOLVED
Closed: 8 years ago8 years ago
Flags: needinfo?(scott)
Resolution: --- → INVALID
Happened yesterday with Developer Edition 55.0b13, and again after a Netflix session.
Status: RESOLVED → UNCONFIRMED
Resolution: INVALID → ---
I am also having this issue. Firefox fails to release multiple instances of NoDisplaySleepAssertion. I have FF configured to run 4 threads. The pid for each of the threads currently has 10 assertions, in addition to 10 for the parent Firefox process (yes, 50 assertions). I'll report back if I'm able to nail down the exact cause. It's happening today and YouTube is the only video I've played. Relaunching Firefox obviously releases the assertions. Anecdotally, I think it's related to either: 1. full screen playback 2. multiple monitors 3. extracting the tab of an actively playing video to a new window. I'm on an iMac with attached thunderbolt display, and commonly drag a YouTube tab out into its own window, then move it over to the secondary display. Maybe the assertion is "abandoned" when the tab switches to a new thread/pool? Firefox 54.0.1 macOS 10.12.6
Update: I'm able to reproduce the problem without moving tabs between monitors or toggling full screen playback. It looks like "zombie" NoDisplaySleepAssertions are created when multiple streaming video tabs are played simultaneously. If only one video is played at a time, assertions are created and released as they should be. Steps to reproduce: I monitored assertions on a loop: $ while true ; do clear ; pmset -g assertions ; sleep 2 ; done Open a new window and begin playback of a streaming video (YouTube will work). Open a second tab and begin playback of another video. Switch between the two tabs. Each time one of the tabs playing video becomes active, new assertions are immediately be created and never released. Tested on multiple streaming video sources - YouTube, Netflix, Facebook.
it looks like a duplicate of bug 1373888.
See Also: → 1373888
I'll solve this issue in bug1373888. See the reproduce steps and the analysis on bug1373888 comment32.
Status: UNCONFIRMED → RESOLVED
Closed: 8 years ago8 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.