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

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

Issue 6611032: Unifying NativeMetafile class interface (as much as possible) for Linux, Mac, Win (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Making virtual methods not virtual (for clang bots) Created 9 years, 9 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 | « chrome/plugin/webplugin_delegate_stub.cc ('k') | chrome/renderer/print_web_view_helper_win.cc » ('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 "base/scoped_ptr.h" 9 #include "base/scoped_ptr.h"
10 #include "chrome/common/render_messages.h" 10 #include "chrome/common/render_messages.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 76
77 #if defined(OS_CHROMEOS) 77 #if defined(OS_CHROMEOS)
78 int sequence_number = -1; 78 int sequence_number = -1;
79 base::FileDescriptor fd; 79 base::FileDescriptor fd;
80 80
81 // Ask the browser to open a file for us. 81 // Ask the browser to open a file for us.
82 if (!Send(new ViewHostMsg_AllocateTempFileForPrinting(&fd, 82 if (!Send(new ViewHostMsg_AllocateTempFileForPrinting(&fd,
83 &sequence_number))) { 83 &sequence_number))) {
84 return; 84 return;
85 } 85 }
86 if (!metafile->SaveTo(fd)) 86 if (!metafile->SaveToFD(fd))
87 return; 87 return;
88 88
89 // Tell the browser we've finished writing the file. 89 // Tell the browser we've finished writing the file.
90 Send(new ViewHostMsg_TempFileForPrintingWritten(sequence_number)); 90 Send(new ViewHostMsg_TempFileForPrintingWritten(sequence_number));
91 #else 91 #else
92 ViewHostMsg_DidPrintPage_Params printed_page_params; 92 ViewHostMsg_DidPrintPage_Params printed_page_params;
93 printed_page_params.data_size = 0; 93 printed_page_params.data_size = 0;
94 printed_page_params.document_cookie = params.params.document_cookie; 94 printed_page_params.document_cookie = params.params.document_cookie;
95 95
96 base::SharedMemoryHandle shared_mem_handle; 96 base::SharedMemoryHandle shared_mem_handle;
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 GetPageSizeAndMarginsInPoints(frame, 207 GetPageSizeAndMarginsInPoints(frame,
208 params.page_number, 208 params.page_number,
209 params.params, 209 params.params,
210 &content_width_in_points, 210 &content_width_in_points,
211 &content_height_in_points, 211 &content_height_in_points,
212 &margin_top_in_points, 212 &margin_top_in_points,
213 &margin_right_in_points, 213 &margin_right_in_points,
214 &margin_bottom_in_points, 214 &margin_bottom_in_points,
215 &margin_left_in_points); 215 &margin_left_in_points);
216 216
217 gfx::Size page_size(
218 content_width_in_points + margin_right_in_points +
219 margin_left_in_points,
220 content_height_in_points + margin_top_in_points +
221 margin_bottom_in_points);
222
217 cairo_t* cairo_context = 223 cairo_t* cairo_context =
218 metafile->StartPage(content_width_in_points, 224 metafile->StartPage(page_size,
219 content_height_in_points,
220 margin_top_in_points, 225 margin_top_in_points,
221 margin_right_in_points,
222 margin_bottom_in_points,
223 margin_left_in_points); 226 margin_left_in_points);
224 if (!cairo_context) 227 if (!cairo_context)
225 return; 228 return;
226 229
227 canvas->reset(new skia::VectorCanvas(cairo_context, 230 canvas->reset(new skia::VectorCanvas(cairo_context,
228 canvas_size.width(), 231 canvas_size.width(),
229 canvas_size.height())); 232 canvas_size.height()));
230 frame->printPage(params.page_number, canvas->get()); 233 frame->printPage(params.page_number, canvas->get());
231 234
232 // TODO(myhuang): We should handle transformation for paper margins. 235 // TODO(myhuang): We should handle transformation for paper margins.
233 // TODO(myhuang): We should render the header and the footer. 236 // TODO(myhuang): We should render the header and the footer.
234 237
235 // Done printing. Close the device context to retrieve the compiled metafile. 238 // Done printing. Close the device context to retrieve the compiled metafile.
236 if (!metafile->FinishPage()) 239 if (!metafile->FinishPage())
237 NOTREACHED() << "metafile failed"; 240 NOTREACHED() << "metafile failed";
238 } 241 }
OLDNEW
« no previous file with comments | « chrome/plugin/webplugin_delegate_stub.cc ('k') | chrome/renderer/print_web_view_helper_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698