mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
Bug 1270447 Part 1: Use the RemotePrintJob's print settings in the parent when available. r=jimm
MozReview-Commit-ID: 4PnVf4pzHWr --HG-- extra : rebase_source : 44f19893b27a2f2987cbd7f38d454f5d31aba5c3
This commit is contained in:
parent
8d58a3b347
commit
9cf07da276
@ -98,9 +98,18 @@ PrintingParent::ShowPrintDialog(PBrowserParent* aParent,
|
||||
// nsIWebBrowserPrint to keep the dialogs happy.
|
||||
nsCOMPtr<nsIWebBrowserPrint> wbp = new MockWebBrowserPrint(aData);
|
||||
|
||||
// Use the existing RemotePrintJob and its settings, if we have one, to make
|
||||
// sure they stay current.
|
||||
RemotePrintJobParent* remotePrintJob =
|
||||
static_cast<RemotePrintJobParent*>(aData.remotePrintJobParent());
|
||||
nsCOMPtr<nsIPrintSettings> settings;
|
||||
nsresult rv = mPrintSettingsSvc->GetNewPrintSettings(getter_AddRefs(settings));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
nsresult rv;
|
||||
if (remotePrintJob) {
|
||||
settings = remotePrintJob->GetPrintSettings();
|
||||
} else {
|
||||
rv = mPrintSettingsSvc->GetNewPrintSettings(getter_AddRefs(settings));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
rv = mPrintSettingsSvc->DeserializeToPrintSettings(aData, settings);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
@ -108,10 +117,6 @@ PrintingParent::ShowPrintDialog(PBrowserParent* aParent,
|
||||
rv = pps->ShowPrintDialog(parentWin, wbp, settings);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Serialize back to aResult. Use the existing RemotePrintJob if we have one
|
||||
// otherwise SerializeAndEnsureRemotePrintJob() will create a new one.
|
||||
RemotePrintJobParent* remotePrintJob =
|
||||
static_cast<RemotePrintJobParent*>(aData.remotePrintJobParent());
|
||||
rv = SerializeAndEnsureRemotePrintJob(settings, nullptr, remotePrintJob,
|
||||
aResult);
|
||||
|
||||
|
@ -200,6 +200,13 @@ RemotePrintJobParent::RegisterListener(nsIWebProgressListener* aListener)
|
||||
mPrintProgressListeners.AppendElement(aListener);
|
||||
}
|
||||
|
||||
already_AddRefed<nsIPrintSettings>
|
||||
RemotePrintJobParent::GetPrintSettings()
|
||||
{
|
||||
nsCOMPtr<nsIPrintSettings> printSettings = mPrintSettings;
|
||||
return printSettings.forget();
|
||||
}
|
||||
|
||||
RemotePrintJobParent::~RemotePrintJobParent()
|
||||
{
|
||||
MOZ_COUNT_DTOR(RemotePrintJobParent);
|
||||
|
@ -57,6 +57,11 @@ public:
|
||||
*/
|
||||
void RegisterListener(nsIWebProgressListener* aListener);
|
||||
|
||||
/**
|
||||
* @return the print settings for this remote print job.
|
||||
*/
|
||||
already_AddRefed<nsIPrintSettings> GetPrintSettings();
|
||||
|
||||
private:
|
||||
~RemotePrintJobParent() final;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user