| Index: chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| 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 494c6dce253860f9a21b123fd566f88399d4e599..49ac9c0b88ca857ed15ed2018d024fcf5148f0bc 100644
|
| --- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| +++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| @@ -95,6 +95,15 @@ enum PrintSettingsBuckets {
|
| PRINT_SETTINGS_BUCKET_BOUNDARY
|
| };
|
|
|
| +enum PrintDestinationBuckets {
|
| + DESTINATION_SHOWN,
|
| + DESTINATION_CLOSED_CHANGED,
|
| + DESTINATION_CLOSED_UNCHANGED,
|
| + SIGNIN_PROMPT,
|
| + SIGNIN_TRIGGERED,
|
| + PRINT_DESTINATION_BUCKET_BOUNDARY
|
| +};
|
| +
|
| void ReportUserActionHistogram(enum UserActionBuckets event) {
|
| UMA_HISTOGRAM_ENUMERATION("PrintPreview.UserAction", event,
|
| USERACTION_BUCKET_BOUNDARY);
|
| @@ -105,6 +114,11 @@ void ReportPrintSettingHistogram(enum PrintSettingsBuckets setting) {
|
| PRINT_SETTINGS_BUCKET_BOUNDARY);
|
| }
|
|
|
| +void ReportPrintDestinationHistogram(enum PrintDestinationBuckets event) {
|
| + UMA_HISTOGRAM_ENUMERATION("PrintPreview.DestinationAction", event,
|
| + PRINT_DESTINATION_BUCKET_BOUNDARY);
|
| +}
|
| +
|
| // Name of a dictionary fielad holdong cloud print related data;
|
| const char kCloudPrintData[] = "cloudPrintData";
|
| // Name of a dictionary field holding the initiator tab title.
|
| @@ -210,6 +224,7 @@ PrintPreviewHandler::PrintPreviewHandler()
|
| : print_backend_(printing::PrintBackend::CreateInstance(NULL)),
|
| regenerate_preview_request_count_(0),
|
| manage_printers_dialog_request_count_(0),
|
| + manage_cloud_printers_dialog_request_count_(0),
|
| reported_failed_preview_(false),
|
| has_logged_printers_count_(false) {
|
| ReportUserActionHistogram(PREVIEW_STARTED);
|
| @@ -260,6 +275,9 @@ void PrintPreviewHandler::RegisterMessages() {
|
| web_ui()->RegisterMessageCallback("getInitialSettings",
|
| base::Bind(&PrintPreviewHandler::HandleGetInitialSettings,
|
| base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback("reportDestinationEvent",
|
| + base::Bind(&PrintPreviewHandler::HandleReportDestinationEvent,
|
| + base::Unretained(this)));
|
| }
|
|
|
| TabContentsWrapper* PrintPreviewHandler::preview_tab_wrapper() const {
|
| @@ -536,7 +554,6 @@ void PrintPreviewHandler::HandlePrintWithCloudPrint() {
|
| // Record the number of times the user asks to print via cloud print
|
| // instead of the print preview dialog.
|
| ReportStats();
|
| - ReportUserActionHistogram(PRINT_WITH_CLOUD_PRINT);
|
|
|
| PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(
|
| web_ui()->GetController());
|
| @@ -562,6 +579,7 @@ void PrintPreviewHandler::HandlePrintWithCloudPrint() {
|
| }
|
|
|
| void PrintPreviewHandler::HandleManageCloudPrint(const ListValue* /*args*/) {
|
| + ++manage_cloud_printers_dialog_request_count_;
|
| Browser* browser = BrowserList::GetLastActive();
|
| if (browser != NULL)
|
| browser->OpenURL(OpenURLParams(
|
| @@ -608,6 +626,8 @@ void PrintPreviewHandler::HandleClosePreviewTab(const ListValue* /*args*/) {
|
| void PrintPreviewHandler::ReportStats() {
|
| UMA_HISTOGRAM_COUNTS("PrintPreview.ManagePrinters",
|
| manage_printers_dialog_request_count_);
|
| + UMA_HISTOGRAM_COUNTS("PrintPreview.ManageCloudPrinters",
|
| + manage_cloud_printers_dialog_request_count_);
|
| }
|
|
|
| void PrintPreviewHandler::GetNumberFormatAndMeasurementSystem(
|
| @@ -636,6 +656,18 @@ void PrintPreviewHandler::HandleGetInitialSettings(const ListValue* /*args*/) {
|
| base::Bind(&PrintSystemTaskProxy::GetDefaultPrinter, task.get()));
|
| }
|
|
|
| +void PrintPreviewHandler::HandleReportDestinationEvent(const ListValue* args) {
|
| + int event_number;
|
| + bool ret = args->GetInteger(0, &event_number);
|
| + if (!ret)
|
| + return;
|
| + enum PrintDestinationBuckets event =
|
| + static_cast<enum PrintDestinationBuckets>(event_number);
|
| + if (event >= PRINT_DESTINATION_BUCKET_BOUNDARY)
|
| + return;
|
| + ReportPrintDestinationHistogram(event);
|
| +}
|
| +
|
| void PrintPreviewHandler::SendInitialSettings(
|
| const std::string& default_printer,
|
| const std::string& cloud_print_data) {
|
| @@ -709,6 +741,7 @@ void PrintPreviewHandler::SendCloudPrintEnabled() {
|
|
|
| void PrintPreviewHandler::SendCloudPrintJob(const DictionaryValue& settings,
|
| std::string print_ticket) {
|
| + ReportUserActionHistogram(PRINT_WITH_CLOUD_PRINT);
|
| scoped_refptr<base::RefCountedBytes> data;
|
| PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(
|
| web_ui()->GetController());
|
|
|