Open Bug 1480547 Opened Last year Updated 18 hours ago

Fission: Support printing content with OOP iframes

Categories

(Core :: Printing: Output, enhancement, P3)

enhancement

Tracking

()

ASSIGNED
Fission Milestone M6

People

(Reporter: rhunt, Assigned: jwatt)

References

(Depends on 5 open bugs, Blocks 1 open bug)

Details

I'm not sure if this is the right component for this. Feel free to move.

Currently we cannot render iframes from other content processes. This means that when printing with Fission enabled, there will be a blank space where any OOP iframes are located

Additionally, I don't believe it's desirable to allow a content process to request another content process to render itself as that could allow a compromised process to view the contents of a site of a different origin.

My understanding of printing is that it is driven by the parent process. It sounds like we'll need to update it to request prints/recordings of all necessary frames, and then merge them somehow.
How much does this connect to the way compositing works?  (Do we support partially-transparent iframes?  That's certainly compositing...)
Priority: -- → P3
(In reply to David Baron :dbaron: 🏴󠁵󠁳󠁣󠁡󠁿 ⌚UTC-7 from comment #1)
> How much does this connect to the way compositing works?  (Do we support
> partially-transparent iframes?  That's certainly compositing...)

Printing doesn't use the normal OMTC path of ClientLayerManager/
HostLayerManager/Compositor. It instead uses a BasicLayerManager on
the main thread that outputs to a draw target.

Without e10s, this is a device context draw target for the printer. On
windows I think this is cairo backed by GDI. With e10s, this is a draw
target recording that is sent to the parent process to be replayed on
a device context draw target.

We don't use the OMTC infrastructure for a couple reasons, but I think
the main one is that OMTC works by syncing textures for each layer
whereas printing needs the actual draw commands.
Assignee: nobody → jwatt
Duplicate of this bug: 1523666
Fission Milestone: --- → ?
Summary: Support printing content with OOP iframes → Fission: Support printing content with OOP iframes
Fission Milestone: ? → M2
Status: NEW → ASSIGNED
Blocks: rendering-fission
No longer blocks: graphics-fission
Fission Milestone: M2 → M3
Fission Milestone: M3 → M4
Depends on: 1552785
Depends on: 1552966
Depends on: 1557033
Depends on: 1557638
Depends on: 1557640
Depends on: 1557645

We're explicitly not going to do printing for M4. Jonathan is going to work on getting Print Preview done for Q3, but it's not M4 as such.

Fission Milestone: M4 → Future
Depends on: 1582817

M6 because printing support blocks enabling Fission in Nightly.

Fission Milestone: Future → M6
You need to log in before you can comment on or make changes to this bug.