diff options
author | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-27 22:23:13 +0000 |
---|---|---|
committer | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-27 22:23:13 +0000 |
commit | a0bfea8ac95229c003a3ab56a4f18773ec8f65a9 (patch) | |
tree | 5c2cf7030f5ed01feff27ee9e604dfbc94a11cb0 /chrome | |
parent | 66e5ef6c89a72264e2e4dded0d40490abbef5b31 (diff) | |
download | chromium_src-a0bfea8ac95229c003a3ab56a4f18773ec8f65a9.zip chromium_src-a0bfea8ac95229c003a3ab56a4f18773ec8f65a9.tar.gz chromium_src-a0bfea8ac95229c003a3ab56a4f18773ec8f65a9.tar.bz2 |
Made code changes to support print preview pipeline on windows.
BUG=88762
TEST=print preview works after code changes.
Review URL: http://codereview.chromium.org/7461096
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94372 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/resources/print_preview/print_preview.js | 12 | ||||
-rw-r--r-- | chrome/renderer/print_web_view_helper.cc | 7 | ||||
-rw-r--r-- | chrome/renderer/print_web_view_helper_win.cc | 15 |
3 files changed, 14 insertions, 20 deletions
diff --git a/chrome/browser/resources/print_preview/print_preview.js b/chrome/browser/resources/print_preview/print_preview.js index 8d3d52c..f775d9c 100644 --- a/chrome/browser/resources/print_preview/print_preview.js +++ b/chrome/browser/resources/print_preview/print_preview.js @@ -74,8 +74,6 @@ var addedCloudPrinters = {}; // The maximum number of cloud printers to allow in the dropdown. const maxCloudPrinters = 10; -var isPipeliningSupported = false; - /** * Window onload handler, sets up the page and starts print preview by getting * the printer list. @@ -83,8 +81,6 @@ var isPipeliningSupported = false; function onLoad() { cr.enablePlatformSpecificCSSRules(); - isPipeliningSupported = !cr.isWindows; - if (!checkCompatiblePluginExists()) { disableInputElementsInSidebar(); displayErrorMessageWithButton(localStrings.getString('noPlugin'), @@ -776,7 +772,7 @@ function printPreviewFailed() { * Called when the PDF plugin loads its document. */ function onPDFLoad() { - if (previewModifiable && isPipeliningSupported) { + if (previewModifiable) { setPluginPreviewPageCount(); cr.dispatchSimpleEvent(document, 'updateSummary'); } @@ -830,7 +826,7 @@ function reloadPreviewPages(previewUid, previewResponseId) { */ function onDidPreviewPage(pageNumber, previewUid) { // Refactor - if (!previewModifiable || !isPipeliningSupported) + if (!previewModifiable) return; var pageIndex = pageSettings.previouslySelectedPages.indexOf(pageNumber + 1); @@ -866,7 +862,7 @@ function updatePrintPreview(jobTitle, document.title = localStrings.getStringF('printPreviewTitleFormat', jobTitle); - if (!previewModifiable || !isPipeliningSupported) { + if (!previewModifiable) { // If the preview is not modifiable the plugin has not been created yet. createPDFPlugin(previewUid); } @@ -917,7 +913,7 @@ function createPDFPlugin(previewUid) { } // Get the complete preview document. - var dataIndex = previewModifiable && isPipeliningSupported ? '0' : '-1'; + var dataIndex = previewModifiable ? '0' : '-1'; pdfViewer = document.createElement('embed'); pdfViewer.setAttribute('id', 'pdf-viewer'); diff --git a/chrome/renderer/print_web_view_helper.cc b/chrome/renderer/print_web_view_helper.cc index 028fe2d..7ad456f 100644 --- a/chrome/renderer/print_web_view_helper.cc +++ b/chrome/renderer/print_web_view_helper.cc @@ -417,11 +417,6 @@ bool PrintWebViewHelper::FinalizePreviewDocument() { &(preview_params.metafile_data_handle))) { return false; } -#if defined(OS_WIN) - Send(new PrintHostMsg_DuplicateSection(routing_id(), - preview_params.metafile_data_handle, - &preview_params.metafile_data_handle)); -#endif Send(new PrintHostMsg_PagesReadyForPreview(routing_id(), preview_params)); return true; } @@ -916,7 +911,6 @@ void PrintWebViewHelper::RequestPrintPreview() { void PrintWebViewHelper::PreviewPageRendered(int page_number, printing::Metafile* metafile) { -#if !defined(OS_WIN) if ((page_number == printing::INVALID_PAGE_INDEX && metafile) || (page_number >= printing::FIRST_PAGE_INDEX && !metafile && print_preview_context_.IsModifiable())) { @@ -924,7 +918,6 @@ void PrintWebViewHelper::PreviewPageRendered(int page_number, DidFinishPrinting(FAIL_PREVIEW); return; } -#endif uint32 buf_size = 0; PrintHostMsg_DidPreviewPage_Params preview_page_params; diff --git a/chrome/renderer/print_web_view_helper_win.cc b/chrome/renderer/print_web_view_helper_win.cc index 7f74acf..477b378 100644 --- a/chrome/renderer/print_web_view_helper_win.cc +++ b/chrome/renderer/print_web_view_helper_win.cc @@ -118,9 +118,7 @@ void PrintWebViewHelper::PrintPageInternal( &(page_params.metafile_data_handle))) { page_params.data_size = 0; } - Send(new PrintHostMsg_DuplicateSection(routing_id(), - page_params.metafile_data_handle, - &page_params.metafile_data_handle)); + Send(new PrintHostMsg_DidPrintPage(routing_id(), page_params)); } @@ -144,7 +142,12 @@ void PrintWebViewHelper::RenderPreviewPage(int page_number) { // Release since |print_preview_context_| is the real owner. metafile.release(); - PreviewPageRendered(page_number, NULL); + printing::Metafile* page_metafile = NULL; + if (print_preview_context_.IsModifiable()) { + page_metafile = reinterpret_cast<printing::PreviewMetafile*>( + print_preview_context_.metafile())->GetMetafileForCurrentPage(); + } + PreviewPageRendered(page_number, page_metafile); } void PrintWebViewHelper::RenderPage( @@ -263,7 +266,6 @@ bool PrintWebViewHelper::CopyMetafileDataToSharedMem( Metafile* metafile, base::SharedMemoryHandle* shared_mem_handle) { uint32 buf_size = metafile->GetDataSize(); base::SharedMemory shared_buf; - // http://msdn2.microsoft.com/en-us/library/ms535522.aspx // Windows 2000/XP: When a page in a spooled file exceeds approximately 350 // MB, it can fail to print and not send an error message. @@ -286,5 +288,8 @@ bool PrintWebViewHelper::CopyMetafileDataToSharedMem( } shared_buf.GiveToProcess(base::GetCurrentProcessHandle(), shared_mem_handle); shared_buf.Unmap(); + + Send(new PrintHostMsg_DuplicateSection(routing_id(), *shared_mem_handle, + shared_mem_handle)); return true; } |