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({
pagesPerSheet: this.getSettingValue('pagesPerSheet'),
dpiHorizontal: (dpi && 'horizontal_dpi' in dpi) ? dpi.horizontal_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,
fitToPageEnabled: this.getSettingValue('fitToPage'),
pageWidth: this.documentInfo.pageSize.width,
......
......@@ -634,6 +634,9 @@ cr.define('print_preview', function() {
dpiVertical: 'vertical_dpi' in printTicketStore.dpi.getValue() ?
printTicketStore.dpi.getValue().vertical_dpi :
0,
dpiDefault: 'is_default' in printTicketStore.dpi.getValue() ?
printTicketStore.dpi.getValue().is_default :
false,
deviceName: destination.id,
fitToPageEnabled: printTicketStore.fitToPage.getValue(),
pageWidth: documentInfo.pageSize.width,
......
......@@ -139,6 +139,9 @@ enum PrintSettingsBuckets {
SCALING,
PRINT_AS_IMAGE,
PAGES_PER_SHEET,
FIT_TO_PAGE,
DEFAULT_DPI,
NON_DEFAULT_DPI,
PRINT_SETTINGS_BUCKET_BOUNDARY
};
......@@ -291,7 +294,8 @@ std::unique_ptr<base::DictionaryValue> GetSettingsDictionary(
}
// 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);
const base::ListValue* page_range_array = NULL;
......@@ -382,6 +386,23 @@ void ReportPrintSettingsStats(const base::DictionaryValue& settings) {
&rasterize) && rasterize) {
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) {
......@@ -843,11 +864,10 @@ void PrintPreviewHandler::HandlePrint(const base::ListValue* args) {
}
// After validating |settings|, record metrics.
ReportPrintSettingsStats(*settings);
bool is_pdf = !print_preview_ui()->source_is_modifiable();
ReportPrintSettingsStats(*settings, is_pdf);
{
PrintDocumentTypeBuckets doc_type =
print_preview_ui()->source_is_modifiable() ? HTML_DOCUMENT
: PDF_DOCUMENT;
PrintDocumentTypeBuckets doc_type = is_pdf ? PDF_DOCUMENT : HTML_DOCUMENT;
size_t average_page_size_in_kb = data->size() / page_count;
average_page_size_in_kb /= 1024;
ReportPrintDocumentTypeAndSizeHistograms(doc_type, average_page_size_in_kb);
......
......@@ -234,6 +234,7 @@ cr.define('model_test', function() {
pagesPerSheet: 1,
dpiHorizontal: 200,
dpiVertical: 200,
dpiDefault: false,
deviceName: 'FooDevice',
fitToPageEnabled: false,
pageWidth: 612,
......@@ -267,6 +268,7 @@ cr.define('model_test', function() {
pagesPerSheet: 1,
dpiHorizontal: 100,
dpiVertical: 100,
dpiDefault: false,
deviceName: 'FooDevice',
fitToPageEnabled: true,
pageWidth: 612,
......
......@@ -50,6 +50,9 @@ const char kSettingDeviceName[] = "deviceName";
// Option to disable scaling. True if scaling is disabled else false.
const char kSettingDisableScaling[] = "disableScaling";
// Default DPI
const char kSettingDpiDefault[] = "dpiDefault";
// Horizontal DPI
const char kSettingDpiHorizontal[] = "dpiHorizontal";
......
......@@ -25,6 +25,7 @@ PRINTING_EXPORT extern const char kSettingContentWidth[];
PRINTING_EXPORT extern const char kSettingCopies[];
PRINTING_EXPORT extern const char kSettingDeviceName[];
PRINTING_EXPORT extern const char kSettingDisableScaling[];
PRINTING_EXPORT extern const char kSettingDpiDefault[];
PRINTING_EXPORT extern const char kSettingDpiHorizontal[];
PRINTING_EXPORT extern const char kSettingDpiVertical[];
PRINTING_EXPORT extern const char kSettingDuplexMode[];
......
......@@ -39668,6 +39668,9 @@ Called by update_net_trust_anchors.py.-->
<int value="18" label="SCALING"/>
<int value="19" label="PRINT_AS_IMAGE"/>
<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 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