Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(483)

Side by Side Diff: chrome/browser/ui/webui/print_preview/print_preview_handler.cc

Issue 15716006: Fixed reporting of PrintPreview.PageCount.PrintToCloudPrintWebDialog. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/print_preview/print_preview_handler.h" 5 #include "chrome/browser/ui/webui/print_preview/print_preview_handler.h"
6 6
7 #include <ctype.h> 7 #include <ctype.h>
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 base::Unretained(this))); 393 base::Unretained(this)));
394 web_ui()->RegisterMessageCallback("saveAppState", 394 web_ui()->RegisterMessageCallback("saveAppState",
395 base::Bind(&PrintPreviewHandler::HandleSaveAppState, 395 base::Bind(&PrintPreviewHandler::HandleSaveAppState,
396 base::Unretained(this))); 396 base::Unretained(this)));
397 web_ui()->RegisterMessageCallback("getInitialSettings", 397 web_ui()->RegisterMessageCallback("getInitialSettings",
398 base::Bind(&PrintPreviewHandler::HandleGetInitialSettings, 398 base::Bind(&PrintPreviewHandler::HandleGetInitialSettings,
399 base::Unretained(this))); 399 base::Unretained(this)));
400 web_ui()->RegisterMessageCallback("reportUiEvent", 400 web_ui()->RegisterMessageCallback("reportUiEvent",
401 base::Bind(&PrintPreviewHandler::HandleReportUiEvent, 401 base::Bind(&PrintPreviewHandler::HandleReportUiEvent,
402 base::Unretained(this))); 402 base::Unretained(this)));
403 web_ui()->RegisterMessageCallback("printWithCloudPrint", 403 web_ui()->RegisterMessageCallback("printWithCloudPrintDialog",
404 base::Bind(&PrintPreviewHandler::HandlePrintWithCloudPrint, 404 base::Bind(&PrintPreviewHandler::HandlePrintWithCloudPrintDialog,
405 base::Unretained(this))); 405 base::Unretained(this)));
406 web_ui()->RegisterMessageCallback("forceOpenNewTab", 406 web_ui()->RegisterMessageCallback("forceOpenNewTab",
407 base::Bind(&PrintPreviewHandler::HandleForceOpenNewTab, 407 base::Bind(&PrintPreviewHandler::HandleForceOpenNewTab,
408 base::Unretained(this))); 408 base::Unretained(this)));
409 } 409 }
410 410
411 WebContents* PrintPreviewHandler::preview_web_contents() const { 411 WebContents* PrintPreviewHandler::preview_web_contents() const {
412 return web_ui()->GetWebContents(); 412 return web_ui()->GetWebContents();
413 } 413 }
414 414
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 511
512 scoped_ptr<DictionaryValue> settings(GetSettingsDictionary(args)); 512 scoped_ptr<DictionaryValue> settings(GetSettingsDictionary(args));
513 if (!settings.get()) 513 if (!settings.get())
514 return; 514 return;
515 515
516 // Never try to add headers/footers here. It's already in the generated PDF. 516 // Never try to add headers/footers here. It's already in the generated PDF.
517 settings->SetBoolean(printing::kSettingHeaderFooterEnabled, false); 517 settings->SetBoolean(printing::kSettingHeaderFooterEnabled, false);
518 518
519 bool print_to_pdf = false; 519 bool print_to_pdf = false;
520 bool is_cloud_printer = false; 520 bool is_cloud_printer = false;
521 bool is_cloud_dialog = false;
522 521
523 bool open_pdf_in_preview = false; 522 bool open_pdf_in_preview = false;
524 #if defined(OS_MACOSX) 523 #if defined(OS_MACOSX)
525 open_pdf_in_preview = settings->HasKey(printing::kSettingOpenPDFInPreview); 524 open_pdf_in_preview = settings->HasKey(printing::kSettingOpenPDFInPreview);
526 #endif 525 #endif
527 526
528 if (!open_pdf_in_preview) { 527 if (!open_pdf_in_preview) {
529 settings->GetBoolean(printing::kSettingPrintToPDF, &print_to_pdf); 528 settings->GetBoolean(printing::kSettingPrintToPDF, &print_to_pdf);
530 settings->GetBoolean(printing::kSettingCloudPrintDialog, &is_cloud_dialog);
531 is_cloud_printer = settings->HasKey(printing::kSettingCloudPrintId); 529 is_cloud_printer = settings->HasKey(printing::kSettingCloudPrintId);
532 } 530 }
533 531
534 int page_count = 0; 532 int page_count = 0;
535 settings->GetInteger(printing::kSettingPreviewPageCount, &page_count); 533 settings->GetInteger(printing::kSettingPreviewPageCount, &page_count);
536 534
537 if (print_to_pdf) { 535 if (print_to_pdf) {
538 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToPDF", page_count); 536 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToPDF", page_count);
539 ReportUserActionHistogram(PRINT_TO_PDF); 537 ReportUserActionHistogram(PRINT_TO_PDF);
540 PrintToPdf(); 538 PrintToPdf();
541 return; 539 return;
542 } 540 }
543 541
544 scoped_refptr<base::RefCountedBytes> data; 542 scoped_refptr<base::RefCountedBytes> data;
545 string16 title; 543 string16 title;
546 if (!GetPreviewDataAndTitle(&data, &title)) { 544 if (!GetPreviewDataAndTitle(&data, &title)) {
547 // Nothing to print, no preview available. 545 // Nothing to print, no preview available.
548 return; 546 return;
549 } 547 }
550 548
551 if (is_cloud_printer) { 549 if (is_cloud_printer) {
552 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToCloudPrint", 550 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToCloudPrint",
553 page_count); 551 page_count);
554 ReportUserActionHistogram(PRINT_WITH_CLOUD_PRINT); 552 ReportUserActionHistogram(PRINT_WITH_CLOUD_PRINT);
555 SendCloudPrintJob(data); 553 SendCloudPrintJob(data);
556 } else if (is_cloud_dialog) {
557 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToCloudPrintWebDialog",
558 page_count);
559 PrintWithCloudPrintDialog(data, title);
560 } else { 554 } else {
561 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToPrinter", page_count); 555 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToPrinter", page_count);
562 ReportUserActionHistogram(PRINT_TO_PRINTER); 556 ReportUserActionHistogram(PRINT_TO_PRINTER);
563 ReportPrintSettingsStats(*settings); 557 ReportPrintSettingsStats(*settings);
564 558
565 // This tries to activate the initiator tab as well, so do not clear the 559 // This tries to activate the initiator tab as well, so do not clear the
566 // association with the initiator tab yet. 560 // association with the initiator tab yet.
567 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>( 561 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(
568 web_ui()->GetController()); 562 web_ui()->GetController());
569 print_preview_ui->OnHidePreviewDialog(); 563 print_preview_ui->OnHidePreviewDialog();
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
691 685
692 void PrintPreviewHandler::HandleGetAccessToken(const base::ListValue* args) { 686 void PrintPreviewHandler::HandleGetAccessToken(const base::ListValue* args) {
693 std::string type; 687 std::string type;
694 if (!args->GetString(0, &type)) 688 if (!args->GetString(0, &type))
695 return; 689 return;
696 if (!token_service_) 690 if (!token_service_)
697 token_service_.reset(new AccessTokenService(this)); 691 token_service_.reset(new AccessTokenService(this));
698 token_service_->RequestToken(type); 692 token_service_->RequestToken(type);
699 } 693 }
700 694
701 void PrintPreviewHandler::PrintWithCloudPrintDialog( 695 void PrintPreviewHandler::PrintWithCloudPrintDialog() {
702 const base::RefCountedBytes* data,
703 const string16& title) {
704 // Record the number of times the user asks to print via cloud print 696 // Record the number of times the user asks to print via cloud print
705 // instead of the print preview dialog. 697 // instead of the print preview dialog.
706 ReportStats(); 698 ReportStats();
707 699
700 scoped_refptr<base::RefCountedBytes> data;
701 string16 title;
702 if (!GetPreviewDataAndTitle(&data, &title)) {
703 // Nothing to print, no preview available.
704 return;
705 }
706
708 gfx::NativeWindow modal_parent = platform_util::GetTopLevel( 707 gfx::NativeWindow modal_parent = platform_util::GetTopLevel(
709 preview_web_contents()->GetView()->GetNativeView()); 708 preview_web_contents()->GetView()->GetNativeView());
710 print_dialog_cloud::CreatePrintDialogForBytes( 709 print_dialog_cloud::CreatePrintDialogForBytes(
711 preview_web_contents()->GetBrowserContext(), 710 preview_web_contents()->GetBrowserContext(),
712 modal_parent, 711 modal_parent,
713 data, 712 data,
714 title, 713 title,
715 string16(), 714 string16(),
716 std::string("application/pdf")); 715 std::string("application/pdf"));
717 716
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>( 751 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(
753 web_ui()->GetController()); 752 web_ui()->GetController());
754 print_preview_ui->OnCancelPendingPreviewRequest(); 753 print_preview_ui->OnCancelPendingPreviewRequest();
755 } 754 }
756 755
757 void PrintPreviewHandler::HandleManagePrinters(const ListValue* /*args*/) { 756 void PrintPreviewHandler::HandleManagePrinters(const ListValue* /*args*/) {
758 ++manage_printers_dialog_request_count_; 757 ++manage_printers_dialog_request_count_;
759 printing::PrinterManagerDialog::ShowPrinterManagerDialog(); 758 printing::PrinterManagerDialog::ShowPrinterManagerDialog();
760 } 759 }
761 760
762 void PrintPreviewHandler::HandlePrintWithCloudPrint( 761 void PrintPreviewHandler::HandlePrintWithCloudPrintDialog(
763 const base::ListValue* /*args*/) { 762 const base::ListValue* args) {
764 scoped_refptr<base::RefCountedBytes> data; 763 int page_count = 0;
765 string16 title; 764 if (!args || !args->GetInteger(0, &page_count))
766 if (!GetPreviewDataAndTitle(&data, &title)) {
767 // Nothing to print, no preview available.
768 return; 765 return;
769 } 766 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToCloudPrintWebDialog",
770 PrintWithCloudPrintDialog(data, title); 767 page_count);
768
769 PrintWithCloudPrintDialog();
771 } 770 }
772 771
773 void PrintPreviewHandler::HandleClosePreviewDialog(const ListValue* /*args*/) { 772 void PrintPreviewHandler::HandleClosePreviewDialog(const ListValue* /*args*/) {
774 ReportStats(); 773 ReportStats();
775 ReportUserActionHistogram(CANCEL); 774 ReportUserActionHistogram(CANCEL);
776 775
777 // Record the number of times the user requests to regenerate preview data 776 // Record the number of times the user requests to regenerate preview data
778 // before cancelling. 777 // before cancelling.
779 UMA_HISTOGRAM_COUNTS("PrintPreview.RegeneratePreviewRequest.BeforeCancel", 778 UMA_HISTOGRAM_COUNTS("PrintPreview.RegeneratePreviewRequest.BeforeCancel",
780 regenerate_preview_request_count_); 779 regenerate_preview_request_count_);
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
1084 // Nothing to print, no preview available. 1083 // Nothing to print, no preview available.
1085 return false; 1084 return false;
1086 } 1085 }
1087 DCHECK(tmp_data->size() && tmp_data->front()); 1086 DCHECK(tmp_data->size() && tmp_data->front());
1088 1087
1089 *data = tmp_data; 1088 *data = tmp_data;
1090 *title = print_preview_ui->initiator_tab_title(); 1089 *title = print_preview_ui->initiator_tab_title();
1091 return true; 1090 return true;
1092 } 1091 }
1093 1092
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698