| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #ifndef CHROME_RENDERER_PRINTING_PRINT_WEB_VIEW_HELPER_H_ | 5 #ifndef CHROME_RENDERER_PRINTING_PRINT_WEB_VIEW_HELPER_H_ |
| 6 #define CHROME_RENDERER_PRINTING_PRINT_WEB_VIEW_HELPER_H_ | 6 #define CHROME_RENDERER_PRINTING_PRINT_WEB_VIEW_HELPER_H_ |
| 7 | 7 |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 bool PrintPagesNative(blink::WebFrame* frame, | 210 bool PrintPagesNative(blink::WebFrame* frame, |
| 211 int page_count, | 211 int page_count, |
| 212 const gfx::Size& canvas_size); | 212 const gfx::Size& canvas_size); |
| 213 void FinishFramePrinting(); | 213 void FinishFramePrinting(); |
| 214 | 214 |
| 215 // Prints the page listed in |params|. | 215 // Prints the page listed in |params|. |
| 216 #if defined(OS_LINUX) || defined(OS_ANDROID) | 216 #if defined(OS_LINUX) || defined(OS_ANDROID) |
| 217 void PrintPageInternal(const PrintMsg_PrintPage_Params& params, | 217 void PrintPageInternal(const PrintMsg_PrintPage_Params& params, |
| 218 const gfx::Size& canvas_size, | 218 const gfx::Size& canvas_size, |
| 219 blink::WebFrame* frame, | 219 blink::WebFrame* frame, |
| 220 Metafile* metafile); | 220 PdfMetafileSkia* metafile); |
| 221 #elif defined(OS_WIN) | 221 #elif defined(OS_WIN) |
| 222 void PrintPageInternal(const PrintMsg_PrintPage_Params& params, | 222 void PrintPageInternal(const PrintMsg_PrintPage_Params& params, |
| 223 const gfx::Size& canvas_size, | 223 const gfx::Size& canvas_size, |
| 224 blink::WebFrame* frame, | 224 blink::WebFrame* frame, |
| 225 Metafile* metafile, | 225 PdfMetafileSkia* metafile, |
| 226 gfx::Size* page_size_in_dpi, | 226 gfx::Size* page_size_in_dpi, |
| 227 gfx::Rect* content_area_in_dpi); | 227 gfx::Rect* content_area_in_dpi); |
| 228 #else | 228 #else |
| 229 void PrintPageInternal(const PrintMsg_PrintPage_Params& params, | 229 void PrintPageInternal(const PrintMsg_PrintPage_Params& params, |
| 230 const gfx::Size& canvas_size, | 230 const gfx::Size& canvas_size, |
| 231 blink::WebFrame* frame); | 231 blink::WebFrame* frame); |
| 232 #endif | 232 #endif |
| 233 | 233 |
| 234 // Render the frame for printing. | 234 // Render the frame for printing. |
| 235 bool RenderPagesForPrint(blink::WebLocalFrame* frame, | 235 bool RenderPagesForPrint(blink::WebLocalFrame* frame, |
| 236 const blink::WebNode& node); | 236 const blink::WebNode& node); |
| 237 | 237 |
| 238 // Platform specific helper function for rendering page(s) to |metafile|. | 238 // Platform specific helper function for rendering page(s) to |metafile|. |
| 239 #if defined(OS_MACOSX) | 239 #if defined(OS_MACOSX) |
| 240 void RenderPage(const PrintMsg_Print_Params& params, | 240 void RenderPage(const PrintMsg_Print_Params& params, |
| 241 int page_number, | 241 int page_number, |
| 242 blink::WebFrame* frame, | 242 blink::WebFrame* frame, |
| 243 bool is_preview, | 243 bool is_preview, |
| 244 Metafile* metafile, | 244 PdfMetafileSkia* metafile, |
| 245 gfx::Size* page_size, | 245 gfx::Size* page_size, |
| 246 gfx::Rect* content_rect); | 246 gfx::Rect* content_rect); |
| 247 #endif // defined(OS_MACOSX) | 247 #endif // defined(OS_MACOSX) |
| 248 | 248 |
| 249 // Renders page contents from |frame| to |content_area| of |canvas|. | 249 // Renders page contents from |frame| to |content_area| of |canvas|. |
| 250 // |page_number| is zero-based. | 250 // |page_number| is zero-based. |
| 251 // When method is called, canvas should be setup to draw to |canvas_area| | 251 // When method is called, canvas should be setup to draw to |canvas_area| |
| 252 // with |scale_factor|. | 252 // with |scale_factor|. |
| 253 static float RenderPageContent(blink::WebFrame* frame, | 253 static float RenderPageContent(blink::WebFrame* frame, |
| 254 int page_number, | 254 int page_number, |
| 255 const gfx::Rect& canvas_area, | 255 const gfx::Rect& canvas_area, |
| 256 const gfx::Rect& content_area, | 256 const gfx::Rect& content_area, |
| 257 double scale_factor, | 257 double scale_factor, |
| 258 blink::WebCanvas* canvas); | 258 blink::WebCanvas* canvas); |
| 259 | 259 |
| 260 // Helper methods ----------------------------------------------------------- | 260 // Helper methods ----------------------------------------------------------- |
| 261 | 261 |
| 262 bool CopyMetafileDataToSharedMem(Metafile* metafile, | 262 bool CopyMetafileDataToSharedMem(PdfMetafileSkia* metafile, |
| 263 base::SharedMemoryHandle* shared_mem_handle); | 263 base::SharedMemoryHandle* shared_mem_handle); |
| 264 | 264 |
| 265 // Helper method to get page layout in points and fit to page if needed. | 265 // Helper method to get page layout in points and fit to page if needed. |
| 266 static void ComputePageLayoutInPointsForCss( | 266 static void ComputePageLayoutInPointsForCss( |
| 267 blink::WebFrame* frame, | 267 blink::WebFrame* frame, |
| 268 int page_index, | 268 int page_index, |
| 269 const PrintMsg_Print_Params& default_params, | 269 const PrintMsg_Print_Params& default_params, |
| 270 bool ignore_css_margins, | 270 bool ignore_css_margins, |
| 271 double* scale_factor, | 271 double* scale_factor, |
| 272 PageSizeMargins* page_layout_in_points); | 272 PageSizeMargins* page_layout_in_points); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 298 | 298 |
| 299 // Checks whether print preview should continue or not. | 299 // Checks whether print preview should continue or not. |
| 300 // Returns true if canceling, false if continuing. | 300 // Returns true if canceling, false if continuing. |
| 301 bool CheckForCancel(); | 301 bool CheckForCancel(); |
| 302 | 302 |
| 303 // Notifies the browser a print preview page has been rendered. | 303 // Notifies the browser a print preview page has been rendered. |
| 304 // |page_number| is 0-based. | 304 // |page_number| is 0-based. |
| 305 // For a valid |page_number| with modifiable content, | 305 // For a valid |page_number| with modifiable content, |
| 306 // |metafile| is the rendered page. Otherwise |metafile| is NULL. | 306 // |metafile| is the rendered page. Otherwise |metafile| is NULL. |
| 307 // Returns true if print preview should continue, false on failure. | 307 // Returns true if print preview should continue, false on failure. |
| 308 bool PreviewPageRendered(int page_number, Metafile* metafile); | 308 bool PreviewPageRendered(int page_number, PdfMetafileSkia* metafile); |
| 309 | 309 |
| 310 void SetPrintPagesParams(const PrintMsg_PrintPages_Params& settings); | 310 void SetPrintPagesParams(const PrintMsg_PrintPages_Params& settings); |
| 311 | 311 |
| 312 // WebView used only to print the selection. | 312 // WebView used only to print the selection. |
| 313 scoped_ptr<PrepareFrameAndViewForPrint> prep_frame_view_; | 313 scoped_ptr<PrepareFrameAndViewForPrint> prep_frame_view_; |
| 314 bool reset_prep_frame_view_; | 314 bool reset_prep_frame_view_; |
| 315 | 315 |
| 316 scoped_ptr<PrintMsg_PrintPages_Params> print_pages_params_; | 316 scoped_ptr<PrintMsg_PrintPages_Params> print_pages_params_; |
| 317 bool is_print_ready_metafile_sent_; | 317 bool is_print_ready_metafile_sent_; |
| 318 bool ignore_css_margins_; | 318 bool ignore_css_margins_; |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 465 // hangs because RequestPrintPreview is called before DidStopLoading() is | 465 // hangs because RequestPrintPreview is called before DidStopLoading() is |
| 466 // called. This is a store for the RequestPrintPreview() call and its | 466 // called. This is a store for the RequestPrintPreview() call and its |
| 467 // parameters so that it can be invoked after DidStopLoading. | 467 // parameters so that it can be invoked after DidStopLoading. |
| 468 base::Closure on_stop_loading_closure_; | 468 base::Closure on_stop_loading_closure_; |
| 469 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelper); | 469 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelper); |
| 470 }; | 470 }; |
| 471 | 471 |
| 472 } // namespace printing | 472 } // namespace printing |
| 473 | 473 |
| 474 #endif // CHROME_RENDERER_PRINTING_PRINT_WEB_VIEW_HELPER_H_ | 474 #endif // CHROME_RENDERER_PRINTING_PRINT_WEB_VIEW_HELPER_H_ |
| OLD | NEW |