Closed Bug 1782114 Opened 2 years ago Closed 2 years ago

browser_device_controls_menus.js keeps vsync enabled forever (on Windows 7)

Categories

(Core :: WebRTC, defect, P3)

defect

Tracking

()

RESOLVED FIXED
109 Branch
Tracking Status
firefox-esr102 --- wontfix
firefox105 --- wontfix
firefox107 --- wontfix
firefox108 --- wontfix
firefox109 --- fixed

People

(Reporter: florian, Assigned: karlt)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(2 files)

As part of working on bug 1742842, I noticed that on try on Windows 7 the browser_device_controls_menus.js test tends to keep vsync enabled. It's intermittent without the profiler (3 failures out of 6 runs at https://treeherder.mozilla.org/jobs?repo=try&tier=1%2C2%2C3&revision=44e4adfeb7b1e03b8656568062adf7c71d98a050&test_paths=browser%2Fbase%2Fcontent%2Ftest%2Fwebrtc&searchStr=Windows7) , and becomes a perma-fail with the profiler enabled: https://treeherder.mozilla.org/jobs?repo=try&revision=600217f27e8509f7623f757543c8e51c19a383d0 (8 failures out of 8 runs)

Here is a profile of the behavior: https://share.firefox.dev/3bcBoCV
I'm not exactly sure what's going on there, but there's a lot of activity on the Renderer and Compositor threads, and there are many MediaTrackGraphStableStateRunnable runnables on the main thread, which makes it seem to me like a webrtc stream is still running.

There are SendFlushRendering calls on the main thread, from WM_PAINT events. During normal Firefox operation, WM_PAINT events are only sent when changing window focus, or maybe during resizing. So this regular firing of WM_PAINT events makes me think that some kind of screen sharing is still running.

jib, does this prioritization sound reasonable?

Severity: -- → S3
Flags: needinfo?(jib)
Priority: -- → P3
Assignee: nobody → jib
Status: NEW → ASSIGNED

The test in question opens a new tab that does screen-capture and then ends (see 1, 2 and 3).

Are tests that open in new tabs expected to do anything more to clean themselves up? I'll try closing the stream.

Flags: needinfo?(jib)

(In reply to Jan-Ivar Bruaroey [:jib] (needinfo? me) from comment #4)

Are tests that open in new tabs expected to do anything more to clean themselves up?

I don't think so. It should be similar to the user closing a tab in the browser. The only exception would be if the test is keeping references to objects from the closed tab, preventing them from being garbage collected.

Pushed by jbruaroey@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/6768c91feeb2 Close screen-capture stream after test. r=pbz
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 105 Branch
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Blocks: 1775940
Status: REOPENED → NEW
Target Milestone: 105 Branch → ---

My local Windows 11 build reproduces: https://share.firefox.dev/3PalPLm

There are "timeupdate" DOM Events received by the html:video@2e04ba26100 id="webRTC-previewVideo" element every 260ms, so it seems the preview video is left playing at the end of the test.

Thanks, Florian.
Stopping the streams instead of playing through a video element when the prompt has been dismissed seems to resolve the failures.
https://treeherder.mozilla.org/jobs?repo=try&revision=80e19e54aa376135242c31809fa633df16ca7d8f&test_paths=browser%2Fbase%2Fcontent%2Ftest%2Fwebrtc

Assignee: jib → karlt
Blocks: 1804497
Pushed by ktomlinson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d4fa99ef8e6f stop new track and don't start preview video if panel has been closed r=pbz
Status: NEW → RESOLVED
Closed: 2 years ago2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 109 Branch

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

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: