Commit 8b0e55f5 authored by Lei Zhang's avatar Lei Zhang Committed by Commit Bot

Remove PrintPreviewUI::ShouldCompositeDocumentUsingIndividualPages().

The removed method is only used in PrintPreviewMessageHandler, and
PrintPreviewMessageHandler already has ShouldUseCompositor(), which does
exactly the same thing. Once all the calls to
ShouldCompositeDocumentUsingIndividualPages() has been replaced,
PrintPreviewMessageHandler::OnMetafileReadyForPrinting() now has:

if (ShouldUseCompositor(ptr)) {
  if (ShouldUseCompositor(ptr)) {
    ...
  } else {
    // Dead code.
  }
}

Remove the dead code and simplify the surrounding code. With the
cleanup, OnMetafileReadyForPrinting() can also make its IPC parameter
check more strict.

Change-Id: I137f0ceb82f40ede6b61ac3c29fd43d99c12851a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2037088
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: default avatarDaniel Hosseinian <dhoss@chromium.org>
Cr-Commit-Position: refs/heads/master@{#738420}
parent b35a1931
...@@ -145,10 +145,10 @@ void PrintPreviewMessageHandler::OnDidPrepareForDocumentToPdf( ...@@ -145,10 +145,10 @@ void PrintPreviewMessageHandler::OnDidPrepareForDocumentToPdf(
if (!print_preview_ui) if (!print_preview_ui)
return; return;
// Determine if document composition from individual pages is desired // Determine if document composition from individual pages with the print
// configuration. Issue a preparation call to client if that hasn't // compositor is the desired configuration. Issue a preparation call to the
// been done yet. // PrintCompositeClient if that hasn't been done yet. Otherwise, return early.
if (!print_preview_ui->ShouldCompositeDocumentUsingIndividualPages()) if (!ShouldUseCompositor(print_preview_ui))
return; return;
// For case of print preview, page metafile is used to composite into // For case of print preview, page metafile is used to composite into
...@@ -222,14 +222,16 @@ void PrintPreviewMessageHandler::OnMetafileReadyForPrinting( ...@@ -222,14 +222,16 @@ void PrintPreviewMessageHandler::OnMetafileReadyForPrinting(
if (!print_preview_ui) if (!print_preview_ui)
return; return;
const PrintHostMsg_DidPrintContent_Params& content = params.content;
const bool composite_document_using_individual_pages = const bool composite_document_using_individual_pages =
print_preview_ui->ShouldCompositeDocumentUsingIndividualPages(); ShouldUseCompositor(print_preview_ui);
// Concern about valid |metafile_data_region| is only relevant if full const base::ReadOnlySharedMemoryRegion& metafile =
// document is provided on this call. When document is compiled together params.content.metafile_data_region;
// from prior individual pages then there is no content required here.
if (!composite_document_using_individual_pages && // When the Print Compositor is active, the print document is composed from
!content.metafile_data_region.IsValid()) // the individual pages, so |metafile| should be invalid.
// When it is inactive, the print document is composed from |metafile|.
// So if this comparison succeeds, that means the renderer sent bad data.
if (composite_document_using_individual_pages == metafile.IsValid())
return; return;
if (params.expected_pages_count <= 0) { if (params.expected_pages_count <= 0) {
...@@ -237,40 +239,29 @@ void PrintPreviewMessageHandler::OnMetafileReadyForPrinting( ...@@ -237,40 +239,29 @@ void PrintPreviewMessageHandler::OnMetafileReadyForPrinting(
return; return;
} }
if (ShouldUseCompositor(print_preview_ui)) { if (composite_document_using_individual_pages) {
// Don't bother compositing if this request has been cancelled already. // Don't bother compositing if this request has been cancelled already.
if (PrintPreviewUI::ShouldCancelRequest(ids)) if (PrintPreviewUI::ShouldCancelRequest(ids))
return; return;
auto* client = PrintCompositeClient::FromWebContents(web_contents());
DCHECK(client);
auto callback = base::BindOnce( auto callback = base::BindOnce(
&PrintPreviewMessageHandler::OnCompositeOrCompleteDocumentToPdfDone, &PrintPreviewMessageHandler::OnCompositeToPdfDone,
weak_ptr_factory_.GetWeakPtr(), weak_ptr_factory_.GetWeakPtr(), params.document_cookie, ids);
composite_document_using_individual_pages, params.document_cookie, ids);
if (composite_document_using_individual_pages) { // Page metafile is used to composite into the document at same time.
// Page metafile is used to composite into the document at same time. // Need to provide particulars of how many pages are required before
// Need to provide particulars of how many pages are required before // document will be completed.
// document will be completed. auto* client = PrintCompositeClient::FromWebContents(web_contents());
client->DoCompleteDocumentToPdf( client->DoCompleteDocumentToPdf(
params.document_cookie, params.expected_pages_count, params.document_cookie, params.expected_pages_count,
mojo::WrapCallbackWithDefaultInvokeIfNotRun( mojo::WrapCallbackWithDefaultInvokeIfNotRun(
std::move(callback), std::move(callback),
mojom::PrintCompositor::Status::kCompositingFailure, mojom::PrintCompositor::Status::kCompositingFailure,
base::ReadOnlySharedMemoryRegion())); base::ReadOnlySharedMemoryRegion()));
} else {
client->DoCompositeDocumentToPdf(
params.document_cookie, render_frame_host, content,
mojo::WrapCallbackWithDefaultInvokeIfNotRun(
std::move(callback),
mojom::PrintCompositor::Status::kCompositingFailure,
base::ReadOnlySharedMemoryRegion()));
}
} else { } else {
NotifyUIPreviewDocumentReady( NotifyUIPreviewDocumentReady(
print_preview_ui, ids, print_preview_ui, ids,
base::RefCountedSharedMemoryMapping::CreateFromWholeRegion( base::RefCountedSharedMemoryMapping::CreateFromWholeRegion(metafile));
content.metafile_data_region));
} }
} }
...@@ -441,8 +432,7 @@ void PrintPreviewMessageHandler::OnNupPdfConvertDone( ...@@ -441,8 +432,7 @@ void PrintPreviewMessageHandler::OnNupPdfConvertDone(
base::RefCountedSharedMemoryMapping::CreateFromWholeRegion(region)); base::RefCountedSharedMemoryMapping::CreateFromWholeRegion(region));
} }
void PrintPreviewMessageHandler::OnCompositeOrCompleteDocumentToPdfDone( void PrintPreviewMessageHandler::OnCompositeToPdfDone(
bool composite_document_using_individual_pages,
int document_cookie, int document_cookie,
const PrintHostMsg_PreviewIds& ids, const PrintHostMsg_PreviewIds& ids,
mojom::PrintCompositor::Status status, mojom::PrintCompositor::Status status,
...@@ -450,10 +440,7 @@ void PrintPreviewMessageHandler::OnCompositeOrCompleteDocumentToPdfDone( ...@@ -450,10 +440,7 @@ void PrintPreviewMessageHandler::OnCompositeOrCompleteDocumentToPdfDone(
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
PrintPreviewUI* print_preview_ui = GetPrintPreviewUI(ids.ui_id); PrintPreviewUI* print_preview_ui = GetPrintPreviewUI(ids.ui_id);
if (status != mojom::PrintCompositor::Status::kSuccess) { if (status != mojom::PrintCompositor::Status::kSuccess) {
DLOG(ERROR) << (composite_document_using_individual_pages DLOG(ERROR) << "Completion of document to pdf failed with error " << status;
? "Completion of document to"
: "Compositing")
<< " pdf failed with error " << status;
if (print_preview_ui) if (print_preview_ui)
print_preview_ui->OnPrintPreviewFailed(ids.request_id); print_preview_ui->OnPrintPreviewFailed(ids.request_id);
return; return;
......
...@@ -107,12 +107,10 @@ class PrintPreviewMessageHandler ...@@ -107,12 +107,10 @@ class PrintPreviewMessageHandler
const PrintHostMsg_PreviewIds& ids, const PrintHostMsg_PreviewIds& ids,
mojom::PrintCompositor::Status status, mojom::PrintCompositor::Status status,
base::ReadOnlySharedMemoryRegion region); base::ReadOnlySharedMemoryRegion region);
void OnCompositeOrCompleteDocumentToPdfDone( void OnCompositeToPdfDone(int document_cookie,
bool composite_document_using_individual_pages, const PrintHostMsg_PreviewIds& ids,
int document_cookie, mojom::PrintCompositor::Status status,
const PrintHostMsg_PreviewIds& ids, base::ReadOnlySharedMemoryRegion region);
mojom::PrintCompositor::Status status,
base::ReadOnlySharedMemoryRegion region);
void OnPrepareForDocumentToPdfDone(const PrintHostMsg_PreviewIds& ids, void OnPrepareForDocumentToPdfDone(const PrintHostMsg_PreviewIds& ids,
mojom::PrintCompositor::Status status); mojom::PrintCompositor::Status status);
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
#include "chrome/grit/print_preview_resources.h" #include "chrome/grit/print_preview_resources.h"
#include "chrome/grit/print_preview_resources_map.h" #include "chrome/grit/print_preview_resources_map.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
#include "components/printing/browser/print_manager_utils.h"
#include "components/printing/common/print_messages.h" #include "components/printing/common/print_messages.h"
#include "components/strings/grit/components_strings.h" #include "components/strings/grit/components_strings.h"
#include "components/user_manager/user_manager.h" #include "components/user_manager/user_manager.h"
...@@ -511,10 +510,6 @@ void PrintPreviewUI::SetInitiatorTitle( ...@@ -511,10 +510,6 @@ void PrintPreviewUI::SetInitiatorTitle(
initiator_title_ = job_title; initiator_title_ = job_title;
} }
bool PrintPreviewUI::ShouldCompositeDocumentUsingIndividualPages() const {
return printing::IsOopifEnabled() && source_is_modifiable_;
}
bool PrintPreviewUI::LastPageComposited(int page_number) const { bool PrintPreviewUI::LastPageComposited(int page_number) const {
if (pages_to_render_.empty()) if (pages_to_render_.empty())
return false; return false;
......
...@@ -75,13 +75,6 @@ class PrintPreviewUI : public ConstrainedWebDialogUI { ...@@ -75,13 +75,6 @@ class PrintPreviewUI : public ConstrainedWebDialogUI {
const gfx::Size& page_size() const { return page_size_; } const gfx::Size& page_size() const { return page_size_; }
// Determines if the PDF compositor is being used to generate full document
// from individual pages, which can avoid the need for an extra composite
// request containing all of the pages together.
// TODO(awscreen): Can remove this method once all modifiable content is
// handled with MSKP document type.
bool ShouldCompositeDocumentUsingIndividualPages() const;
// Returns true if |page_number| is the last page in |pages_to_render_|. // Returns true if |page_number| is the last page in |pages_to_render_|.
// |page_number| is a 0-based number. // |page_number| is a 0-based number.
bool LastPageComposited(int page_number) const; bool LastPageComposited(int page_number) const;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment