fix: silent print settings (#31489)
* fix: silent print settings * chore: update patches Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
This commit is contained in:
parent
5f3af5fdf1
commit
2a4b262354
1 changed files with 41 additions and 7 deletions
|
@ -442,7 +442,7 @@ index 51ebcb4ae399018d3fd8566656596a7ef1f148af..5f2b807fc364131f4c3e6a1646ec522d
|
||||||
// Tells the RenderFrame to switch the CSS to print media type, render every
|
// Tells the RenderFrame to switch the CSS to print media type, render every
|
||||||
// requested page using the print preview document's frame/node, and then
|
// requested page using the print preview document's frame/node, and then
|
||||||
diff --git a/components/printing/renderer/print_render_frame_helper.cc b/components/printing/renderer/print_render_frame_helper.cc
|
diff --git a/components/printing/renderer/print_render_frame_helper.cc b/components/printing/renderer/print_render_frame_helper.cc
|
||||||
index 2760a694a946eb2e4dba1ee228dc5fc13a2fc98e..769976022186037d8e75e244bdb0450c5670b5c0 100644
|
index 2760a694a946eb2e4dba1ee228dc5fc13a2fc98e..29760a87ba5103792518562722dd69d8d168e464 100644
|
||||||
--- a/components/printing/renderer/print_render_frame_helper.cc
|
--- a/components/printing/renderer/print_render_frame_helper.cc
|
||||||
+++ b/components/printing/renderer/print_render_frame_helper.cc
|
+++ b/components/printing/renderer/print_render_frame_helper.cc
|
||||||
@@ -38,6 +38,7 @@
|
@@ -38,6 +38,7 @@
|
||||||
|
@ -547,18 +547,52 @@ index 2760a694a946eb2e4dba1ee228dc5fc13a2fc98e..769976022186037d8e75e244bdb0450c
|
||||||
// Check if |this| is still valid.
|
// Check if |this| is still valid.
|
||||||
if (!self)
|
if (!self)
|
||||||
return;
|
return;
|
||||||
@@ -2173,7 +2188,9 @@ void PrintRenderFrameHelper::IPCProcessed() {
|
@@ -2173,36 +2188,51 @@ void PrintRenderFrameHelper::IPCProcessed() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
-bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) {
|
-bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) {
|
||||||
|
- mojom::PrintPagesParams settings;
|
||||||
|
- settings.params = mojom::PrintParams::New();
|
||||||
|
- GetPrintManagerHost()->GetDefaultPrintSettings(&settings.params);
|
||||||
+bool PrintRenderFrameHelper::InitPrintSettings(
|
+bool PrintRenderFrameHelper::InitPrintSettings(
|
||||||
+ bool fit_to_paper_size,
|
+ bool fit_to_paper_size,
|
||||||
+ const base::DictionaryValue& new_settings) {
|
+ const base::DictionaryValue& new_settings) {
|
||||||
mojom::PrintPagesParams settings;
|
+ mojom::PrintPagesParamsPtr settings;
|
||||||
settings.params = mojom::PrintParams::New();
|
+
|
||||||
GetPrintManagerHost()->GetDefaultPrintSettings(&settings.params);
|
+ if (new_settings.DictEmpty()) {
|
||||||
@@ -2197,12 +2214,14 @@ bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) {
|
+ settings = mojom::PrintPagesParams::New();
|
||||||
|
+ settings->params = mojom::PrintParams::New();
|
||||||
|
+ GetPrintManagerHost()->GetDefaultPrintSettings(&settings->params);
|
||||||
|
+ } else {
|
||||||
|
+ bool canceled = false;
|
||||||
|
+ int cookie =
|
||||||
|
+ print_pages_params_ ? print_pages_params_->params->document_cookie : 0;
|
||||||
|
+ GetPrintManagerHost()->UpdatePrintSettings(cookie, new_settings.Clone(), &settings, &canceled);
|
||||||
|
+ if (canceled)
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
// Check if the printer returned any settings, if the settings is empty, we
|
||||||
|
// can safely assume there are no printer drivers configured. So we safely
|
||||||
|
// terminate.
|
||||||
|
bool result = true;
|
||||||
|
- if (!PrintMsg_Print_Params_IsValid(*settings.params))
|
||||||
|
+ if (!PrintMsg_Print_Params_IsValid(*settings->params))
|
||||||
|
result = false;
|
||||||
|
|
||||||
|
// Reset to default values.
|
||||||
|
ignore_css_margins_ = false;
|
||||||
|
- settings.pages.clear();
|
||||||
|
+ settings->pages.clear();
|
||||||
|
|
||||||
|
- settings.params->print_scaling_option =
|
||||||
|
+ settings->params->print_scaling_option =
|
||||||
|
fit_to_paper_size ? mojom::PrintScalingOption::kFitToPrintableArea
|
||||||
|
: mojom::PrintScalingOption::kSourceSize;
|
||||||
|
|
||||||
|
- SetPrintPagesParams(settings);
|
||||||
|
+ SetPrintPagesParams(*settings);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -577,7 +611,7 @@ index 2760a694a946eb2e4dba1ee228dc5fc13a2fc98e..769976022186037d8e75e244bdb0450c
|
||||||
notify_browser_of_print_failure_ = false;
|
notify_browser_of_print_failure_ = false;
|
||||||
GetPrintManagerHost()->ShowInvalidPrinterSettingsError();
|
GetPrintManagerHost()->ShowInvalidPrinterSettingsError();
|
||||||
return false;
|
return false;
|
||||||
@@ -2573,18 +2592,7 @@ void PrintRenderFrameHelper::RequestPrintPreview(PrintPreviewRequestType type) {
|
@@ -2573,18 +2603,7 @@ void PrintRenderFrameHelper::RequestPrintPreview(PrintPreviewRequestType type) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PrintRenderFrameHelper::CheckForCancel() {
|
bool PrintRenderFrameHelper::CheckForCancel() {
|
||||||
|
|
Loading…
Reference in a new issue