summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/common/print_messages.h5
-rw-r--r--chrome/renderer/print_web_view_helper.cc8
-rw-r--r--chrome/renderer/print_web_view_helper.h10
-rw-r--r--chrome/renderer/print_web_view_helper_linux.cc6
-rw-r--r--chrome/renderer/print_web_view_helper_mac.mm8
-rw-r--r--chrome/renderer/print_web_view_helper_win.cc12
-rw-r--r--printing/emf_win.cc3
-rw-r--r--printing/emf_win.h4
-rw-r--r--printing/metafile.h3
-rw-r--r--printing/pdf_metafile_cairo_linux.cc4
-rw-r--r--printing/pdf_metafile_cairo_linux.h4
-rw-r--r--printing/pdf_metafile_cg_mac.cc2
-rw-r--r--printing/pdf_metafile_cg_mac.h4
-rw-r--r--printing/pdf_metafile_skia.cc17
-rw-r--r--printing/pdf_metafile_skia.h7
15 files changed, 30 insertions, 67 deletions
diff --git a/chrome/common/print_messages.h b/chrome/common/print_messages.h
index ee5bf44..618ece5 100644
--- a/chrome/common/print_messages.h
+++ b/chrome/common/print_messages.h
@@ -60,11 +60,6 @@ IPC_STRUCT_BEGIN(PrintMsg_PrintPage_Params)
// The page number is the indicator of the square that should be rendered
// according to the layout specified in PrintMsg_Print_Params.
IPC_STRUCT_MEMBER(int, page_number)
-
- // The page number in the resulting document. If the user is only printing
- // page 2, |page_number| above will 1, but |page_slot| will be 0, as it's the
- // first page in the final document.
- IPC_STRUCT_MEMBER(int, page_slot)
IPC_STRUCT_END()
IPC_STRUCT_BEGIN(PrintMsg_PrintPages_Params)
diff --git a/chrome/renderer/print_web_view_helper.cc b/chrome/renderer/print_web_view_helper.cc
index 7ad456f..1735d90 100644
--- a/chrome/renderer/print_web_view_helper.cc
+++ b/chrome/renderer/print_web_view_helper.cc
@@ -582,7 +582,6 @@ bool PrintWebViewHelper::PrintPages(const PrintMsg_PrintPages_Params& params,
if (params.pages.empty()) {
for (int i = 0; i < page_count; ++i) {
page_params.page_number = i;
- page_params.page_slot = i;
PrintPageInternal(page_params, canvas_size, frame);
}
} else {
@@ -590,7 +589,6 @@ bool PrintWebViewHelper::PrintPages(const PrintMsg_PrintPages_Params& params,
if (params.pages[i] >= page_count)
break;
page_params.page_number = params.pages[i];
- page_params.page_slot = i;
PrintPageInternal(page_params, canvas_size, frame);
}
}
@@ -1094,12 +1092,6 @@ bool PrintWebViewHelper::PrintPreviewContext::IsModifiable() const {
return mime != "application/pdf";
}
-int PrintWebViewHelper::PrintPreviewContext::GetPageSlotForPage(
- int page_number) const {
- int page_slot = rendered_pages_[page_number].second;
- return page_slot == -1 ? page_number : page_slot;
-}
-
WebKit::WebFrame* PrintWebViewHelper::PrintPreviewContext::frame() const {
return frame_;
}
diff --git a/chrome/renderer/print_web_view_helper.h b/chrome/renderer/print_web_view_helper.h
index 8b4342d..4606c37 100644
--- a/chrome/renderer/print_web_view_helper.h
+++ b/chrome/renderer/print_web_view_helper.h
@@ -228,12 +228,11 @@ class PrintWebViewHelper : public RenderViewObserver,
// Platform specific helper function for rendering page(s) to |metafile|.
#if defined(OS_WIN)
void RenderPage(const PrintMsg_Print_Params& params, float* scale_factor,
- int page_number, int page_slot, bool is_preview,
- WebKit::WebFrame* frame,
+ int page_number, bool is_preview, WebKit::WebFrame* frame,
scoped_ptr<printing::Metafile>* metafile);
#elif defined(OS_MACOSX)
void RenderPage(const gfx::Size& page_size, const gfx::Rect& content_area,
- const float& scale_factor, int page_number, int page_slot,
+ const float& scale_factor, int page_number,
WebKit::WebFrame* frame, printing::Metafile* metafile);
#elif defined(OS_POSIX)
bool RenderPages(const PrintMsg_PrintPages_Params& params,
@@ -341,11 +340,6 @@ class PrintWebViewHelper : public RenderViewObserver,
bool IsBusy() const;
bool IsModifiable() const;
- // Return the page slot in the final document for |page_number|. i.e. if
- // the user selected just page 3, the page slot would be 0, since it is
- // the first page in the resulting document.
- int GetPageSlotForPage(int page_number) const;
-
// Getters
WebKit::WebFrame* frame() const;
WebKit::WebNode* node() const;
diff --git a/chrome/renderer/print_web_view_helper_linux.cc b/chrome/renderer/print_web_view_helper_linux.cc
index 27667d6..c9d8f38 100644
--- a/chrome/renderer/print_web_view_helper_linux.cc
+++ b/chrome/renderer/print_web_view_helper_linux.cc
@@ -29,8 +29,6 @@ void PrintWebViewHelper::RenderPreviewPage(int page_number) {
PrintMsg_PrintPage_Params page_params;
page_params.params = print_preview_context_.print_params();
page_params.page_number = page_number;
- page_params.page_slot =
- print_preview_context_.GetPageSlotForPage(page_number);
base::TimeTicks begin_time = base::TimeTicks::Now();
PrintPageInternal(page_params,
@@ -162,13 +160,11 @@ bool PrintWebViewHelper::RenderPages(const PrintMsg_PrintPages_Params& params,
if (params.pages.empty()) {
for (int i = 0; i < *page_count; ++i) {
page_params.page_number = i;
- page_params.page_slot = i;
PrintPageInternal(page_params, canvas_size, frame, metafile);
}
} else {
for (size_t i = 0; i < params.pages.size(); ++i) {
page_params.page_number = params.pages[i];
- page_params.page_slot = i;
PrintPageInternal(page_params, canvas_size, frame, metafile);
}
}
@@ -202,7 +198,7 @@ void PrintWebViewHelper::PrintPageInternal(
page_layout_in_points.content_height);
SkDevice* device = metafile->StartPageForVectorCanvas(
- params.page_slot, page_size, content_area, 1.0f);
+ page_size, content_area, 1.0f);
if (!device)
return;
diff --git a/chrome/renderer/print_web_view_helper_mac.mm b/chrome/renderer/print_web_view_helper_mac.mm
index 3ceeb5d..64761af6 100644
--- a/chrome/renderer/print_web_view_helper_mac.mm
+++ b/chrome/renderer/print_web_view_helper_mac.mm
@@ -32,12 +32,11 @@ void PrintWebViewHelper::PrintPageInternal(
float scale_factor = frame->getPrintPageShrink(params.page_number);
int page_number = params.page_number;
- int page_slot = params.page_slot;
// Render page for printing.
gfx::Rect content_area(params.params.printable_size);
RenderPage(params.params.printable_size, content_area, scale_factor,
- page_number, page_slot, frame, &metafile);
+ page_number, frame, &metafile);
metafile.FinishDocument();
PrintHostMsg_DidPrintPage_Params page_params;
@@ -81,7 +80,6 @@ void PrintWebViewHelper::RenderPreviewPage(int page_number) {
base::TimeTicks begin_time = base::TimeTicks::Now();
RenderPage(printParams.page_size, content_area, scale_factor, page_number,
- print_preview_context_.GetPageSlotForPage(page_number),
print_preview_context_.frame(), initial_render_metafile);
print_preview_context_.RenderedPreviewPage(
base::TimeTicks::Now() - begin_time);
@@ -114,13 +112,13 @@ void PrintWebViewHelper::RenderPreviewPage(int page_number) {
void PrintWebViewHelper::RenderPage(
const gfx::Size& page_size, const gfx::Rect& content_area,
- const float& scale_factor, int page_number, int page_slot, WebFrame* frame,
+ const float& scale_factor, int page_number, WebFrame* frame,
printing::Metafile* metafile) {
{
#if defined(USE_SKIA)
SkDevice* device = metafile->StartPageForVectorCanvas(
- page_slot, page_size, content_area, scale_factor);
+ page_size, content_area, scale_factor);
if (!device)
return;
diff --git a/chrome/renderer/print_web_view_helper_win.cc b/chrome/renderer/print_web_view_helper_win.cc
index 477b378..961a15f 100644
--- a/chrome/renderer/print_web_view_helper_win.cc
+++ b/chrome/renderer/print_web_view_helper_win.cc
@@ -84,14 +84,13 @@ void PrintWebViewHelper::PrintPageInternal(
skia::InitializeDC(metafile->context());
int page_number = params.page_number;
- int page_slot = params.page_slot;
// Calculate the dpi adjustment.
float scale_factor = static_cast<float>(params.params.desired_dpi /
params.params.dpi);
// Render page for printing.
- RenderPage(params.params, &scale_factor, page_number, page_slot, false, frame,
+ RenderPage(params.params, &scale_factor, page_number, false, frame,
&metafile);
// Close the device context to retrieve the compiled metafile.
@@ -133,8 +132,7 @@ void PrintWebViewHelper::RenderPreviewPage(int page_number) {
scoped_ptr<Metafile> metafile(print_preview_context_.metafile());
base::TimeTicks begin_time = base::TimeTicks::Now();
- RenderPage(print_params, &scale_factor, page_number,
- print_preview_context_.GetPageSlotForPage(page_number), true,
+ RenderPage(print_params, &scale_factor, page_number, true,
print_preview_context_.frame(), &metafile);
print_preview_context_.RenderedPreviewPage(
@@ -152,8 +150,7 @@ void PrintWebViewHelper::RenderPreviewPage(int page_number) {
void PrintWebViewHelper::RenderPage(
const PrintMsg_Print_Params& params, float* scale_factor, int page_number,
- int page_slot, bool is_preview, WebFrame* frame,
- scoped_ptr<Metafile>* metafile) {
+ bool is_preview, WebFrame* frame, scoped_ptr<Metafile>* metafile) {
PageSizeMargins page_layout_in_points;
GetPageSizeAndMarginsInPoints(frame, page_number, params,
&page_layout_in_points);
@@ -182,8 +179,7 @@ void PrintWebViewHelper::RenderPage(
static_cast<int>(page_layout_in_points.content_width),
static_cast<int>(page_layout_in_points.content_height));
SkDevice* device = (*metafile)->StartPageForVectorCanvas(
- page_slot, page_size, content_area,
- frame->getPrintPageShrink(page_number));
+ page_size, content_area, frame->getPrintPageShrink(page_number));
DCHECK(device);
// The printPage method may take a reference to the canvas we pass down, so it
// can't be a stack object.
diff --git a/printing/emf_win.cc b/printing/emf_win.cc
index 920d64f..4cb8530 100644
--- a/printing/emf_win.cc
+++ b/printing/emf_win.cc
@@ -404,9 +404,8 @@ bool Emf::Record::SafePlayback(const XFORM* base_matrix) const {
}
SkDevice* Emf::StartPageForVectorCanvas(
- int page_number, const gfx::Size& page_size, const gfx::Rect& content_area,
+ const gfx::Size& page_size, const gfx::Rect& content_area,
const float& scale_factor) {
- DCHECK(page_number == page_count_);
if (!StartPage(page_size, content_area, scale_factor))
return NULL;
diff --git a/printing/emf_win.h b/printing/emf_win.h
index a4584c9..f7e0ed5 100644
--- a/printing/emf_win.h
+++ b/printing/emf_win.h
@@ -46,8 +46,8 @@ class Emf : public Metafile {
virtual bool InitFromData(const void* src_buffer, uint32 src_buffer_size);
virtual SkDevice* StartPageForVectorCanvas(
- int page_number, const gfx::Size& page_size,
- const gfx::Rect& content_area, const float& scale_factor);
+ const gfx::Size& page_size, const gfx::Rect& content_area,
+ const float& scale_factor);
// Inserts a custom GDICOMMENT records indicating StartPage/EndPage calls
// (since StartPage and EndPage do not work in a metafile DC). Only valid
// when hdc_ is non-NULL. |page_size|, |content_area|, and |scale_factor| are
diff --git a/printing/metafile.h b/printing/metafile.h
index dbb838c..84c0556 100644
--- a/printing/metafile.h
+++ b/printing/metafile.h
@@ -53,9 +53,8 @@ class Metafile {
// This method calls StartPage and then returns an appropriate
// VectorPlatformDevice implementation bound to the context created by
- // StartPage or NULL on error. |page_number| is zero based.
+ // StartPage or NULL on error.
virtual SkDevice* StartPageForVectorCanvas(
- int page_number,
const gfx::Size& page_size,
const gfx::Rect& content_area,
const float& scale_factor) = 0;
diff --git a/printing/pdf_metafile_cairo_linux.cc b/printing/pdf_metafile_cairo_linux.cc
index 581b158..af2aa5c 100644
--- a/printing/pdf_metafile_cairo_linux.cc
+++ b/printing/pdf_metafile_cairo_linux.cc
@@ -119,8 +119,8 @@ bool PdfMetafileCairo::InitFromData(const void* src_buffer,
}
SkDevice* PdfMetafileCairo::StartPageForVectorCanvas(
- int /*page_number*/, const gfx::Size& page_size,
- const gfx::Rect& content_area, const float& scale_factor) {
+ const gfx::Size& page_size, const gfx::Rect& content_area,
+ const float& scale_factor) {
if (!StartPage(page_size, content_area, scale_factor))
return NULL;
diff --git a/printing/pdf_metafile_cairo_linux.h b/printing/pdf_metafile_cairo_linux.h
index 62fd814..6f07ae0 100644
--- a/printing/pdf_metafile_cairo_linux.h
+++ b/printing/pdf_metafile_cairo_linux.h
@@ -37,8 +37,8 @@ class PdfMetafileCairo : public Metafile {
virtual bool InitFromData(const void* src_buffer, uint32 src_buffer_size);
virtual SkDevice* StartPageForVectorCanvas(
- int page_number, const gfx::Size& page_size,
- const gfx::Rect& content_area, const float& scale_factor);
+ const gfx::Size& page_size, const gfx::Rect& content_area,
+ const float& scale_factor);
virtual bool StartPage(const gfx::Size& page_size,
const gfx::Rect& content_area,
diff --git a/printing/pdf_metafile_cg_mac.cc b/printing/pdf_metafile_cg_mac.cc
index 0722231..1cf7f7b 100644
--- a/printing/pdf_metafile_cg_mac.cc
+++ b/printing/pdf_metafile_cg_mac.cc
@@ -107,7 +107,7 @@ bool PdfMetafileCg::InitFromData(const void* src_buffer,
}
SkDevice* PdfMetafileCg::StartPageForVectorCanvas(
- int page_number, const gfx::Size& page_size, const gfx::Rect& content_area,
+ const gfx::Size& page_size, const gfx::Rect& content_area,
const float& scale_factor) {
NOTIMPLEMENTED();
return NULL;
diff --git a/printing/pdf_metafile_cg_mac.h b/printing/pdf_metafile_cg_mac.h
index 488abe8..5a7f56d 100644
--- a/printing/pdf_metafile_cg_mac.h
+++ b/printing/pdf_metafile_cg_mac.h
@@ -36,8 +36,8 @@ class PdfMetafileCg : public Metafile, public base::ThreadChecker {
// Not implemented on mac.
virtual SkDevice* StartPageForVectorCanvas(
- int page_number, const gfx::Size& page_size,
- const gfx::Rect& content_area, const float& scale_factor);
+ const gfx::Size& page_size, const gfx::Rect& content_area,
+ const float& scale_factor);
virtual bool StartPage(const gfx::Size& page_size,
const gfx::Rect& content_area,
const float& scale_factor);
diff --git a/printing/pdf_metafile_skia.cc b/printing/pdf_metafile_skia.cc
index 638fa7b..bc44131 100644
--- a/printing/pdf_metafile_skia.cc
+++ b/printing/pdf_metafile_skia.cc
@@ -49,11 +49,10 @@ bool PdfMetafileSkia::InitFromData(const void* src_buffer,
}
SkDevice* PdfMetafileSkia::StartPageForVectorCanvas(
- int page_number, const gfx::Size& page_size, const gfx::Rect& content_area,
+ const gfx::Size& page_size, const gfx::Rect& content_area,
const float& scale_factor) {
- DCHECK_EQ(outstanding_page_number_, kNoOutstandingPage);
- DCHECK_GE(page_number, 0);
- outstanding_page_number_ = page_number;
+ DCHECK(!page_outstanding_);
+ page_outstanding_ = true;
// Adjust for the margins and apply the scale factor.
SkMatrix transform;
@@ -84,11 +83,9 @@ bool PdfMetafileSkia::StartPage(const gfx::Size& page_size,
bool PdfMetafileSkia::FinishPage() {
DCHECK(data_->current_page_.get());
- DCHECK_GE(outstanding_page_number_, 0);
- data_->pdf_doc_.setPage(outstanding_page_number_ + 1,
- data_->current_page_.get());
- outstanding_page_number_ = kNoOutstandingPage;
+ data_->pdf_doc_.appendPage(data_->current_page_.get());
+ page_outstanding_ = false;
return true;
}
@@ -97,7 +94,7 @@ bool PdfMetafileSkia::FinishDocument() {
if (data_->pdf_stream_.getOffset())
return true;
- if (outstanding_page_number_ >= 0)
+ if (page_outstanding_)
FinishPage();
data_->current_page_ = NULL;
@@ -239,7 +236,7 @@ bool PdfMetafileSkia::SaveToFD(const base::FileDescriptor& fd) const {
PdfMetafileSkia::PdfMetafileSkia()
: data_(new PdfMetafileSkiaData),
- outstanding_page_number_(kNoOutstandingPage) {
+ page_outstanding_(false) {
}
PdfMetafileSkia* PdfMetafileSkia::GetMetafileForCurrentPage() {
diff --git a/printing/pdf_metafile_skia.h b/printing/pdf_metafile_skia.h
index 4ce5337..d3beb3b 100644
--- a/printing/pdf_metafile_skia.h
+++ b/printing/pdf_metafile_skia.h
@@ -30,7 +30,6 @@ class PdfMetafileSkia : public Metafile {
virtual bool InitFromData(const void* src_buffer, uint32 src_buffer_size);
virtual SkDevice* StartPageForVectorCanvas(
- int page_number,
const gfx::Size& page_size,
const gfx::Rect& content_area,
const float& scale_factor);
@@ -73,12 +72,10 @@ class PdfMetafileSkia : public Metafile {
PdfMetafileSkia* GetMetafileForCurrentPage();
private:
- static const int kNoOutstandingPage = -1;
-
scoped_ptr<PdfMetafileSkiaData> data_;
- // Page number of the outstanding page, or kNoOutstandingPage.
- int outstanding_page_number_;
+ // True when finish page is outstanding for current page.
+ bool page_outstanding_;
DISALLOW_COPY_AND_ASSIGN(PdfMetafileSkia);
};