|
@@ -11,10 +11,10 @@ majority of changes originally come from these PRs:
|
|
|
This patch also fixes callback for manual user cancellation and success.
|
|
|
|
|
|
diff --git a/BUILD.gn b/BUILD.gn
|
|
|
-index 82b4978f1b4610650a15d7ecb3063de0e1f13183..972be1b245da8b82af4e475704efd6a971166451 100644
|
|
|
+index 27ef75902d11e6fab1ed134402da57074c943ff0..1c15d1ca2d5dfa412d05c7ea24b8baa751f5eeaa 100644
|
|
|
--- a/BUILD.gn
|
|
|
+++ b/BUILD.gn
|
|
|
-@@ -978,7 +978,6 @@ if (is_win) {
|
|
|
+@@ -979,7 +979,6 @@ if (is_win) {
|
|
|
"//media:media_unittests",
|
|
|
"//media/midi:midi_unittests",
|
|
|
"//net:net_unittests",
|
|
@@ -22,7 +22,7 @@ index 82b4978f1b4610650a15d7ecb3063de0e1f13183..972be1b245da8b82af4e475704efd6a9
|
|
|
"//sql:sql_unittests",
|
|
|
"//third_party/breakpad:symupload($host_toolchain)",
|
|
|
"//ui/base:ui_base_unittests",
|
|
|
-@@ -987,6 +986,10 @@ if (is_win) {
|
|
|
+@@ -988,6 +987,10 @@ if (is_win) {
|
|
|
"//ui/views:views_unittests",
|
|
|
"//url:url_unittests",
|
|
|
]
|
|
@@ -78,7 +78,7 @@ index b496ff49232f449fd6cea9dc1927b833c049497b..4c12ca65c1f800ddbbb792716f09f63f
|
|
|
: PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3;
|
|
|
}
|
|
|
diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc
|
|
|
-index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe0f63f12e 100644
|
|
|
+index ea3f1ea0e83c7486534d5b1a15a6e8a372830104..de443f48596043fe005ed2c14fc15a78d47f2f6c 100644
|
|
|
--- a/chrome/browser/printing/print_view_manager_base.cc
|
|
|
+++ b/chrome/browser/printing/print_view_manager_base.cc
|
|
|
@@ -23,7 +23,9 @@
|
|
@@ -237,7 +237,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
#if BUILDFLAG(ENABLE_OOP_PRINTING)
|
|
|
if (printing::features::kEnableOopPrintDriversJobPrint.Get() &&
|
|
|
#if BUILDFLAG(ENABLE_PRINT_CONTENT_ANALYSIS)
|
|
|
-@@ -593,6 +627,7 @@ void PrintViewManagerBase::UpdatePrintSettings(
|
|
|
+@@ -593,10 +627,12 @@ void PrintViewManagerBase::UpdatePrintSettings(
|
|
|
base::Value::Dict job_settings,
|
|
|
UpdatePrintSettingsCallback callback) {
|
|
|
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
|
@@ -245,7 +245,20 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
if (!printing_enabled_.GetValue()) {
|
|
|
std::move(callback).Run(nullptr);
|
|
|
return;
|
|
|
-@@ -626,6 +661,7 @@ void PrintViewManagerBase::UpdatePrintSettings(
|
|
|
+ }
|
|
|
++#endif // Printing is always enabled.
|
|
|
+
|
|
|
+ absl::optional<int> printer_type_value =
|
|
|
+ job_settings.FindInt(kSettingPrinterType);
|
|
|
+@@ -607,6 +643,7 @@ void PrintViewManagerBase::UpdatePrintSettings(
|
|
|
+
|
|
|
+ mojom::PrinterType printer_type =
|
|
|
+ static_cast<mojom::PrinterType>(*printer_type_value);
|
|
|
++#if 0 // Printing is always enabled.
|
|
|
+ if (printer_type != mojom::PrinterType::kExtension &&
|
|
|
+ printer_type != mojom::PrinterType::kPdf &&
|
|
|
+ printer_type != mojom::PrinterType::kLocal) {
|
|
|
+@@ -626,6 +663,7 @@ void PrintViewManagerBase::UpdatePrintSettings(
|
|
|
if (value > 0)
|
|
|
job_settings.Set(kSettingRasterizePdfDpi, value);
|
|
|
}
|
|
@@ -253,23 +266,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
|
|
|
std::unique_ptr<PrintSettings> print_settings =
|
|
|
PrintSettingsFromJobSettings(job_settings);
|
|
|
-@@ -634,6 +670,7 @@ void PrintViewManagerBase::UpdatePrintSettings(
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
-+#if 0 // Printing is always enabled.
|
|
|
- #if BUILDFLAG(IS_WIN)
|
|
|
- // TODO(crbug.com/1424368): Remove this if the printable areas can be made
|
|
|
- // fully available from `PrintBackend::GetPrinterSemanticCapsAndDefaults()`
|
|
|
-@@ -648,6 +685,7 @@ void PrintViewManagerBase::UpdatePrintSettings(
|
|
|
- }
|
|
|
- }
|
|
|
- #endif
|
|
|
-+#endif // Printing is always enabled.
|
|
|
-
|
|
|
- mojom::PrintPagesParamsPtr settings = mojom::PrintPagesParams::New();
|
|
|
- settings->pages = GetPageRangesFromJobSettings(job_settings);
|
|
|
-@@ -669,7 +707,7 @@ void PrintViewManagerBase::UpdatePrintSettings(
|
|
|
+@@ -682,7 +720,7 @@ void PrintViewManagerBase::UpdatePrintSettings(
|
|
|
void PrintViewManagerBase::IsPrintingEnabled(
|
|
|
IsPrintingEnabledCallback callback) {
|
|
|
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
|
@@ -278,7 +275,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
}
|
|
|
|
|
|
void PrintViewManagerBase::ScriptedPrint(mojom::ScriptedPrintParamsPtr params,
|
|
|
-@@ -685,14 +723,14 @@ void PrintViewManagerBase::ScriptedPrint(mojom::ScriptedPrintParamsPtr params,
|
|
|
+@@ -698,14 +736,14 @@ void PrintViewManagerBase::ScriptedPrint(mojom::ScriptedPrintParamsPtr params,
|
|
|
// didn't happen for some reason.
|
|
|
bad_message::ReceivedBadMessage(
|
|
|
render_process_host, bad_message::PVMB_SCRIPTED_PRINT_FENCED_FRAME);
|
|
@@ -295,7 +292,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
return;
|
|
|
}
|
|
|
#endif
|
|
|
-@@ -730,6 +768,7 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie,
|
|
|
+@@ -743,6 +781,7 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie,
|
|
|
|
|
|
PrintManager::PrintingFailed(cookie, reason);
|
|
|
|
|
@@ -303,7 +300,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
// `PrintingFailed()` can occur because asynchronous compositing results
|
|
|
// don't complete until after a print job has already failed and been
|
|
|
// destroyed. In such cases the error notification to the user will
|
|
|
-@@ -739,7 +778,7 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie,
|
|
|
+@@ -752,7 +791,7 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie,
|
|
|
print_job_->document()->cookie() == cookie) {
|
|
|
ShowPrintErrorDialogForGenericError();
|
|
|
}
|
|
@@ -312,7 +309,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
ReleasePrinterQuery();
|
|
|
}
|
|
|
|
|
|
-@@ -751,15 +790,24 @@ void PrintViewManagerBase::RemoveObserver(Observer& observer) {
|
|
|
+@@ -764,15 +803,24 @@ void PrintViewManagerBase::RemoveObserver(Observer& observer) {
|
|
|
observers_.RemoveObserver(&observer);
|
|
|
}
|
|
|
|
|
@@ -337,7 +334,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
}
|
|
|
|
|
|
void PrintViewManagerBase::RenderFrameDeleted(
|
|
|
-@@ -811,7 +859,12 @@ void PrintViewManagerBase::OnJobDone() {
|
|
|
+@@ -824,7 +872,12 @@ void PrintViewManagerBase::OnJobDone() {
|
|
|
// Printing is done, we don't need it anymore.
|
|
|
// print_job_->is_job_pending() may still be true, depending on the order
|
|
|
// of object registration.
|
|
@@ -351,7 +348,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
ReleasePrintJob();
|
|
|
}
|
|
|
|
|
|
-@@ -820,9 +873,10 @@ void PrintViewManagerBase::OnCanceling() {
|
|
|
+@@ -833,9 +886,10 @@ void PrintViewManagerBase::OnCanceling() {
|
|
|
}
|
|
|
|
|
|
void PrintViewManagerBase::OnFailed() {
|
|
@@ -363,7 +360,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
TerminatePrintJob(true);
|
|
|
}
|
|
|
|
|
|
-@@ -832,7 +886,7 @@ bool PrintViewManagerBase::RenderAllMissingPagesNow() {
|
|
|
+@@ -845,7 +899,7 @@ bool PrintViewManagerBase::RenderAllMissingPagesNow() {
|
|
|
|
|
|
// Is the document already complete?
|
|
|
if (print_job_->document() && print_job_->document()->IsComplete()) {
|
|
@@ -372,7 +369,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
-@@ -880,7 +934,10 @@ bool PrintViewManagerBase::CreateNewPrintJob(
|
|
|
+@@ -893,7 +947,10 @@ bool PrintViewManagerBase::CreateNewPrintJob(
|
|
|
|
|
|
// Disconnect the current `print_job_`.
|
|
|
auto weak_this = weak_ptr_factory_.GetWeakPtr();
|
|
@@ -384,7 +381,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
if (!weak_this)
|
|
|
return false;
|
|
|
|
|
|
-@@ -901,7 +958,7 @@ bool PrintViewManagerBase::CreateNewPrintJob(
|
|
|
+@@ -914,7 +971,7 @@ bool PrintViewManagerBase::CreateNewPrintJob(
|
|
|
#endif
|
|
|
print_job_->AddObserver(*this);
|
|
|
|
|
@@ -393,7 +390,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
-@@ -963,6 +1020,11 @@ void PrintViewManagerBase::ReleasePrintJob() {
|
|
|
+@@ -976,6 +1033,11 @@ void PrintViewManagerBase::ReleasePrintJob() {
|
|
|
}
|
|
|
#endif
|
|
|
|
|
@@ -405,7 +402,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
if (!print_job_)
|
|
|
return;
|
|
|
|
|
|
-@@ -970,7 +1032,7 @@ void PrintViewManagerBase::ReleasePrintJob() {
|
|
|
+@@ -983,7 +1045,7 @@ void PrintViewManagerBase::ReleasePrintJob() {
|
|
|
// printing_rfh_ should only ever point to a RenderFrameHost with a live
|
|
|
// RenderFrame.
|
|
|
DCHECK(rfh->IsRenderFrameLive());
|
|
@@ -414,7 +411,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
}
|
|
|
|
|
|
print_job_->RemoveObserver(*this);
|
|
|
-@@ -1012,7 +1074,7 @@ bool PrintViewManagerBase::RunInnerMessageLoop() {
|
|
|
+@@ -1025,7 +1087,7 @@ bool PrintViewManagerBase::RunInnerMessageLoop() {
|
|
|
}
|
|
|
|
|
|
bool PrintViewManagerBase::OpportunisticallyCreatePrintJob(int cookie) {
|
|
@@ -423,7 +420,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
return true;
|
|
|
|
|
|
if (!cookie) {
|
|
|
-@@ -1120,7 +1182,7 @@ void PrintViewManagerBase::ReleasePrinterQuery() {
|
|
|
+@@ -1133,7 +1195,7 @@ void PrintViewManagerBase::ReleasePrinterQuery() {
|
|
|
}
|
|
|
|
|
|
void PrintViewManagerBase::CompletePrintNow(content::RenderFrameHost* rfh) {
|
|
@@ -432,7 +429,7 @@ index 09631359ec7b2084641c729cff68401d734d994c..899c895f8f1e3883b80771e21290bbbe
|
|
|
|
|
|
for (auto& observer : GetObservers())
|
|
|
observer.OnPrintNow(rfh);
|
|
|
-@@ -1168,7 +1230,7 @@ void PrintViewManagerBase::CompleteScriptedPrintAfterContentAnalysis(
|
|
|
+@@ -1181,7 +1243,7 @@ void PrintViewManagerBase::CompleteScriptedPrintAfterContentAnalysis(
|
|
|
bool allowed) {
|
|
|
if (!allowed || !printing_rfh_ || IsCrashed() ||
|
|
|
!printing_rfh_->IsRenderFrameLive()) {
|
|
@@ -516,10 +513,10 @@ index 5aec0843d4882155d109f9d2d639e4f52f0e5bd2..2bdfbb8f020814b13efca34d13d570dc
|
|
|
// Indication that the job is getting canceled.
|
|
|
bool canceling_job_ = false;
|
|
|
diff --git a/chrome/browser/printing/printer_query.cc b/chrome/browser/printing/printer_query.cc
|
|
|
-index 53e3de608b6770ce096603e8e0e8c28e272c2435..613957730f0c09eceae076139311affb6154873e 100644
|
|
|
+index e75b5609ad7684ac83ae3b44b5f6f5836a1b56d4..cbd58e731f2ddba3848931324fb369ba3db51d43 100644
|
|
|
--- a/chrome/browser/printing/printer_query.cc
|
|
|
+++ b/chrome/browser/printing/printer_query.cc
|
|
|
-@@ -338,17 +338,19 @@ void PrinterQuery::UpdatePrintSettings(base::Value::Dict new_settings,
|
|
|
+@@ -349,17 +349,19 @@ void PrinterQuery::UpdatePrintSettings(base::Value::Dict new_settings,
|
|
|
#endif // BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_CUPS)
|
|
|
}
|
|
|
|
|
@@ -834,10 +831,10 @@ index 146fbcb2e6bd4348110ecc3220d6ac0ac59babf3..eecc3118033ef7fe1f17aba48cd19b17
|
|
|
#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
|
|
// Set options for print preset from source PDF document.
|
|
|
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
|
|
|
-index 8f8eb52718f3f91779158bd203ad0e2dfa0e143d..6b988eeae6411649bc35321dd22805a5c5439fb5 100644
|
|
|
+index 64545f656ebaea21acfb98f21d4988296dc19334..7274b2166905e5d61de8daef5ff2e71effd427a1 100644
|
|
|
--- a/content/browser/BUILD.gn
|
|
|
+++ b/content/browser/BUILD.gn
|
|
|
-@@ -2852,8 +2852,9 @@ source_set("browser") {
|
|
|
+@@ -2856,8 +2856,9 @@ source_set("browser") {
|
|
|
"//ppapi/shared_impl",
|
|
|
]
|
|
|
|
|
@@ -850,7 +847,7 @@ index 8f8eb52718f3f91779158bd203ad0e2dfa0e143d..6b988eeae6411649bc35321dd22805a5
|
|
|
if (is_chromeos) {
|
|
|
sources += [
|
|
|
diff --git a/printing/printing_context.cc b/printing/printing_context.cc
|
|
|
-index a6ce93f23cf91511c91144de1a453b4357a767e2..ddcb658dad0171edd8643949f672db0e06388e22 100644
|
|
|
+index 370dedfb4b4649f85a02b3a50ee16f525f57f44a..256666b64d8ffb5b50c9424c40ae1bb4050da6fb 100644
|
|
|
--- a/printing/printing_context.cc
|
|
|
+++ b/printing/printing_context.cc
|
|
|
@@ -143,7 +143,6 @@ void PrintingContext::UsePdfSettings() {
|
|
@@ -862,10 +859,10 @@ index a6ce93f23cf91511c91144de1a453b4357a767e2..ddcb658dad0171edd8643949f672db0e
|
|
|
std::unique_ptr<PrintSettings> settings =
|
|
|
PrintSettingsFromJobSettings(job_settings);
|
|
|
diff --git a/printing/printing_context.h b/printing/printing_context.h
|
|
|
-index 7582c73418e7478e7a91622089ec555e3e1e7113..d0e164b2748f2f078a2ace5bd46bbdc431cb6947 100644
|
|
|
+index 2fb3aef0797f204f08c20e48987cd8c2703185de..75a70e331f8b539027748dad3252912cb85e8797 100644
|
|
|
--- a/printing/printing_context.h
|
|
|
+++ b/printing/printing_context.h
|
|
|
-@@ -171,6 +171,9 @@ class COMPONENT_EXPORT(PRINTING) PrintingContext {
|
|
|
+@@ -178,6 +178,9 @@ class COMPONENT_EXPORT(PRINTING) PrintingContext {
|
|
|
|
|
|
bool PrintingAborted() const { return abort_printing_; }
|
|
|
|
|
@@ -875,7 +872,7 @@ index 7582c73418e7478e7a91622089ec555e3e1e7113..d0e164b2748f2f078a2ace5bd46bbdc4
|
|
|
int job_id() const { return job_id_; }
|
|
|
|
|
|
protected:
|
|
|
-@@ -181,9 +184,6 @@ class COMPONENT_EXPORT(PRINTING) PrintingContext {
|
|
|
+@@ -188,9 +191,6 @@ class COMPONENT_EXPORT(PRINTING) PrintingContext {
|
|
|
static std::unique_ptr<PrintingContext> CreateImpl(Delegate* delegate,
|
|
|
bool skip_system_calls);
|
|
|
|