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

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

Issue 1553333002: Move cloud print specific files out of local_discovery (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@moveprn
Patch Set: Created 4 years, 11 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 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 #include "printing/printing_context.h" 87 #include "printing/printing_context.h"
88 #include "printing/units.h" 88 #include "printing/units.h"
89 #include "third_party/icu/source/i18n/unicode/ulocdata.h" 89 #include "third_party/icu/source/i18n/unicode/ulocdata.h"
90 90
91 #if defined(OS_CHROMEOS) 91 #if defined(OS_CHROMEOS)
92 #include "chrome/browser/chromeos/settings/device_oauth2_token_service.h" 92 #include "chrome/browser/chromeos/settings/device_oauth2_token_service.h"
93 #include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h " 93 #include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h "
94 #endif 94 #endif
95 95
96 #if defined(ENABLE_SERVICE_DISCOVERY) 96 #if defined(ENABLE_SERVICE_DISCOVERY)
97 #include "chrome/browser/local_discovery/privet_constants.h" 97 #include "chrome/browser/printing/cloud_print/privet_constants.h"
98 #endif 98 #endif
99 99
100 using content::BrowserThread; 100 using content::BrowserThread;
101 using content::RenderViewHost; 101 using content::RenderViewHost;
102 using content::WebContents; 102 using content::WebContents;
103 103
104 namespace { 104 namespace {
105 105
106 enum UserActionBuckets { 106 enum UserActionBuckets {
107 PRINT_TO_PRINTER, 107 PRINT_TO_PRINTER,
(...skipping 1434 matching lines...) Expand 10 before | Expand all | Expand 10 after
1542 1542
1543 void PrintPreviewHandler::StartPrivetLister(const scoped_refptr< 1543 void PrintPreviewHandler::StartPrivetLister(const scoped_refptr<
1544 local_discovery::ServiceDiscoverySharedClient>& client) { 1544 local_discovery::ServiceDiscoverySharedClient>& client) {
1545 if (!PrivetPrintingEnabled()) 1545 if (!PrivetPrintingEnabled())
1546 return web_ui()->CallJavascriptFunction("onPrivetPrinterSearchDone"); 1546 return web_ui()->CallJavascriptFunction("onPrivetPrinterSearchDone");
1547 1547
1548 Profile* profile = Profile::FromWebUI(web_ui()); 1548 Profile* profile = Profile::FromWebUI(web_ui());
1549 DCHECK(!service_discovery_client_.get() || 1549 DCHECK(!service_discovery_client_.get() ||
1550 service_discovery_client_.get() == client.get()); 1550 service_discovery_client_.get() == client.get());
1551 service_discovery_client_ = client; 1551 service_discovery_client_ = client;
1552 printer_lister_.reset(new local_discovery::PrivetLocalPrinterLister( 1552 printer_lister_.reset(new cloud_print::PrivetLocalPrinterLister(
1553 service_discovery_client_.get(), profile->GetRequestContext(), this)); 1553 service_discovery_client_.get(), profile->GetRequestContext(), this));
1554 printer_lister_->Start(); 1554 printer_lister_->Start();
1555 } 1555 }
1556 1556
1557 void PrintPreviewHandler::LocalPrinterChanged( 1557 void PrintPreviewHandler::LocalPrinterChanged(
1558 bool added, 1558 bool added,
1559 const std::string& name, 1559 const std::string& name,
1560 bool has_local_printing, 1560 bool has_local_printing,
1561 const local_discovery::DeviceDescription& description) { 1561 const cloud_print::DeviceDescription& description) {
1562 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 1562 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
1563 if (has_local_printing || 1563 if (has_local_printing ||
1564 command_line->HasSwitch(switches::kEnablePrintPreviewRegisterPromos)) { 1564 command_line->HasSwitch(switches::kEnablePrintPreviewRegisterPromos)) {
1565 base::DictionaryValue info; 1565 base::DictionaryValue info;
1566 FillPrinterDescription(name, description, has_local_printing, &info); 1566 FillPrinterDescription(name, description, has_local_printing, &info);
1567 web_ui()->CallJavascriptFunction("onPrivetPrinterChanged", info); 1567 web_ui()->CallJavascriptFunction("onPrivetPrinterChanged", info);
1568 } 1568 }
1569 } 1569 }
1570 1570
1571 void PrintPreviewHandler::LocalPrinterRemoved(const std::string& name) { 1571 void PrintPreviewHandler::LocalPrinterRemoved(const std::string& name) {
1572 } 1572 }
1573 1573
1574 void PrintPreviewHandler::LocalPrinterCacheFlushed() { 1574 void PrintPreviewHandler::LocalPrinterCacheFlushed() {
1575 } 1575 }
1576 1576
1577 void PrintPreviewHandler::PrivetCapabilitiesUpdateClient( 1577 void PrintPreviewHandler::PrivetCapabilitiesUpdateClient(
1578 scoped_ptr<local_discovery::PrivetHTTPClient> http_client) { 1578 scoped_ptr<cloud_print::PrivetHTTPClient> http_client) {
1579 if (!PrivetUpdateClient(std::move(http_client))) 1579 if (!PrivetUpdateClient(std::move(http_client)))
1580 return; 1580 return;
1581 1581
1582 privet_capabilities_operation_ = 1582 privet_capabilities_operation_ =
1583 privet_http_client_->CreateCapabilitiesOperation( 1583 privet_http_client_->CreateCapabilitiesOperation(
1584 base::Bind(&PrintPreviewHandler::OnPrivetCapabilities, 1584 base::Bind(&PrintPreviewHandler::OnPrivetCapabilities,
1585 base::Unretained(this))); 1585 base::Unretained(this)));
1586 privet_capabilities_operation_->Start(); 1586 privet_capabilities_operation_->Start();
1587 } 1587 }
1588 1588
1589 bool PrintPreviewHandler::PrivetUpdateClient( 1589 bool PrintPreviewHandler::PrivetUpdateClient(
1590 scoped_ptr<local_discovery::PrivetHTTPClient> http_client) { 1590 scoped_ptr<cloud_print::PrivetHTTPClient> http_client) {
1591 if (!http_client) { 1591 if (!http_client) {
1592 SendPrivetCapabilitiesError(privet_http_resolution_->GetName()); 1592 SendPrivetCapabilitiesError(privet_http_resolution_->GetName());
1593 privet_http_resolution_.reset(); 1593 privet_http_resolution_.reset();
1594 return false; 1594 return false;
1595 } 1595 }
1596 1596
1597 privet_local_print_operation_.reset(); 1597 privet_local_print_operation_.reset();
1598 privet_capabilities_operation_.reset(); 1598 privet_capabilities_operation_.reset();
1599 privet_http_client_ = local_discovery::PrivetV1HTTPClient::CreateDefault( 1599 privet_http_client_ = cloud_print::PrivetV1HTTPClient::CreateDefault(
1600 std::move(http_client)); 1600 std::move(http_client));
1601 1601
1602 privet_http_resolution_.reset(); 1602 privet_http_resolution_.reset();
1603 1603
1604 return true; 1604 return true;
1605 } 1605 }
1606 1606
1607 void PrintPreviewHandler::PrivetLocalPrintUpdateClient( 1607 void PrintPreviewHandler::PrivetLocalPrintUpdateClient(
1608 std::string print_ticket, 1608 std::string print_ticket,
1609 std::string capabilities, 1609 std::string capabilities,
1610 gfx::Size page_size, 1610 gfx::Size page_size,
1611 scoped_ptr<local_discovery::PrivetHTTPClient> http_client) { 1611 scoped_ptr<cloud_print::PrivetHTTPClient> http_client) {
1612 if (!PrivetUpdateClient(std::move(http_client))) 1612 if (!PrivetUpdateClient(std::move(http_client)))
1613 return; 1613 return;
1614 1614
1615 StartPrivetLocalPrint(print_ticket, capabilities, page_size); 1615 StartPrivetLocalPrint(print_ticket, capabilities, page_size);
1616 } 1616 }
1617 1617
1618 void PrintPreviewHandler::StartPrivetLocalPrint(const std::string& print_ticket, 1618 void PrintPreviewHandler::StartPrivetLocalPrint(const std::string& print_ticket,
1619 const std::string& capabilities, 1619 const std::string& capabilities,
1620 const gfx::Size& page_size) { 1620 const gfx::Size& page_size) {
1621 privet_local_print_operation_ = 1621 privet_local_print_operation_ =
(...skipping 25 matching lines...) Expand all
1647 } 1647 }
1648 1648
1649 privet_local_print_operation_->Start(); 1649 privet_local_print_operation_->Start();
1650 } 1650 }
1651 1651
1652 1652
1653 void PrintPreviewHandler::OnPrivetCapabilities( 1653 void PrintPreviewHandler::OnPrivetCapabilities(
1654 const base::DictionaryValue* capabilities) { 1654 const base::DictionaryValue* capabilities) {
1655 std::string name = privet_capabilities_operation_->GetHTTPClient()->GetName(); 1655 std::string name = privet_capabilities_operation_->GetHTTPClient()->GetName();
1656 1656
1657 if (!capabilities || capabilities->HasKey(local_discovery::kPrivetKeyError) || 1657 if (!capabilities || capabilities->HasKey(cloud_print::kPrivetKeyError) ||
1658 !printer_lister_) { 1658 !printer_lister_) {
1659 SendPrivetCapabilitiesError(name); 1659 SendPrivetCapabilitiesError(name);
1660 return; 1660 return;
1661 } 1661 }
1662 1662
1663 base::DictionaryValue printer_info; 1663 base::DictionaryValue printer_info;
1664 const local_discovery::DeviceDescription* description = 1664 const cloud_print::DeviceDescription* description =
1665 printer_lister_->GetDeviceDescription(name); 1665 printer_lister_->GetDeviceDescription(name);
1666 1666
1667 if (!description) { 1667 if (!description) {
1668 SendPrivetCapabilitiesError(name); 1668 SendPrivetCapabilitiesError(name);
1669 return; 1669 return;
1670 } 1670 }
1671 1671
1672 FillPrinterDescription(name, *description, true, &printer_info); 1672 FillPrinterDescription(name, *description, true, &printer_info);
1673 1673
1674 web_ui()->CallJavascriptFunction( 1674 web_ui()->CallJavascriptFunction(
(...skipping 20 matching lines...) Expand all
1695 device_name, 1695 device_name,
1696 base::Bind(&PrintPreviewHandler::PrivetLocalPrintUpdateClient, 1696 base::Bind(&PrintPreviewHandler::PrivetLocalPrintUpdateClient,
1697 base::Unretained(this), 1697 base::Unretained(this),
1698 ticket, 1698 ticket,
1699 capabilities, 1699 capabilities,
1700 page_size)); 1700 page_size));
1701 } 1701 }
1702 1702
1703 bool PrintPreviewHandler::CreatePrivetHTTP( 1703 bool PrintPreviewHandler::CreatePrivetHTTP(
1704 const std::string& name, 1704 const std::string& name,
1705 const local_discovery::PrivetHTTPAsynchronousFactory::ResultCallback& 1705 const cloud_print::PrivetHTTPAsynchronousFactory::ResultCallback&
1706 callback) { 1706 callback) {
1707 const local_discovery::DeviceDescription* device_description = 1707 const cloud_print::DeviceDescription* device_description =
1708 printer_lister_ ? printer_lister_->GetDeviceDescription(name) : NULL; 1708 printer_lister_ ? printer_lister_->GetDeviceDescription(name) : NULL;
1709 1709
1710 if (!device_description) { 1710 if (!device_description) {
1711 SendPrivetCapabilitiesError(name); 1711 SendPrivetCapabilitiesError(name);
1712 return false; 1712 return false;
1713 } 1713 }
1714 1714
1715 privet_http_factory_ = 1715 privet_http_factory_ =
1716 local_discovery::PrivetHTTPAsynchronousFactory::CreateInstance( 1716 cloud_print::PrivetHTTPAsynchronousFactory::CreateInstance(
1717 Profile::FromWebUI(web_ui())->GetRequestContext()); 1717 Profile::FromWebUI(web_ui())->GetRequestContext());
1718 privet_http_resolution_ = privet_http_factory_->CreatePrivetHTTP(name); 1718 privet_http_resolution_ = privet_http_factory_->CreatePrivetHTTP(name);
1719 privet_http_resolution_->Start(device_description->address, callback); 1719 privet_http_resolution_->Start(device_description->address, callback);
1720 1720
1721 return true; 1721 return true;
1722 } 1722 }
1723 1723
1724 void PrintPreviewHandler::OnPrivetPrintingDone( 1724 void PrintPreviewHandler::OnPrivetPrintingDone(
1725 const local_discovery::PrivetLocalPrintOperation* print_operation) { 1725 const cloud_print::PrivetLocalPrintOperation* print_operation) {
1726 ClosePreviewDialog(); 1726 ClosePreviewDialog();
1727 } 1727 }
1728 1728
1729 void PrintPreviewHandler::OnPrivetPrintingError( 1729 void PrintPreviewHandler::OnPrivetPrintingError(
1730 const local_discovery::PrivetLocalPrintOperation* print_operation, 1730 const cloud_print::PrivetLocalPrintOperation* print_operation,
1731 int http_code) { 1731 int http_code) {
1732 base::FundamentalValue http_code_value(http_code); 1732 base::FundamentalValue http_code_value(http_code);
1733 web_ui()->CallJavascriptFunction("onPrivetPrintFailed", http_code_value); 1733 web_ui()->CallJavascriptFunction("onPrivetPrintFailed", http_code_value);
1734 } 1734 }
1735 1735
1736 void PrintPreviewHandler::FillPrinterDescription( 1736 void PrintPreviewHandler::FillPrinterDescription(
1737 const std::string& name, 1737 const std::string& name,
1738 const local_discovery::DeviceDescription& description, 1738 const cloud_print::DeviceDescription& description,
1739 bool has_local_printing, 1739 bool has_local_printing,
1740 base::DictionaryValue* printer_value) { 1740 base::DictionaryValue* printer_value) {
1741 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 1741 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
1742 1742
1743 printer_value->SetString("serviceName", name); 1743 printer_value->SetString("serviceName", name);
1744 printer_value->SetString("name", description.name); 1744 printer_value->SetString("name", description.name);
1745 printer_value->SetBoolean("hasLocalPrinting", has_local_printing); 1745 printer_value->SetBoolean("hasLocalPrinting", has_local_printing);
1746 printer_value->SetBoolean( 1746 printer_value->SetBoolean(
1747 "isUnregistered", 1747 "isUnregistered",
1748 description.id.empty() && 1748 description.id.empty() &&
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
1820 1820
1821 void PrintPreviewHandler::UnregisterForGaiaCookieChanges() { 1821 void PrintPreviewHandler::UnregisterForGaiaCookieChanges() {
1822 if (gaia_cookie_manager_service_) 1822 if (gaia_cookie_manager_service_)
1823 gaia_cookie_manager_service_->RemoveObserver(this); 1823 gaia_cookie_manager_service_->RemoveObserver(this);
1824 } 1824 }
1825 1825
1826 void PrintPreviewHandler::SetPdfSavedClosureForTesting( 1826 void PrintPreviewHandler::SetPdfSavedClosureForTesting(
1827 const base::Closure& closure) { 1827 const base::Closure& closure) {
1828 pdf_file_saved_closure_ = closure; 1828 pdf_file_saved_closure_ = closure;
1829 } 1829 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698