Closed Bug 1480547 (printing-fission) Opened 4 years ago Closed 1 year ago

Fission: Support printing content with OOP iframes

Categories

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

enhancement

Tracking

()

RESOLVED FIXED
Fission Milestone M6c

People

(Reporter: rhunt, Assigned: jwatt)

References

(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
No longer depends on: 1557638, 1557640

Tracking for Fission Nightly (M6c)

Fission Milestone: M6 → M6c
Fission Milestone: M6c → M6b
Alias: printing-fission
Severity: normal → N/A
Priority: P3 → P1
Depends on: 1662336

Sean said fission printing work will most probably not be ready in time for nightly experiment and we shouldn't block on it. It is expected to be fixed in a couple of weeks following the experiment launch.

Fission Milestone: M6b → M6c

The push to try to get the new printing UI ready for v81 has been tough. v83 is the absolute best case scenario at this point, and that's only if it actually does take two weeks of work which would depend on dropping support for the old printing UI and GFX support. There are a bunch of "if"s and "but"s in play right now. Even then, I won't be surprised if it takes significantly longer than two weeks (that's based on general knowledge of all the bits of code involved and gut feeling, not on a proper investigation which we haven't had the cycles for yet and I'm guessing won't happen until Emilio and I have had some PTO to recharge).

needinfo only to make sure you see this and are updated, Neha.

Flags: needinfo?(nkochar)
No longer blocks: 1652134

Thanks jwatt. I appreciate the info. I've talked with Sean and 83 soft freeze (Oct 15) is when we are going to try printing iframes to be done, and it will give us ~1.5 weeks after the experiment launch to get this fixed, and is an acceptable risk at this time.

Flags: needinfo?(nkochar)
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Depends on: 1674135
Depends on: 1663823
Depends on: 1742362
You need to log in before you can comment on or make changes to this bug.