diff options
Diffstat (limited to 'chromium/components/printing/browser/print_manager_utils.cc')
-rw-r--r-- | chromium/components/printing/browser/print_manager_utils.cc | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/chromium/components/printing/browser/print_manager_utils.cc b/chromium/components/printing/browser/print_manager_utils.cc index 3d71a985f6b..844fcf5bd23 100644 --- a/chromium/components/printing/browser/print_manager_utils.cc +++ b/chromium/components/printing/browser/print_manager_utils.cc @@ -3,11 +3,43 @@ // found in the LICENSE file. #include "components/printing/browser/print_manager_utils.h" + +#include "base/command_line.h" +#include "components/printing/browser/print_composite_client.h" #include "components/printing/common/print_messages.h" +#include "content/public/common/content_features.h" +#include "content/public/common/content_switches.h" #include "printing/print_settings.h" namespace printing { +// A temporary flag which makes supporting both paths for OOPIF and non-OOPIF +// printing easier. +static bool g_oopif_enabled = false; + +void SetOopifEnabled() { + g_oopif_enabled = true; +} + +bool IsOopifEnabled() { + return g_oopif_enabled; +} + +void CreateCompositeClientIfNeeded(content::WebContents* web_contents, + bool for_preview) { + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kSitePerProcess) || + base::FeatureList::IsEnabled(features::kTopDocumentIsolation)) { + // For cases need to support OOPIFs. + PrintCompositeClient::CreateForWebContents(web_contents); + if (for_preview) { + PrintCompositeClient::FromWebContents(web_contents) + ->set_for_preview(true); + } + SetOopifEnabled(); + } +} + void RenderParamsFromPrintSettings(const PrintSettings& settings, PrintMsg_Print_Params* params) { params->page_size = settings.page_setup_device_units().physical_size(); @@ -32,7 +64,8 @@ void RenderParamsFromPrintSettings(const PrintSettings& settings, params->display_header_footer = settings.display_header_footer(); params->title = settings.title(); params->url = settings.url(); - params->printed_doc_type = SkiaDocumentType::PDF; + params->printed_doc_type = + IsOopifEnabled() ? SkiaDocumentType::MSKP : SkiaDocumentType::PDF; } } // namespace printing |