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

Side by Side Diff: chrome/renderer/print_web_view_helper.h

Issue 11299058: Merge 165517 - Code cleanup. No functional changes. (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1312/src/
Patch Set: Created 8 years, 1 month 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 | chrome/renderer/print_web_view_helper.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) 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_PRINT_WEB_VIEW_HELPER_H_ 5 #ifndef CHROME_RENDERER_PRINT_WEB_VIEW_HELPER_H_
6 #define CHROME_RENDERER_PRINT_WEB_VIEW_HELPER_H_ 6 #define CHROME_RENDERER_PRINT_WEB_VIEW_HELPER_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/gtest_prod_util.h" 10 #include "base/gtest_prod_util.h"
11 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/scoped_ptr.h"
12 #include "base/shared_memory.h" 12 #include "base/shared_memory.h"
13 #include "base/time.h" 13 #include "base/time.h"
14 #include "content/public/renderer/render_view_observer.h" 14 #include "content/public/renderer/render_view_observer.h"
15 #include "content/public/renderer/render_view_observer_tracker.h" 15 #include "content/public/renderer/render_view_observer_tracker.h"
16 #include "printing/metafile.h"
17 #include "printing/metafile_impl.h" 16 #include "printing/metafile_impl.h"
18 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebCanvas.h" 17 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebCanvas.h"
19 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrameClient.h" 18 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrameClient.h"
20 #include "third_party/WebKit/Source/WebKit/chromium/public/WebNode.h" 19 #include "third_party/WebKit/Source/WebKit/chromium/public/WebNode.h"
21 #include "third_party/WebKit/Source/WebKit/chromium/public/WebPrintParams.h" 20 #include "third_party/WebKit/Source/WebKit/chromium/public/WebPrintParams.h"
22 #include "third_party/WebKit/Source/WebKit/chromium/public/WebViewClient.h" 21 #include "third_party/WebKit/Source/WebKit/chromium/public/WebViewClient.h"
23 #include "ui/gfx/size.h" 22 #include "ui/gfx/size.h"
24 23
25 struct PrintMsg_Print_Params; 24 struct PrintMsg_Print_Params;
26 struct PrintMsg_PrintPage_Params; 25 struct PrintMsg_PrintPage_Params;
27 struct PrintMsg_PrintPages_Params; 26 struct PrintMsg_PrintPages_Params;
28 27
29 namespace base { 28 namespace base {
30 class DictionaryValue; 29 class DictionaryValue;
31 } 30 }
31
32 namespace printing { 32 namespace printing {
33 struct PageSizeMargins; 33 struct PageSizeMargins;
34 } 34 }
35 35
36 namespace WebKit {
37 class WebFrame;
38 class WebView;
39 }
40
36 // Class that calls the Begin and End print functions on the frame and changes 41 // Class that calls the Begin and End print functions on the frame and changes
37 // the size of the view temporarily to support full page printing.. 42 // the size of the view temporarily to support full page printing..
38 // Do not serve any events in the time between construction and destruction of 43 // Do not serve any events in the time between construction and destruction of
39 // this class because it will cause flicker. 44 // this class because it will cause flicker.
40 class PrepareFrameAndViewForPrint { 45 class PrepareFrameAndViewForPrint {
41 public: 46 public:
42 // Prints |frame|. If |node| is not NULL, then only that node will be 47 // Prints |frame|. If |node| is not NULL, then only that node will be
43 // printed. 48 // printed.
44 PrepareFrameAndViewForPrint(const PrintMsg_Print_Params& print_params, 49 PrepareFrameAndViewForPrint(const PrintMsg_Print_Params& print_params,
45 WebKit::WebFrame* frame, 50 WebKit::WebFrame* frame,
46 const WebKit::WebNode& node); 51 const WebKit::WebNode& node);
47 ~PrepareFrameAndViewForPrint(); 52 ~PrepareFrameAndViewForPrint();
48 53
49 void UpdatePrintParams(const PrintMsg_Print_Params& print_params); 54 void UpdatePrintParams(const PrintMsg_Print_Params& print_params);
50 55
51 int GetExpectedPageCount() const { 56 int GetExpectedPageCount() const {
52 return expected_pages_count_; 57 return expected_pages_count_;
53 } 58 }
54 59
55 bool ShouldUseBrowserOverlays() const { 60 bool ShouldUseBrowserOverlays() const {
56 return use_browser_overlays_; 61 return use_browser_overlays_;
57 } 62 }
58 63
59 gfx::Size GetPrintCanvasSize() const { 64 gfx::Size GetPrintCanvasSize() const;
60 return gfx::Size(web_print_params_.printContentArea.width,
61 web_print_params_.printContentArea.height);
62 }
63 65
64 void FinishPrinting(); 66 void FinishPrinting();
65 67
66 private: 68 private:
67 void StartPrinting(const WebKit::WebPrintParams& webkit_print_params); 69 void StartPrinting(const WebKit::WebPrintParams& webkit_print_params);
68 70
69 WebKit::WebFrame* frame_; 71 WebKit::WebFrame* frame_;
70 WebKit::WebNode node_to_print_; 72 WebKit::WebNode node_to_print_;
71 WebKit::WebView* web_view_; 73 WebKit::WebView* web_view_;
72 WebKit::WebPrintParams web_print_params_; 74 WebKit::WebPrintParams web_print_params_;
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 void OnInitiatePrintPreview(); 186 void OnInitiatePrintPreview();
185 187
186 // Start the process of generating a print preview using |settings|. 188 // Start the process of generating a print preview using |settings|.
187 void OnPrintPreview(const base::DictionaryValue& settings); 189 void OnPrintPreview(const base::DictionaryValue& settings);
188 190
189 // Initialize the print preview document. 191 // Initialize the print preview document.
190 bool CreatePreviewDocument(); 192 bool CreatePreviewDocument();
191 193
192 // Renders a print preview page. |page_number| is 0-based. 194 // Renders a print preview page. |page_number| is 0-based.
193 // Returns true if print preview should continue, false on failure. 195 // Returns true if print preview should continue, false on failure.
194 bool RenderPreviewPage(int page_number); 196 bool RenderPreviewPage(int page_number,
197 const PrintMsg_Print_Params& print_params);
195 198
196 // Finalize the print ready preview document. 199 // Finalize the print ready preview document.
197 bool FinalizePrintReadyDocument(); 200 bool FinalizePrintReadyDocument();
198 201
199 // Print / preview the node under the context menu. 202 // Print / preview the node under the context menu.
200 void OnPrintNodeUnderContextMenu(); 203 void OnPrintNodeUnderContextMenu();
201 204
202 // Print the pages for print preview. Do not display the native print dialog 205 // Print the pages for print preview. Do not display the native print dialog
203 // for user settings. |job_settings| has new print job settings values. 206 // for user settings. |job_settings| has new print job settings values.
204 void OnPrintForPrintPreview(const base::DictionaryValue& job_settings); 207 void OnPrintForPrintPreview(const base::DictionaryValue& job_settings);
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 bool ignore_css_margins); 318 bool ignore_css_margins);
316 319
317 // Given the |device| and |canvas| to draw on, prints the appropriate headers 320 // Given the |device| and |canvas| to draw on, prints the appropriate headers
318 // and footers using strings from |header_footer_info| on to the canvas. 321 // and footers using strings from |header_footer_info| on to the canvas.
319 static void PrintHeaderAndFooter( 322 static void PrintHeaderAndFooter(
320 WebKit::WebCanvas* canvas, 323 WebKit::WebCanvas* canvas,
321 int page_number, 324 int page_number,
322 int total_pages, 325 int total_pages,
323 float webkit_scale_factor, 326 float webkit_scale_factor,
324 const printing::PageSizeMargins& page_layout_in_points, 327 const printing::PageSizeMargins& page_layout_in_points,
325 const base::DictionaryValue& header_footer_info); 328 const base::DictionaryValue& header_footer_info,
329 const PrintMsg_Print_Params& params);
326 330
327 bool GetPrintFrame(WebKit::WebFrame** frame); 331 bool GetPrintFrame(WebKit::WebFrame** frame);
328 332
329 // This reports the current time - |start_time| as the time to render a page. 333 // This reports the current time - |start_time| as the time to render a page.
330 void ReportPreviewPageRenderTime(base::TimeTicks start_time); 334 void ReportPreviewPageRenderTime(base::TimeTicks start_time);
331 335
332 // Script Initiated Printing ------------------------------------------------ 336 // Script Initiated Printing ------------------------------------------------
333 337
334 // Return true if script initiated printing is currently 338 // Return true if script initiated printing is currently
335 // allowed. |user_initiated| should be true when a user event triggered the 339 // allowed. |user_initiated| should be true when a user event triggered the
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 400
397 // Initializes the print preview context. Need to be called to set 401 // Initializes the print preview context. Need to be called to set
398 // the |web_frame| / |web_node| to generate the print preview for. 402 // the |web_frame| / |web_node| to generate the print preview for.
399 void InitWithFrame(WebKit::WebFrame* web_frame); 403 void InitWithFrame(WebKit::WebFrame* web_frame);
400 void InitWithNode(const WebKit::WebNode& web_node); 404 void InitWithNode(const WebKit::WebNode& web_node);
401 405
402 // Does bookkeeping at the beginning of print preview. 406 // Does bookkeeping at the beginning of print preview.
403 void OnPrintPreview(); 407 void OnPrintPreview();
404 408
405 // Create the print preview document. |pages| is empty to print all pages. 409 // Create the print preview document. |pages| is empty to print all pages.
406 bool CreatePreviewDocument(PrintMsg_Print_Params* params, 410 bool CreatePreviewDocument(const PrintMsg_Print_Params& params,
407 const std::vector<int>& pages, 411 const std::vector<int>& pages,
408 bool ignore_css_margins); 412 bool ignore_css_margins);
409 413
410 // Called after a page gets rendered. |page_time| is how long the 414 // Called after a page gets rendered. |page_time| is how long the
411 // rendering took. 415 // rendering took.
412 void RenderedPreviewPage(const base::TimeDelta& page_time); 416 void RenderedPreviewPage(const base::TimeDelta& page_time);
413 417
414 // Updates the print preview context when the required pages are rendered. 418 // Updates the print preview context when the required pages are rendered.
415 void AllPagesRendered(); 419 void AllPagesRendered();
416 420
(...skipping 16 matching lines...) Expand all
433 // Setters 437 // Setters
434 void set_generate_draft_pages(bool generate_draft_pages); 438 void set_generate_draft_pages(bool generate_draft_pages);
435 void set_error(enum PrintPreviewErrorBuckets error); 439 void set_error(enum PrintPreviewErrorBuckets error);
436 440
437 // Getters 441 // Getters
438 WebKit::WebFrame* frame(); 442 WebKit::WebFrame* frame();
439 const WebKit::WebNode& node() const; 443 const WebKit::WebNode& node() const;
440 int total_page_count() const; 444 int total_page_count() const;
441 bool generate_draft_pages() const; 445 bool generate_draft_pages() const;
442 printing::PreviewMetafile* metafile(); 446 printing::PreviewMetafile* metafile();
443 const PrintMsg_Print_Params& print_params() const;
444 gfx::Size GetPrintCanvasSize() const; 447 gfx::Size GetPrintCanvasSize() const;
445 int last_error() const; 448 int last_error() const;
446 449
447 private: 450 private:
448 enum State { 451 enum State {
449 UNINITIALIZED, // Not ready to render. 452 UNINITIALIZED, // Not ready to render.
450 INITIALIZED, // Ready to render. 453 INITIALIZED, // Ready to render.
451 RENDERING, // Rendering. 454 RENDERING, // Rendering.
452 DONE // Finished rendering. 455 DONE // Finished rendering.
453 }; 456 };
454 457
455 // Reset some of the internal rendering context. 458 // Reset some of the internal rendering context.
456 void ClearContext(); 459 void ClearContext();
457 460
458 // Specifies what to render for print preview. 461 // Specifies what to render for print preview.
459 WebKit::WebFrame* frame_; 462 WebKit::WebFrame* frame_;
460 WebKit::WebNode node_; 463 WebKit::WebNode node_;
461 464
462 scoped_ptr<PrepareFrameAndViewForPrint> prep_frame_view_; 465 scoped_ptr<PrepareFrameAndViewForPrint> prep_frame_view_;
463 scoped_ptr<printing::PreviewMetafile> metafile_; 466 scoped_ptr<printing::PreviewMetafile> metafile_;
464 scoped_ptr<PrintMsg_Print_Params> print_params_;
465 467
466 // Total page count in the renderer. 468 // Total page count in the renderer.
467 int total_page_count_; 469 int total_page_count_;
468 470
469 // The current page to render. 471 // The current page to render.
470 int current_page_index_; 472 int current_page_index_;
471 473
472 // List of page indices that need to be rendered. 474 // List of page indices that need to be rendered.
473 std::vector<int> pages_to_render_; 475 std::vector<int> pages_to_render_;
474 476
(...skipping 10 matching lines...) Expand all
485 487
486 State state_; 488 State state_;
487 }; 489 };
488 490
489 bool print_node_in_progress_; 491 bool print_node_in_progress_;
490 PrintPreviewContext print_preview_context_; 492 PrintPreviewContext print_preview_context_;
491 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelper); 493 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelper);
492 }; 494 };
493 495
494 #endif // CHROME_RENDERER_PRINT_WEB_VIEW_HELPER_H_ 496 #endif // CHROME_RENDERER_PRINT_WEB_VIEW_HELPER_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/renderer/print_web_view_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698