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

Side by Side Diff: chrome/utility/networking_private_handler.cc

Issue 22295002: Base infrastructure for Networking Private API on Windows and Mac. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reset DHCP after WiFi Connect to speed up the connection after factory reset. Created 7 years, 3 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
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/utility/networking_private_handler.h"
6
7 #include "base/bind.h"
8 #include "base/json/json_reader.h"
9 #include "base/memory/ref_counted.h"
10 #include "base/message_loop/message_loop_proxy.h"
11 #include "base/threading/thread.h"
12 #include "chrome/common/networking_private_messages.h"
13 #include "content/public/utility/utility_thread.h"
14
15 namespace chrome {
16
17 NetworkingPrivateHandler::NetworkingPrivateHandler()
18 : wifi_service_(WiFiService::CreateService()) {
19 wifi_service_->SetNetworksChangedObserver(
20 base::Bind(&NetworkingPrivateHandler::OnNetworksChangedEvent,
21 base::Unretained(this)));
22 wifi_service_->SetNetworkListChangedObserver(
23 base::Bind(&NetworkingPrivateHandler::OnNetworkListChangedEvent,
24 base::Unretained(this)));
25 }
26
27 NetworkingPrivateHandler::~NetworkingPrivateHandler() {}
28
29 bool NetworkingPrivateHandler::OnMessageReceived(const IPC::Message& message) {
30 bool handled = true;
31 IPC_BEGIN_MESSAGE_MAP(NetworkingPrivateHandler, message)
32 IPC_MESSAGE_HANDLER(NetworkingPrivateMsg_UseWiFiServiceMock,
33 OnUseWiFiServiceMock)
34 IPC_MESSAGE_HANDLER(NetworkingPrivateMsg_GetProperties, OnGetPropertiesStart)
35 IPC_MESSAGE_HANDLER(NetworkingPrivateMsg_SetProperties, OnSetPropertiesStart)
36 IPC_MESSAGE_HANDLER(NetworkingPrivateMsg_StartConnect, OnStartConnectStart)
37 IPC_MESSAGE_HANDLER(NetworkingPrivateMsg_StartDisconnect,
38 OnStartDisconnectStart)
39 IPC_MESSAGE_HANDLER(NetworkingPrivateMsg_GetVisibleNetworks,
40 OnGetVisibleNetworks)
41 IPC_MESSAGE_HANDLER(NetworkingPrivateMsg_RequestNetworkScan,
42 OnRequestNetworkScan)
43 IPC_MESSAGE_UNHANDLED(handled = false)
44 IPC_END_MESSAGE_MAP()
45 return handled;
46 }
47
48 void NetworkingPrivateHandler::OnUseWiFiServiceMock(
49 const base::DictionaryValue& parameters) {
50 wifi_service_.reset(WiFiService::CreateServiceMock());
51 wifi_service_->SetNetworksChangedObserver(
52 base::Bind(&NetworkingPrivateHandler::OnNetworksChangedEvent,
53 base::Unretained(this)));
54 wifi_service_->SetNetworkListChangedObserver(
55 base::Bind(&NetworkingPrivateHandler::OnNetworkListChangedEvent,
56 base::Unretained(this)));
57 }
58
59 void NetworkingPrivateHandler::OnGetPropertiesStart(
60 const std::string& network_guid) {
61 wifi_service_->GetProperties(
62 network_guid,
63 base::Bind(&NetworkingPrivateHandler::OnGetPropertiesSucceeded,
64 base::Unretained(this)),
65 base::Bind(&NetworkingPrivateHandler::OnGetPropertiesFailed,
66 base::Unretained(this)));
67 }
68
69 void NetworkingPrivateHandler::OnGetPropertiesSucceeded(
70 const std::string& network_guid,
71 const WiFiService::NetworkProperties& properties) {
72 scoped_ptr<DictionaryValue> properties_value(properties.ToValue(false));
73 Send(new NetworkingPrivateMsg_GetProperties_Succeeded(network_guid,
74 *properties_value));
75 }
76
77 void NetworkingPrivateHandler::OnGetPropertiesFailed(
78 const std::string& error_name,
79 scoped_ptr<base::DictionaryValue> error_data) {
80 Send(new NetworkingPrivateMsg_GetProperties_Failed(error_name, *error_data));
81 }
82
83 void NetworkingPrivateHandler::OnSetPropertiesStart(
84 const std::string& network_guid,
85 const base::DictionaryValue& properties) {
86 wifi_service_->SetProperties(
87 network_guid,
88 properties,
89 base::Bind(&NetworkingPrivateHandler::OnSetPropertiesSucceeded,
90 base::Unretained(this)),
91 base::Bind(&NetworkingPrivateHandler::OnSetPropertiesFailed,
92 base::Unretained(this)));
93 }
94
95 void NetworkingPrivateHandler::OnSetPropertiesSucceeded(
96 const std::string& network_guid) {
97 Send(new NetworkingPrivateMsg_SetProperties_Succeeded(network_guid));
98 }
99
100 void NetworkingPrivateHandler::OnSetPropertiesFailed(
101 const std::string& error_name,
102 scoped_ptr<base::DictionaryValue> error_data) {
103 Send(new NetworkingPrivateMsg_SetProperties_Failed(error_name, *error_data));
104 }
105
106 void NetworkingPrivateHandler::OnStartConnectStart(
107 const std::string& network_guid) {
108 wifi_service_->StartConnect(
109 network_guid,
110 base::Bind(&NetworkingPrivateHandler::OnStartConnectSucceeded,
111 base::Unretained(this)),
112 base::Bind(&NetworkingPrivateHandler::OnStartConnectFailed,
113 base::Unretained(this)));
114 }
115
116 void NetworkingPrivateHandler::OnStartConnectSucceeded(
117 const std::string& network_guid) {
118 Send(new NetworkingPrivateMsg_StartConnect_Succeeded(network_guid));
119 }
120
121 void NetworkingPrivateHandler::OnStartConnectFailed(
122 const std::string& error_name,
123 scoped_ptr<base::DictionaryValue> error_data) {
124 Send(new NetworkingPrivateMsg_StartConnect_Failed(error_name, *error_data));
125 }
126
127 void NetworkingPrivateHandler::OnStartDisconnectStart(
128 const std::string& network_guid) {
129 wifi_service_->StartDisconnect(
130 network_guid,
131 base::Bind(&NetworkingPrivateHandler::OnStartDisconnectSucceeded,
132 base::Unretained(this)),
133 base::Bind(&NetworkingPrivateHandler::OnStartDisconnectFailed,
134 base::Unretained(this)));
135 }
136
137 void NetworkingPrivateHandler::OnStartDisconnectSucceeded(
138 const std::string& network_guid) {
139 Send(new NetworkingPrivateMsg_StartDisconnect_Succeeded(network_guid));
140 }
141
142 void NetworkingPrivateHandler::OnStartDisconnectFailed(
143 const std::string& error_name,
144 scoped_ptr<base::DictionaryValue> error_data) {
145 Send(
146 new NetworkingPrivateMsg_StartDisconnect_Failed(error_name, *error_data));
147 }
148
149 void NetworkingPrivateHandler::OnRequestNetworkScan() {
150 wifi_service_->GetVisibleNetworks(
151 base::Bind(&NetworkingPrivateHandler::OnNetworkScanSucceeded,
152 base::Unretained(this)),
153 base::Bind(&NetworkingPrivateHandler::OnNetworkScanFailed,
154 base::Unretained(this)));
155 wifi_service_->RequestNetworkScan();
156 }
157
158 void NetworkingPrivateHandler::OnNetworkScanSucceeded(
159 const WiFiService::NetworkList& network_list) {
160 std::vector<std::string> list;
161 for (WiFiService::NetworkList::const_iterator it = network_list.begin();
162 it != network_list.end();
163 ++it) {
164 list.push_back(it->guid);
165 }
166
167 Send(new NetworkingPrivateMsg_NetworkListChanged_Event(list));
168 }
169
170 void NetworkingPrivateHandler::OnNetworkScanFailed(
171 const std::string& error_name,
172 scoped_ptr<base::DictionaryValue> error_data) {}
173
174 void NetworkingPrivateHandler::OnGetVisibleNetworks() {
175 wifi_service_->GetVisibleNetworks(
176 base::Bind(&NetworkingPrivateHandler::OnGetVisibleNetworksSucceeded,
177 base::Unretained(this)),
178 base::Bind(&NetworkingPrivateHandler::OnGetVisibleNetworksFailed,
179 base::Unretained(this)));
180 }
181
182 void NetworkingPrivateHandler::OnGetVisibleNetworksSucceeded(
183 const WiFiService::NetworkList& network_list) {
184 scoped_ptr<ListValue> visible_networks(new ListValue());
185 for (WiFiService::NetworkList::const_iterator it = network_list.begin();
186 it != network_list.end();
187 ++it) {
188 scoped_ptr<DictionaryValue> network(it->ToValue(true));
189 visible_networks->Append(network.release());
190 }
191
192 Send(new NetworkingPrivateMsg_GetVisibleNetworksSucceeded(*visible_networks));
193 }
194
195 void NetworkingPrivateHandler::OnGetVisibleNetworksFailed(
196 const std::string& error_name,
197 scoped_ptr<base::DictionaryValue> error_data) {}
198
199 // static
200 bool NetworkingPrivateHandler::Send(IPC::Message* message) {
201 return content::UtilityThread::Get()->Send(message);
202 }
203
204 void NetworkingPrivateHandler::OnNetworkListChangedEvent(
205 const WiFiService::NetworkGuidList& network_guid_list) {
206 std::vector<std::string> networks(network_guid_list.begin(),
207 network_guid_list.end());
208 Send(new NetworkingPrivateMsg_NetworkListChanged_Event(networks));
209 }
210
211 void NetworkingPrivateHandler::OnNetworksChangedEvent(
212 const WiFiService::NetworkGuidList& network_guid_list) {
213 std::vector<std::string> networks(network_guid_list.begin(),
214 network_guid_list.end());
215 Send(new NetworkingPrivateMsg_NetworksChanged_Event(networks));
216 }
217
218
219 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698