| 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/i18n/file_util_icu.h" | 9 #include "base/i18n/file_util_icu.h" |
| 10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
| (...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 561 printer_name)); | 561 printer_name)); |
| 562 } | 562 } |
| 563 | 563 |
| 564 void PrintPreviewHandler::HandleShowSystemDialog(const ListValue* args) { | 564 void PrintPreviewHandler::HandleShowSystemDialog(const ListValue* args) { |
| 565 ReportStats(); | 565 ReportStats(); |
| 566 ReportUserActionHistogram(FALLBACK_TO_ADVANCED_SETTINGS_DIALOG); | 566 ReportUserActionHistogram(FALLBACK_TO_ADVANCED_SETTINGS_DIALOG); |
| 567 | 567 |
| 568 TabContents* initiator_tab = GetInitiatorTab(); | 568 TabContents* initiator_tab = GetInitiatorTab(); |
| 569 if (!initiator_tab) | 569 if (!initiator_tab) |
| 570 return; | 570 return; |
| 571 initiator_tab->Activate(); | |
| 572 | 571 |
| 573 TabContentsWrapper* wrapper = | 572 TabContentsWrapper* wrapper = |
| 574 TabContentsWrapper::GetCurrentWrapperForContents(initiator_tab); | 573 TabContentsWrapper::GetCurrentWrapperForContents(initiator_tab); |
| 575 wrapper->print_view_manager()->PrintNow(); | 574 printing::PrintViewManager* manager = wrapper->print_view_manager(); |
| 576 | 575 manager->set_observer(this); |
| 577 ClosePrintPreviewTab(); | 576 manager->PrintNow(); |
| 578 } | 577 } |
| 579 | 578 |
| 580 void PrintPreviewHandler::HandleManagePrinters(const ListValue* args) { | 579 void PrintPreviewHandler::HandleManagePrinters(const ListValue* args) { |
| 581 ++manage_printers_dialog_request_count_; | 580 ++manage_printers_dialog_request_count_; |
| 582 printing::PrinterManagerDialog::ShowPrinterManagerDialog(); | 581 printing::PrinterManagerDialog::ShowPrinterManagerDialog(); |
| 583 } | 582 } |
| 584 | 583 |
| 585 void PrintPreviewHandler::HandleClosePreviewTab(const ListValue* args) { | 584 void PrintPreviewHandler::HandleClosePreviewTab(const ListValue* args) { |
| 586 ReportStats(); | 585 ReportStats(); |
| 587 ReportUserActionHistogram(CANCEL); | 586 ReportUserActionHistogram(CANCEL); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 640 if (!preview_tab_browser) | 639 if (!preview_tab_browser) |
| 641 return; | 640 return; |
| 642 TabStripModel* tabstrip = preview_tab_browser->tabstrip_model(); | 641 TabStripModel* tabstrip = preview_tab_browser->tabstrip_model(); |
| 643 | 642 |
| 644 // Keep print preview tab out of the recently closed tab list, because | 643 // Keep print preview tab out of the recently closed tab list, because |
| 645 // re-opening that page will just display a non-functional print preview page. | 644 // re-opening that page will just display a non-functional print preview page. |
| 646 tabstrip->CloseTabContentsAt(tabstrip->GetIndexOfController( | 645 tabstrip->CloseTabContentsAt(tabstrip->GetIndexOfController( |
| 647 &preview_tab()->controller()), TabStripModel::CLOSE_NONE); | 646 &preview_tab()->controller()), TabStripModel::CLOSE_NONE); |
| 648 } | 647 } |
| 649 | 648 |
| 649 void PrintPreviewHandler::OnPrintDialogShown() { |
| 650 TabContents* initiator_tab = GetInitiatorTab(); |
| 651 DCHECK(initiator_tab); |
| 652 |
| 653 initiator_tab->Activate(); |
| 654 ClosePrintPreviewTab(); |
| 655 } |
| 656 |
| 650 void PrintPreviewHandler::SelectFile(const FilePath& default_filename) { | 657 void PrintPreviewHandler::SelectFile(const FilePath& default_filename) { |
| 651 SelectFileDialog::FileTypeInfo file_type_info; | 658 SelectFileDialog::FileTypeInfo file_type_info; |
| 652 file_type_info.extensions.resize(1); | 659 file_type_info.extensions.resize(1); |
| 653 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("pdf")); | 660 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("pdf")); |
| 654 | 661 |
| 655 // Initializing last_saved_path_ if it is not already initialized. | 662 // Initializing last_saved_path_ if it is not already initialized. |
| 656 if (!last_saved_path_) { | 663 if (!last_saved_path_) { |
| 657 last_saved_path_ = new FilePath(); | 664 last_saved_path_ = new FilePath(); |
| 658 // Allowing IO operation temporarily. It is ok to do so here because | 665 // Allowing IO operation temporarily. It is ok to do so here because |
| 659 // the select file dialog performs IO anyway in order to display the | 666 // the select file dialog performs IO anyway in order to display the |
| (...skipping 10 matching lines...) Expand all Loading... |
| 670 string16(), | 677 string16(), |
| 671 last_saved_path_->Append(default_filename), | 678 last_saved_path_->Append(default_filename), |
| 672 &file_type_info, | 679 &file_type_info, |
| 673 0, | 680 0, |
| 674 FILE_PATH_LITERAL(""), | 681 FILE_PATH_LITERAL(""), |
| 675 preview_tab(), | 682 preview_tab(), |
| 676 platform_util::GetTopLevel(preview_tab()->GetNativeView()), | 683 platform_util::GetTopLevel(preview_tab()->GetNativeView()), |
| 677 NULL); | 684 NULL); |
| 678 } | 685 } |
| 679 | 686 |
| 687 void PrintPreviewHandler::OnNavigation() { |
| 688 TabContents* initiator_tab = GetInitiatorTab(); |
| 689 if (!initiator_tab) |
| 690 return; |
| 691 |
| 692 TabContentsWrapper* wrapper = |
| 693 TabContentsWrapper::GetCurrentWrapperForContents(initiator_tab); |
| 694 wrapper->print_view_manager()->set_observer(NULL); |
| 695 } |
| 696 |
| 680 void PrintPreviewHandler::FileSelected(const FilePath& path, | 697 void PrintPreviewHandler::FileSelected(const FilePath& path, |
| 681 int index, void* params) { | 698 int index, void* params) { |
| 682 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_); | 699 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_); |
| 683 scoped_refptr<RefCountedBytes> data(new RefCountedBytes()); | 700 scoped_refptr<RefCountedBytes> data(new RefCountedBytes()); |
| 684 print_preview_ui->GetPrintPreviewData(&data); | 701 print_preview_ui->GetPrintPreviewData(&data); |
| 685 if (!data->front()) { | 702 if (!data->front()) { |
| 686 NOTREACHED(); | 703 NOTREACHED(); |
| 687 return; | 704 return; |
| 688 } | 705 } |
| 689 | 706 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 707 void PrintPreviewHandler::HidePreviewTab() { | 724 void PrintPreviewHandler::HidePreviewTab() { |
| 708 TabContentsWrapper* preview_tab_wrapper = | 725 TabContentsWrapper* preview_tab_wrapper = |
| 709 TabContentsWrapper::GetCurrentWrapperForContents(preview_tab()); | 726 TabContentsWrapper::GetCurrentWrapperForContents(preview_tab()); |
| 710 if (GetBackgroundPrintingManager()->HasTabContents(preview_tab_wrapper)) | 727 if (GetBackgroundPrintingManager()->HasTabContents(preview_tab_wrapper)) |
| 711 return; | 728 return; |
| 712 GetBackgroundPrintingManager()->OwnTabContents(preview_tab_wrapper); | 729 GetBackgroundPrintingManager()->OwnTabContents(preview_tab_wrapper); |
| 713 } | 730 } |
| 714 | 731 |
| 715 void PrintPreviewHandler::ClearInitiatorTabDetails() { | 732 void PrintPreviewHandler::ClearInitiatorTabDetails() { |
| 716 TabContents* initiator_tab = GetInitiatorTab(); | 733 TabContents* initiator_tab = GetInitiatorTab(); |
| 717 if (initiator_tab) { | 734 if (!initiator_tab) |
| 718 // We no longer require the intiator tab details. Remove those details | 735 return; |
| 719 // associated with the preview tab to allow the initiator tab to create | 736 |
| 720 // another preview tab. | 737 // We no longer require the initiator tab details. Remove those details |
| 721 printing::PrintPreviewTabController* tab_controller = | 738 // associated with the preview tab to allow the initiator tab to create |
| 722 printing::PrintPreviewTabController::GetInstance(); | 739 // another preview tab. |
| 723 if (tab_controller) | 740 printing::PrintPreviewTabController* tab_controller = |
| 724 tab_controller->EraseInitiatorTabInfo(preview_tab()); | 741 printing::PrintPreviewTabController::GetInstance(); |
| 725 } | 742 if (tab_controller) |
| 743 tab_controller->EraseInitiatorTabInfo(preview_tab()); |
| 726 } | 744 } |
| OLD | NEW |