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

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

Issue 2962983002: Print Preview: change getPreview to cr.sendWithPromise (Closed)
Patch Set: Address comments #2 Created 3 years, 5 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
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 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after
775 } 775 }
776 776
777 EnsureExtensionPrinterHandlerSet(); 777 EnsureExtensionPrinterHandlerSet();
778 extension_printer_handler_->StartGetCapability( 778 extension_printer_handler_->StartGetCapability(
779 printer_name, 779 printer_name,
780 base::Bind(&PrintPreviewHandler::OnGotExtensionPrinterCapabilities, 780 base::Bind(&PrintPreviewHandler::OnGotExtensionPrinterCapabilities,
781 weak_factory_.GetWeakPtr(), callback_id)); 781 weak_factory_.GetWeakPtr(), callback_id));
782 } 782 }
783 783
784 void PrintPreviewHandler::HandleGetPreview(const base::ListValue* args) { 784 void PrintPreviewHandler::HandleGetPreview(const base::ListValue* args) {
785 DCHECK_EQ(2U, args->GetSize()); 785 DCHECK_EQ(3U, args->GetSize());
786 std::string callback_id;
786 std::string json_str; 787 std::string json_str;
787 if (!args->GetString(0, &json_str)) 788 CHECK(args->GetString(0, &callback_id));
789 if (!args->GetString(1, &json_str)) {
790 RejectJavascriptCallback(base::Value(callback_id),
791 base::Value("INVALID_SETTINGS"));
788 return; 792 return;
793 }
789 std::unique_ptr<base::DictionaryValue> settings = 794 std::unique_ptr<base::DictionaryValue> settings =
790 GetSettingsDictionary(json_str); 795 GetSettingsDictionary(json_str);
791 if (!settings) 796 if (!settings) {
797 RejectJavascriptCallback(base::Value(callback_id),
798 base::Value("INVALID_SETTINGS"));
792 return; 799 return;
800 }
793 int request_id = -1; 801 int request_id = -1;
794 if (!settings->GetInteger(printing::kPreviewRequestID, &request_id)) 802 if (!settings->GetInteger(printing::kPreviewRequestID, &request_id)) {
803 RejectJavascriptCallback(base::Value(callback_id),
804 base::Value("INVALID_SETTINGS"));
795 return; 805 return;
796 806 }
807 DCHECK(preview_callbacks_.size() == static_cast<size_t>(request_id));
808 preview_callbacks_.push_back(callback_id);
797 print_preview_ui()->OnPrintPreviewRequest(request_id); 809 print_preview_ui()->OnPrintPreviewRequest(request_id);
798 // Add an additional key in order to identify |print_preview_ui| later on 810 // Add an additional key in order to identify |print_preview_ui| later on
799 // when calling PrintPreviewUI::GetCurrentPrintPreviewStatus() on the IO 811 // when calling PrintPreviewUI::GetCurrentPrintPreviewStatus() on the IO
800 // thread. 812 // thread.
801 settings->SetInteger(printing::kPreviewUIID, 813 settings->SetInteger(printing::kPreviewUIID,
802 print_preview_ui()->GetIDForPrintPreviewUI()); 814 print_preview_ui()->GetIDForPrintPreviewUI());
803 815
804 // Increment request count. 816 // Increment request count.
805 ++regenerate_preview_request_count_; 817 ++regenerate_preview_request_count_;
806 818
(...skipping 30 matching lines...) Expand all
837 settings->SetString(printing::kSettingHeaderFooterURL, url); 849 settings->SetString(printing::kSettingHeaderFooterURL, url);
838 } 850 }
839 851
840 bool generate_draft_data = false; 852 bool generate_draft_data = false;
841 success = settings->GetBoolean(printing::kSettingGenerateDraftData, 853 success = settings->GetBoolean(printing::kSettingGenerateDraftData,
842 &generate_draft_data); 854 &generate_draft_data);
843 DCHECK(success); 855 DCHECK(success);
844 856
845 if (!generate_draft_data) { 857 if (!generate_draft_data) {
846 int page_count = -1; 858 int page_count = -1;
847 success = args->GetInteger(1, &page_count); 859 success = args->GetInteger(2, &page_count);
848 DCHECK(success); 860 DCHECK(success);
849 861
850 if (page_count != -1) { 862 if (page_count != -1) {
851 bool preview_modifiable = false; 863 bool preview_modifiable = false;
852 success = settings->GetBoolean(printing::kSettingPreviewModifiable, 864 success = settings->GetBoolean(printing::kSettingPreviewModifiable,
853 &preview_modifiable); 865 &preview_modifiable);
854 DCHECK(success); 866 DCHECK(success);
855 867
856 if (preview_modifiable && 868 if (preview_modifiable &&
857 print_preview_ui()->GetAvailableDraftPageCount() != page_count) { 869 print_preview_ui()->GetAvailableDraftPageCount() != page_count) {
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after
1518 ui::SelectFileDialog::SELECT_SAVEAS_FILE, base::string16(), path, 1530 ui::SelectFileDialog::SELECT_SAVEAS_FILE, base::string16(), path,
1519 &file_type_info, 0, base::FilePath::StringType(), 1531 &file_type_info, 0, base::FilePath::StringType(),
1520 platform_util::GetTopLevel(preview_web_contents()->GetNativeView()), 1532 platform_util::GetTopLevel(preview_web_contents()->GetNativeView()),
1521 NULL); 1533 NULL);
1522 } 1534 }
1523 1535
1524 void PrintPreviewHandler::OnGotUniqueFileName(const base::FilePath& path) { 1536 void PrintPreviewHandler::OnGotUniqueFileName(const base::FilePath& path) {
1525 FileSelected(path, 0, nullptr); 1537 FileSelected(path, 0, nullptr);
1526 } 1538 }
1527 1539
1528 void PrintPreviewHandler::OnPrintPreviewFailed() { 1540 void PrintPreviewHandler::OnPrintPreviewReady(int preview_uid, int request_id) {
1529 if (reported_failed_preview_) 1541 if (request_id < 0) // No way to get callback, invalid ID.
1530 return; 1542 return;
1531 reported_failed_preview_ = true; 1543 DCHECK(preview_callbacks_.size() > static_cast<size_t>(request_id));
1532 ReportUserActionHistogram(PREVIEW_FAILED); 1544 ResolveJavascriptCallback(base::Value(preview_callbacks_[request_id]),
1545 base::Value(preview_uid));
1546 }
1547
1548 void PrintPreviewHandler::OnPrintPreviewFailed(int request_id) {
1549 if (!reported_failed_preview_) {
1550 reported_failed_preview_ = true;
1551 ReportUserActionHistogram(PREVIEW_FAILED);
1552 }
1553 if (request_id < 0)
1554 return;
1555 DCHECK(preview_callbacks_.size() > static_cast<size_t>(request_id));
1556 RejectJavascriptCallback(base::Value(preview_callbacks_[request_id]),
1557 base::Value("PREVIEW_FAILED"));
1558 }
1559
1560 void PrintPreviewHandler::OnInvalidPrinterSettings(int request_id) {
1561 if (request_id < 0)
1562 return;
1563 DCHECK(preview_callbacks_.size() > static_cast<size_t>(request_id));
1564 RejectJavascriptCallback(base::Value(preview_callbacks_[request_id]),
1565 base::Value("INVALID_SETTINGS"));
1533 } 1566 }
1534 1567
1535 #if BUILDFLAG(ENABLE_BASIC_PRINT_DIALOG) 1568 #if BUILDFLAG(ENABLE_BASIC_PRINT_DIALOG)
1536 void PrintPreviewHandler::ShowSystemDialog() { 1569 void PrintPreviewHandler::ShowSystemDialog() {
1537 HandleShowSystemDialog(NULL); 1570 HandleShowSystemDialog(NULL);
1538 } 1571 }
1539 #endif 1572 #endif
1540 1573
1541 void PrintPreviewHandler::FileSelected(const base::FilePath& path, 1574 void PrintPreviewHandler::FileSelected(const base::FilePath& path,
1542 int /* index */, 1575 int /* index */,
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
1890 1923
1891 void PrintPreviewHandler::UnregisterForGaiaCookieChanges() { 1924 void PrintPreviewHandler::UnregisterForGaiaCookieChanges() {
1892 if (gaia_cookie_manager_service_) 1925 if (gaia_cookie_manager_service_)
1893 gaia_cookie_manager_service_->RemoveObserver(this); 1926 gaia_cookie_manager_service_->RemoveObserver(this);
1894 } 1927 }
1895 1928
1896 void PrintPreviewHandler::SetPdfSavedClosureForTesting( 1929 void PrintPreviewHandler::SetPdfSavedClosureForTesting(
1897 const base::Closure& closure) { 1930 const base::Closure& closure) {
1898 pdf_file_saved_closure_ = closure; 1931 pdf_file_saved_closure_ = closure;
1899 } 1932 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698