Commit 341bc1e7 authored by Alan Screen's avatar Alan Screen Committed by Commit Bot

Print preview rendered pages count

During print preview user can choose a custom page range for printing.
This can easily be less than the entire document.  The recent change
for concurrent PDF composition [1] erroneously always expected the
full document to be collected, which fails with a hung preview if the
user selects a custom page range.

Correct this by updating the PrintRenderFrameHelper to pass along only
the number of pages rendered for the page selection.

[1] https://crrev.com/c/1917685

Bug: 1028104
Change-Id: Ic6ecbc09d09a8c7f30bc959b0a3808d66f1274ac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1935724Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Commit-Queue: Alan Screen <awscreen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#719263}
parent 990dbe7e
...@@ -1568,7 +1568,7 @@ bool PrintRenderFrameHelper::FinalizePrintReadyDocument() { ...@@ -1568,7 +1568,7 @@ bool PrintRenderFrameHelper::FinalizePrintReadyDocument() {
preview_params.document_cookie = print_pages_params_->params.document_cookie; preview_params.document_cookie = print_pages_params_->params.document_cookie;
preview_params.expected_pages_count = preview_params.expected_pages_count =
print_preview_context_.total_page_count(); print_preview_context_.pages_rendered_count();
PrintHostMsg_PreviewIds ids(print_pages_params_->params.preview_request_id, PrintHostMsg_PreviewIds ids(print_pages_params_->params.preview_request_id,
print_pages_params_->params.preview_ui_id); print_pages_params_->params.preview_ui_id);
...@@ -2647,6 +2647,11 @@ PrintRenderFrameHelper::PrintPreviewContext::pages_to_render() const { ...@@ -2647,6 +2647,11 @@ PrintRenderFrameHelper::PrintPreviewContext::pages_to_render() const {
return pages_to_render_; return pages_to_render_;
} }
int PrintRenderFrameHelper::PrintPreviewContext::pages_rendered_count() const {
DCHECK_EQ(DONE, state_);
return pages_to_render_.size();
}
MetafileSkia* PrintRenderFrameHelper::PrintPreviewContext::metafile() { MetafileSkia* PrintRenderFrameHelper::PrintPreviewContext::metafile() {
DCHECK(IsRendering()); DCHECK(IsRendering());
return metafile_.get(); return metafile_.get();
......
...@@ -524,6 +524,7 @@ class PrintRenderFrameHelper ...@@ -524,6 +524,7 @@ class PrintRenderFrameHelper
int total_page_count() const; int total_page_count() const;
const std::vector<int>& pages_to_render() const; const std::vector<int>& pages_to_render() const;
int pages_rendered_count() const;
MetafileSkia* metafile(); MetafileSkia* metafile();
int last_error() const; int last_error() 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