Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(574)

Side by Side Diff: chrome/renderer/print_web_view_helper_linux.cc

Issue 6576058: Removing PS option from PdfPsMetafile (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updated more comments Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | printing/pdf_ps_metafile_cairo.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/print_web_view_helper.h" 5 #include "chrome/renderer/print_web_view_helper.h"
6 6
7 #include "base/file_descriptor_posix.h" 7 #include "base/file_descriptor_posix.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "chrome/common/render_messages.h" 9 #include "chrome/common/render_messages.h"
10 #include "chrome/common/render_messages_params.h" 10 #include "chrome/common/render_messages_params.h"
11 #include "printing/native_metafile.h" 11 #include "printing/native_metafile.h"
12 #include "skia/ext/vector_canvas.h" 12 #include "skia/ext/vector_canvas.h"
13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" 13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
14 14
15 #if !defined(OS_CHROMEOS) 15 #if !defined(OS_CHROMEOS)
16 #include "base/process_util.h" 16 #include "base/process_util.h"
17 #endif // !defined(OS_CHROMEOS) 17 #endif // !defined(OS_CHROMEOS)
18 18
19 using WebKit::WebFrame; 19 using WebKit::WebFrame;
20 using WebKit::WebNode; 20 using WebKit::WebNode;
21 21
22 void PrintWebViewHelper::CreatePreviewDocument( 22 void PrintWebViewHelper::CreatePreviewDocument(
23 const ViewMsg_PrintPages_Params& params, WebFrame* frame) { 23 const ViewMsg_PrintPages_Params& params, WebFrame* frame) {
24 // We only can use PDF in the renderer because Cairo needs to create a 24 // We only can use PDF in the renderer because Cairo needs to create a
25 // temporary file for a PostScript surface. 25 // temporary file for a PostScript surface.
26 printing::NativeMetafile metafile(printing::NativeMetafile::PDF); 26 printing::NativeMetafile metafile;
27 int page_count = 0; 27 int page_count = 0;
28 28
29 if (!RenderPages(params, frame, false, &page_count, &metafile)) 29 if (!RenderPages(params, frame, false, &page_count, &metafile))
30 return; 30 return;
31 31
32 // Get the size of the resulting metafile. 32 // Get the size of the resulting metafile.
33 uint32 buf_size = metafile.GetDataSize(); 33 uint32 buf_size = metafile.GetDataSize();
34 DCHECK_GT(buf_size, 0u); 34 DCHECK_GT(buf_size, 0u);
35 35
36 ViewHostMsg_DidPreviewDocument_Params preview_params; 36 ViewHostMsg_DidPreviewDocument_Params preview_params;
37 preview_params.document_cookie = params.params.document_cookie; 37 preview_params.document_cookie = params.params.document_cookie;
38 preview_params.expected_pages_count = page_count; 38 preview_params.expected_pages_count = page_count;
39 preview_params.data_size = buf_size; 39 preview_params.data_size = buf_size;
40 40
41 if (!CopyMetafileDataToSharedMem(&metafile, 41 if (!CopyMetafileDataToSharedMem(&metafile,
42 &(preview_params.metafile_data_handle))) { 42 &(preview_params.metafile_data_handle))) {
43 preview_params.expected_pages_count = 0; 43 preview_params.expected_pages_count = 0;
44 preview_params.data_size = 0; 44 preview_params.data_size = 0;
45 } 45 }
46 Send(new ViewHostMsg_PagesReadyForPreview(routing_id(), preview_params)); 46 Send(new ViewHostMsg_PagesReadyForPreview(routing_id(), preview_params));
47 } 47 }
48 48
49 void PrintWebViewHelper::PrintPages(const ViewMsg_PrintPages_Params& params, 49 void PrintWebViewHelper::PrintPages(const ViewMsg_PrintPages_Params& params,
50 WebFrame* frame, 50 WebFrame* frame,
51 WebNode* node) { 51 WebNode* node) {
52 // We only can use PDF in the renderer because Cairo needs to create a 52 // We only can use PDF in the renderer because Cairo needs to create a
53 // temporary file for a PostScript surface. 53 // temporary file for a PostScript surface.
54 printing::NativeMetafile metafile(printing::NativeMetafile::PDF); 54 printing::NativeMetafile metafile;
55 int page_count = 0; 55 int page_count = 0;
56 bool send_expected_page_count = 56 bool send_expected_page_count =
57 #if defined(OS_CHROMEOS) 57 #if defined(OS_CHROMEOS)
58 false; 58 false;
59 #else 59 #else
60 true; 60 true;
61 #endif // defined(OS_CHROMEOS) 61 #endif // defined(OS_CHROMEOS)
62 62
63 if (!RenderPages(params, frame, send_expected_page_count, &page_count, 63 if (!RenderPages(params, frame, send_expected_page_count, &page_count,
64 &metafile)) { 64 &metafile)) {
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 canvas_size.height()); 220 canvas_size.height());
221 frame->printPage(params.page_number, *canvas); 221 frame->printPage(params.page_number, *canvas);
222 222
223 // TODO(myhuang): We should handle transformation for paper margins. 223 // TODO(myhuang): We should handle transformation for paper margins.
224 // TODO(myhuang): We should render the header and the footer. 224 // TODO(myhuang): We should render the header and the footer.
225 225
226 // Done printing. Close the device context to retrieve the compiled metafile. 226 // Done printing. Close the device context to retrieve the compiled metafile.
227 if (!metafile->FinishPage()) 227 if (!metafile->FinishPage())
228 NOTREACHED() << "metafile failed"; 228 NOTREACHED() << "metafile failed";
229 } 229 }
OLDNEW
« no previous file with comments | « no previous file | printing/pdf_ps_metafile_cairo.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698