Commit 1e10f438 authored by rbpotter's avatar rbpotter Committed by Commit Bot

Print Preview: Add fit to page and DPI to the PrintSettings histogram

These two print ticket settings are not included in the histogram
currently.

Bug: None
Change-Id: I5d7400c1b953d62ac52d4714b4f5e322cab09abf
Reviewed-on: https://chromium-review.googlesource.com/1180512
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584292}
parent e25cfc08
...@@ -705,6 +705,7 @@ Polymer({ ...@@ -705,6 +705,7 @@ Polymer({
pagesPerSheet: this.getSettingValue('pagesPerSheet'), pagesPerSheet: this.getSettingValue('pagesPerSheet'),
dpiHorizontal: (dpi && 'horizontal_dpi' in dpi) ? dpi.horizontal_dpi : 0, dpiHorizontal: (dpi && 'horizontal_dpi' in dpi) ? dpi.horizontal_dpi : 0,
dpiVertical: (dpi && 'vertical_dpi' in dpi) ? dpi.vertical_dpi : 0, dpiVertical: (dpi && 'vertical_dpi' in dpi) ? dpi.vertical_dpi : 0,
dpiDefault: (dpi && 'is_default' in dpi) ? dpi.is_default : false,
deviceName: destination.id, deviceName: destination.id,
fitToPageEnabled: this.getSettingValue('fitToPage'), fitToPageEnabled: this.getSettingValue('fitToPage'),
pageWidth: this.documentInfo.pageSize.width, pageWidth: this.documentInfo.pageSize.width,
......
...@@ -634,6 +634,9 @@ cr.define('print_preview', function() { ...@@ -634,6 +634,9 @@ cr.define('print_preview', function() {
dpiVertical: 'vertical_dpi' in printTicketStore.dpi.getValue() ? dpiVertical: 'vertical_dpi' in printTicketStore.dpi.getValue() ?
printTicketStore.dpi.getValue().vertical_dpi : printTicketStore.dpi.getValue().vertical_dpi :
0, 0,
dpiDefault: 'is_default' in printTicketStore.dpi.getValue() ?
printTicketStore.dpi.getValue().is_default :
false,
deviceName: destination.id, deviceName: destination.id,
fitToPageEnabled: printTicketStore.fitToPage.getValue(), fitToPageEnabled: printTicketStore.fitToPage.getValue(),
pageWidth: documentInfo.pageSize.width, pageWidth: documentInfo.pageSize.width,
......
...@@ -139,6 +139,9 @@ enum PrintSettingsBuckets { ...@@ -139,6 +139,9 @@ enum PrintSettingsBuckets {
SCALING, SCALING,
PRINT_AS_IMAGE, PRINT_AS_IMAGE,
PAGES_PER_SHEET, PAGES_PER_SHEET,
FIT_TO_PAGE,
DEFAULT_DPI,
NON_DEFAULT_DPI,
PRINT_SETTINGS_BUCKET_BOUNDARY PRINT_SETTINGS_BUCKET_BOUNDARY
}; };
...@@ -291,7 +294,8 @@ std::unique_ptr<base::DictionaryValue> GetSettingsDictionary( ...@@ -291,7 +294,8 @@ std::unique_ptr<base::DictionaryValue> GetSettingsDictionary(
} }
// Track the popularity of print settings and report the stats. // Track the popularity of print settings and report the stats.
void ReportPrintSettingsStats(const base::DictionaryValue& settings) { void ReportPrintSettingsStats(const base::DictionaryValue& settings,
bool is_pdf) {
ReportPrintSettingHistogram(TOTAL); ReportPrintSettingHistogram(TOTAL);
const base::ListValue* page_range_array = NULL; const base::ListValue* page_range_array = NULL;
...@@ -382,6 +386,23 @@ void ReportPrintSettingsStats(const base::DictionaryValue& settings) { ...@@ -382,6 +386,23 @@ void ReportPrintSettingsStats(const base::DictionaryValue& settings) {
&rasterize) && rasterize) { &rasterize) && rasterize) {
ReportPrintSettingHistogram(PRINT_AS_IMAGE); ReportPrintSettingHistogram(PRINT_AS_IMAGE);
} }
bool fit_to_page = false;
if (is_pdf &&
settings.GetBoolean(printing::kSettingFitToPageEnabled, &fit_to_page) &&
fit_to_page) {
ReportPrintSettingHistogram(FIT_TO_PAGE);
}
int dpi_horizontal = 0;
int dpi_vertical = 0;
if (settings.GetInteger(printing::kSettingDpiHorizontal, &dpi_horizontal) &&
settings.GetInteger(printing::kSettingDpiVertical, &dpi_vertical) &&
dpi_horizontal > 0 && dpi_vertical > 0) {
bool is_default = false;
if (settings.GetBoolean(printing::kSettingDpiDefault, &is_default))
ReportPrintSettingHistogram(is_default ? DEFAULT_DPI : NON_DEFAULT_DPI);
}
} }
UserActionBuckets DetermineUserAction(const base::DictionaryValue& settings) { UserActionBuckets DetermineUserAction(const base::DictionaryValue& settings) {
...@@ -843,11 +864,10 @@ void PrintPreviewHandler::HandlePrint(const base::ListValue* args) { ...@@ -843,11 +864,10 @@ void PrintPreviewHandler::HandlePrint(const base::ListValue* args) {
} }
// After validating |settings|, record metrics. // After validating |settings|, record metrics.
ReportPrintSettingsStats(*settings); bool is_pdf = !print_preview_ui()->source_is_modifiable();
ReportPrintSettingsStats(*settings, is_pdf);
{ {
PrintDocumentTypeBuckets doc_type = PrintDocumentTypeBuckets doc_type = is_pdf ? PDF_DOCUMENT : HTML_DOCUMENT;
print_preview_ui()->source_is_modifiable() ? HTML_DOCUMENT
: PDF_DOCUMENT;
size_t average_page_size_in_kb = data->size() / page_count; size_t average_page_size_in_kb = data->size() / page_count;
average_page_size_in_kb /= 1024; average_page_size_in_kb /= 1024;
ReportPrintDocumentTypeAndSizeHistograms(doc_type, average_page_size_in_kb); ReportPrintDocumentTypeAndSizeHistograms(doc_type, average_page_size_in_kb);
......
...@@ -234,6 +234,7 @@ cr.define('model_test', function() { ...@@ -234,6 +234,7 @@ cr.define('model_test', function() {
pagesPerSheet: 1, pagesPerSheet: 1,
dpiHorizontal: 200, dpiHorizontal: 200,
dpiVertical: 200, dpiVertical: 200,
dpiDefault: false,
deviceName: 'FooDevice', deviceName: 'FooDevice',
fitToPageEnabled: false, fitToPageEnabled: false,
pageWidth: 612, pageWidth: 612,
...@@ -267,6 +268,7 @@ cr.define('model_test', function() { ...@@ -267,6 +268,7 @@ cr.define('model_test', function() {
pagesPerSheet: 1, pagesPerSheet: 1,
dpiHorizontal: 100, dpiHorizontal: 100,
dpiVertical: 100, dpiVertical: 100,
dpiDefault: false,
deviceName: 'FooDevice', deviceName: 'FooDevice',
fitToPageEnabled: true, fitToPageEnabled: true,
pageWidth: 612, pageWidth: 612,
......
...@@ -50,6 +50,9 @@ const char kSettingDeviceName[] = "deviceName"; ...@@ -50,6 +50,9 @@ const char kSettingDeviceName[] = "deviceName";
// Option to disable scaling. True if scaling is disabled else false. // Option to disable scaling. True if scaling is disabled else false.
const char kSettingDisableScaling[] = "disableScaling"; const char kSettingDisableScaling[] = "disableScaling";
// Default DPI
const char kSettingDpiDefault[] = "dpiDefault";
// Horizontal DPI // Horizontal DPI
const char kSettingDpiHorizontal[] = "dpiHorizontal"; const char kSettingDpiHorizontal[] = "dpiHorizontal";
......
...@@ -25,6 +25,7 @@ PRINTING_EXPORT extern const char kSettingContentWidth[]; ...@@ -25,6 +25,7 @@ PRINTING_EXPORT extern const char kSettingContentWidth[];
PRINTING_EXPORT extern const char kSettingCopies[]; PRINTING_EXPORT extern const char kSettingCopies[];
PRINTING_EXPORT extern const char kSettingDeviceName[]; PRINTING_EXPORT extern const char kSettingDeviceName[];
PRINTING_EXPORT extern const char kSettingDisableScaling[]; PRINTING_EXPORT extern const char kSettingDisableScaling[];
PRINTING_EXPORT extern const char kSettingDpiDefault[];
PRINTING_EXPORT extern const char kSettingDpiHorizontal[]; PRINTING_EXPORT extern const char kSettingDpiHorizontal[];
PRINTING_EXPORT extern const char kSettingDpiVertical[]; PRINTING_EXPORT extern const char kSettingDpiVertical[];
PRINTING_EXPORT extern const char kSettingDuplexMode[]; PRINTING_EXPORT extern const char kSettingDuplexMode[];
......
...@@ -39668,6 +39668,9 @@ Called by update_net_trust_anchors.py.--> ...@@ -39668,6 +39668,9 @@ Called by update_net_trust_anchors.py.-->
<int value="18" label="SCALING"/> <int value="18" label="SCALING"/>
<int value="19" label="PRINT_AS_IMAGE"/> <int value="19" label="PRINT_AS_IMAGE"/>
<int value="20" label="PAGES_PER_SHEET"/> <int value="20" label="PAGES_PER_SHEET"/>
<int value="21" label="FIT_TO_PAGE"/>
<int value="22" label="DEFAULT_DPI"/>
<int value="23" label="NON_DEFAULT_DPI"/>
</enum> </enum>
<enum name="PrivetNotificationsEvent"> <enum name="PrivetNotificationsEvent">
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment