diff options
author | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-31 05:19:41 +0000 |
---|---|---|
committer | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-31 05:19:41 +0000 |
commit | 576f9964c7ab5b355a3f02164066119d96e00463 (patch) | |
tree | 2d2e3a80c16827eb5db91534d793f71b33ffc00c /chrome/renderer/print_web_view_helper.h | |
parent | e94c69f6b25f93e7d2b97766686a487777eec88f (diff) | |
download | chromium_src-576f9964c7ab5b355a3f02164066119d96e00463.zip chromium_src-576f9964c7ab5b355a3f02164066119d96e00463.tar.gz chromium_src-576f9964c7ab5b355a3f02164066119d96e00463.tar.bz2 |
Print preview page selection should not require a rerendering of draft pages.
On page selection, regenerate the complete document with the selection, but preserve the existing draft pages and simply display a subset of them.
Added a new param |clear all preview data| to |PrintHostMsg_DidGetPreviewPageCount|.
BUG=84383
TEST=print preview works after code changes.
Review URL: http://codereview.chromium.org/7647010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98926 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/print_web_view_helper.h')
-rw-r--r-- | chrome/renderer/print_web_view_helper.h | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/chrome/renderer/print_web_view_helper.h b/chrome/renderer/print_web_view_helper.h index 5d980a6..dc38462 100644 --- a/chrome/renderer/print_web_view_helper.h +++ b/chrome/renderer/print_web_view_helper.h @@ -6,7 +6,6 @@ #define CHROME_RENDERER_PRINT_WEB_VIEW_HELPER_H_ #pragma once -#include <utility> #include <vector> #include "base/memory/scoped_ptr.h" @@ -109,6 +108,8 @@ class PrintWebViewHelper : public RenderViewObserver, OnPrintForPrintPreview); FRIEND_TEST_ALL_PREFIXES(PrintWebViewHelperPreviewTest, OnPrintForPrintPreviewFail); + FRIEND_TEST_ALL_PREFIXES(PrintWebViewHelperPreviewTest, + OnPrintPreviewForSelectedPages); #if defined(OS_WIN) || defined(OS_MACOSX) FRIEND_TEST_ALL_PREFIXES(PrintWebViewHelperTest, PrintLayoutTest); @@ -139,8 +140,8 @@ class PrintWebViewHelper : public RenderViewObserver, // Returns true if print preview should continue, false on failure. bool RenderPreviewPage(int page_number); - // Finalize the print preview document. - bool FinalizePreviewDocument(); + // Finalize the print ready preview document. + bool FinalizePrintReadyDocument(); // Print / preview the node under the context menu. void OnPrintNodeUnderContextMenu(); @@ -302,6 +303,7 @@ class PrintWebViewHelper : public RenderViewObserver, scoped_ptr<PrintMsg_PrintPages_Params> print_pages_params_; bool is_preview_; + bool is_print_ready_metafile_sent_; // Used for scripted initiated printing blocking. base::Time last_cancelled_script_print_; @@ -339,8 +341,11 @@ class PrintWebViewHelper : public RenderViewObserver, // rendering took. void RenderedPreviewPage(const base::TimeDelta& page_time); - // Finalizes the print preview document. - void FinalizePreviewDocument(); + // Updates the print preview context when the required pages are rendered. + void AllPagesRendered(); + + // Finalizes the print ready preview document. + void FinalizePrintReadyDocument(); // Cleanup after print preview finishes. void Finished(); @@ -352,11 +357,16 @@ class PrintWebViewHelper : public RenderViewObserver, int GetNextPageNumber(); bool IsReadyToRender() const; bool IsModifiable() const; + bool IsLastPageOfPrintReadyMetafile() const; + + // Setters + void set_generate_draft_pages(bool generate_draft_pages); // Getters WebKit::WebFrame* frame() const; WebKit::WebNode* node() const; int total_page_count() const; + bool generate_draft_pages(); printing::PreviewMetafile* metafile() const; const PrintMsg_Print_Params& print_params() const; const gfx::Size& GetPrintCanvasSize() const; @@ -383,14 +393,18 @@ class PrintWebViewHelper : public RenderViewObserver, // Total page count in the renderer. int total_page_count_; - // Number of pages to render. - int actual_page_count_; - // The current page to render. int current_page_index_; + // List of page indices that need to be rendered. std::vector<int> pages_to_render_; + // True, when draft pages needs to be generated. + bool generate_draft_pages_; + + // Specifies the total number of pages in the print ready metafile. + int print_ready_metafile_page_count_; + base::TimeDelta document_render_time_; base::TimeTicks begin_time_; |