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

Unified Diff: printing/printing_context.cc

Issue 8201027: Move margin processing code to the browser process. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 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
Index: printing/printing_context.cc
diff --git a/printing/printing_context.cc b/printing/printing_context.cc
index 4e9d03a8469418ead6a83561434bfcb1a3e8db11..05e3e86a061adee508787664da4c3d0450d64db1 100644
--- a/printing/printing_context.cc
+++ b/printing/printing_context.cc
@@ -5,6 +5,7 @@
#include "printing/printing_context.h"
#include "base/values.h"
+#include "printing/page_setup.h"
#include "printing/print_settings_initializer.h"
namespace printing {
@@ -37,6 +38,51 @@ PrintingContext::Result PrintingContext::OnError() {
PrintingContext::Result PrintingContext::UpdatePrintSettings(
const base::DictionaryValue& job_settings,
const PageRanges& ranges) {
+ ResetSettings();
Lei Zhang 2011/10/08 02:02:05 I see you removed a ResetSettings() call in printi
vandebo (ex-Chrome) 2011/10/15 00:42:50 The previous ResetSettings happened after I set th
+ if (!job_settings.GetBoolean(printing::kSettingHeaderFooterEnabled,
Lei Zhang 2011/10/08 02:02:05 this block is not needed. It's already in PrintSet
vandebo (ex-Chrome) 2011/10/15 00:42:50 The value needs to be set for PrintSettings::SetPr
+ &settings_.display_header_footer)) {
+ NOTREACHED();
+ }
+ bool default_margins;
+ if (!job_settings.GetBoolean(printing::kSettingDefaultMarginsSelected,
+ &default_margins)) {
+ NOTREACHED();
+ default_margins = true;
+ }
+ if (!default_margins) {
+ double top_margin_in_points = 0;
+ double bottom_margin_in_points = 0;
+ double left_margin_in_points = 0;
+ double right_margin_in_points = 0;
+ DictionaryValue* custom_margins;
+ if (!job_settings.GetDictionary(printing::kSettingMargins,
+ &custom_margins) ||
+ !custom_margins->GetDouble(printing::kSettingMarginTop,
+ &top_margin_in_points) ||
+ !custom_margins->GetDouble(printing::kSettingMarginBottom,
+ &bottom_margin_in_points) ||
+ !custom_margins->GetDouble(printing::kSettingMarginLeft,
+ &left_margin_in_points) ||
+ !custom_margins->GetDouble(printing::kSettingMarginRight,
+ &right_margin_in_points)) {
+ NOTREACHED();
+ }
+ PageMargins margins_in_points;
+ margins_in_points.Clear();
+ margins_in_points.top = top_margin_in_points;
+ margins_in_points.bottom = bottom_margin_in_points;
+ margins_in_points.left = left_margin_in_points;
+ margins_in_points.right = right_margin_in_points;
+
+ PageMargins empty;
+ empty.Clear();
Lei Zhang 2011/10/08 02:02:05 Not needed. Better yet, let's add an is_empty meth
vandebo (ex-Chrome) 2011/10/15 00:42:50 Fixed otherwise.
+ if (margins_in_points.Equals(empty)) {
+ settings_.margin_type = NO_MARGINS;
+ } else {
+ settings_.SetCustomMargins(margins_in_points);
+ }
+ }
+
PrintingContext::Result result = UpdatePrinterSettings(job_settings, ranges);
printing::PrintSettingsInitializer::InitHeaderFooterStrings(job_settings,
&settings_);

Powered by Google App Engine
This is Rietveld 408576698