diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-28 20:08:46 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-28 20:08:46 +0000 |
commit | 8627b931067a72a20aeb31473d9f4348b7d78528 (patch) | |
tree | 0aa0d802255058f92c3e2590d8762d1cb22453f3 /chrome/renderer/print_web_view_helper_linux.cc | |
parent | 37be36409ef198676706fe0b41610dddaf765bb9 (diff) | |
download | chromium_src-8627b931067a72a20aeb31473d9f4348b7d78528.zip chromium_src-8627b931067a72a20aeb31473d9f4348b7d78528.tar.gz chromium_src-8627b931067a72a20aeb31473d9f4348b7d78528.tar.bz2 |
Printing: Catch more printing failures.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6903098
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83383 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/print_web_view_helper_linux.cc')
-rw-r--r-- | chrome/renderer/print_web_view_helper_linux.cc | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/chrome/renderer/print_web_view_helper_linux.cc b/chrome/renderer/print_web_view_helper_linux.cc index 5d81bb5..5c1a3ed 100644 --- a/chrome/renderer/print_web_view_helper_linux.cc +++ b/chrome/renderer/print_web_view_helper_linux.cc @@ -23,16 +23,16 @@ using WebKit::WebFrame; using WebKit::WebNode; -void PrintWebViewHelper::CreatePreviewDocument( +bool PrintWebViewHelper::CreatePreviewDocument( const PrintMsg_PrintPages_Params& params, WebKit::WebFrame* frame, WebKit::WebNode* node) { int page_count = 0; printing::PreviewMetafile metafile; if (!metafile.Init()) - return; + return false; if (!RenderPages(params, frame, node, false, &page_count, &metafile)) - return; + return false; // Get the size of the resulting metafile. uint32 buf_size = metafile.GetDataSize(); @@ -45,13 +45,13 @@ void PrintWebViewHelper::CreatePreviewDocument( if (!CopyMetafileDataToSharedMem(&metafile, &(preview_params.metafile_data_handle))) { - preview_params.expected_pages_count = 0; - preview_params.data_size = 0; + return false; } Send(new PrintHostMsg_PagesReadyForPreview(routing_id(), preview_params)); + return true; } -void PrintWebViewHelper::PrintPages(const PrintMsg_PrintPages_Params& params, +bool PrintWebViewHelper::PrintPages(const PrintMsg_PrintPages_Params& params, WebFrame* frame, WebNode* node) { int page_count = 0; @@ -64,11 +64,11 @@ void PrintWebViewHelper::PrintPages(const PrintMsg_PrintPages_Params& params, printing::NativeMetafile metafile; if (!metafile.Init()) - return; + return false; if (!RenderPages(params, frame, node, send_expected_page_count, &page_count, &metafile)) { - return; + return false; } // Get the size of the resulting metafile. @@ -82,10 +82,11 @@ void PrintWebViewHelper::PrintPages(const PrintMsg_PrintPages_Params& params, // Ask the browser to open a file for us. Send(new PrintHostMsg_AllocateTempFileForPrinting(&fd, &sequence_number)); if (!metafile.SaveToFD(fd)) - return; + return false; // Tell the browser we've finished writing the file. Send(new PrintHostMsg_TempFileForPrintingWritten(sequence_number)); + return true; #else PrintHostMsg_DidPrintPage_Params printed_page_params; printed_page_params.data_size = 0; @@ -96,14 +97,14 @@ void PrintWebViewHelper::PrintPages(const PrintMsg_PrintPages_Params& params, &shared_mem_handle)); if (!base::SharedMemory::IsHandleValid(shared_mem_handle)) { NOTREACHED() << "AllocateSharedMemoryBuffer returned bad handle"; - return; + return false; } { base::SharedMemory shared_buf(shared_mem_handle, false); if (!shared_buf.Map(buf_size)) { NOTREACHED() << "Map failed"; - return; + return false; } metafile.GetData(shared_buf.memory(), buf_size); printed_page_params.data_size = buf_size; @@ -134,6 +135,7 @@ void PrintWebViewHelper::PrintPages(const PrintMsg_PrintPages_Params& params, Send(new PrintHostMsg_DidPrintPage(routing_id(), printed_page_params)); } } + return true; #endif // defined(OS_CHROMEOS) } |