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

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: Fixed compilation error. Created 7 years, 4 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::CreateServiceMock()) {}
19
20 NetworkingPrivateHandler::~NetworkingPrivateHandler() {}
21
22 bool NetworkingPrivateHandler::OnMessageReceived(const IPC::Message& message) {
23 bool handled = true;
24 IPC_BEGIN_MESSAGE_MAP(NetworkingPrivateHandler, message)
25 IPC_MESSAGE_HANDLER(NetworkingPrivateMsg_GetProperties, OnGetPropertiesStart)
26 IPC_MESSAGE_HANDLER(NetworkingPrivateMsg_SetProperties, OnSetPropertiesStart)
27 IPC_MESSAGE_HANDLER(NetworkingPrivateMsg_StartConnect, OnStartConnectStart)
28 IPC_MESSAGE_HANDLER(NetworkingPrivateMsg_StartDisconnect,
29 OnStartDisconnectStart)
30 IPC_MESSAGE_HANDLER(NetworkingPrivateMsg_GetVisibleNetworks,
31 OnGetVisibleNetworks)
32 IPC_MESSAGE_HANDLER(NetworkingPrivateMsg_RequestNetworkScan,
33 OnRequestNetworkScan)
34 IPC_MESSAGE_UNHANDLED(handled = false)
35 IPC_END_MESSAGE_MAP()
36 return handled;
37 }
38
39 void NetworkingPrivateHandler::OnGetPropertiesStart(
40 const std::string& network_guid) {
41 wifi_service_->GetProperties(
42 network_guid,
43 base::Bind(&NetworkingPrivateHandler::OnGetPropertiesSucceeded,
44 base::Unretained(this)),
45 base::Bind(&NetworkingPrivateHandler::OnGetPropertiesFailed,
46 base::Unretained(this)));
47 }
48
49 void NetworkingPrivateHandler::OnGetPropertiesSucceeded(
50 const std::string& network_guid,
51 const WiFiService::NetworkProperties& properties) {
52 scoped_ptr<DictionaryValue> properties_value(properties.ToValue(false));
53 Send(new NetworkingPrivateMsg_GetProperties_Succeeded(network_guid,
54 *properties_value));
55 }
56
57 void NetworkingPrivateHandler::OnGetPropertiesFailed(
58 const std::string& error_name,
59 scoped_ptr<base::DictionaryValue> error_data) {
60 Send(new NetworkingPrivateMsg_GetProperties_Failed(error_name, *error_data));
61 }
62
63 void NetworkingPrivateHandler::OnSetPropertiesStart(
64 const std::string& network_guid,
65 const base::DictionaryValue& properties) {
66 wifi_service_->SetProperties(
67 network_guid,
68 properties,
69 base::Bind(&NetworkingPrivateHandler::OnSetPropertiesSucceeded,
70 base::Unretained(this)),
71 base::Bind(&NetworkingPrivateHandler::OnSetPropertiesFailed,
72 base::Unretained(this)));
73 }
74
75 void NetworkingPrivateHandler::OnSetPropertiesSucceeded(
76 const std::string& network_guid) {
77 Send(new NetworkingPrivateMsg_SetProperties_Succeeded(network_guid));
78 }
79
80 void NetworkingPrivateHandler::OnSetPropertiesFailed(
81 const std::string& error_name,
82 scoped_ptr<base::DictionaryValue> error_data) {
83 Send(new NetworkingPrivateMsg_SetProperties_Failed(error_name, *error_data));
84 }
85
86 void NetworkingPrivateHandler::OnStartConnectStart(
87 const std::string& network_guid) {
88 wifi_service_->StartConnect(
89 network_guid,
90 base::Bind(&NetworkingPrivateHandler::OnStartConnectSucceeded,
91 base::Unretained(this)),
92 base::Bind(&NetworkingPrivateHandler::OnStartConnectFailed,
93 base::Unretained(this)));
94 }
95
96 void NetworkingPrivateHandler::OnStartConnectSucceeded(
97 const std::string& network_guid) {
98 Send(new NetworkingPrivateMsg_StartConnect_Succeeded(network_guid));
99 std::vector<std::string> networks_list(1, network_guid);
100 Send(new NetworkingPrivateMsg_NetworksChanged_Event(networks_list));
101
102 // Generate NetworkListChanged event.
103 OnRequestNetworkScan();
104 }
105
106 void NetworkingPrivateHandler::OnStartConnectFailed(
107 const std::string& error_name,
108 scoped_ptr<base::DictionaryValue> error_data) {
109 Send(new NetworkingPrivateMsg_StartConnect_Failed(error_name, *error_data));
110 }
111
112 void NetworkingPrivateHandler::OnStartDisconnectStart(
113 const std::string& network_guid) {
114 wifi_service_->StartDisconnect(
115 network_guid,
116 base::Bind(&NetworkingPrivateHandler::OnStartDisconnectSucceeded,
117 base::Unretained(this)),
118 base::Bind(&NetworkingPrivateHandler::OnStartDisconnectFailed,
119 base::Unretained(this)));
120 }
121
122 void NetworkingPrivateHandler::OnStartDisconnectSucceeded(
123 const std::string& network_guid) {
124 Send(new NetworkingPrivateMsg_StartDisconnect_Succeeded(network_guid));
125 std::vector<std::string> networks_list(1, network_guid);
126 Send(new NetworkingPrivateMsg_NetworksChanged_Event(networks_list));
127 }
128
129 void NetworkingPrivateHandler::OnStartDisconnectFailed(
130 const std::string& error_name,
131 scoped_ptr<base::DictionaryValue> error_data) {
132 Send(
133 new NetworkingPrivateMsg_StartDisconnect_Failed(error_name, *error_data));
134 }
135
136 void NetworkingPrivateHandler::OnRequestNetworkScan() {
137 wifi_service_->GetVisibleNetworks(
138 base::Bind(&NetworkingPrivateHandler::OnNetworkScanSucceeded,
139 base::Unretained(this)),
140 base::Bind(&NetworkingPrivateHandler::OnNetworkScanFailed,
141 base::Unretained(this)));
142 }
143
144 void NetworkingPrivateHandler::OnNetworkScanSucceeded(
145 const WiFiService::NetworkList& network_list) {
146 std::vector<std::string> list;
147 for (WiFiService::NetworkList::const_iterator it = network_list.begin();
148 it != network_list.end();
149 ++it) {
150 list.push_back(it->guid);
151 }
152
153 Send(new NetworkingPrivateMsg_NetworkListChanged_Event(list));
154 }
155
156 void NetworkingPrivateHandler::OnNetworkScanFailed(
157 const std::string& error_name,
158 scoped_ptr<base::DictionaryValue> error_data) {}
159
160 void NetworkingPrivateHandler::OnGetVisibleNetworks() {
161 wifi_service_->GetVisibleNetworks(
162 base::Bind(&NetworkingPrivateHandler::OnGetVisibleNetworksSucceeded,
163 base::Unretained(this)),
164 base::Bind(&NetworkingPrivateHandler::OnGetVisibleNetworksFailed,
165 base::Unretained(this)));
166 }
167
168 void NetworkingPrivateHandler::OnGetVisibleNetworksSucceeded(
169 const WiFiService::NetworkList& network_list) {
170 scoped_ptr<ListValue> visible_networks(new ListValue());
171 for (WiFiService::NetworkList::const_iterator it = network_list.begin();
172 it != network_list.end();
173 ++it) {
174 scoped_ptr<DictionaryValue> network(it->ToValue(true));
175 visible_networks->Append(network.release());
176 }
177
178 Send(new NetworkingPrivateMsg_GetVisibleNetworksSucceeded(*visible_networks));
179 }
180
181 void NetworkingPrivateHandler::OnGetVisibleNetworksFailed(
182 const std::string& error_name,
183 scoped_ptr<base::DictionaryValue> error_data) {}
184
185 // static
186 bool NetworkingPrivateHandler::Send(IPC::Message* message) {
187 return content::UtilityThread::Get()->Send(message);
188 }
189
190 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698