Chromium Code Reviews| 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/gtest_prod_util.h" | 10 #include "base/gtest_prod_util.h" |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 131 bool source_is_html, | 131 bool source_is_html, |
| 132 const base::DictionaryValue& job_settings, | 132 const base::DictionaryValue& job_settings, |
| 133 const PrintMsg_Print_Params& params); | 133 const PrintMsg_Print_Params& params); |
| 134 | 134 |
| 135 // Initiate print preview. | 135 // Initiate print preview. |
| 136 void OnInitiatePrintPreview(); | 136 void OnInitiatePrintPreview(); |
| 137 | 137 |
| 138 // Start the process of generating a print preview using |settings|. | 138 // Start the process of generating a print preview using |settings|. |
| 139 void OnPrintPreview(const base::DictionaryValue& settings); | 139 void OnPrintPreview(const base::DictionaryValue& settings); |
| 140 | 140 |
| 141 // Prepare frame for creating preview document. | |
| 142 void PrepareFrameForPreviewDocument(); | |
| 143 | |
| 144 // Continue creating preview document. | |
| 145 void OnFramePreparedForPreviewDocument(); | |
| 146 | |
| 141 // Initialize the print preview document. | 147 // Initialize the print preview document. |
| 142 bool CreatePreviewDocument(); | 148 bool CreatePreviewDocument(); |
| 143 | 149 |
| 144 // Renders a print preview page. |page_number| is 0-based. | 150 // Renders a print preview page. |page_number| is 0-based. |
| 145 // Returns true if print preview should continue, false on failure. | 151 // Returns true if print preview should continue, false on failure. |
| 146 bool RenderPreviewPage(int page_number, | 152 bool RenderPreviewPage(int page_number, |
| 147 const PrintMsg_Print_Params& print_params); | 153 const PrintMsg_Print_Params& print_params); |
| 148 | 154 |
| 149 // Finalize the print ready preview document. | 155 // Finalize the print ready preview document. |
| 150 bool FinalizePrintReadyDocument(); | 156 bool FinalizePrintReadyDocument(); |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 345 | 351 |
| 346 // Initializes the print preview context. Need to be called to set | 352 // Initializes the print preview context. Need to be called to set |
| 347 // the |web_frame| / |web_node| to generate the print preview for. | 353 // the |web_frame| / |web_node| to generate the print preview for. |
| 348 void InitWithFrame(WebKit::WebFrame* web_frame); | 354 void InitWithFrame(WebKit::WebFrame* web_frame); |
| 349 void InitWithNode(const WebKit::WebNode& web_node); | 355 void InitWithNode(const WebKit::WebNode& web_node); |
| 350 | 356 |
| 351 // Does bookkeeping at the beginning of print preview. | 357 // Does bookkeeping at the beginning of print preview. |
| 352 void OnPrintPreview(); | 358 void OnPrintPreview(); |
| 353 | 359 |
| 354 // Create the print preview document. |pages| is empty to print all pages. | 360 // Create the print preview document. |pages| is empty to print all pages. |
| 355 bool CreatePreviewDocument(const PrintMsg_Print_Params& params, | 361 bool CreatePreviewDocument(PrepareFrameAndViewForPrint* prepared_frame, |
|
Lei Zhang
2013/01/26 08:40:36
Mention this takes ownership of |prepared_frame|.
Vitaly Buka (NO REVIEWS)
2013/01/26 10:29:30
Done.
| |
| 356 const std::vector<int>& pages, | 362 const std::vector<int>& pages); |
| 357 bool ignore_css_margins); | |
| 358 | 363 |
| 359 // Called after a page gets rendered. |page_time| is how long the | 364 // Called after a page gets rendered. |page_time| is how long the |
| 360 // rendering took. | 365 // rendering took. |
| 361 void RenderedPreviewPage(const base::TimeDelta& page_time); | 366 void RenderedPreviewPage(const base::TimeDelta& page_time); |
| 362 | 367 |
| 363 // Updates the print preview context when the required pages are rendered. | 368 // Updates the print preview context when the required pages are rendered. |
| 364 void AllPagesRendered(); | 369 void AllPagesRendered(); |
| 365 | 370 |
| 366 // Finalizes the print ready preview document. | 371 // Finalizes the print ready preview document. |
| 367 void FinalizePrintReadyDocument(); | 372 void FinalizePrintReadyDocument(); |
| 368 | 373 |
| 369 // Cleanup after print preview finishes. | 374 // Cleanup after print preview finishes. |
| 370 void Finished(); | 375 void Finished(); |
| 371 | 376 |
| 372 // Cleanup after print preview fails. | 377 // Cleanup after print preview fails. |
| 373 void Failed(bool report_error); | 378 void Failed(bool report_error); |
| 374 | 379 |
| 375 // Helper functions | 380 // Helper functions |
| 376 int GetNextPageNumber(); | 381 int GetNextPageNumber(); |
| 377 bool IsRendering() const; | 382 bool IsRendering() const; |
| 378 bool IsModifiable() const; | 383 bool IsModifiable() const; |
| 384 bool HasSelection() const; | |
| 379 bool IsLastPageOfPrintReadyMetafile() const; | 385 bool IsLastPageOfPrintReadyMetafile() const; |
| 380 bool IsFinalPageRendered() const; | 386 bool IsFinalPageRendered() const; |
| 381 | 387 |
| 382 // Setters | 388 // Setters |
| 383 void set_generate_draft_pages(bool generate_draft_pages); | 389 void set_generate_draft_pages(bool generate_draft_pages); |
| 384 void set_error(enum PrintPreviewErrorBuckets error); | 390 void set_error(enum PrintPreviewErrorBuckets error); |
| 385 | 391 |
| 386 // Getters | 392 // Getters |
| 387 WebKit::WebFrame* frame(); | 393 WebKit::WebFrame* prepared_frame(); |
|
Lei Zhang
2013/01/26 08:40:36
Please mention the difference between the source a
Vitaly Buka (NO REVIEWS)
2013/01/26 10:29:30
Done.
| |
| 388 const WebKit::WebNode& node() const; | 394 const WebKit::WebNode& prepared_node() const; |
| 395 WebKit::WebFrame* source_frame(); | |
| 396 const WebKit::WebNode& source_node() const; | |
| 389 int total_page_count() const; | 397 int total_page_count() const; |
| 390 bool generate_draft_pages() const; | 398 bool generate_draft_pages() const; |
| 391 PreviewMetafile* metafile(); | 399 PreviewMetafile* metafile(); |
| 392 gfx::Size GetPrintCanvasSize() const; | 400 gfx::Size GetPrintCanvasSize() const; |
| 393 int last_error() const; | 401 int last_error() const; |
| 394 | 402 |
| 395 private: | 403 private: |
| 396 enum State { | 404 enum State { |
| 397 UNINITIALIZED, // Not ready to render. | 405 UNINITIALIZED, // Not ready to render. |
| 398 INITIALIZED, // Ready to render. | 406 INITIALIZED, // Ready to render. |
| 399 RENDERING, // Rendering. | 407 RENDERING, // Rendering. |
| 400 DONE // Finished rendering. | 408 DONE // Finished rendering. |
| 401 }; | 409 }; |
| 402 | 410 |
| 403 // Reset some of the internal rendering context. | 411 // Reset some of the internal rendering context. |
| 404 void ClearContext(); | 412 void ClearContext(); |
| 405 | 413 |
| 406 // Specifies what to render for print preview. | 414 // Specifies what to render for print preview. |
| 407 WebKit::WebFrame* frame_; | 415 WebKit::WebFrame* source_frame_; |
| 408 WebKit::WebNode node_; | 416 WebKit::WebNode source_node_; |
| 409 | 417 |
| 410 scoped_ptr<PrepareFrameAndViewForPrint> prep_frame_view_; | 418 scoped_ptr<PrepareFrameAndViewForPrint> prep_frame_view_; |
| 411 scoped_ptr<PreviewMetafile> metafile_; | 419 scoped_ptr<PreviewMetafile> metafile_; |
| 412 | 420 |
| 413 // Total page count in the renderer. | |
| 414 int total_page_count_; | |
| 415 | |
| 416 // The current page to render. | 421 // The current page to render. |
| 417 int current_page_index_; | 422 int current_page_index_; |
| 418 | 423 |
| 419 // List of page indices that need to be rendered. | 424 // List of page indices that need to be rendered. |
| 420 std::vector<int> pages_to_render_; | 425 std::vector<int> pages_to_render_; |
| 421 | 426 |
| 422 // True, when draft pages needs to be generated. | 427 // True, when draft pages needs to be generated. |
| 423 bool generate_draft_pages_; | 428 bool generate_draft_pages_; |
| 424 | 429 |
| 425 // Specifies the total number of pages in the print ready metafile. | 430 // Specifies the total number of pages in the print ready metafile. |
| 426 int print_ready_metafile_page_count_; | 431 int print_ready_metafile_page_count_; |
| 427 | 432 |
| 428 base::TimeDelta document_render_time_; | 433 base::TimeDelta document_render_time_; |
| 429 base::TimeTicks begin_time_; | 434 base::TimeTicks begin_time_; |
| 430 | 435 |
| 431 enum PrintPreviewErrorBuckets error_; | 436 enum PrintPreviewErrorBuckets error_; |
| 432 | 437 |
| 433 State state_; | 438 State state_; |
| 434 }; | 439 }; |
| 435 | 440 |
| 436 bool print_node_in_progress_; | 441 bool print_node_in_progress_; |
| 437 PrintPreviewContext print_preview_context_; | 442 PrintPreviewContext print_preview_context_; |
| 438 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelper); | 443 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelper); |
| 439 }; | 444 }; |
| 440 | 445 |
| 441 } // namespace printing | 446 } // namespace printing |
| 442 | 447 |
| 443 #endif // CHROME_RENDERER_PRINTING_PRINT_WEB_VIEW_HELPER_H_ | 448 #endif // CHROME_RENDERER_PRINTING_PRINT_WEB_VIEW_HELPER_H_ |
| OLD | NEW |