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

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

Issue 7818010: Print Preview: Populating print preview tab title as soon as it is known. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing unused parameters style Created 9 years, 3 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_handler.h" 5 #include "chrome/browser/ui/webui/print_preview_handler.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #if !defined(OS_CHROMEOS) 10 #if !defined(OS_CHROMEOS)
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after
461 web_ui_->RegisterMessageCallback("reloadCrashedInitiatorTab", 461 web_ui_->RegisterMessageCallback("reloadCrashedInitiatorTab",
462 NewCallback(this, &PrintPreviewHandler::HandleReloadCrashedInitiatorTab)); 462 NewCallback(this, &PrintPreviewHandler::HandleReloadCrashedInitiatorTab));
463 web_ui_->RegisterMessageCallback("closePrintPreviewTab", 463 web_ui_->RegisterMessageCallback("closePrintPreviewTab",
464 NewCallback(this, &PrintPreviewHandler::HandleClosePreviewTab)); 464 NewCallback(this, &PrintPreviewHandler::HandleClosePreviewTab));
465 web_ui_->RegisterMessageCallback("hidePreview", 465 web_ui_->RegisterMessageCallback("hidePreview",
466 NewCallback(this, &PrintPreviewHandler::HandleHidePreview)); 466 NewCallback(this, &PrintPreviewHandler::HandleHidePreview));
467 web_ui_->RegisterMessageCallback("cancelPendingPrintRequest", 467 web_ui_->RegisterMessageCallback("cancelPendingPrintRequest",
468 NewCallback(this, &PrintPreviewHandler::HandleCancelPendingPrintRequest)); 468 NewCallback(this, &PrintPreviewHandler::HandleCancelPendingPrintRequest));
469 web_ui_->RegisterMessageCallback("saveLastPrinter", 469 web_ui_->RegisterMessageCallback("saveLastPrinter",
470 NewCallback(this, &PrintPreviewHandler::HandleSaveLastPrinter)); 470 NewCallback(this, &PrintPreviewHandler::HandleSaveLastPrinter));
471 web_ui_->RegisterMessageCallback("getInitiatorTabTitle",
472 NewCallback(this, &PrintPreviewHandler::HandleGetInitiatorTabTitle));
471 } 473 }
472 474
473 TabContentsWrapper* PrintPreviewHandler::preview_tab_wrapper() const { 475 TabContentsWrapper* PrintPreviewHandler::preview_tab_wrapper() const {
474 return TabContentsWrapper::GetCurrentWrapperForContents(preview_tab()); 476 return TabContentsWrapper::GetCurrentWrapperForContents(preview_tab());
475 } 477 }
476 TabContents* PrintPreviewHandler::preview_tab() const { 478 TabContents* PrintPreviewHandler::preview_tab() const {
477 return web_ui_->tab_contents(); 479 return web_ui_->tab_contents();
478 } 480 }
479 481
480 void PrintPreviewHandler::HandleGetDefaultPrinter(const ListValue*) { 482 void PrintPreviewHandler::HandleGetDefaultPrinter(const ListValue* /*args*/) {
481 scoped_refptr<PrintSystemTaskProxy> task = 483 scoped_refptr<PrintSystemTaskProxy> task =
482 new PrintSystemTaskProxy(AsWeakPtr(), 484 new PrintSystemTaskProxy(AsWeakPtr(),
483 print_backend_.get(), 485 print_backend_.get(),
484 has_logged_printers_count_); 486 has_logged_printers_count_);
485 BrowserThread::PostTask( 487 BrowserThread::PostTask(
486 BrowserThread::FILE, FROM_HERE, 488 BrowserThread::FILE, FROM_HERE,
487 NewRunnableMethod(task.get(), 489 NewRunnableMethod(task.get(),
488 &PrintSystemTaskProxy::GetDefaultPrinter)); 490 &PrintSystemTaskProxy::GetDefaultPrinter));
489 } 491 }
490 492
491 void PrintPreviewHandler::HandleGetPrinters(const ListValue*) { 493 void PrintPreviewHandler::HandleGetPrinters(const ListValue* /*args*/) {
492 scoped_refptr<PrintSystemTaskProxy> task = 494 scoped_refptr<PrintSystemTaskProxy> task =
493 new PrintSystemTaskProxy(AsWeakPtr(), 495 new PrintSystemTaskProxy(AsWeakPtr(),
494 print_backend_.get(), 496 print_backend_.get(),
495 has_logged_printers_count_); 497 has_logged_printers_count_);
496 has_logged_printers_count_ = true; 498 has_logged_printers_count_ = true;
497 499
498 BrowserThread::PostTask( 500 BrowserThread::PostTask(
499 BrowserThread::FILE, FROM_HERE, 501 BrowserThread::FILE, FROM_HERE,
500 NewRunnableMethod(task.get(), 502 NewRunnableMethod(task.get(),
501 &PrintSystemTaskProxy::EnumeratePrinters)); 503 &PrintSystemTaskProxy::EnumeratePrinters));
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 ClearInitiatorTabDetails(); 642 ClearInitiatorTabDetails();
641 643
642 // The PDF being printed contains only the pages that the user selected, 644 // The PDF being printed contains only the pages that the user selected,
643 // so ignore the page range and print all pages. 645 // so ignore the page range and print all pages.
644 settings->Remove(printing::kSettingPageRange, NULL); 646 settings->Remove(printing::kSettingPageRange, NULL);
645 RenderViewHost* rvh = web_ui_->tab_contents()->render_view_host(); 647 RenderViewHost* rvh = web_ui_->tab_contents()->render_view_host();
646 rvh->Send(new PrintMsg_PrintForPrintPreview(rvh->routing_id(), *settings)); 648 rvh->Send(new PrintMsg_PrintForPrintPreview(rvh->routing_id(), *settings));
647 } 649 }
648 } 650 }
649 651
650 void PrintPreviewHandler::HandleHidePreview(const ListValue*) { 652 void PrintPreviewHandler::HandleHidePreview(const ListValue* /*args*/) {
651 HidePreviewTab(); 653 HidePreviewTab();
652 } 654 }
653 655
654 void PrintPreviewHandler::HandleCancelPendingPrintRequest(const ListValue*) { 656 void PrintPreviewHandler::HandleCancelPendingPrintRequest(
657 const ListValue* /*args*/) {
655 TabContentsWrapper* initiator_tab = GetInitiatorTab(); 658 TabContentsWrapper* initiator_tab = GetInitiatorTab();
656 if (initiator_tab) { 659 if (initiator_tab) {
657 ClearInitiatorTabDetails(); 660 ClearInitiatorTabDetails();
658 } else { 661 } else {
659 // Initiator tab does not exists. Get the wrapper contents of current tab. 662 // Initiator tab does not exists. Get the wrapper contents of current tab.
660 Browser* browser = BrowserList::GetLastActive(); 663 Browser* browser = BrowserList::GetLastActive();
661 if (browser) 664 if (browser)
662 initiator_tab = browser->GetSelectedTabContentsWrapper(); 665 initiator_tab = browser->GetSelectedTabContentsWrapper();
663 } 666 }
664 667
(...skipping 27 matching lines...) Expand all
692 print_backend_.get(), 695 print_backend_.get(),
693 has_logged_printers_count_); 696 has_logged_printers_count_);
694 697
695 BrowserThread::PostTask( 698 BrowserThread::PostTask(
696 BrowserThread::FILE, FROM_HERE, 699 BrowserThread::FILE, FROM_HERE,
697 NewRunnableMethod(task.get(), 700 NewRunnableMethod(task.get(),
698 &PrintSystemTaskProxy::GetPrinterCapabilities, 701 &PrintSystemTaskProxy::GetPrinterCapabilities,
699 printer_name)); 702 printer_name));
700 } 703 }
701 704
702 void PrintPreviewHandler::HandleSignin(const ListValue*) { 705 void PrintPreviewHandler::HandleSignin(const ListValue* /*args*/) {
703 cloud_print_signin_dialog::CreateCloudPrintSigninDialog(preview_tab()); 706 cloud_print_signin_dialog::CreateCloudPrintSigninDialog(preview_tab());
704 } 707 }
705 708
706 void PrintPreviewHandler::HandleManageCloudPrint(const ListValue*) { 709 void PrintPreviewHandler::HandleManageCloudPrint(const ListValue* /*args*/) {
707 Browser* browser = BrowserList::GetLastActive(); 710 Browser* browser = BrowserList::GetLastActive();
708 browser->OpenURL(CloudPrintURL(browser->profile()). 711 browser->OpenURL(CloudPrintURL(browser->profile()).
709 GetCloudPrintServiceManageURL(), 712 GetCloudPrintServiceManageURL(),
710 GURL(), 713 GURL(),
711 NEW_FOREGROUND_TAB, 714 NEW_FOREGROUND_TAB,
712 PageTransition::LINK); 715 PageTransition::LINK);
713 } 716 }
714 717
715 void PrintPreviewHandler::HandleShowSystemDialog(const ListValue*) { 718 void PrintPreviewHandler::HandleShowSystemDialog(const ListValue* /*args*/) {
716 ReportStats(); 719 ReportStats();
717 ReportUserActionHistogram(FALLBACK_TO_ADVANCED_SETTINGS_DIALOG); 720 ReportUserActionHistogram(FALLBACK_TO_ADVANCED_SETTINGS_DIALOG);
718 721
719 TabContentsWrapper* initiator_tab = GetInitiatorTab(); 722 TabContentsWrapper* initiator_tab = GetInitiatorTab();
720 if (!initiator_tab) 723 if (!initiator_tab)
721 return; 724 return;
722 725
723 printing::PrintViewManager* manager = initiator_tab->print_view_manager(); 726 printing::PrintViewManager* manager = initiator_tab->print_view_manager();
724 manager->set_observer(this); 727 manager->set_observer(this);
725 manager->PrintForSystemDialogNow(); 728 manager->PrintForSystemDialogNow();
726 729
727 // Cancel the pending preview request if exists. 730 // Cancel the pending preview request if exists.
728 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_); 731 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_);
729 print_preview_ui->OnCancelPendingPreviewRequest(); 732 print_preview_ui->OnCancelPendingPreviewRequest();
730 } 733 }
731 734
732 void PrintPreviewHandler::HandleManagePrinters(const ListValue*) { 735 void PrintPreviewHandler::HandleManagePrinters(const ListValue* /*args*/) {
733 ++manage_printers_dialog_request_count_; 736 ++manage_printers_dialog_request_count_;
734 printing::PrinterManagerDialog::ShowPrinterManagerDialog(); 737 printing::PrinterManagerDialog::ShowPrinterManagerDialog();
735 } 738 }
736 739
737 void PrintPreviewHandler::HandleReloadCrashedInitiatorTab(const ListValue*) { 740 void PrintPreviewHandler::HandleReloadCrashedInitiatorTab(
741 const ListValue* /*args*/) {
738 ReportStats(); 742 ReportStats();
739 ReportUserActionHistogram(INITIATOR_TAB_CRASHED); 743 ReportUserActionHistogram(INITIATOR_TAB_CRASHED);
740 744
741 TabContentsWrapper* initiator_tab = GetInitiatorTab(); 745 TabContentsWrapper* initiator_tab = GetInitiatorTab();
742 if (!initiator_tab) 746 if (!initiator_tab)
743 return; 747 return;
744 748
745 TabContents* contents = initiator_tab->tab_contents(); 749 TabContents* contents = initiator_tab->tab_contents();
746 contents->OpenURL(contents->GetURL(), GURL(), CURRENT_TAB, 750 contents->OpenURL(contents->GetURL(), GURL(), CURRENT_TAB,
747 PageTransition::RELOAD); 751 PageTransition::RELOAD);
748 ActivateInitiatorTabAndClosePreviewTab(); 752 ActivateInitiatorTabAndClosePreviewTab();
749 } 753 }
750 754
751 void PrintPreviewHandler::HandleClosePreviewTab(const ListValue*) { 755 void PrintPreviewHandler::HandleClosePreviewTab(const ListValue* /*args*/) {
752 ReportStats(); 756 ReportStats();
753 ReportUserActionHistogram(CANCEL); 757 ReportUserActionHistogram(CANCEL);
754 758
755 // Record the number of times the user requests to regenerate preview data 759 // Record the number of times the user requests to regenerate preview data
756 // before cancelling. 760 // before cancelling.
757 UMA_HISTOGRAM_COUNTS("PrintPreview.RegeneratePreviewRequest.BeforeCancel", 761 UMA_HISTOGRAM_COUNTS("PrintPreview.RegeneratePreviewRequest.BeforeCancel",
758 regenerate_preview_request_count_); 762 regenerate_preview_request_count_);
759 763
760 ActivateInitiatorTabAndClosePreviewTab(); 764 ActivateInitiatorTabAndClosePreviewTab();
761 } 765 }
762 766
763 void PrintPreviewHandler::ReportStats() { 767 void PrintPreviewHandler::ReportStats() {
764 UMA_HISTOGRAM_COUNTS("PrintPreview.ManagePrinters", 768 UMA_HISTOGRAM_COUNTS("PrintPreview.ManagePrinters",
765 manage_printers_dialog_request_count_); 769 manage_printers_dialog_request_count_);
766 } 770 }
767 771
772 void PrintPreviewHandler::HandleGetInitiatorTabTitle(
773 const ListValue* /*args*/) {
774 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_);
775 print_preview_ui->SendInitiatorTabTitle();
776 }
777
768 void PrintPreviewHandler::ActivateInitiatorTabAndClosePreviewTab() { 778 void PrintPreviewHandler::ActivateInitiatorTabAndClosePreviewTab() {
769 TabContentsWrapper* initiator_tab = GetInitiatorTab(); 779 TabContentsWrapper* initiator_tab = GetInitiatorTab();
770 if (initiator_tab) { 780 if (initiator_tab) {
771 static_cast<RenderViewHostDelegate*>( 781 static_cast<RenderViewHostDelegate*>(
772 initiator_tab->tab_contents())->Activate(); 782 initiator_tab->tab_contents())->Activate();
773 } 783 }
774 ClosePrintPreviewTab(); 784 ClosePrintPreviewTab();
775 } 785 }
776 786
777 void PrintPreviewHandler::SendPrinterCapabilities( 787 void PrintPreviewHandler::SendPrinterCapabilities(
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
988 return; 998 return;
989 999
990 // We no longer require the initiator tab details. Remove those details 1000 // We no longer require the initiator tab details. Remove those details
991 // associated with the preview tab to allow the initiator tab to create 1001 // associated with the preview tab to allow the initiator tab to create
992 // another preview tab. 1002 // another preview tab.
993 printing::PrintPreviewTabController* tab_controller = 1003 printing::PrintPreviewTabController* tab_controller =
994 printing::PrintPreviewTabController::GetInstance(); 1004 printing::PrintPreviewTabController::GetInstance();
995 if (tab_controller) 1005 if (tab_controller)
996 tab_controller->EraseInitiatorTabInfo(preview_tab_wrapper()); 1006 tab_controller->EraseInitiatorTabInfo(preview_tab_wrapper());
997 } 1007 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/print_preview_handler.h ('k') | chrome/browser/ui/webui/print_preview_ui.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698