Open Bug 1782541 Opened 3 years ago Updated 2 months ago

In headless mode, the RefreshDriver keeps ticking forever "waiting for paint" in the WebExtension process

Categories

(Core :: Graphics, defect)

defect

Tracking

()

People

(Reporter: florian, Unassigned, NeedInfo)

References

Details

Attachments

(1 file)

Attached patch Debug markersSplinter Review

This was noticed at bug 1742842 comment 5 where I got backed out due to failures in testing/mochitest/tests/python/test_mochitest_integration.py (tests/selftests/browser_pass.js | waiting for vsync to be disabled - timed out after 50 tries.).

Profile of the test failing: https://share.firefox.dev/3zlgzgI (notice the many "RefreshDriverTick waiting for paint" markers in the WebExtension process).
Same test passing when not using --headless: https://share.firefox.dev/3BxXTx0
I'm attaching the debug markers I used for these profiles.

I then noticed that I can reproduce the same issue with any other browser chrome mochitest picked at random. Here I took browser_addCertException.js as an example.
Headless: https://share.firefox.dev/3vrtJra
Normal: https://share.firefox.dev/3Slo3bZ

The severity field is not set for this bug.
:bhood, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(bhood)

Seems to be centered in WebExtensions, but that has no triage owner.

Blocks: gfx-triage
Severity: -- → S3
Flags: needinfo?(bhood)
No longer blocks: gfx-triage
Flags: needinfo?(mstange.moz)

In the headless profile, there's a "Discarded composite - No display list - chrome://extensions/content/dummy.xhtml" marker on the compositor thread: https://share.firefox.dev/3CmvM4h

I don't see such a marker in the normal profile: https://share.firefox.dev/3QTzUfV

My guess is that we don't send a DidComposite notification for the discarded composite. We probably should.
And independently of that, it would be good to find out why the compositor doesn't have a display list for the WebExtension document in the headless case.

Flags: needinfo?(mstange.moz)

Timothy, is this something you could help with?

Flags: needinfo?(tnikkel)

For context, the reason I care about this bug is that this is causing the vsync disabled checks to be skipped for headless mochitests (at https://searchfox.org/firefox-main/rev/3728e0c87fc4fa87ddf0c7a8183f2dd2329be96a/testing/mochitest/browser-test.js#629-633), and I would like to move mochitests to running headless by default, but losing coverage for ensuring vsync is disabled at the end of tests seems unfortunate.

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

Attachment

General

Created:
Updated:
Size: