diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-07 01:06:40 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-07 01:06:40 +0000 |
commit | 961dc8cd0c5860fe944da2926c1ed1cb69326b66 (patch) | |
tree | 603ec58775f9e07a9ee11f69be017cf13e2e584d /chrome/renderer/print_web_view_helper_mac.mm | |
parent | 0545daf4b7c757c073f9d07f51544ea80e2ef876 (diff) | |
download | chromium_src-961dc8cd0c5860fe944da2926c1ed1cb69326b66.zip chromium_src-961dc8cd0c5860fe944da2926c1ed1cb69326b66.tar.gz chromium_src-961dc8cd0c5860fe944da2926c1ed1cb69326b66.tar.bz2 |
Print Preview: Add the ability to cancel an in-flight print preview.
BUG=85103
TEST=none
Review URL: http://codereview.chromium.org/7104127
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91645 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/print_web_view_helper_mac.mm')
-rw-r--r-- | chrome/renderer/print_web_view_helper_mac.mm | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/chrome/renderer/print_web_view_helper_mac.mm b/chrome/renderer/print_web_view_helper_mac.mm index aab653d..54521ff 100644 --- a/chrome/renderer/print_web_view_helper_mac.mm +++ b/chrome/renderer/print_web_view_helper_mac.mm @@ -62,15 +62,22 @@ void PrintWebViewHelper::PrintPageInternal( bool PrintWebViewHelper::CreatePreviewDocument( const PrintMsg_PrintPages_Params& params, WebKit::WebFrame* frame, WebKit::WebNode* node) { + if (!PreviewPageRendered(-1)) + return false; + PrintMsg_Print_Params printParams = params.params; UpdatePrintableSizeInPrintParameters(frame, node, &printParams); PrepareFrameAndViewForPrint prep_frame_view(printParams, frame, node, frame->view()); - preview_page_count_ = prep_frame_view.GetExpectedPageCount(); + if (!PreviewPageRendered(-1)) + return false; + preview_page_count_ = prep_frame_view.GetExpectedPageCount(); if (!preview_page_count_) return false; + Send(new PrintHostMsg_DidGetPreviewPageCount(routing_id(), + preview_page_count_)); printing::PreviewMetafile metafile; if (!metafile.Init()) @@ -89,14 +96,18 @@ bool PrintWebViewHelper::CreatePreviewDocument( RenderPage(printParams.page_size, content_area, scale_factor, i, frame, &metafile); page_begin_time = ReportPreviewPageRenderTime(page_begin_time); + if (!PreviewPageRendered(i)) + return false; } } else { for (size_t i = 0; i < params.pages.size(); ++i) { if (params.pages[i] >= preview_page_count_) break; RenderPage(printParams.page_size, content_area, scale_factor, - static_cast<int>(params.pages[i]), frame, &metafile); + params.pages[i], frame, &metafile); page_begin_time = ReportPreviewPageRenderTime(page_begin_time); + if (!PreviewPageRendered(params.pages[i])) + return false; } } |