diff options
-rw-r--r-- | chrome/browser/resources/print_preview/native_layer.js | 1 | ||||
-rw-r--r-- | chrome/browser/ui/webui/print_preview/print_preview_handler.cc | 32 | ||||
-rw-r--r-- | printing/print_job_constants.cc | 3 | ||||
-rw-r--r-- | printing/print_job_constants.h | 1 |
4 files changed, 14 insertions, 23 deletions
diff --git a/chrome/browser/resources/print_preview/native_layer.js b/chrome/browser/resources/print_preview/native_layer.js index 2404164..ff45714 100644 --- a/chrome/browser/resources/print_preview/native_layer.js +++ b/chrome/browser/resources/print_preview/native_layer.js @@ -217,6 +217,7 @@ cr.define('print_preview', function() { var ticket = { 'pageRange': printTicketStore.hasPageRangeCapability() ? printTicketStore.getPageNumberSet().getPageRanges() : [], + 'pageCount': printTicketStore.getPageNumberSet().size, 'landscape': printTicketStore.isLandscapeEnabled(), 'color': printTicketStore.isColorEnabled() ? NativeLayer.ColorMode_.COLOR : NativeLayer.ColorMode_.GRAY, diff --git a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc index 02b4248..49cf455 100644 --- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc +++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc @@ -186,27 +186,10 @@ DictionaryValue* GetSettingsDictionary(const ListValue* args) { return settings.release(); } -void ReportPageCount(const DictionaryValue& settings, - const std::string& printer_type) { - int count = 0; - const ListValue* page_range_array; - if (settings.GetList(printing::kSettingPageRange, &page_range_array)) { - for (size_t index = 0; index < page_range_array->GetSize(); ++index) { - const DictionaryValue* dict; - if (!page_range_array->GetDictionary(index, &dict)) - continue; - - printing::PageRange range; - if (!dict->GetInteger(printing::kSettingPageRangeFrom, &range.from) || - !dict->GetInteger(printing::kSettingPageRangeTo, &range.to)) { - continue; - } - count += (range.to - range.from) + 1; - } - } +void ReportPageCount(int page_count, const std::string& printer_type) { UMA_HISTOGRAM_COUNTS(base::StringPrintf("PrintPreview.PageCount.%s", printer_type.c_str()), - count); + page_count); } // Track the popularity of print settings and report the stats. @@ -454,8 +437,11 @@ void PrintPreviewHandler::HandlePrint(const ListValue* args) { is_cloud_printer = settings->HasKey(printing::kSettingCloudPrintId); } + int page_count = 0; + settings->GetInteger(printing::kSettingPreviewPageCount, &page_count); + if (print_to_pdf) { - ReportPageCount(*settings, "PrintToPDF"); + ReportPageCount(page_count, "PrintToPDF"); ReportUserActionHistogram(PRINT_TO_PDF); PrintToPdf(); return; @@ -469,14 +455,14 @@ void PrintPreviewHandler::HandlePrint(const ListValue* args) { } if (is_cloud_printer) { - ReportPageCount(*settings, "PrintToCloudPrint"); + ReportPageCount(page_count, "PrintToCloudPrint"); ReportUserActionHistogram(PRINT_WITH_CLOUD_PRINT); SendCloudPrintJob(data); } else if (is_cloud_dialog) { - ReportPageCount(*settings, "PrintToCloudPrintWebDialog"); + ReportPageCount(page_count, "PrintToCloudPrintWebDialog"); PrintWithCloudPrintDialog(data, title); } else { - ReportPageCount(*settings, "PrintToPrinter"); + ReportPageCount(page_count, "PrintToPrinter"); ReportUserActionHistogram(PRINT_TO_PRINTER); ReportPrintSettingsStats(*settings); diff --git a/printing/print_job_constants.cc b/printing/print_job_constants.cc index cd0aaae..f659aed 100644 --- a/printing/print_job_constants.cc +++ b/printing/print_job_constants.cc @@ -93,6 +93,9 @@ const char kSettingMarginsCustom[] = "marginsCustom"; // MarginType enum. const char kSettingMarginsType[] = "marginsType"; +// Number of pages to print. +const char kSettingPreviewPageCount[] = "pageCount"; + // A page range. const char kSettingPageRange[] = "pageRange"; diff --git a/printing/print_job_constants.h b/printing/print_job_constants.h index 065f3ff..b5b3130 100644 --- a/printing/print_job_constants.h +++ b/printing/print_job_constants.h @@ -37,6 +37,7 @@ PRINTING_EXPORT extern const char kSettingMarginRight[]; PRINTING_EXPORT extern const char kSettingMarginTop[]; PRINTING_EXPORT extern const char kSettingMarginsCustom[]; PRINTING_EXPORT extern const char kSettingMarginsType[]; +PRINTING_EXPORT extern const char kSettingPreviewPageCount[]; PRINTING_EXPORT extern const char kSettingPageRange[]; PRINTING_EXPORT extern const char kSettingPageRangeFrom[]; PRINTING_EXPORT extern const char kSettingPageRangeTo[]; |