bool PrintingParent::RecvShowProgress(PBrowserParent* parent, PPrintProgressDialogParent* printProgressDialog, PRemotePrintJobParent* remotePrintJob, const bool& isForPrinting, bool* notifyOnOpen, nsresult* result) { *result = NS_ERROR_FAILURE; *notifyOnOpen = false; nsCOMPtr<nsPIDOMWindowOuter> parentWin = DOMWindowFromBrowserParent(parent); if (!parentWin) { return true; } nsCOMPtr<nsIPrintingPromptService> pps(do_GetService("@mozilla.org/embedcomp/printingprompt-service;1")); if (!pps) { return true; } PrintProgressDialogParent* dialogParent = static_cast<PrintProgressDialogParent*>(printProgressDialog); nsCOMPtr<nsIObserver> observer = do_QueryInterface(dialogParent); nsCOMPtr<nsIWebProgressListener> printProgressListener; nsCOMPtr<nsIPrintProgressParams> printProgressParams; *result = pps->ShowProgress(parentWin, nullptr, nullptr, observer, isForPrinting, getter_AddRefs(printProgressListener), getter_AddRefs(printProgressParams), notifyOnOpen); NS_ENSURE_SUCCESS(*result, true); if (remotePrintJob) { // If we have a RemotePrintJob use that as a more general forwarder for // print progress listeners. static_cast<RemotePrintJobParent*>(remotePrintJob) ->RegisterListener(printProgressListener); } else { dialogParent->SetWebProgressListener(printProgressListener); } dialogParent->SetPrintProgressParams(printProgressParams); return true; }
bool PrintingParent::RecvShowProgress(PBrowserParent* parent, PPrintProgressDialogParent* printProgressDialog, const bool& isForPrinting, bool* notifyOnOpen, nsresult* result) { *result = NS_ERROR_FAILURE; *notifyOnOpen = false; nsCOMPtr<nsIDOMWindow> parentWin = DOMWindowFromBrowserParent(parent); if (!parentWin) { return true; } nsCOMPtr<nsIPrintingPromptService> pps(do_GetService("@mozilla.org/embedcomp/printingprompt-service;1")); if (!pps) { return true; } PrintProgressDialogParent* dialogParent = static_cast<PrintProgressDialogParent*>(printProgressDialog); nsCOMPtr<nsIObserver> observer = do_QueryInterface(dialogParent); nsCOMPtr<nsIWebProgressListener> printProgressListener; nsCOMPtr<nsIPrintProgressParams> printProgressParams; *result = pps->ShowProgress(parentWin, nullptr, nullptr, observer, isForPrinting, getter_AddRefs(printProgressListener), getter_AddRefs(printProgressParams), notifyOnOpen); NS_ENSURE_SUCCESS(*result, true); dialogParent->SetWebProgressListener(printProgressListener); dialogParent->SetPrintProgressParams(printProgressParams); return true; }