Disentangle RemotePrintJobChild from nsPrintSettings, and kill off nsPrintSession
Categories
(Core :: Printing: Output, task, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox102 | --- | fixed |
People
(Reporter: jwatt, Assigned: jwatt)
References
Details
(Whiteboard: [print2020])
Attachments
(2 files, 12 obsolete files)
| Assignee | ||
Comment 1•7 years ago
•
|
||
| Comment hidden (mozreview-request) |
| Comment hidden (mozreview-request) |
| Comment hidden (mozreview-request) |
| Comment hidden (mozreview-request) |
| Comment hidden (mozreview-request) |
| Comment hidden (mozreview-request) |
| Comment hidden (mozreview-request) |
Comment 9•7 years ago
|
||
| mozreview-review | ||
Comment 10•7 years ago
|
||
| mozreview-review | ||
Comment 11•7 years ago
|
||
| mozreview-review | ||
Comment 12•7 years ago
|
||
| mozreview-review | ||
Comment 13•7 years ago
|
||
| mozreview-review | ||
Comment 14•7 years ago
|
||
| mozreview-review | ||
Comment 15•7 years ago
|
||
| mozreview-review | ||
Comment 16•7 years ago
|
||
| mozreview-review | ||
Comment 17•7 years ago
|
||
| mozreview-review | ||
| Assignee | ||
Comment 19•6 years ago
|
||
| Assignee | ||
Comment 20•6 years ago
|
||
Following on from part 1, the second of the two places where we can create an
RemotePrintJobChild is under nsPrintingProxy::ShowPrintDialog. This patch
makes nsPrintingProxy::ShowPrintDialog set the RemotePrintJobChild on the
nsPrintJob for the print operation so that we can now get our
RemotePrintJobChild from the nsPrintJob rather than from an nsIPrintSettings.
Since nsPrintingProxy can't access the nsPrintJob directly, this patch adds
methods to the XPIDL interface nsIWebBrowserPrint (implemented by the
document's nsDocumentViewer) to pass the RemotePrintJobChild through to the
nsPrintJob. This isn't ideal, but unfortunately it's hard to avoid since we
use XPIDL heavily in the printing code to allow it to be scripted by the
browser UI.
MozReview-Commit-ID: CwJwGfCcUjZ
Depends on D55545
| Assignee | ||
Comment 21•6 years ago
|
||
This makes nsPrintingProxy::ShowProgress get the RemotePrintJobChild from the
current nsPrintJob (indirectly via the new
nsIWebBrowserPrint::GetRemotePrintJob API).
MozReview-Commit-ID: JXYNZ3QHFRe
Depends on D55546
| Assignee | ||
Comment 22•6 years ago
|
||
This makes nsPrintJob methods obtain the RemotePrintJobChild from its
nsPrintData instead of from the nsIPrintSettings' nsIPrintSession.
MozReview-Commit-ID: 4JAbGp4fQkE
Depends on D55547
| Assignee | ||
Comment 23•6 years ago
|
||
Depends on D55548
Updated•6 years ago
|
Comment 24•6 years ago
|
||
There are some r+ patches which didn't land and no activity in this bug for 2 weeks.
:jwatt, could you have a look please?
For more information, please visit auto_nag documentation.
| Assignee | ||
Updated•6 years ago
|
Comment 25•5 years ago
|
||
Deferring to Fission Nightly (M6) because printing bugs don't need to block M5 dogfooding.
| Assignee | ||
Updated•5 years ago
|
| Assignee | ||
Updated•5 years ago
|
| Assignee | ||
Comment 28•5 years ago
|
||
We need bug 1140929 to happen first. I'm aiming to get that done for v81.
Comment 29•5 years ago
|
||
With all the recent work for the new print UI in bug 1653340, bug 1636728, and bug 1602410 our approach has changed. I'll leave this open for now but removing it from Fission milestones.
| Assignee | ||
Comment 30•5 years ago
|
||
We do still want to land these patches, but it will be a lot easier to do that once the old nested event loop spinning code in DoCommonPrint that's currently still needed for the old print UI is gone.
Updated•3 years ago
|
Updated•3 years ago
|
| Assignee | ||
Updated•3 years ago
|
| Assignee | ||
Updated•3 years ago
|
| Assignee | ||
Updated•3 years ago
|
| Assignee | ||
Updated•3 years ago
|
| Assignee | ||
Updated•3 years ago
|
| Assignee | ||
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
| Assignee | ||
Updated•3 years ago
|
| Assignee | ||
Comment 31•3 years ago
|
||
Given how nsIPrintSettings is passed around, stored and copied all over the
place, it's very hard to reason about where and when a RemotePrintJobChild is
needed or valid. This patch avoids all that by explicitly passing a
RemotePrintJobChild when it's needed.
Another reason to make this change is because RemotePrintJobChild really does
not belong on nsIPrintSettings. That interface is supposed to represent a
collection of settings for laying out the document that is to be printed.
| Assignee | ||
Comment 32•3 years ago
|
||
Lately nsIPrintSession was only used to pass around RemotePrintJobChild objects.
Now that we pass those objects explicitly where needed (part 1), this class
serves no purpose.
Another reason to want to get rid of this class is that having it as a member
of nsIPrintSettings made no sense and was confusing.
Depends on D146380
Comment 33•3 years ago
|
||
Comment 34•3 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/ce7f1bd80fa0
https://hg.mozilla.org/mozilla-central/rev/9482edb5ae07
Description
•