| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |