VOOZH about

URL: https://phabricator.services.mozilla.com/D301189

⇱ ⚙ D301189 WIP: Bug 1913666 - Part 5: Refactor the complex "fullscreen-painted" logic to be Fullscreen IPC architecture agnostic r=edgar!,#dom-core!


WIP: Bug 1913666 - Part 5: Refactor the complex "fullscreen-painted" logic to be Fullscreen IPC architecture agnostic r=edgar!,#dom-core!
Changes PlannedPublicDraft

Authored by sfarre on May 18 2026, 10:14 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Jun 15, 1:23 PM
Unknown Object (File)
Mon, Jun 15, 12:18 PM
Unknown Object (File)
Thu, Jun 4, 3:24 PM
Unknown Object (File)
Thu, Jun 4, 7:14 AM
Unknown Object (File)
Wed, Jun 3, 8:22 PM
Unknown Object (File)
Wed, Jun 3, 8:22 PM
Unknown Object (File)
Mon, Jun 1, 5:04 AM
Unknown Object (File)
Mon, Jun 1, 1:34 AM
Subscribers
None

Details

Reviewers
None
Bugzilla Bug ID
1913666
Summary

The fullscreen-painted observer topic is named after its original implementation detail which is a paint observer inside FullscreenTransitionTask. But every external consumer (site-permission panel, WebAuthn prompt helper, MacTouchBar, test harnesses) seem to use it as a "fullscreen transition has settled" barrier. The "painted" guarantee is already best-effort: FullscreenTransitionTask falls back to a 1s timeout (full-screen-api.transition.timeout) and continues regardless. Over time the topic also acquired four manual re-broadcast sites (DOMFullscreenChild on MozAfterPaint, two paths in DOMFullscreenParent, and pictureinpicture/player.js against the PiP window) with subtly different triggers.

This patch does not rename or remove the topic, but the redesign collapses the redundant emit sites and removes the dead content-process broadcast and its parent→child Painted IPC loopback; with hopefully the result being that the Fullscreen IPC architecture rework, will out of the box provide the same side-effects in the UI, as the JSWA implementation does.

In the future, we may want to audit this and possibly remove it entirely.

Diff Detail

Repository
rFIREFOXAUTOLAND firefox-autoland
Branch
HEAD

Revision Contents

CommitTreeParentsAuthorSummaryDate
da1a500365145ac6358da1477bfd9efd4fe5Simon Farre
WIP: Bug 1913666 - Part 5: Refactor the complex "fullscreen-painted" logic to… (Show More…)
May 15 2026, 11:05 AM
StatusAuthorRevision
Changes Plannedsfarre
Changes Plannedsfarre
Changes Plannedsfarre
Changes Plannedsfarre
Changes Plannedsfarre
Changes Plannedsfarre
Changes Plannedsfarre
Changes Plannedsfarre
Changes Plannedsfarre
Changes Plannedsfarre
Changes Plannedsfarre
Changes Plannedsfarre
Changes Plannedsfarre
Changes Plannedsfarre
Changes Plannedsfarre

Diff 1277255

browser/actors/DOMFullscreenChild.sys.mjs

Loading...

browser/actors/DOMFullscreenParent.sys.mjs

Loading...

dom/base/Document.cpp

Loading...

dom/base/FullscreenPaintBarrier.h

Loading...

dom/base/FullscreenPaintBarrier.cpp

Loading...

dom/base/moz.build

Loading...

dom/ipc/BrowserParent.h

Loading...

dom/ipc/BrowserParent.cpp

Loading...

dom/ipc/PBrowser.ipdl

Loading...