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

Unified Diff: chrome/renderer/mock_printer.cc

Issue 8585017: PrintPreview: Honor the print media page size and margin values. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added one more test Created 8 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 | « chrome/renderer/mock_printer.h ('k') | chrome/renderer/print_web_view_helper.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/mock_printer.cc
diff --git a/chrome/renderer/mock_printer.cc b/chrome/renderer/mock_printer.cc
index 28708dfdba9f9da9d803c8d1839360c55fa51047..8546d6156804fc0d1b05b1880656cb1063fae613 100644
--- a/chrome/renderer/mock_printer.cc
+++ b/chrome/renderer/mock_printer.cc
@@ -15,6 +15,29 @@
#include "printing/units.h"
#include "testing/gtest/include/gtest/gtest.h"
+namespace {
+
+void UpdateMargins(int margins_type, int dpi, PrintMsg_Print_Params* params) {
+ if (margins_type == printing::NO_MARGINS) {
+ params->content_size.SetSize(static_cast<int>((8.5 * dpi)),
+ static_cast<int>((11.0 * dpi)));
+ params->margin_left = 0;
+ params->margin_top = 0;
+ } else if (margins_type == printing::PRINTABLE_AREA_MARGINS) {
+ params->content_size.SetSize(static_cast<int>((8.0 * dpi)),
+ static_cast<int>((10.5 * dpi)));
+ params->margin_left = static_cast<int>(0.25 * dpi);
+ params->margin_top = static_cast<int>(0.25 * dpi);
+ } else if (margins_type == printing::CUSTOM_MARGINS) {
+ params->content_size.SetSize(static_cast<int>((7.9 * dpi)),
+ static_cast<int>((10.4 * dpi)));
+ params->margin_left = static_cast<int>(0.30 * dpi);
+ params->margin_top = static_cast<int>(0.30 * dpi);
+ }
+}
+
+} // end
+
MockPrinterPage::MockPrinterPage(const void* source_data,
uint32 source_size,
const printing::Image& image)
@@ -40,6 +63,7 @@ MockPrinter::MockPrinter()
number_pages_(0),
page_number_(0),
is_first_request_(true),
+ print_to_pdf_(false),
preview_request_id_(0),
display_header_footer_(false),
date_(ASCIIToUTF16("date")),
@@ -51,6 +75,10 @@ MockPrinter::MockPrinter()
content_size_.SetSize(static_cast<int>((7.5 * dpi_)),
static_cast<int>((10.0 * dpi_)));
margin_left_ = margin_top_ = static_cast<int>(0.5 * dpi_);
+ printable_area_.SetRect(static_cast<int>(0.25 * dpi_),
+ static_cast<int>(0.25 *dpi_),
+ static_cast<int>(8 * dpi_),
+ static_cast<int>(10.5 * dpi_));
}
MockPrinter::~MockPrinter() {
@@ -80,6 +108,7 @@ void MockPrinter::SetDefaultPrintSettings(const PrintMsg_Print_Params& params) {
selection_only_ = params.selection_only;
page_size_ = params.page_size;
content_size_ = params.content_size;
+ printable_area_ = params.printable_area;
margin_left_ = params.margin_left;
margin_top_ = params.margin_top;
display_header_footer_ = params.display_header_footer;
@@ -111,7 +140,9 @@ void MockPrinter::ScriptedPrint(int cookie,
settings->params.document_cookie = document_cookie_;
settings->params.page_size = page_size_;
settings->params.content_size = content_size_;
+ settings->params.printable_area = printable_area_;
settings->params.is_first_request = is_first_request_;
+ settings->params.print_to_pdf = print_to_pdf_;
settings->params.preview_request_id = preview_request_id_;
settings->params.display_header_footer = display_header_footer_;
settings->params.date = date_;
@@ -122,13 +153,15 @@ void MockPrinter::ScriptedPrint(int cookie,
void MockPrinter::UpdateSettings(int cookie,
PrintMsg_PrintPages_Params* params,
- const std::vector<int>& pages) {
+ const std::vector<int>& pages,
+ int margins_type) {
if (document_cookie_ == -1) {
document_cookie_ = CreateDocumentCookie();
}
params->Reset();
params->pages = pages;
SetPrintParams(&(params->params));
+ UpdateMargins(margins_type, dpi_, &(params->params));
printer_status_ = PRINTER_PRINTING;
}
@@ -258,9 +291,11 @@ void MockPrinter::SetPrintParams(PrintMsg_Print_Params* params) {
params->document_cookie = document_cookie_;
params->page_size = page_size_;
params->content_size = content_size_;
+ params->printable_area = printable_area_;
params->margin_left = margin_left_;
params->margin_top = margin_top_;
params->is_first_request = is_first_request_;
+ params->print_to_pdf = print_to_pdf_;
params->preview_request_id = preview_request_id_;
params->display_header_footer = display_header_footer_;
params->date = date_;
« no previous file with comments | « chrome/renderer/mock_printer.h ('k') | chrome/renderer/print_web_view_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698