summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/print_web_view_helper_mac.mm
diff options
context:
space:
mode:
authorthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-07 01:06:40 +0000
committerthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-07 01:06:40 +0000
commit961dc8cd0c5860fe944da2926c1ed1cb69326b66 (patch)
tree603ec58775f9e07a9ee11f69be017cf13e2e584d /chrome/renderer/print_web_view_helper_mac.mm
parent0545daf4b7c757c073f9d07f51544ea80e2ef876 (diff)
downloadchromium_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.mm15
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;
}
}