Chromium Code Reviews| 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..202db2a827dabe6c0264b0fd4c767c721cc505f9 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 { |
| @@ -562,6 +580,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 +627,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 +657,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 +742,7 @@ void PrintPreviewHandler::SendCloudPrintEnabled() { |
| void PrintPreviewHandler::SendCloudPrintJob(const DictionaryValue& settings, |
| std::string print_ticket) { |
| + ReportUserActionHistogram(PRINT_WITH_CLOUD_PRINT); |
|
Scott Byer
2012/05/16 23:24:06
Isn't this redundant with HandlePrintWithCloudPrin
|
| scoped_refptr<base::RefCountedBytes> data; |
| PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>( |
| web_ui()->GetController()); |