| 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 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 web_ui_->RegisterMessageCallback("closePrintPreviewTab", | 440 web_ui_->RegisterMessageCallback("closePrintPreviewTab", |
| 441 NewCallback(this, &PrintPreviewHandler::HandleClosePreviewTab)); | 441 NewCallback(this, &PrintPreviewHandler::HandleClosePreviewTab)); |
| 442 web_ui_->RegisterMessageCallback("hidePreview", | 442 web_ui_->RegisterMessageCallback("hidePreview", |
| 443 NewCallback(this, &PrintPreviewHandler::HandleHidePreview)); | 443 NewCallback(this, &PrintPreviewHandler::HandleHidePreview)); |
| 444 web_ui_->RegisterMessageCallback("cancelPendingPrintRequest", | 444 web_ui_->RegisterMessageCallback("cancelPendingPrintRequest", |
| 445 NewCallback(this, &PrintPreviewHandler::HandleCancelPendingPrintRequest)); | 445 NewCallback(this, &PrintPreviewHandler::HandleCancelPendingPrintRequest)); |
| 446 web_ui_->RegisterMessageCallback("saveLastPrinter", | 446 web_ui_->RegisterMessageCallback("saveLastPrinter", |
| 447 NewCallback(this, &PrintPreviewHandler::HandleSaveLastPrinter)); | 447 NewCallback(this, &PrintPreviewHandler::HandleSaveLastPrinter)); |
| 448 } | 448 } |
| 449 | 449 |
| 450 TabContents* PrintPreviewHandler::preview_tab() { | 450 TabContentsWrapper* PrintPreviewHandler::preview_tab_wrapper() const { |
| 451 return TabContentsWrapper::GetCurrentWrapperForContents(preview_tab()); |
| 452 } |
| 453 TabContents* PrintPreviewHandler::preview_tab() const { |
| 451 return web_ui_->tab_contents(); | 454 return web_ui_->tab_contents(); |
| 452 } | 455 } |
| 453 | 456 |
| 454 void PrintPreviewHandler::HandleGetDefaultPrinter(const ListValue*) { | 457 void PrintPreviewHandler::HandleGetDefaultPrinter(const ListValue*) { |
| 455 scoped_refptr<PrintSystemTaskProxy> task = | 458 scoped_refptr<PrintSystemTaskProxy> task = |
| 456 new PrintSystemTaskProxy(AsWeakPtr(), | 459 new PrintSystemTaskProxy(AsWeakPtr(), |
| 457 print_backend_.get(), | 460 print_backend_.get(), |
| 458 has_logged_printers_count_); | 461 has_logged_printers_count_); |
| 459 BrowserThread::PostTask( | 462 BrowserThread::PostTask( |
| 460 BrowserThread::FILE, FROM_HERE, | 463 BrowserThread::FILE, FROM_HERE, |
| (...skipping 26 matching lines...) Expand all Loading... |
| 487 print_preview_ui->OnPrintPreviewRequest(request_id); | 490 print_preview_ui->OnPrintPreviewRequest(request_id); |
| 488 // Add an additional key in order to identify |print_preview_ui| later on | 491 // Add an additional key in order to identify |print_preview_ui| later on |
| 489 // when calling PrintPreviewUI::GetCurrentPrintPreviewStatus() on the IO | 492 // when calling PrintPreviewUI::GetCurrentPrintPreviewStatus() on the IO |
| 490 // thread. | 493 // thread. |
| 491 settings->SetString(printing::kPreviewUIAddr, | 494 settings->SetString(printing::kPreviewUIAddr, |
| 492 print_preview_ui->GetPrintPreviewUIAddress()); | 495 print_preview_ui->GetPrintPreviewUIAddress()); |
| 493 | 496 |
| 494 // Increment request count. | 497 // Increment request count. |
| 495 ++regenerate_preview_request_count_; | 498 ++regenerate_preview_request_count_; |
| 496 | 499 |
| 497 TabContents* initiator_tab = GetInitiatorTab(); | 500 TabContentsWrapper* initiator_tab = GetInitiatorTab(); |
| 498 if (!initiator_tab) { | 501 if (!initiator_tab) { |
| 499 ReportUserActionHistogram(INITIATOR_TAB_CLOSED); | 502 ReportUserActionHistogram(INITIATOR_TAB_CLOSED); |
| 500 print_preview_ui->OnInitiatorTabClosed(); | 503 print_preview_ui->OnInitiatorTabClosed(); |
| 501 return; | 504 return; |
| 502 } | 505 } |
| 503 | 506 |
| 504 // Retrieve the page title and url and send it to the renderer process if | 507 // Retrieve the page title and url and send it to the renderer process if |
| 505 // headers and footers are to be displayed. | 508 // headers and footers are to be displayed. |
| 506 bool display_header_footer = false; | 509 bool display_header_footer = false; |
| 507 if (!settings->GetBoolean(printing::kSettingHeaderFooterEnabled, | 510 if (!settings->GetBoolean(printing::kSettingHeaderFooterEnabled, |
| 508 &display_header_footer)) { | 511 &display_header_footer)) { |
| 509 NOTREACHED(); | 512 NOTREACHED(); |
| 510 } | 513 } |
| 511 if (display_header_footer) { | 514 if (display_header_footer) { |
| 512 settings->SetString(printing::kSettingHeaderFooterTitle, | 515 settings->SetString(printing::kSettingHeaderFooterTitle, |
| 513 initiator_tab->GetTitle()); | 516 initiator_tab->tab_contents()->GetTitle()); |
| 514 std::string url; | 517 std::string url; |
| 515 NavigationEntry* entry = initiator_tab->controller().GetActiveEntry(); | 518 NavigationEntry* entry = initiator_tab->controller().GetActiveEntry(); |
| 516 if (entry) | 519 if (entry) |
| 517 url = entry->virtual_url().spec(); | 520 url = entry->virtual_url().spec(); |
| 518 settings->SetString(printing::kSettingHeaderFooterURL, url); | 521 settings->SetString(printing::kSettingHeaderFooterURL, url); |
| 519 } | 522 } |
| 520 | 523 |
| 521 VLOG(1) << "Print preview request start"; | 524 VLOG(1) << "Print preview request start"; |
| 522 RenderViewHost* rvh = initiator_tab->render_view_host(); | 525 RenderViewHost* rvh = initiator_tab->render_view_host(); |
| 523 rvh->Send(new PrintMsg_PrintPreview(rvh->routing_id(), *settings)); | 526 rvh->Send(new PrintMsg_PrintPreview(rvh->routing_id(), *settings)); |
| 524 } | 527 } |
| 525 | 528 |
| 526 void PrintPreviewHandler::HandlePrint(const ListValue* args) { | 529 void PrintPreviewHandler::HandlePrint(const ListValue* args) { |
| 527 ReportStats(); | 530 ReportStats(); |
| 528 | 531 |
| 529 // Record the number of times the user requests to regenerate preview data | 532 // Record the number of times the user requests to regenerate preview data |
| 530 // before printing. | 533 // before printing. |
| 531 UMA_HISTOGRAM_COUNTS("PrintPreview.RegeneratePreviewRequest.BeforePrint", | 534 UMA_HISTOGRAM_COUNTS("PrintPreview.RegeneratePreviewRequest.BeforePrint", |
| 532 regenerate_preview_request_count_); | 535 regenerate_preview_request_count_); |
| 533 | 536 |
| 534 TabContents* initiator_tab = GetInitiatorTab(); | 537 TabContentsWrapper* initiator_tab = GetInitiatorTab(); |
| 535 if (initiator_tab) { | 538 if (initiator_tab) { |
| 536 RenderViewHost* rvh = initiator_tab->render_view_host(); | 539 RenderViewHost* rvh = initiator_tab->render_view_host(); |
| 537 rvh->Send(new PrintMsg_ResetScriptedPrintCount(rvh->routing_id())); | 540 rvh->Send(new PrintMsg_ResetScriptedPrintCount(rvh->routing_id())); |
| 538 } | 541 } |
| 539 | 542 |
| 540 scoped_ptr<DictionaryValue> settings(GetSettingsDictionary(args)); | 543 scoped_ptr<DictionaryValue> settings(GetSettingsDictionary(args)); |
| 541 if (!settings.get()) | 544 if (!settings.get()) |
| 542 return; | 545 return; |
| 543 | 546 |
| 544 // Storing last used color setting. | 547 // Storing last used color setting. |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 597 RenderViewHost* rvh = web_ui_->tab_contents()->render_view_host(); | 600 RenderViewHost* rvh = web_ui_->tab_contents()->render_view_host(); |
| 598 rvh->Send(new PrintMsg_PrintForPrintPreview(rvh->routing_id(), *settings)); | 601 rvh->Send(new PrintMsg_PrintForPrintPreview(rvh->routing_id(), *settings)); |
| 599 } | 602 } |
| 600 } | 603 } |
| 601 | 604 |
| 602 void PrintPreviewHandler::HandleHidePreview(const ListValue*) { | 605 void PrintPreviewHandler::HandleHidePreview(const ListValue*) { |
| 603 HidePreviewTab(); | 606 HidePreviewTab(); |
| 604 } | 607 } |
| 605 | 608 |
| 606 void PrintPreviewHandler::HandleCancelPendingPrintRequest(const ListValue*) { | 609 void PrintPreviewHandler::HandleCancelPendingPrintRequest(const ListValue*) { |
| 607 TabContentsWrapper* wrapper = NULL; | 610 TabContentsWrapper* initiator_tab = GetInitiatorTab(); |
| 608 TabContents* initiator_tab = GetInitiatorTab(); | |
| 609 if (initiator_tab) { | 611 if (initiator_tab) { |
| 610 wrapper = TabContentsWrapper::GetCurrentWrapperForContents(initiator_tab); | |
| 611 ClearInitiatorTabDetails(); | 612 ClearInitiatorTabDetails(); |
| 612 } else { | 613 } else { |
| 613 // Initiator tab does not exists. Get the wrapper contents of current tab. | 614 // Initiator tab does not exists. Get the wrapper contents of current tab. |
| 614 Browser* browser = BrowserList::GetLastActive(); | 615 Browser* browser = BrowserList::GetLastActive(); |
| 615 if (browser) | 616 if (browser) |
| 616 wrapper = browser->GetSelectedTabContentsWrapper(); | 617 initiator_tab = browser->GetSelectedTabContentsWrapper(); |
| 617 } | 618 } |
| 618 | 619 |
| 619 if (wrapper) | 620 if (initiator_tab) |
| 620 wrapper->print_view_manager()->PreviewPrintingRequestCancelled(); | 621 initiator_tab->print_view_manager()->PreviewPrintingRequestCancelled(); |
| 621 delete TabContentsWrapper::GetCurrentWrapperForContents(preview_tab()); | 622 delete preview_tab_wrapper(); |
| 622 } | 623 } |
| 623 | 624 |
| 624 void PrintPreviewHandler::HandleSaveLastPrinter(const ListValue* args) { | 625 void PrintPreviewHandler::HandleSaveLastPrinter(const ListValue* args) { |
| 625 std::string data_to_save; | 626 std::string data_to_save; |
| 626 if (args->GetString(0, &data_to_save) && !data_to_save.empty()) { | 627 if (args->GetString(0, &data_to_save) && !data_to_save.empty()) { |
| 627 if (last_used_printer_name_ == NULL) | 628 if (last_used_printer_name_ == NULL) |
| 628 last_used_printer_name_ = new std::string(); | 629 last_used_printer_name_ = new std::string(); |
| 629 *last_used_printer_name_ = data_to_save; | 630 *last_used_printer_name_ = data_to_save; |
| 630 } | 631 } |
| 631 if (args->GetString(1, &data_to_save) && !data_to_save.empty()) { | 632 if (args->GetString(1, &data_to_save) && !data_to_save.empty()) { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 663 GetCloudPrintServiceManageURL(), | 664 GetCloudPrintServiceManageURL(), |
| 664 GURL(), | 665 GURL(), |
| 665 NEW_FOREGROUND_TAB, | 666 NEW_FOREGROUND_TAB, |
| 666 PageTransition::LINK); | 667 PageTransition::LINK); |
| 667 } | 668 } |
| 668 | 669 |
| 669 void PrintPreviewHandler::HandleShowSystemDialog(const ListValue*) { | 670 void PrintPreviewHandler::HandleShowSystemDialog(const ListValue*) { |
| 670 ReportStats(); | 671 ReportStats(); |
| 671 ReportUserActionHistogram(FALLBACK_TO_ADVANCED_SETTINGS_DIALOG); | 672 ReportUserActionHistogram(FALLBACK_TO_ADVANCED_SETTINGS_DIALOG); |
| 672 | 673 |
| 673 TabContents* initiator_tab = GetInitiatorTab(); | 674 TabContentsWrapper* initiator_tab = GetInitiatorTab(); |
| 674 if (!initiator_tab) | 675 if (!initiator_tab) |
| 675 return; | 676 return; |
| 676 | 677 |
| 677 TabContentsWrapper* wrapper = | 678 printing::PrintViewManager* manager = initiator_tab->print_view_manager(); |
| 678 TabContentsWrapper::GetCurrentWrapperForContents(initiator_tab); | |
| 679 printing::PrintViewManager* manager = wrapper->print_view_manager(); | |
| 680 manager->set_observer(this); | 679 manager->set_observer(this); |
| 681 manager->PrintForSystemDialogNow(); | 680 manager->PrintForSystemDialogNow(); |
| 682 | 681 |
| 683 // Cancel the pending preview request if exists. | 682 // Cancel the pending preview request if exists. |
| 684 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_); | 683 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_); |
| 685 print_preview_ui->OnCancelPendingPreviewRequest(); | 684 print_preview_ui->OnCancelPendingPreviewRequest(); |
| 686 } | 685 } |
| 687 | 686 |
| 688 void PrintPreviewHandler::HandleManagePrinters(const ListValue*) { | 687 void PrintPreviewHandler::HandleManagePrinters(const ListValue*) { |
| 689 ++manage_printers_dialog_request_count_; | 688 ++manage_printers_dialog_request_count_; |
| 690 printing::PrinterManagerDialog::ShowPrinterManagerDialog(); | 689 printing::PrinterManagerDialog::ShowPrinterManagerDialog(); |
| 691 } | 690 } |
| 692 | 691 |
| 693 void PrintPreviewHandler::HandleReloadCrashedInitiatorTab(const ListValue*) { | 692 void PrintPreviewHandler::HandleReloadCrashedInitiatorTab(const ListValue*) { |
| 694 ReportStats(); | 693 ReportStats(); |
| 695 ReportUserActionHistogram(INITIATOR_TAB_CRASHED); | 694 ReportUserActionHistogram(INITIATOR_TAB_CRASHED); |
| 696 | 695 |
| 697 TabContents* initiator_tab = GetInitiatorTab(); | 696 TabContentsWrapper* initiator_tab = GetInitiatorTab(); |
| 698 if (!initiator_tab) | 697 if (!initiator_tab) |
| 699 return; | 698 return; |
| 700 | 699 |
| 701 initiator_tab->OpenURL( | 700 TabContents* contents = initiator_tab->tab_contents(); |
| 702 initiator_tab->GetURL(), GURL(), CURRENT_TAB, PageTransition::RELOAD); | 701 contents->OpenURL(contents->GetURL(), GURL(), CURRENT_TAB, |
| 702 PageTransition::RELOAD); |
| 703 ActivateInitiatorTabAndClosePreviewTab(); | 703 ActivateInitiatorTabAndClosePreviewTab(); |
| 704 } | 704 } |
| 705 | 705 |
| 706 void PrintPreviewHandler::HandleClosePreviewTab(const ListValue*) { | 706 void PrintPreviewHandler::HandleClosePreviewTab(const ListValue*) { |
| 707 ReportStats(); | 707 ReportStats(); |
| 708 ReportUserActionHistogram(CANCEL); | 708 ReportUserActionHistogram(CANCEL); |
| 709 | 709 |
| 710 // Record the number of times the user requests to regenerate preview data | 710 // Record the number of times the user requests to regenerate preview data |
| 711 // before cancelling. | 711 // before cancelling. |
| 712 UMA_HISTOGRAM_COUNTS("PrintPreview.RegeneratePreviewRequest.BeforeCancel", | 712 UMA_HISTOGRAM_COUNTS("PrintPreview.RegeneratePreviewRequest.BeforeCancel", |
| 713 regenerate_preview_request_count_); | 713 regenerate_preview_request_count_); |
| 714 | 714 |
| 715 ActivateInitiatorTabAndClosePreviewTab(); | 715 ActivateInitiatorTabAndClosePreviewTab(); |
| 716 } | 716 } |
| 717 | 717 |
| 718 void PrintPreviewHandler::ReportStats() { | 718 void PrintPreviewHandler::ReportStats() { |
| 719 UMA_HISTOGRAM_COUNTS("PrintPreview.ManagePrinters", | 719 UMA_HISTOGRAM_COUNTS("PrintPreview.ManagePrinters", |
| 720 manage_printers_dialog_request_count_); | 720 manage_printers_dialog_request_count_); |
| 721 } | 721 } |
| 722 | 722 |
| 723 void PrintPreviewHandler::ActivateInitiatorTabAndClosePreviewTab() { | 723 void PrintPreviewHandler::ActivateInitiatorTabAndClosePreviewTab() { |
| 724 TabContents* initiator_tab = GetInitiatorTab(); | 724 TabContentsWrapper* initiator_tab = GetInitiatorTab(); |
| 725 if (initiator_tab) | 725 if (initiator_tab) { |
| 726 static_cast<RenderViewHostDelegate*>(initiator_tab)->Activate(); | 726 static_cast<RenderViewHostDelegate*>( |
| 727 initiator_tab->tab_contents())->Activate(); |
| 728 } |
| 727 ClosePrintPreviewTab(); | 729 ClosePrintPreviewTab(); |
| 728 } | 730 } |
| 729 | 731 |
| 730 void PrintPreviewHandler::SendPrinterCapabilities( | 732 void PrintPreviewHandler::SendPrinterCapabilities( |
| 731 const DictionaryValue& settings_info) { | 733 const DictionaryValue& settings_info) { |
| 732 VLOG(1) << "Get printer capabilities finished"; | 734 VLOG(1) << "Get printer capabilities finished"; |
| 733 web_ui_->CallJavascriptFunction("updateWithPrinterCapabilities", | 735 web_ui_->CallJavascriptFunction("updateWithPrinterCapabilities", |
| 734 settings_info); | 736 settings_info); |
| 735 } | 737 } |
| 736 | 738 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 815 boundary, | 817 boundary, |
| 816 base64_data.c_str(), | 818 base64_data.c_str(), |
| 817 boundary); | 819 boundary); |
| 818 | 820 |
| 819 StringValue data_value(final_data); | 821 StringValue data_value(final_data); |
| 820 | 822 |
| 821 web_ui_->CallJavascriptFunction("printToCloud", | 823 web_ui_->CallJavascriptFunction("printToCloud", |
| 822 data_value); | 824 data_value); |
| 823 } | 825 } |
| 824 | 826 |
| 825 TabContents* PrintPreviewHandler::GetInitiatorTab() { | 827 TabContentsWrapper* PrintPreviewHandler::GetInitiatorTab() const { |
| 826 printing::PrintPreviewTabController* tab_controller = | 828 printing::PrintPreviewTabController* tab_controller = |
| 827 printing::PrintPreviewTabController::GetInstance(); | 829 printing::PrintPreviewTabController::GetInstance(); |
| 828 if (!tab_controller) | 830 if (!tab_controller) |
| 829 return NULL; | 831 return NULL; |
| 830 return tab_controller->GetInitiatorTab(preview_tab()); | 832 return tab_controller->GetInitiatorTab(preview_tab_wrapper()); |
| 831 } | 833 } |
| 832 | 834 |
| 833 void PrintPreviewHandler::ClosePrintPreviewTab() { | 835 void PrintPreviewHandler::ClosePrintPreviewTab() { |
| 834 TabContentsWrapper* tab = | 836 TabContentsWrapper* tab = |
| 835 TabContentsWrapper::GetCurrentWrapperForContents(preview_tab()); | 837 TabContentsWrapper::GetCurrentWrapperForContents(preview_tab()); |
| 836 if (!tab) | 838 if (!tab) |
| 837 return; | 839 return; |
| 838 Browser* preview_tab_browser = BrowserList::FindBrowserWithID( | 840 Browser* preview_tab_browser = BrowserList::FindBrowserWithID( |
| 839 tab->restore_tab_helper()->window_id().id()); | 841 tab->restore_tab_helper()->window_id().id()); |
| 840 if (!preview_tab_browser) | 842 if (!preview_tab_browser) |
| 841 return; | 843 return; |
| 842 TabStripModel* tabstrip = preview_tab_browser->tabstrip_model(); | 844 TabStripModel* tabstrip = preview_tab_browser->tabstrip_model(); |
| 843 | 845 |
| 844 // Keep print preview tab out of the recently closed tab list, because | 846 // Keep print preview tab out of the recently closed tab list, because |
| 845 // re-opening that page will just display a non-functional print preview page. | 847 // re-opening that page will just display a non-functional print preview page. |
| 846 tabstrip->CloseTabContentsAt(tabstrip->GetIndexOfController( | 848 tabstrip->CloseTabContentsAt(tabstrip->GetIndexOfController( |
| 847 &preview_tab()->controller()), TabStripModel::CLOSE_NONE); | 849 &preview_tab()->controller()), TabStripModel::CLOSE_NONE); |
| 848 } | 850 } |
| 849 | 851 |
| 850 void PrintPreviewHandler::OnPrintDialogShown() { | 852 void PrintPreviewHandler::OnPrintDialogShown() { |
| 851 static_cast<RenderViewHostDelegate*>(GetInitiatorTab())->Activate(); | 853 static_cast<RenderViewHostDelegate*>( |
| 854 GetInitiatorTab()->tab_contents())->Activate(); |
| 852 ClosePrintPreviewTab(); | 855 ClosePrintPreviewTab(); |
| 853 } | 856 } |
| 854 | 857 |
| 855 void PrintPreviewHandler::SelectFile(const FilePath& default_filename) { | 858 void PrintPreviewHandler::SelectFile(const FilePath& default_filename) { |
| 856 SelectFileDialog::FileTypeInfo file_type_info; | 859 SelectFileDialog::FileTypeInfo file_type_info; |
| 857 file_type_info.extensions.resize(1); | 860 file_type_info.extensions.resize(1); |
| 858 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("pdf")); | 861 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("pdf")); |
| 859 | 862 |
| 860 // Initializing last_saved_path_ if it is not already initialized. | 863 // Initializing last_saved_path_ if it is not already initialized. |
| 861 if (!last_saved_path_) { | 864 if (!last_saved_path_) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 876 last_saved_path_->Append(default_filename), | 879 last_saved_path_->Append(default_filename), |
| 877 &file_type_info, | 880 &file_type_info, |
| 878 0, | 881 0, |
| 879 FILE_PATH_LITERAL(""), | 882 FILE_PATH_LITERAL(""), |
| 880 preview_tab(), | 883 preview_tab(), |
| 881 platform_util::GetTopLevel(preview_tab()->GetNativeView()), | 884 platform_util::GetTopLevel(preview_tab()->GetNativeView()), |
| 882 NULL); | 885 NULL); |
| 883 } | 886 } |
| 884 | 887 |
| 885 void PrintPreviewHandler::OnTabDestroyed() { | 888 void PrintPreviewHandler::OnTabDestroyed() { |
| 886 TabContents* initiator_tab = GetInitiatorTab(); | 889 TabContentsWrapper* initiator_tab = GetInitiatorTab(); |
| 887 if (!initiator_tab) | 890 if (!initiator_tab) |
| 888 return; | 891 return; |
| 889 | 892 |
| 890 TabContentsWrapper* wrapper = | 893 initiator_tab->print_view_manager()->set_observer(NULL); |
| 891 TabContentsWrapper::GetCurrentWrapperForContents(initiator_tab); | |
| 892 wrapper->print_view_manager()->set_observer(NULL); | |
| 893 } | 894 } |
| 894 | 895 |
| 895 void PrintPreviewHandler::OnPrintPreviewFailed() { | 896 void PrintPreviewHandler::OnPrintPreviewFailed() { |
| 896 if (reported_failed_preview_) | 897 if (reported_failed_preview_) |
| 897 return; | 898 return; |
| 898 reported_failed_preview_ = true; | 899 reported_failed_preview_ = true; |
| 899 ReportUserActionHistogram(PREVIEW_FAILED); | 900 ReportUserActionHistogram(PREVIEW_FAILED); |
| 900 } | 901 } |
| 901 | 902 |
| 902 void PrintPreviewHandler::ShowSystemDialog() { | 903 void PrintPreviewHandler::ShowSystemDialog() { |
| (...skipping 30 matching lines...) Expand all Loading... |
| 933 | 934 |
| 934 void PrintPreviewHandler::HidePreviewTab() { | 935 void PrintPreviewHandler::HidePreviewTab() { |
| 935 TabContentsWrapper* preview_tab_wrapper = | 936 TabContentsWrapper* preview_tab_wrapper = |
| 936 TabContentsWrapper::GetCurrentWrapperForContents(preview_tab()); | 937 TabContentsWrapper::GetCurrentWrapperForContents(preview_tab()); |
| 937 if (GetBackgroundPrintingManager()->HasTabContents(preview_tab_wrapper)) | 938 if (GetBackgroundPrintingManager()->HasTabContents(preview_tab_wrapper)) |
| 938 return; | 939 return; |
| 939 GetBackgroundPrintingManager()->OwnTabContents(preview_tab_wrapper); | 940 GetBackgroundPrintingManager()->OwnTabContents(preview_tab_wrapper); |
| 940 } | 941 } |
| 941 | 942 |
| 942 void PrintPreviewHandler::ClearInitiatorTabDetails() { | 943 void PrintPreviewHandler::ClearInitiatorTabDetails() { |
| 943 TabContents* initiator_tab = GetInitiatorTab(); | 944 TabContentsWrapper* initiator_tab = GetInitiatorTab(); |
| 944 if (!initiator_tab) | 945 if (!initiator_tab) |
| 945 return; | 946 return; |
| 946 | 947 |
| 947 // We no longer require the initiator tab details. Remove those details | 948 // We no longer require the initiator tab details. Remove those details |
| 948 // associated with the preview tab to allow the initiator tab to create | 949 // associated with the preview tab to allow the initiator tab to create |
| 949 // another preview tab. | 950 // another preview tab. |
| 950 printing::PrintPreviewTabController* tab_controller = | 951 printing::PrintPreviewTabController* tab_controller = |
| 951 printing::PrintPreviewTabController::GetInstance(); | 952 printing::PrintPreviewTabController::GetInstance(); |
| 952 if (tab_controller) | 953 if (tab_controller) |
| 953 tab_controller->EraseInitiatorTabInfo(preview_tab()); | 954 tab_controller->EraseInitiatorTabInfo(preview_tab_wrapper()); |
| 954 } | 955 } |
| OLD | NEW |