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

Side by Side Diff: chrome/browser/local_discovery/wifi/wifi_manager_nonchromeos.cc

Issue 1061503008: [chrome/browser/local_discovery] favor DCHECK_CURRENTLY_ON for better logs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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
« no previous file with comments | « chrome/browser/local_discovery/service_discovery_shared_client.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/local_discovery/wifi/wifi_manager_nonchromeos.h" 5 #include "chrome/browser/local_discovery/wifi/wifi_manager_nonchromeos.h"
6 6
7 #include "base/cancelable_callback.h" 7 #include "base/cancelable_callback.h"
8 #include "base/threading/sequenced_worker_pool.h" 8 #include "base/threading/sequenced_worker_pool.h"
9 #include "base/threading/thread.h" 9 #include "base/threading/thread.h"
10 #include "components/onc/onc_constants.h" 10 #include "components/onc/onc_constants.h"
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 : wifi_manager_(wifi_manager), 136 : wifi_manager_(wifi_manager),
137 callback_runner_(base::MessageLoopProxy::current()), 137 callback_runner_(base::MessageLoopProxy::current()),
138 weak_factory_(this) { 138 weak_factory_(this) {
139 } 139 }
140 140
141 WifiManagerNonChromeos::WifiServiceWrapper::~WifiServiceWrapper() { 141 WifiManagerNonChromeos::WifiServiceWrapper::~WifiServiceWrapper() {
142 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); 142 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
143 } 143 }
144 144
145 void WifiManagerNonChromeos::WifiServiceWrapper::Start() { 145 void WifiManagerNonChromeos::WifiServiceWrapper::Start() {
146 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); 146 DCHECK_CURRENTLY_ON(content::BrowserThread::FILE);
147 wifi_service_.reset(WiFiService::Create()); 147 wifi_service_.reset(WiFiService::Create());
148 148
149 wifi_service_->Initialize(base::MessageLoopProxy::current()); 149 wifi_service_->Initialize(base::MessageLoopProxy::current());
150 150
151 wifi_service_->SetEventObservers( 151 wifi_service_->SetEventObservers(
152 base::MessageLoopProxy::current(), 152 base::MessageLoopProxy::current(),
153 base::Bind(&WifiServiceWrapper::OnNetworksChangedEvent, AsWeakPtr()), 153 base::Bind(&WifiServiceWrapper::OnNetworksChangedEvent, AsWeakPtr()),
154 base::Bind(&WifiServiceWrapper::OnNetworkListChangedEvent, AsWeakPtr())); 154 base::Bind(&WifiServiceWrapper::OnNetworkListChangedEvent, AsWeakPtr()));
155 155
156 net::NetworkChangeNotifier::AddNetworkChangeObserver(this); 156 net::NetworkChangeNotifier::AddNetworkChangeObserver(this);
157 } 157 }
158 158
159 void WifiManagerNonChromeos::WifiServiceWrapper::GetSSIDList( 159 void WifiManagerNonChromeos::WifiServiceWrapper::GetSSIDList(
160 const WifiManager::SSIDListCallback& callback) { 160 const WifiManager::SSIDListCallback& callback) {
161 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); 161 DCHECK_CURRENTLY_ON(content::BrowserThread::FILE);
162 162
163 scoped_ptr<NetworkPropertiesList> ssid_list(new NetworkPropertiesList); 163 scoped_ptr<NetworkPropertiesList> ssid_list(new NetworkPropertiesList);
164 GetSSIDListInternal(ssid_list.get()); 164 GetSSIDListInternal(ssid_list.get());
165 165
166 callback_runner_->PostTask( 166 callback_runner_->PostTask(
167 FROM_HERE, 167 FROM_HERE,
168 base::Bind(&WifiManagerNonChromeos::PostSSIDListCallback, 168 base::Bind(&WifiManagerNonChromeos::PostSSIDListCallback,
169 wifi_manager_, 169 wifi_manager_,
170 callback, 170 callback,
171 base::Passed(&ssid_list))); 171 base::Passed(&ssid_list)));
172 } 172 }
173 173
174 void WifiManagerNonChromeos::WifiServiceWrapper::ConfigureAndConnectPskNetwork( 174 void WifiManagerNonChromeos::WifiServiceWrapper::ConfigureAndConnectPskNetwork(
175 const std::string& ssid, 175 const std::string& ssid,
176 const std::string& password, 176 const std::string& password,
177 const WifiManager::SuccessCallback& callback) { 177 const WifiManager::SuccessCallback& callback) {
178 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); 178 DCHECK_CURRENTLY_ON(content::BrowserThread::FILE);
179 scoped_ptr<base::DictionaryValue> properties = MakeProperties(ssid, password); 179 scoped_ptr<base::DictionaryValue> properties = MakeProperties(ssid, password);
180 180
181 std::string network_guid; 181 std::string network_guid;
182 std::string error_string; 182 std::string error_string;
183 // Will fail without changing system state if network already exists. 183 // Will fail without changing system state if network already exists.
184 wifi_service_->CreateNetwork( 184 wifi_service_->CreateNetwork(
185 false, properties.Pass(), &network_guid, &error_string); 185 false, properties.Pass(), &network_guid, &error_string);
186 186
187 if (error_string.empty()) { 187 if (error_string.empty()) {
188 ConnectToNetworkByID(network_guid, callback); 188 ConnectToNetworkByID(network_guid, callback);
189 return; 189 return;
190 } 190 }
191 191
192 // If we cannot create the network, attempt to configure and connect to an 192 // If we cannot create the network, attempt to configure and connect to an
193 // existing network. 193 // existing network.
194 if (FindAndConfigureNetwork(ssid, password, &network_guid)) { 194 if (FindAndConfigureNetwork(ssid, password, &network_guid)) {
195 ConnectToNetworkByID(network_guid, callback); 195 ConnectToNetworkByID(network_guid, callback);
196 } else { 196 } else {
197 if (!callback.is_null()) 197 if (!callback.is_null())
198 PostClosure(base::Bind(callback, false /* success */)); 198 PostClosure(base::Bind(callback, false /* success */));
199 } 199 }
200 } 200 }
201 201
202 void WifiManagerNonChromeos::WifiServiceWrapper::OnNetworkListChangedEvent( 202 void WifiManagerNonChromeos::WifiServiceWrapper::OnNetworkListChangedEvent(
203 const std::vector<std::string>& network_guids) { 203 const std::vector<std::string>& network_guids) {
204 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); 204 DCHECK_CURRENTLY_ON(content::BrowserThread::FILE);
205 scoped_ptr<NetworkPropertiesList> ssid_list(new NetworkPropertiesList); 205 scoped_ptr<NetworkPropertiesList> ssid_list(new NetworkPropertiesList);
206 GetSSIDListInternal(ssid_list.get()); 206 GetSSIDListInternal(ssid_list.get());
207 callback_runner_->PostTask( 207 callback_runner_->PostTask(
208 FROM_HERE, 208 FROM_HERE,
209 base::Bind(&WifiManagerNonChromeos::OnNetworkListChanged, 209 base::Bind(&WifiManagerNonChromeos::OnNetworkListChanged,
210 wifi_manager_, 210 wifi_manager_,
211 base::Passed(&ssid_list))); 211 base::Passed(&ssid_list)));
212 } 212 }
213 213
214 void WifiManagerNonChromeos::WifiServiceWrapper::OnNetworksChangedEvent( 214 void WifiManagerNonChromeos::WifiServiceWrapper::OnNetworksChangedEvent(
215 const std::vector<std::string>& network_guids) { 215 const std::vector<std::string>& network_guids) {
216 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); 216 DCHECK_CURRENTLY_ON(content::BrowserThread::FILE);
217 if (connecting_network_guid_.empty() || 217 if (connecting_network_guid_.empty() ||
218 !IsConnected(connecting_network_guid_)) { 218 !IsConnected(connecting_network_guid_)) {
219 return; 219 return;
220 } 220 }
221 221
222 connecting_network_guid_.clear(); 222 connecting_network_guid_.clear();
223 connect_failure_callback_.Cancel(); 223 connect_failure_callback_.Cancel();
224 224
225 if (!connect_success_callback_.is_null()) 225 if (!connect_success_callback_.is_null())
226 PostClosure(base::Bind(connect_success_callback_, true)); 226 PostClosure(base::Bind(connect_success_callback_, true));
227 227
228 connect_success_callback_.Reset(); 228 connect_success_callback_.Reset();
229 } 229 }
230 230
231 base::WeakPtr<WifiManagerNonChromeos::WifiServiceWrapper> 231 base::WeakPtr<WifiManagerNonChromeos::WifiServiceWrapper>
232 WifiManagerNonChromeos::WifiServiceWrapper::AsWeakPtr() { 232 WifiManagerNonChromeos::WifiServiceWrapper::AsWeakPtr() {
233 return weak_factory_.GetWeakPtr(); 233 return weak_factory_.GetWeakPtr();
234 } 234 }
235 235
236 void WifiManagerNonChromeos::WifiServiceWrapper::RequestScan() { 236 void WifiManagerNonChromeos::WifiServiceWrapper::RequestScan() {
237 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); 237 DCHECK_CURRENTLY_ON(content::BrowserThread::FILE);
238 wifi_service_->RequestNetworkScan(); 238 wifi_service_->RequestNetworkScan();
239 } 239 }
240 240
241 void WifiManagerNonChromeos::WifiServiceWrapper::ConnectToNetworkByID( 241 void WifiManagerNonChromeos::WifiServiceWrapper::ConnectToNetworkByID(
242 const std::string& network_guid, 242 const std::string& network_guid,
243 const WifiManager::SuccessCallback& callback) { 243 const WifiManager::SuccessCallback& callback) {
244 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); 244 DCHECK_CURRENTLY_ON(content::BrowserThread::FILE);
245 245
246 std::string connected_network_id = GetConnectedGUID(); 246 std::string connected_network_id = GetConnectedGUID();
247 std::string error_string; 247 std::string error_string;
248 wifi_service_->StartConnect(network_guid, &error_string); 248 wifi_service_->StartConnect(network_guid, &error_string);
249 249
250 if (!error_string.empty()) { 250 if (!error_string.empty()) {
251 LOG(ERROR) << "Could not connect to network by ID: " << error_string; 251 LOG(ERROR) << "Could not connect to network by ID: " << error_string;
252 PostClosure(base::Bind(callback, false /* success */)); 252 PostClosure(base::Bind(callback, false /* success */));
253 wifi_service_->StartConnect(connected_network_id, &error_string); 253 wifi_service_->StartConnect(connected_network_id, &error_string);
254 return; 254 return;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 // connected to. 288 // connected to.
289 if (!connected) 289 if (!connected)
290 wifi_service_->StartConnect(connected_network_guid_, &error_string); 290 wifi_service_->StartConnect(connected_network_guid_, &error_string);
291 291
292 PostClosure(base::Bind(connect_success_callback, connected /* success */)); 292 PostClosure(base::Bind(connect_success_callback, connected /* success */));
293 } 293 }
294 294
295 void WifiManagerNonChromeos::WifiServiceWrapper::RequestNetworkCredentials( 295 void WifiManagerNonChromeos::WifiServiceWrapper::RequestNetworkCredentials(
296 const std::string& ssid, 296 const std::string& ssid,
297 const WifiManager::CredentialsCallback& callback) { 297 const WifiManager::CredentialsCallback& callback) {
298 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); 298 DCHECK_CURRENTLY_ON(content::BrowserThread::FILE);
299 299
300 bool success = true; 300 bool success = true;
301 std::string guid; 301 std::string guid;
302 std::string key; 302 std::string key;
303 303
304 NetworkPropertiesList network_list; 304 NetworkPropertiesList network_list;
305 305
306 GetSSIDListInternal(&network_list); 306 GetSSIDListInternal(&network_list);
307 307
308 for (NetworkPropertiesList::iterator i = network_list.begin(); 308 for (NetworkPropertiesList::iterator i = network_list.begin();
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 } 464 }
465 465
466 WifiManagerNonChromeos::~WifiManagerNonChromeos() { 466 WifiManagerNonChromeos::~WifiManagerNonChromeos() {
467 if (wifi_wrapper_) { 467 if (wifi_wrapper_) {
468 content::BrowserThread::DeleteSoon( 468 content::BrowserThread::DeleteSoon(
469 content::BrowserThread::FILE, FROM_HERE, wifi_wrapper_); 469 content::BrowserThread::FILE, FROM_HERE, wifi_wrapper_);
470 } 470 }
471 } 471 }
472 472
473 void WifiManagerNonChromeos::Start() { 473 void WifiManagerNonChromeos::Start() {
474 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 474 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
475 task_runner_ = content::BrowserThread::GetMessageLoopProxyForThread( 475 task_runner_ = content::BrowserThread::GetMessageLoopProxyForThread(
476 content::BrowserThread::FILE); 476 content::BrowserThread::FILE);
477 477
478 // Allocated on UI thread, but all initialization is done on file 478 // Allocated on UI thread, but all initialization is done on file
479 // thread. Destroyed on file thread, which should be safe since all of the 479 // thread. Destroyed on file thread, which should be safe since all of the
480 // thread-unsafe members are created on the file thread. 480 // thread-unsafe members are created on the file thread.
481 wifi_wrapper_ = new WifiServiceWrapper(weak_factory_.GetWeakPtr()); 481 wifi_wrapper_ = new WifiServiceWrapper(weak_factory_.GetWeakPtr());
482 482
483 task_runner_->PostTask( 483 task_runner_->PostTask(
484 FROM_HERE, 484 FROM_HERE,
485 base::Bind(&WifiServiceWrapper::Start, wifi_wrapper_->AsWeakPtr())); 485 base::Bind(&WifiServiceWrapper::Start, wifi_wrapper_->AsWeakPtr()));
486 } 486 }
487 487
488 void WifiManagerNonChromeos::GetSSIDList(const SSIDListCallback& callback) { 488 void WifiManagerNonChromeos::GetSSIDList(const SSIDListCallback& callback) {
489 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 489 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
490 task_runner_->PostTask(FROM_HERE, 490 task_runner_->PostTask(FROM_HERE,
491 base::Bind(&WifiServiceWrapper::GetSSIDList, 491 base::Bind(&WifiServiceWrapper::GetSSIDList,
492 wifi_wrapper_->AsWeakPtr(), 492 wifi_wrapper_->AsWeakPtr(),
493 callback)); 493 callback));
494 } 494 }
495 495
496 void WifiManagerNonChromeos::RequestScan() { 496 void WifiManagerNonChromeos::RequestScan() {
497 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 497 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
498 task_runner_->PostTask( 498 task_runner_->PostTask(
499 FROM_HERE, 499 FROM_HERE,
500 base::Bind(&WifiServiceWrapper::RequestScan, wifi_wrapper_->AsWeakPtr())); 500 base::Bind(&WifiServiceWrapper::RequestScan, wifi_wrapper_->AsWeakPtr()));
501 } 501 }
502 502
503 void WifiManagerNonChromeos::OnNetworkListChanged( 503 void WifiManagerNonChromeos::OnNetworkListChanged(
504 scoped_ptr<NetworkPropertiesList> ssid_list) { 504 scoped_ptr<NetworkPropertiesList> ssid_list) {
505 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 505 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
506 FOR_EACH_OBSERVER(NetworkListObserver, 506 FOR_EACH_OBSERVER(NetworkListObserver,
507 network_list_observers_, 507 network_list_observers_,
508 OnNetworkListChanged(*ssid_list)); 508 OnNetworkListChanged(*ssid_list));
509 } 509 }
510 510
511 void WifiManagerNonChromeos::PostClosure(const base::Closure& callback) { 511 void WifiManagerNonChromeos::PostClosure(const base::Closure& callback) {
512 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 512 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
513 callback.Run(); 513 callback.Run();
514 } 514 }
515 515
516 void WifiManagerNonChromeos::PostSSIDListCallback( 516 void WifiManagerNonChromeos::PostSSIDListCallback(
517 const SSIDListCallback& callback, 517 const SSIDListCallback& callback,
518 scoped_ptr<NetworkPropertiesList> ssid_list) { 518 scoped_ptr<NetworkPropertiesList> ssid_list) {
519 callback.Run(*ssid_list); 519 callback.Run(*ssid_list);
520 } 520 }
521 521
522 void WifiManagerNonChromeos::ConfigureAndConnectNetwork( 522 void WifiManagerNonChromeos::ConfigureAndConnectNetwork(
523 const std::string& ssid, 523 const std::string& ssid,
524 const WifiCredentials& credentials, 524 const WifiCredentials& credentials,
525 const SuccessCallback& callback) { 525 const SuccessCallback& callback) {
526 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 526 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
527 task_runner_->PostTask( 527 task_runner_->PostTask(
528 FROM_HERE, 528 FROM_HERE,
529 base::Bind(&WifiServiceWrapper::ConfigureAndConnectPskNetwork, 529 base::Bind(&WifiServiceWrapper::ConfigureAndConnectPskNetwork,
530 wifi_wrapper_->AsWeakPtr(), 530 wifi_wrapper_->AsWeakPtr(),
531 ssid, 531 ssid,
532 credentials.psk, 532 credentials.psk,
533 callback)); 533 callback));
534 } 534 }
535 535
536 void WifiManagerNonChromeos::ConnectToNetworkByID( 536 void WifiManagerNonChromeos::ConnectToNetworkByID(
537 const std::string& internal_id, 537 const std::string& internal_id,
538 const SuccessCallback& callback) { 538 const SuccessCallback& callback) {
539 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 539 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
540 task_runner_->PostTask(FROM_HERE, 540 task_runner_->PostTask(FROM_HERE,
541 base::Bind(&WifiServiceWrapper::ConnectToNetworkByID, 541 base::Bind(&WifiServiceWrapper::ConnectToNetworkByID,
542 wifi_wrapper_->AsWeakPtr(), 542 wifi_wrapper_->AsWeakPtr(),
543 internal_id, 543 internal_id,
544 callback)); 544 callback));
545 } 545 }
546 546
547 void WifiManagerNonChromeos::RequestNetworkCredentials( 547 void WifiManagerNonChromeos::RequestNetworkCredentials(
548 const std::string& ssid, 548 const std::string& ssid,
549 const CredentialsCallback& callback) { 549 const CredentialsCallback& callback) {
550 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 550 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
551 task_runner_->PostTask( 551 task_runner_->PostTask(
552 FROM_HERE, 552 FROM_HERE,
553 base::Bind(&WifiServiceWrapper::RequestNetworkCredentials, 553 base::Bind(&WifiServiceWrapper::RequestNetworkCredentials,
554 wifi_wrapper_->AsWeakPtr(), 554 wifi_wrapper_->AsWeakPtr(),
555 ssid, 555 ssid,
556 callback)); 556 callback));
557 } 557 }
558 558
559 void WifiManagerNonChromeos::AddNetworkListObserver( 559 void WifiManagerNonChromeos::AddNetworkListObserver(
560 NetworkListObserver* observer) { 560 NetworkListObserver* observer) {
561 network_list_observers_.AddObserver(observer); 561 network_list_observers_.AddObserver(observer);
562 } 562 }
563 563
564 void WifiManagerNonChromeos::RemoveNetworkListObserver( 564 void WifiManagerNonChromeos::RemoveNetworkListObserver(
565 NetworkListObserver* observer) { 565 NetworkListObserver* observer) {
566 network_list_observers_.RemoveObserver(observer); 566 network_list_observers_.RemoveObserver(observer);
567 } 567 }
568 568
569 } // namespace wifi 569 } // namespace wifi
570 570
571 } // namespace local_discovery 571 } // namespace local_discovery
OLDNEW
« no previous file with comments | « chrome/browser/local_discovery/service_discovery_shared_client.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698