Chromium Code Reviews| Index: content/renderer/pepper/pepper_plugin_instance_impl.cc |
| diff --git a/content/renderer/pepper/pepper_plugin_instance_impl.cc b/content/renderer/pepper/pepper_plugin_instance_impl.cc |
| index c039d254d2bef13c6a7e6c3998a6a8293b7c5b52..8d0fab2fe9bc391dfd3e4f45a1603b10b1213118 100644 |
| --- a/content/renderer/pepper/pepper_plugin_instance_impl.cc |
| +++ b/content/renderer/pepper/pepper_plugin_instance_impl.cc |
| @@ -1767,23 +1767,31 @@ void PepperPluginInstanceImpl::ReportGeometry() { |
| } |
| bool PepperPluginInstanceImpl::GetPreferredPrintOutputFormat( |
| - PP_PrintOutputFormat_Dev* format) { |
| + PP_PrintOutputFormat_Dev* format, |
| + const WebPrintParams& print_params) { |
| // Keep a reference on the stack. See NOTE above. |
| scoped_refptr<PepperPluginInstanceImpl> ref(this); |
| if (!LoadPrintInterface()) |
| return false; |
| uint32_t supported_formats = |
| plugin_print_interface_->QuerySupportedFormats(pp_instance()); |
| - if (supported_formats & PP_PRINTOUTPUTFORMAT_PDF) { |
| + if ((supported_formats & PP_PRINTOUTPUTFORMAT_PDF) && |
| + !print_params.rasterizePDF) { |
| *format = PP_PRINTOUTPUTFORMAT_PDF; |
| return true; |
| } |
| + if (supported_formats & PP_PRINTOUTPUTFORMAT_RASTER) { |
| + *format = PP_PRINTOUTPUTFORMAT_RASTER; |
|
Vitaly Buka (NO REVIEWS)
2016/12/16 00:54:38
It should be PP_PRINTOUTPUTFORMAT_PDF as it's stil
rbpotter
2016/12/16 01:14:33
thestig@ specifically told me to do it this way be
|
| + return true; |
| + } |
| return false; |
| } |
| bool PepperPluginInstanceImpl::SupportsPrintInterface() { |
| PP_PrintOutputFormat_Dev format; |
| - return GetPreferredPrintOutputFormat(&format); |
| + WebPrintParams params; |
| + params.rasterizePDF = false; |
| + return GetPreferredPrintOutputFormat(&format, params); |
| } |
| bool PepperPluginInstanceImpl::IsPrintScalingDisabled() { |
| @@ -1797,7 +1805,7 @@ int PepperPluginInstanceImpl::PrintBegin(const WebPrintParams& print_params) { |
| // Keep a reference on the stack. See NOTE above. |
| scoped_refptr<PepperPluginInstanceImpl> ref(this); |
| PP_PrintOutputFormat_Dev format; |
| - if (!GetPreferredPrintOutputFormat(&format)) { |
| + if (!GetPreferredPrintOutputFormat(&format, print_params)) { |
| // PrintBegin should not have been called since SupportsPrintInterface |
| // would have returned false; |
| NOTREACHED(); |
| @@ -1859,7 +1867,8 @@ void PepperPluginInstanceImpl::PrintPageHelper( |
| if (!print_output) |
| return; |
| - if (current_print_settings_.format == PP_PRINTOUTPUTFORMAT_PDF) |
| + if (current_print_settings_.format == PP_PRINTOUTPUTFORMAT_PDF || |
| + current_print_settings_.format == PP_PRINTOUTPUTFORMAT_RASTER) |
|
Vitaly Buka (NO REVIEWS)
2016/12/16 00:54:38
I believe we should keep PP_PRINTOUTPUTFORMAT_PDF
rbpotter
2016/12/16 01:14:33
See above.
|
| PrintPDFOutput(print_output, metafile); |
| // Now we need to release the print output resource. |