From 52258dee08c375412c43d878cd60db36ae662e6b Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 11 Jun 2021 13:18:33 +0200 Subject: Fix printing after 90-based merge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I11e714254cd56b001515441784187d887f724b6c Reviewed-by: Michael BrĂ¼ning --- chromium/components/printing/common/print.mojom | 3 ++ .../printing/renderer/print_render_frame_helper.cc | 36 +++++++++++++--------- 2 files changed, 24 insertions(+), 15 deletions(-) (limited to 'chromium/components/printing') diff --git a/chromium/components/printing/common/print.mojom b/chromium/components/printing/common/print.mojom index bfca294bd94..81c922e6a25 100644 --- a/chromium/components/printing/common/print.mojom +++ b/chromium/components/printing/common/print.mojom @@ -375,6 +375,9 @@ interface PrintManagerHost { [EnableIf=enable_print_preview, Sync] CheckForCancel(int32 preview_ui_id, int32 request_id) => (bool cancel); + [EnableIf=enable_print_preview] + MetafileReadyForPrinting(DidPreviewDocumentParams params, int32 request_id); + // Sends the accessibility tree corresponding to a document being // printed, needed for a tagged (accessible) PDF. Note that // enable_print_preview must be set to true as well, but Mojo cannot express diff --git a/chromium/components/printing/renderer/print_render_frame_helper.cc b/chromium/components/printing/renderer/print_render_frame_helper.cc index 9d0876c86f2..4887d3dcc29 100644 --- a/chromium/components/printing/renderer/print_render_frame_helper.cc +++ b/chromium/components/printing/renderer/print_render_frame_helper.cc @@ -1564,7 +1564,7 @@ void PrintRenderFrameHelper::OnFramePreparedForPreviewDocument() { PrintRenderFrameHelper::CreatePreviewDocumentResult PrintRenderFrameHelper::CreatePreviewDocument() { - if (!print_pages_params_ || CheckForCancel() || !preview_ui_) + if (!print_pages_params_ || CheckForCancel()/* || !preview_ui_*/) return CREATE_FAIL; if (print_preview_context_.IsForArc()) { @@ -1603,19 +1603,21 @@ PrintRenderFrameHelper::CreatePreviewDocument() { ConvertUnit(print_params.printable_area.width(), dpi, kPointsPerInch), ConvertUnit(print_params.printable_area.height(), dpi, kPointsPerInch)); - // Margins: Send default page layout to browser process. - preview_ui_->DidGetDefaultPageLayout( - std::move(default_page_layout), printable_area_in_points, - has_page_size_style, print_params.preview_request_id); - - preview_ui_->DidStartPreview( - mojom::DidStartPreviewParams::New( - print_preview_context_.total_page_count(), - print_preview_context_.pages_to_render(), - print_params.pages_per_sheet, - GetPdfPageSize(print_params.page_size, dpi), - GetFitToPageScaleFactor(printable_area_in_points)), - print_params.preview_request_id); + if (preview_ui_) { + // Margins: Send default page layout to browser process. + preview_ui_->DidGetDefaultPageLayout( + std::move(default_page_layout), printable_area_in_points, + has_page_size_style, print_params.preview_request_id); + + preview_ui_->DidStartPreview( + mojom::DidStartPreviewParams::New( + print_preview_context_.total_page_count(), + print_preview_context_.pages_to_render(), + print_params.pages_per_sheet, + GetPdfPageSize(print_params.page_size, dpi), + GetFitToPageScaleFactor(printable_area_in_points)), + print_params.preview_request_id); + } if (CheckForCancel()) return CREATE_FAIL; @@ -1632,7 +1634,7 @@ PrintRenderFrameHelper::CreatePreviewDocument() { } if (print_pages_params_->params->printed_doc_type == - mojom::SkiaDocumentType::kMSKP) { + mojom::SkiaDocumentType::kMSKP && preview_ui_) { // Want modifiable content of MSKP type to be collected into a document // during individual page preview generation (to avoid separate document // version for composition), notify to prepare to do this collection. @@ -1756,6 +1758,10 @@ bool PrintRenderFrameHelper::FinalizePrintReadyDocument() { preview_ui_->MetafileReadyForPrinting( std::move(preview_params), print_pages_params_->params->preview_request_id); + } else { + GetPrintManagerHost()->MetafileReadyForPrinting( + std::move(preview_params), + print_pages_params_->params->preview_request_id); } return true; } -- cgit v1.2.1