OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/printing/browser/print_manager_utils.h" | 5 #include "components/printing/browser/print_manager_utils.h" |
6 | |
7 #include "base/command_line.h" | |
8 #include "components/printing/browser/print_composite_client.h" | |
6 #include "components/printing/common/print_messages.h" | 9 #include "components/printing/common/print_messages.h" |
10 #include "content/public/common/content_features.h" | |
11 #include "content/public/common/content_switches.h" | |
7 #include "printing/print_settings.h" | 12 #include "printing/print_settings.h" |
8 | 13 |
9 namespace printing { | 14 namespace printing { |
10 | 15 |
16 // A temporary flag which makes supporting both paths for OOPIF and non-OOPIF | |
17 // printing easier. | |
18 base::LazyInstance<bool>::Leaky g_oopif_enabled; | |
Lei Zhang
2017/08/16 21:17:00
Can this just be a bool?
Wei Li
2017/08/25 23:39:37
Yes, done.
| |
19 | |
20 void SetOopifEnabled(bool enabled) { | |
21 g_oopif_enabled.Get() = enabled; | |
22 } | |
23 | |
24 bool IsOopifEnabled() { | |
25 return g_oopif_enabled.Get(); | |
26 } | |
27 | |
28 void CreateCompositeClientIfNeeded(content::WebContents* web_contents) { | |
29 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | |
30 switches::kSitePerProcess) || | |
31 base::FeatureList::IsEnabled(features::kTopDocumentIsolation)) { | |
32 // For cases need to support OOPIFs. | |
33 PrintCompositeClient::CreateForWebContents(web_contents); | |
34 SetOopifEnabled(true); | |
35 } | |
36 } | |
37 | |
11 void RenderParamsFromPrintSettings(const PrintSettings& settings, | 38 void RenderParamsFromPrintSettings(const PrintSettings& settings, |
12 PrintMsg_Print_Params* params) { | 39 PrintMsg_Print_Params* params) { |
13 params->page_size = settings.page_setup_device_units().physical_size(); | 40 params->page_size = settings.page_setup_device_units().physical_size(); |
14 params->content_size.SetSize( | 41 params->content_size.SetSize( |
15 settings.page_setup_device_units().content_area().width(), | 42 settings.page_setup_device_units().content_area().width(), |
16 settings.page_setup_device_units().content_area().height()); | 43 settings.page_setup_device_units().content_area().height()); |
17 params->printable_area.SetRect( | 44 params->printable_area.SetRect( |
18 settings.page_setup_device_units().printable_area().x(), | 45 settings.page_setup_device_units().printable_area().x(), |
19 settings.page_setup_device_units().printable_area().y(), | 46 settings.page_setup_device_units().printable_area().y(), |
20 settings.page_setup_device_units().printable_area().width(), | 47 settings.page_setup_device_units().printable_area().width(), |
21 settings.page_setup_device_units().printable_area().height()); | 48 settings.page_setup_device_units().printable_area().height()); |
22 params->margin_top = settings.page_setup_device_units().content_area().y(); | 49 params->margin_top = settings.page_setup_device_units().content_area().y(); |
23 params->margin_left = settings.page_setup_device_units().content_area().x(); | 50 params->margin_left = settings.page_setup_device_units().content_area().x(); |
24 params->dpi = settings.dpi(); | 51 params->dpi = settings.dpi(); |
25 params->scale_factor = settings.scale_factor(); | 52 params->scale_factor = settings.scale_factor(); |
26 params->rasterize_pdf = settings.rasterize_pdf(); | 53 params->rasterize_pdf = settings.rasterize_pdf(); |
27 // Always use an invalid cookie. | 54 // Always use an invalid cookie. |
28 params->document_cookie = 0; | 55 params->document_cookie = 0; |
29 params->selection_only = settings.selection_only(); | 56 params->selection_only = settings.selection_only(); |
30 params->supports_alpha_blend = settings.supports_alpha_blend(); | 57 params->supports_alpha_blend = settings.supports_alpha_blend(); |
31 params->should_print_backgrounds = settings.should_print_backgrounds(); | 58 params->should_print_backgrounds = settings.should_print_backgrounds(); |
32 params->display_header_footer = settings.display_header_footer(); | 59 params->display_header_footer = settings.display_header_footer(); |
33 params->title = settings.title(); | 60 params->title = settings.title(); |
34 params->url = settings.url(); | 61 params->url = settings.url(); |
62 params->printed_doc_type = | |
63 IsOopifEnabled() ? SkiaDocumentType::MSKP : SkiaDocumentType::PDF; | |
35 } | 64 } |
36 | 65 |
37 } // namespace printing | 66 } // namespace printing |
OLD | NEW |