summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/print_web_view_helper_linux.cc
diff options
context:
space:
mode:
authorthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-28 20:08:46 +0000
committerthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-28 20:08:46 +0000
commit8627b931067a72a20aeb31473d9f4348b7d78528 (patch)
tree0aa0d802255058f92c3e2590d8762d1cb22453f3 /chrome/renderer/print_web_view_helper_linux.cc
parent37be36409ef198676706fe0b41610dddaf765bb9 (diff)
downloadchromium_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.cc24
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)
}