| Index: chrome/renderer/print_web_view_helper_mac.mm
|
| ===================================================================
|
| --- chrome/renderer/print_web_view_helper_mac.mm (revision 92822)
|
| +++ chrome/renderer/print_web_view_helper_mac.mm (working copy)
|
| @@ -59,83 +59,19 @@
|
| Send(new PrintHostMsg_DidPrintPage(routing_id(), page_params));
|
| }
|
|
|
| -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());
|
| - 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())
|
| - return false;
|
| -
|
| - float scale_factor = frame->getPrintPageShrink(0);
|
| +void PrintWebViewHelper::RenderPreviewPage(int page_number) {
|
| + float scale_factor = print_preview_context_.frame()->getPrintPageShrink(0);
|
| + PrintMsg_Print_Params printParams = print_preview_context_.print_params();
|
| gfx::Rect content_area(printParams.margin_left, printParams.margin_top,
|
| printParams.printable_size.width(),
|
| printParams.printable_size.height());
|
|
|
| base::TimeTicks begin_time = base::TimeTicks::Now();
|
| - base::TimeTicks page_begin_time = begin_time;
|
| -
|
| - if (params.pages.empty()) {
|
| - for (int i = 0; i < preview_page_count_; ++i) {
|
| - 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,
|
| - params.pages[i], frame, &metafile);
|
| - page_begin_time = ReportPreviewPageRenderTime(page_begin_time);
|
| - if (!PreviewPageRendered(params.pages[i]))
|
| - return false;
|
| - }
|
| - }
|
| -
|
| - base::TimeDelta render_time = base::TimeTicks::Now() - begin_time;
|
| -
|
| - prep_frame_view.FinishPrinting();
|
| - metafile.FinishDocument();
|
| -
|
| - ReportTotalPreviewGenerationTime(params.pages.size(),
|
| - preview_page_count_,
|
| - render_time,
|
| - base::TimeTicks::Now() - begin_time);
|
| -
|
| - PrintHostMsg_DidPreviewDocument_Params preview_params;
|
| - preview_params.reuse_existing_data = false;
|
| - preview_params.data_size = metafile.GetDataSize();
|
| - preview_params.document_cookie = params.params.document_cookie;
|
| - preview_params.expected_pages_count = preview_page_count_;
|
| - preview_params.modifiable = IsModifiable(frame, node);
|
| - preview_params.preview_request_id = params.params.preview_request_id;
|
| -
|
| - // Ask the browser to create the shared memory for us.
|
| - if (!CopyMetafileDataToSharedMem(&metafile,
|
| - &(preview_params.metafile_data_handle))) {
|
| - return false;
|
| - }
|
| - Send(new PrintHostMsg_PagesReadyForPreview(routing_id(), preview_params));
|
| - return true;
|
| + RenderPage(printParams.page_size, content_area, scale_factor, page_number,
|
| + print_preview_context_.frame(), print_preview_context_.metafile());
|
| + print_preview_context_.RenderedPreviewPage(
|
| + base::TimeTicks::Now() - begin_time);
|
| + PreviewPageRendered(page_number);
|
| }
|
|
|
| void PrintWebViewHelper::RenderPage(
|
|
|