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

Side by Side Diff: chrome/browser/ui/webui/local_discovery/local_discovery_ui_handler.h

Issue 284223004: List cloud devices in chrome://devices page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fri 05/16/2014 12:52:36.94 Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef CHROME_BROWSER_UI_WEBUI_LOCAL_DISCOVERY_LOCAL_DISCOVERY_UI_HANDLER_H_ 5 #ifndef CHROME_BROWSER_UI_WEBUI_LOCAL_DISCOVERY_LOCAL_DISCOVERY_UI_HANDLER_H_
6 #define CHROME_BROWSER_UI_WEBUI_LOCAL_DISCOVERY_LOCAL_DISCOVERY_UI_HANDLER_H_ 6 #define CHROME_BROWSER_UI_WEBUI_LOCAL_DISCOVERY_LOCAL_DISCOVERY_UI_HANDLER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/cancelable_callback.h" 12 #include "base/cancelable_callback.h"
13 #include "base/prefs/pref_member.h" 13 #include "base/prefs/pref_member.h"
14 #include "chrome/browser/local_discovery/cloud_device_list.h"
14 #include "chrome/browser/local_discovery/cloud_print_printer_list.h" 15 #include "chrome/browser/local_discovery/cloud_print_printer_list.h"
15 #include "chrome/browser/local_discovery/privet_device_lister.h" 16 #include "chrome/browser/local_discovery/privet_device_lister.h"
16 #include "chrome/browser/local_discovery/privet_http.h" 17 #include "chrome/browser/local_discovery/privet_http.h"
17 #include "components/signin/core/browser/signin_manager.h" 18 #include "components/signin/core/browser/signin_manager.h"
18 #include "content/public/browser/web_ui_message_handler.h" 19 #include "content/public/browser/web_ui_message_handler.h"
19 20
20 #if defined(ENABLE_FULL_PRINTING) && !defined(OS_CHROMEOS) 21 #if defined(ENABLE_FULL_PRINTING) && !defined(OS_CHROMEOS)
21 #define CLOUD_PRINT_CONNECTOR_UI_AVAILABLE 22 #define CLOUD_PRINT_CONNECTOR_UI_AVAILABLE
22 #endif 23 #endif
23 24
24 // TODO(noamsml): Factor out full registration flow into single class 25 // TODO(noamsml): Factor out full registration flow into single class
25 namespace local_discovery { 26 namespace local_discovery {
26 27
27 class PrivetConfirmApiCallFlow; 28 class PrivetConfirmApiCallFlow;
28 class PrivetHTTPAsynchronousFactory; 29 class PrivetHTTPAsynchronousFactory;
29 class PrivetHTTPResolution; 30 class PrivetHTTPResolution;
30 class ServiceDiscoverySharedClient; 31 class ServiceDiscoverySharedClient;
31 32
32 // UI Handler for chrome://devices/ 33 // UI Handler for chrome://devices/
33 // It listens to local discovery notifications and passes those notifications 34 // It listens to local discovery notifications and passes those notifications
34 // into the Javascript to update the page. 35 // into the Javascript to update the page.
35 class LocalDiscoveryUIHandler : public content::WebUIMessageHandler, 36 class LocalDiscoveryUIHandler : public content::WebUIMessageHandler,
36 public PrivetRegisterOperation::Delegate, 37 public PrivetRegisterOperation::Delegate,
37 public PrivetDeviceLister::Delegate, 38 public PrivetDeviceLister::Delegate,
38 public CloudPrintPrinterList::Delegate, 39 public CloudPrintPrinterList::Delegate,
40 public CloudDeviceList::Delegate,
39 public SigninManagerBase::Observer { 41 public SigninManagerBase::Observer {
40 public: 42 public:
41 LocalDiscoveryUIHandler(); 43 LocalDiscoveryUIHandler();
42 virtual ~LocalDiscoveryUIHandler(); 44 virtual ~LocalDiscoveryUIHandler();
43 45
44 static bool GetHasVisible(); 46 static bool GetHasVisible();
45 47
46 // WebUIMessageHandler implementation. 48 // WebUIMessageHandler implementation.
47 virtual void RegisterMessages() OVERRIDE; 49 virtual void RegisterMessages() OVERRIDE;
48 50
(...skipping 18 matching lines...) Expand all
67 virtual void DeviceChanged(bool added, 69 virtual void DeviceChanged(bool added,
68 const std::string& name, 70 const std::string& name,
69 const DeviceDescription& description) OVERRIDE; 71 const DeviceDescription& description) OVERRIDE;
70 72
71 virtual void DeviceRemoved(const std::string& name) OVERRIDE; 73 virtual void DeviceRemoved(const std::string& name) OVERRIDE;
72 74
73 virtual void DeviceCacheFlushed() OVERRIDE; 75 virtual void DeviceCacheFlushed() OVERRIDE;
74 76
75 // CloudPrintPrinterList::Delegate implementation. 77 // CloudPrintPrinterList::Delegate implementation.
76 virtual void OnCloudPrintPrinterListReady() OVERRIDE; 78 virtual void OnCloudPrintPrinterListReady() OVERRIDE;
79 virtual void OnCloudPrintPrinterListUnavailable() OVERRIDE;
77 80
78 virtual void OnCloudPrintPrinterListUnavailable() OVERRIDE; 81 // CloudDeviceList::Delegate implementation.
82 virtual void OnCloudDeviceListReady() OVERRIDE;
83 virtual void OnCloudDeviceListUnavailable() OVERRIDE;
79 84
80 // SigninManagerBase::Observer implementation. 85 // SigninManagerBase::Observer implementation.
81 virtual void GoogleSigninSucceeded(const std::string& username, 86 virtual void GoogleSigninSucceeded(const std::string& username,
82 const std::string& password) OVERRIDE; 87 const std::string& password) OVERRIDE;
83 88
84 virtual void GoogleSignedOut(const std::string& username) OVERRIDE; 89 virtual void GoogleSignedOut(const std::string& username) OVERRIDE;
85 90
86 private: 91 private:
87 typedef std::map<std::string, DeviceDescription> DeviceDescriptionMap; 92 typedef std::map<std::string, DeviceDescription> DeviceDescriptionMap;
88 93
89 // Message handlers: 94 // Message handlers:
90 // For when the page is ready to receive device notifications. 95 // For when the page is ready to receive device notifications.
91 void HandleStart(const base::ListValue* args); 96 void HandleStart(const base::ListValue* args);
92 97
93 // For when a visibility change occurs. 98 // For when a visibility change occurs.
94 void HandleIsVisible(const base::ListValue* args); 99 void HandleIsVisible(const base::ListValue* args);
95 100
96 // For when a user choice is made. 101 // For when a user choice is made.
97 void HandleRegisterDevice(const base::ListValue* args); 102 void HandleRegisterDevice(const base::ListValue* args);
98 103
99 // For when a cancelation is made. 104 // For when a cancellation is made.
100 void HandleCancelRegistration(const base::ListValue* args); 105 void HandleCancelRegistration(const base::ListValue* args);
101 106
102 // For requesting the printer list. 107 // For requesting the device list.
103 void HandleRequestPrinterList(const base::ListValue* args); 108 void HandleRequestDeviceList(const base::ListValue* args);
104 109
105 // For opening URLs (relative to the Google Cloud Print base URL) in a new 110 // For opening URLs (relative to the Google Cloud Print base URL) in a new
106 // tab. 111 // tab.
107 void HandleOpenCloudPrintURL(const base::ListValue* args); 112 void HandleOpenCloudPrintURL(const base::ListValue* args);
108 113
109 // For showing sync login UI. 114 // For showing sync login UI.
110 void HandleShowSyncUI(const base::ListValue* args); 115 void HandleShowSyncUI(const base::ListValue* args);
111 116
112 // For when the IP address of the printer has been resolved for registration. 117 // For when the IP address of the printer has been resolved for registration.
113 void StartRegisterHTTP( 118 void StartRegisterHTTP(
(...skipping 14 matching lines...) Expand all
128 void SetIsVisible(bool visible); 133 void SetIsVisible(bool visible);
129 134
130 // Get the sync account email. 135 // Get the sync account email.
131 std::string GetSyncAccount(); 136 std::string GetSyncAccount();
132 137
133 // Reset and cancel the current registration. 138 // Reset and cancel the current registration.
134 void ResetCurrentRegistration(); 139 void ResetCurrentRegistration();
135 140
136 scoped_ptr<base::DictionaryValue> CreatePrinterInfo( 141 scoped_ptr<base::DictionaryValue> CreatePrinterInfo(
137 const CloudPrintPrinterList::PrinterDetails& description); 142 const CloudPrintPrinterList::PrinterDetails& description);
143 scoped_ptr<base::DictionaryValue> CreateDeviceInfo(
144 const CloudDeviceList::DeviceDetails& description);
138 145
139 // Announcement hasn't been sent for a certain time after registration 146 // Announcement hasn't been sent for a certain time after registration
140 // finished. Consider it failed. 147 // finished. Consider it failed.
141 // TODO(noamsml): Re-resolve service first. 148 // TODO(noamsml): Re-resolve service first.
142 void OnAnnouncementTimeoutReached(); 149 void OnAnnouncementTimeoutReached();
143 150
144 void CheckUserLoggedIn(); 151 void CheckUserLoggedIn();
145 152
153 void CheckListingDone();
154
146 #if defined(CLOUD_PRINT_CONNECTOR_UI_AVAILABLE) 155 #if defined(CLOUD_PRINT_CONNECTOR_UI_AVAILABLE)
147 void StartCloudPrintConnector(); 156 void StartCloudPrintConnector();
148 void OnCloudPrintPrefsChanged(); 157 void OnCloudPrintPrefsChanged();
149 void ShowCloudPrintSetupDialog(const base::ListValue* args); 158 void ShowCloudPrintSetupDialog(const base::ListValue* args);
150 void HandleDisableCloudPrintConnector(const base::ListValue* args); 159 void HandleDisableCloudPrintConnector(const base::ListValue* args);
151 void SetupCloudPrintConnectorSection(); 160 void SetupCloudPrintConnectorSection();
152 void RemoveCloudPrintConnectorSection(); 161 void RemoveCloudPrintConnectorSection();
153 void RefreshCloudPrintStatusFromService(); 162 void RefreshCloudPrintStatusFromService();
154 #endif 163 #endif
155 164
(...skipping 19 matching lines...) Expand all
175 scoped_ptr<PrivetHTTPResolution> privet_resolution_; 184 scoped_ptr<PrivetHTTPResolution> privet_resolution_;
176 185
177 // A map of current device descriptions provided by the PrivetDeviceLister. 186 // A map of current device descriptions provided by the PrivetDeviceLister.
178 DeviceDescriptionMap device_descriptions_; 187 DeviceDescriptionMap device_descriptions_;
179 188
180 // Whether or not the page is marked as visible. 189 // Whether or not the page is marked as visible.
181 bool is_visible_; 190 bool is_visible_;
182 191
183 // List of printers from cloud print. 192 // List of printers from cloud print.
184 scoped_ptr<CloudPrintPrinterList> cloud_print_printer_list_; 193 scoped_ptr<CloudPrintPrinterList> cloud_print_printer_list_;
194 scoped_ptr<CloudDeviceList> cloud_device_list_;
195 scoped_ptr<base::ListValue> devices_list_;
185 196
186 #if defined(CLOUD_PRINT_CONNECTOR_UI_AVAILABLE) 197 #if defined(CLOUD_PRINT_CONNECTOR_UI_AVAILABLE)
187 StringPrefMember cloud_print_connector_email_; 198 StringPrefMember cloud_print_connector_email_;
188 BooleanPrefMember cloud_print_connector_enabled_; 199 BooleanPrefMember cloud_print_connector_enabled_;
189 bool cloud_print_connector_ui_enabled_; 200 bool cloud_print_connector_ui_enabled_;
190 #endif 201 #endif
191 202
192 DISALLOW_COPY_AND_ASSIGN(LocalDiscoveryUIHandler); 203 DISALLOW_COPY_AND_ASSIGN(LocalDiscoveryUIHandler);
193 }; 204 };
194 205
195 #undef CLOUD_PRINT_CONNECTOR_UI_AVAILABLE 206 #undef CLOUD_PRINT_CONNECTOR_UI_AVAILABLE
196 207
197 } // namespace local_discovery 208 } // namespace local_discovery
198 #endif // CHROME_BROWSER_UI_WEBUI_LOCAL_DISCOVERY_LOCAL_DISCOVERY_UI_HANDLER_H_ 209 #endif // CHROME_BROWSER_UI_WEBUI_LOCAL_DISCOVERY_LOCAL_DISCOVERY_UI_HANDLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698