Closed Bug 1699768 Opened 3 years ago Closed 2 years ago

200ms long white frame during navigation on amazon music

Categories

(Core :: Graphics, defect)

Firefox 86
x86
Windows 10
defect

Tracking

()

RESOLVED FIXED
89 Branch
Tracking Status
firefox89 --- affected

People

(Reporter: denispal, Assigned: emilio)

References

Details

Attachments

(3 files)

Attached video output.mp4

When clicking on the "podcasts" link after navigating to https://music.amazon.com/, there is a 200ms flash of white which feels quite disruptive. This is without fission and happens with or without webrender.

There is a video describing the problem attached, and associated profile here if that's useful: https://share.firefox.dev/312lv9a

Flags: needinfo?(emilio)

Ok, so this happens because by the time the paint suppression timer runs, the page is unstyled. So I think we should not unsuppress painting so soon, but detecting when to unsuppress it is an interesting problem... A good heuristic could be whether the background-color of the root element / body is not transparent. Or maybe we should paint the "default" canvas background if the page is loading and the canvas background is transpanent... That'd fix this for dark mode users, but not for everyone so that's not so great.

See Also: → 1538414

Actually the page in this case starts getting styled after the load
event, sometimes, but when that happens that also causes a white flash
in other browsers.

Assignee: nobody → emilio
Status: NEW → ASSIGNED
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1d4a266e0e49
Don't unsuppress painting until we've known the website background, to prevent flashing. r=smaug

Backed out changeset 1d4a266e0e49 (Bug 1699768) for causing multiple failures CLOSED TREE

Push with failures: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&selectedTaskRun=aZgDhPfQSOWPUPdXdNymZQ.0&revision=1d4a266e0e49dc7bd12b9bfbf30ec4c40dd6464d

Failure log: https://treeherder.mozilla.org/logviewer?job_id=334132733&repo=autoland&lineNumber=1980
Range: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&selectedTaskRun=aZgDhPfQSOWPUPdXdNymZQ.0&resultStatus=success%2Ctestfailed%2Cbusted%2Cexception%2Cretry%2Cusercancel&fromchange=75e750d8ff501b363b214b204d948930db6269e4&searchStr=android%2C7.0%2Cx86-64%2Cwebrender%2Copt%2Cmochitests%2Ctest-android-em-7.0-x86_64-qr%2Fopt-geckoview-mochitest-plain-e10s%2C2&tochange=06b5568225ed50dae8b7dc0254ed45eae477eed7

Failure log: https://treeherder.mozilla.org/logviewer?job_id=334128840&repo=autoland&lineNumber=1655
Range: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&collapsedPushes=842382&selectedTaskRun=TKQ1MjL1Roms0qnPFyvCTg.0&resultStatus=success%2Ctestfailed%2Cbusted%2Cexception%2Cretry%2Cusercancel&fromchange=0bc442c1d8b9c3efa6361c3d83e47b1be4d48696&searchStr=android%2C7.0%2Cx86-64%2Cwebrender%2Cdebug%2Cweb%2Cplatform%2Ctests%2Ctest-android-em-7.0-x86_64-qr%2Fdebug-geckoview-web-platform-tests-e10s%2Cwpt15&tochange=c4571cca383292cfbe99bb35e7460569a74de071

Failure log: https://treeherder.mozilla.org/logviewer?job_id=334127918&repo=autoland&lineNumber=3009
Range: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&collapsedPushes=842382&selectedTaskRun=ZiduYeesRhWBYqobcgzRuw.0&resultStatus=success%2Ctestfailed%2Cbusted%2Cexception%2Cretry%2Cusercancel&fromchange=bba7c6c228da4449a1df243f5d3c211eec45cbad&searchStr=linux%2C18.04%2Cx64%2Casan%2Copt%2Cmochitests%2Ctest-linux1804-64-asan%2Fopt-mochitest-browser-chrome-e10s%2Cbc6

Backout: https://hg.mozilla.org/integration/autoland/rev/c4571cca383292cfbe99bb35e7460569a74de071

Flags: needinfo?(emilio)

See the comments as for this might be unexpected. The tests could be
fixed but seems like footgunny, so for now this seems better.

For future reference, the line causing the events getting dispatched to
the wrong document is the IsPrimaryFramePaintSuppressed call in
PuppetWidget::GetCurrentWidgetListener(), which causes
widget->DispatchEvent from nsContentUtils::SendMouseEvent to dispatch
the event to the wrong page.

Flags: needinfo?(emilio)
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/742356d5619b
Don't unsuppress painting until we've known the website background, to prevent flashing. r=smaug
https://hg.mozilla.org/integration/autoland/rev/38ecfb9d2fa0
Disable this for mochitest / wpt. r=smaug
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 89 Branch
Regressions: 1701807

Reopening since this will be backed out in bug 1701807 effectively :(

Status: RESOLVED → REOPENED
Resolution: FIXED → ---

Denis, can you please re-test this with the current release and report whether the behavior still exists?

Severity: -- → S3
Flags: needinfo?(dpalmeiro)

Seems like it's been addressed, thanks!

Status: REOPENED → RESOLVED
Closed: 3 years ago2 years ago
Flags: needinfo?(dpalmeiro)
Resolution: --- → FIXED
Duplicate of this bug: 1538414
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: