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

Unified Diff: chrome/renderer/printing/print_web_view_helper.h

Issue 11953010: Cleanup of PrepareFrameAndViewForPrint code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/renderer/printing/print_web_view_helper.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/printing/print_web_view_helper.h
diff --git a/chrome/renderer/printing/print_web_view_helper.h b/chrome/renderer/printing/print_web_view_helper.h
index 95b46048b8efe6774074413982da722b93c35e33..8144cc4e5835012a4b8576c58bc1e05cacde51f2 100644
--- a/chrome/renderer/printing/print_web_view_helper.h
+++ b/chrome/renderer/printing/print_web_view_helper.h
@@ -37,50 +37,7 @@ class WebView;
namespace printing {
struct PageSizeMargins;
-
-// Class that calls the Begin and End print functions on the frame and changes
-// the size of the view temporarily to support full page printing..
-// Do not serve any events in the time between construction and destruction of
-// this class because it will cause flicker.
-class PrepareFrameAndViewForPrint {
- public:
- // Prints |frame|. If |node| is not NULL, then only that node will be
- // printed.
- PrepareFrameAndViewForPrint(const PrintMsg_Print_Params& print_params,
- WebKit::WebFrame* frame,
- const WebKit::WebNode& node);
- ~PrepareFrameAndViewForPrint();
-
- void UpdatePrintParams(const PrintMsg_Print_Params& print_params);
-
- int GetExpectedPageCount() const {
- return expected_pages_count_;
- }
-
- bool ShouldUseBrowserOverlays() const {
- return use_browser_overlays_;
- }
-
- gfx::Size GetPrintCanvasSize() const;
-
- void FinishPrinting();
-
- private:
- void StartPrinting(const WebKit::WebPrintParams& webkit_print_params);
-
- WebKit::WebFrame* frame_;
- WebKit::WebNode node_to_print_;
- WebKit::WebView* web_view_;
- WebKit::WebPrintParams web_print_params_;
- gfx::Size prev_view_size_;
- gfx::Size prev_scroll_offset_;
- int expected_pages_count_;
- bool use_browser_overlays_;
- bool finished_;
- bool should_print_backgrounds_;
-
- DISALLOW_COPY_AND_ASSIGN(PrepareFrameAndViewForPrint);
-};
+class PrepareFrameAndViewForPrint;
// PrintWebViewHelper handles most of the printing grunt work for RenderView.
// We plan on making print asynchronous and that will require copying the DOM
@@ -226,14 +183,10 @@ class PrintWebViewHelper
// Used only for native printing workflow.
bool InitPrintSettings(bool fit_to_paper_size);
- // Initialize print page settings with default settings and prepare the frame
- // for print. A new PrepareFrameAndViewForPrint is created to fulfill the
- // request and is filled into the |prepare| argument.
- // Used only for native printing workflow.
- bool InitPrintSettingsAndPrepareFrame(
- WebKit::WebFrame* frame,
- const WebKit::WebNode& node,
- scoped_ptr<PrepareFrameAndViewForPrint>* prepare);
+ // Calculate number of pages in source document.
+ bool CalculateNumberOfPages(WebKit::WebFrame* frame,
+ const WebKit::WebNode& node,
+ int* number_of_pages);
// Update the current print settings with new |passed_job_settings|.
// |passed_job_settings| dictionary contains print job details such as printer
@@ -246,14 +199,17 @@ class PrintWebViewHelper
// Return false if the user cancels or on error.
bool GetPrintSettingsFromUser(WebKit::WebFrame* frame,
const WebKit::WebNode& node,
- int expected_pages_count,
- bool use_browser_overlays);
+ int expected_pages_count);
// Page Printing / Rendering ------------------------------------------------
// Prints all the pages listed in |print_pages_params_|.
// It will implicitly revert the document to display CSS media type.
bool PrintPages(WebKit::WebFrame* frame, const WebKit::WebNode& node);
+ bool PrintPagesNative(WebKit::WebFrame* frame,
+ const WebKit::WebNode& node,
+ int page_count,
+ const gfx::Size& canvas_size);
// Prints the page listed in |params|.
#if defined(USE_X11)
@@ -282,15 +238,13 @@ class PrintWebViewHelper
gfx::Size* page_size_in_dpi,
gfx::Rect* content_area_in_dpi);
#elif defined(OS_MACOSX)
- void RenderPage(const PrintMsg_Print_Params& params, int page_number,
- WebKit::WebFrame* frame, bool is_preview,
- Metafile* metafile, gfx::Size* page_size,
+ void RenderPage(const PrintMsg_Print_Params& params,
+ int page_number,
+ WebKit::WebFrame* frame,
+ bool is_preview,
+ Metafile* metafile,
+ gfx::Size* page_size,
gfx::Rect* content_rect);
-#elif defined(OS_POSIX)
- bool RenderPages(const PrintMsg_PrintPages_Params& params,
- WebKit::WebFrame* frame, const WebKit::WebNode& node,
- std::vector<int>* printed_pages,
- Metafile* metafile);
#endif // defined(OS_WIN)
// Renders page contents from |frame| to |content_area| of |canvas|.
@@ -320,15 +274,6 @@ class PrintWebViewHelper
double* scale_factor,
PageSizeMargins* page_layout_in_points);
- // Prepare the frame and view for print and then call this function to honor
- // the CSS page layout information.
- static void UpdateFrameAndViewFromCssPageLayout(
- WebKit::WebFrame* frame,
- const WebKit::WebNode& node,
- PrepareFrameAndViewForPrint* prepare,
- const PrintMsg_Print_Params& params,
- bool ignore_css_margins);
-
// Given the |device| and |canvas| to draw on, prints the appropriate headers
// and footers using strings from |header_footer_info| on to the canvas.
static void PrintHeaderAndFooter(
« no previous file with comments | « no previous file | chrome/renderer/printing/print_web_view_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698