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 |