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

Side by Side Diff: chromeos/network/network_state_handler.cc

Issue 14876021: Re-factor network_event_log (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address final nits Created 7 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 (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 "chromeos/network/network_state_handler.h" 5 #include "chromeos/network/network_state_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/format_macros.h" 8 #include "base/format_macros.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
11 #include "base/stringprintf.h" 11 #include "base/stringprintf.h"
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "chromeos/network/device_state.h" 13 #include "chromeos/network/device_state.h"
14 #include "chromeos/network/managed_state.h" 14 #include "chromeos/network/managed_state.h"
15 #include "chromeos/network/network_event_log.h" 15 #include "chromeos/network/network_event_log.h"
16 #include "chromeos/network/network_state.h" 16 #include "chromeos/network/network_state.h"
17 #include "chromeos/network/network_state_handler_observer.h" 17 #include "chromeos/network/network_state_handler_observer.h"
18 #include "chromeos/network/shill_property_handler.h" 18 #include "chromeos/network/shill_property_handler.h"
19 #include "third_party/cros_system_api/dbus/service_constants.h" 19 #include "third_party/cros_system_api/dbus/service_constants.h"
20 20
21 namespace { 21 namespace {
22 22
23 const char kLogModule[] = "NetworkStateHandler";
24
25 // Returns true if |network->type()| == |match_type|, or it matches one of the 23 // Returns true if |network->type()| == |match_type|, or it matches one of the
26 // following special match types: 24 // following special match types:
27 // * kMatchTypeDefault matches any network (i.e. the first instance) 25 // * kMatchTypeDefault matches any network (i.e. the first instance)
28 // * kMatchTypeNonVirtual matches non virtual networks 26 // * kMatchTypeNonVirtual matches non virtual networks
29 // * kMatchTypeWireless matches wireless networks 27 // * kMatchTypeWireless matches wireless networks
30 // * kMatchTypeMobile matches cellular or wimax networks 28 // * kMatchTypeMobile matches cellular or wimax networks
31 bool ManagedStateMatchesType(const chromeos::ManagedState* managed, 29 bool ManagedStateMatchesType(const chromeos::ManagedState* managed,
32 const std::string& match_type) { 30 const std::string& match_type) {
33 const std::string& type = managed->type(); 31 const std::string& type = managed->type();
34 if (match_type == chromeos::NetworkStateHandler::kMatchTypeDefault) 32 if (match_type == chromeos::NetworkStateHandler::kMatchTypeDefault)
35 return true; 33 return true;
36 if (match_type == type) 34 if (match_type == type)
37 return true; 35 return true;
38 if (match_type == chromeos::NetworkStateHandler::kMatchTypeNonVirtual && 36 if (match_type == chromeos::NetworkStateHandler::kMatchTypeNonVirtual &&
39 type != flimflam::kTypeVPN) { 37 type != flimflam::kTypeVPN) {
40 return true; 38 return true;
41 } 39 }
42 if (match_type == chromeos::NetworkStateHandler::kMatchTypeWireless && 40 if (match_type == chromeos::NetworkStateHandler::kMatchTypeWireless &&
43 type != flimflam::kTypeEthernet && type != flimflam::kTypeVPN) { 41 type != flimflam::kTypeEthernet && type != flimflam::kTypeVPN) {
44 return true; 42 return true;
45 } 43 }
46 if (match_type == chromeos::NetworkStateHandler::kMatchTypeMobile && 44 if (match_type == chromeos::NetworkStateHandler::kMatchTypeMobile &&
47 (type == flimflam::kTypeCellular || type == flimflam::kTypeWimax)) { 45 (type == flimflam::kTypeCellular || type == flimflam::kTypeWimax)) {
48 return true; 46 return true;
49 } 47 }
50 return false; 48 return false;
51 } 49 }
52 50
53 std::string ValueAsString(const base::Value& value) {
54 if (value.GetType() == base::Value::TYPE_BOOLEAN) {
55 bool bval = false;
56 value.GetAsBoolean(&bval);
57 return bval ? "true" : "false";
58 } else if (value.GetType() == base::Value::TYPE_INTEGER) {
59 int intval = 0;
60 value.GetAsInteger(&intval);
61 return base::StringPrintf("%d", intval);
62 } else if (value.GetType() == base::Value::TYPE_DOUBLE) {
63 double dval = 0;
64 value.GetAsDouble(&dval);
65 return base::StringPrintf("%g", dval);
66 } else if (value.GetType() == base::Value::TYPE_STRING) {
67 std::string vstr;
68 value.GetAsString(&vstr);
69 return vstr;
70 }
71 return "";
72 }
73
74 bool ConnectionStateChanged(chromeos::NetworkState* network, 51 bool ConnectionStateChanged(chromeos::NetworkState* network,
75 const std::string& prev_connection_state) { 52 const std::string& prev_connection_state) {
76 return (network->connection_state() != prev_connection_state) && 53 return (network->connection_state() != prev_connection_state) &&
77 (network->connection_state() != flimflam::kStateIdle || 54 (network->connection_state() != flimflam::kStateIdle ||
78 !prev_connection_state.empty()); 55 !prev_connection_state.empty());
79 } 56 }
80 57
58 std::string GetManagedStateLogName(const chromeos::ManagedState* state) {
59 if (!state)
60 return "None";
61 return base::StringPrintf("%s (%s)", state->name().c_str(),
62 state->path().c_str());
63 }
64
81 } // namespace 65 } // namespace
82 66
83 namespace chromeos { 67 namespace chromeos {
84 68
85 const char NetworkStateHandler::kMatchTypeDefault[] = "default"; 69 const char NetworkStateHandler::kMatchTypeDefault[] = "default";
86 const char NetworkStateHandler::kMatchTypeWireless[] = "wireless"; 70 const char NetworkStateHandler::kMatchTypeWireless[] = "wireless";
87 const char NetworkStateHandler::kMatchTypeMobile[] = "mobile"; 71 const char NetworkStateHandler::kMatchTypeMobile[] = "mobile";
88 const char NetworkStateHandler::kMatchTypeNonVirtual[] = "non-virtual"; 72 const char NetworkStateHandler::kMatchTypeNonVirtual[] = "non-virtual";
89 73
90 static NetworkStateHandler* g_network_state_handler = NULL; 74 static NetworkStateHandler* g_network_state_handler = NULL;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 state = TECHNOLOGY_UNAVAILABLE; 137 state = TECHNOLOGY_UNAVAILABLE;
154 VLOG(2) << "GetTechnologyState: " << type << " = " << state; 138 VLOG(2) << "GetTechnologyState: " << type << " = " << state;
155 return state; 139 return state;
156 } 140 }
157 141
158 void NetworkStateHandler::SetTechnologyEnabled( 142 void NetworkStateHandler::SetTechnologyEnabled(
159 const std::string& type, 143 const std::string& type,
160 bool enabled, 144 bool enabled,
161 const network_handler::ErrorCallback& error_callback) { 145 const network_handler::ErrorCallback& error_callback) {
162 std::string technology = GetTechnologyForType(type); 146 std::string technology = GetTechnologyForType(type);
163 network_event_log::AddEntry( 147 NET_LOG_EVENT("SetTechnologyEnabled",
164 kLogModule, "SetTechnologyEnabled", 148 base::StringPrintf("%s:%d", technology.c_str(), enabled));
165 base::StringPrintf("%s:%d", technology.c_str(), enabled));
166 shill_property_handler_->SetTechnologyEnabled( 149 shill_property_handler_->SetTechnologyEnabled(
167 technology, enabled, error_callback); 150 technology, enabled, error_callback);
168 ManagerPropertyChanged(); // Technology state changed -> ENABLING 151 // Signal Technology state changed -> ENABLING
152 NotifyManagerPropertyChanged();
169 } 153 }
170 154
171 const DeviceState* NetworkStateHandler::GetDeviceState( 155 const DeviceState* NetworkStateHandler::GetDeviceState(
172 const std::string& device_path) const { 156 const std::string& device_path) const {
173 return GetModifiableDeviceState(device_path); 157 return GetModifiableDeviceState(device_path);
174 } 158 }
175 159
176 const DeviceState* NetworkStateHandler::GetDeviceStateByType( 160 const DeviceState* NetworkStateHandler::GetDeviceStateByType(
177 const std::string& type) const { 161 const std::string& type) const {
178 for (ManagedStateList::const_iterator iter = device_list_.begin(); 162 for (ManagedStateList::const_iterator iter = device_list_.begin();
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 list->clear(); 269 list->clear();
286 for (ManagedStateList::const_iterator iter = network_list_.begin(); 270 for (ManagedStateList::const_iterator iter = network_list_.begin();
287 iter != network_list_.end(); ++iter) { 271 iter != network_list_.end(); ++iter) {
288 const NetworkState* network = (*iter)->AsNetworkState(); 272 const NetworkState* network = (*iter)->AsNetworkState();
289 DCHECK(network); 273 DCHECK(network);
290 list->push_back(network); 274 list->push_back(network);
291 } 275 }
292 } 276 }
293 277
294 void NetworkStateHandler::RequestScan() const { 278 void NetworkStateHandler::RequestScan() const {
295 network_event_log::AddEntry(kLogModule, "RequestScan", ""); 279 NET_LOG_EVENT("RequestScan", "");
296 shill_property_handler_->RequestScan(); 280 shill_property_handler_->RequestScan();
297 } 281 }
298 282
299 void NetworkStateHandler::WaitForScan(const std::string& type, 283 void NetworkStateHandler::WaitForScan(const std::string& type,
300 const base::Closure& callback) { 284 const base::Closure& callback) {
301 scan_complete_callbacks_[type].push_back(callback); 285 scan_complete_callbacks_[type].push_back(callback);
302 if (!GetScanningByType(type)) 286 if (!GetScanningByType(type))
303 RequestScan(); 287 RequestScan();
304 } 288 }
305 289
306 void NetworkStateHandler::ConnectToBestWifiNetwork() { 290 void NetworkStateHandler::ConnectToBestWifiNetwork() {
307 network_event_log::AddEntry(kLogModule, "ConnectToBestWifiNetwork", ""); 291 NET_LOG_EVENT("ConnectToBestWifiNetwork", "");
308 WaitForScan(flimflam::kTypeWifi, 292 WaitForScan(flimflam::kTypeWifi,
309 base::Bind(&internal::ShillPropertyHandler::ConnectToBestServices, 293 base::Bind(&internal::ShillPropertyHandler::ConnectToBestServices,
310 shill_property_handler_->AsWeakPtr())); 294 shill_property_handler_->AsWeakPtr()));
311 } 295 }
312 296
313 void NetworkStateHandler::SetConnectingNetwork( 297 void NetworkStateHandler::SetConnectingNetwork(
314 const std::string& service_path) { 298 const std::string& service_path) {
315 connecting_network_ = service_path; 299 connecting_network_ = service_path;
316 network_event_log::AddEntry( 300 const NetworkState* network = GetNetworkState(service_path);
317 kLogModule, "SetConnectingNetwork", service_path); 301 if (network)
302 NET_LOG_EVENT("SetConnectingNetwork", GetManagedStateLogName(network));
303 else
304 NET_LOG_ERROR("SetConnectingNetwork to unknown network", service_path);
318 } 305 }
319 306
320 void NetworkStateHandler::GetNetworkStatePropertiesForTest( 307 void NetworkStateHandler::GetNetworkStatePropertiesForTest(
321 base::DictionaryValue* dictionary) const { 308 base::DictionaryValue* dictionary) const {
322 for (ManagedStateList::const_iterator iter = network_list_.begin(); 309 for (ManagedStateList::const_iterator iter = network_list_.begin();
323 iter != network_list_.end(); ++iter) { 310 iter != network_list_.end(); ++iter) {
324 base::DictionaryValue* network_dict = new base::DictionaryValue; 311 base::DictionaryValue* network_dict = new base::DictionaryValue;
325 (*iter)->AsNetworkState()->GetProperties(network_dict); 312 (*iter)->AsNetworkState()->GetProperties(network_dict);
326 dictionary->SetWithoutPathExpansion((*iter)->path(), network_dict); 313 dictionary->SetWithoutPathExpansion((*iter)->path(), network_dict);
327 } 314 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 if (is_observing) 355 if (is_observing)
369 managed->set_is_observed(true); 356 managed->set_is_observed(true);
370 if (request_properties) 357 if (request_properties)
371 shill_property_handler_->RequestProperties(type, path); 358 shill_property_handler_->RequestProperties(type, path);
372 } 359 }
373 // Delete any remaning entries in managed_map. 360 // Delete any remaning entries in managed_map.
374 STLDeleteContainerPairSecondPointers(managed_map.begin(), managed_map.end()); 361 STLDeleteContainerPairSecondPointers(managed_map.begin(), managed_map.end());
375 } 362 }
376 363
377 void NetworkStateHandler::ProfileListChanged() { 364 void NetworkStateHandler::ProfileListChanged() {
378 network_event_log::AddEntry( 365 NET_LOG_EVENT("ProfileListChanged", "Re-Requesting Network Properties");
379 kLogModule, "ProfileListChanged", "Re-Requesting Network Properties");
380 for (ManagedStateList::iterator iter = network_list_.begin(); 366 for (ManagedStateList::iterator iter = network_list_.begin();
381 iter != network_list_.end(); ++iter) { 367 iter != network_list_.end(); ++iter) {
382 shill_property_handler_->RequestProperties( 368 shill_property_handler_->RequestProperties(
383 ManagedState::MANAGED_TYPE_NETWORK, (*iter)->path()); 369 ManagedState::MANAGED_TYPE_NETWORK, (*iter)->path());
384 } 370 }
385 } 371 }
386 372
387 void NetworkStateHandler::UpdateManagedStateProperties( 373 void NetworkStateHandler::UpdateManagedStateProperties(
388 ManagedState::ManagedType type, 374 ManagedState::ManagedType type,
389 const std::string& path, 375 const std::string& path,
(...skipping 10 matching lines...) Expand all
400 for (base::DictionaryValue::Iterator iter(properties); 386 for (base::DictionaryValue::Iterator iter(properties);
401 !iter.IsAtEnd(); iter.Advance()) { 387 !iter.IsAtEnd(); iter.Advance()) {
402 if (type == ManagedState::MANAGED_TYPE_NETWORK) { 388 if (type == ManagedState::MANAGED_TYPE_NETWORK) {
403 if (managed->PropertyChanged(iter.key(), iter.value())) 389 if (managed->PropertyChanged(iter.key(), iter.value()))
404 network_property_updated = true; 390 network_property_updated = true;
405 } else { 391 } else {
406 managed->PropertyChanged(iter.key(), iter.value()); 392 managed->PropertyChanged(iter.key(), iter.value());
407 } 393 }
408 } 394 }
409 managed->InitialPropertiesReceived(); 395 managed->InitialPropertiesReceived();
410 network_event_log::AddEntry( 396 NET_LOG_DEBUG("PropertiesReceived", GetManagedStateLogName(managed));
411 kLogModule, "PropertiesReceived",
412 base::StringPrintf("%s (%s)", path.c_str(), managed->name().c_str()));
413 // Notify observers. 397 // Notify observers.
414 if (network_property_updated) { 398 if (network_property_updated) {
415 NetworkState* network = managed->AsNetworkState(); 399 NetworkState* network = managed->AsNetworkState();
416 DCHECK(network); 400 DCHECK(network);
417 // Signal connection state changed after all properties have been updated. 401 // Signal connection state changed after all properties have been updated.
418 if (ConnectionStateChanged(network, prev_connection_state)) 402 if (ConnectionStateChanged(network, prev_connection_state))
419 OnNetworkConnectionStateChanged(network); 403 OnNetworkConnectionStateChanged(network);
420 NetworkPropertiesUpdated(network); 404 NetworkPropertiesUpdated(network);
421 } 405 }
422 } 406 }
(...skipping 13 matching lines...) Expand all
436 if (ConnectionStateChanged(network, prev_connection_state)) 420 if (ConnectionStateChanged(network, prev_connection_state))
437 OnNetworkConnectionStateChanged(network); 421 OnNetworkConnectionStateChanged(network);
438 } else { 422 } else {
439 if (network->path() == default_network_path_ && 423 if (network->path() == default_network_path_ &&
440 key != flimflam::kSignalStrengthProperty) { 424 key != flimflam::kSignalStrengthProperty) {
441 // WiFi signal strength updates are too noisy, so don't 425 // WiFi signal strength updates are too noisy, so don't
442 // trigger default network updates for those changes. 426 // trigger default network updates for those changes.
443 OnDefaultNetworkChanged(); 427 OnDefaultNetworkChanged();
444 } 428 }
445 std::string detail = network->name() + "." + key; 429 std::string detail = network->name() + "." + key;
446 std::string vstr = ValueAsString(value); 430 detail += " = " + network_event_log::ValueAsString(value);
447 if (!vstr.empty()) 431 network_event_log::LogLevel log_level =
448 detail += " = " + vstr; 432 (key == flimflam::kSignalStrengthProperty)
449 network_event_log::AddEntry(kLogModule, "NetworkPropertyUpdated", detail); 433 ? network_event_log::LOG_LEVEL_DEBUG
434 : network_event_log::LOG_LEVEL_EVENT;
435 NET_LOG_LEVEL(log_level, "NetworkPropertyUpdated", detail);
450 } 436 }
451 NetworkPropertiesUpdated(network); 437 NetworkPropertiesUpdated(network);
452 } 438 }
453 439
454 void NetworkStateHandler::UpdateDeviceProperty(const std::string& device_path, 440 void NetworkStateHandler::UpdateDeviceProperty(const std::string& device_path,
455 const std::string& key, 441 const std::string& key,
456 const base::Value& value) { 442 const base::Value& value) {
457 DeviceState* device = GetModifiableDeviceState(device_path); 443 DeviceState* device = GetModifiableDeviceState(device_path);
458 if (!device) 444 if (!device)
459 return; 445 return;
460 if (!device->PropertyChanged(key, value)) 446 if (!device->PropertyChanged(key, value))
461 return; 447 return;
462 448
463 std::string detail = device->name() + "." + key; 449 std::string detail = device->name() + "." + key;
464 std::string vstr = ValueAsString(value); 450 detail += " = " + network_event_log::ValueAsString(value);
465 if (!vstr.empty()) 451 NET_LOG_EVENT("DevicePropertyUpdated", detail);
466 detail += " = " + vstr;
467 network_event_log::AddEntry(kLogModule, "DevicePropertyUpdated", detail);
468 452
469 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_, 453 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_,
470 DeviceListChanged()); 454 DeviceListChanged());
471 455
472 if (key == flimflam::kScanningProperty && device->scanning() == false) 456 if (key == flimflam::kScanningProperty && device->scanning() == false)
473 ScanCompleted(device->type()); 457 ScanCompleted(device->type());
474 } 458 }
475 459
476 void NetworkStateHandler::ManagerPropertyChanged() { 460 void NetworkStateHandler::NotifyManagerPropertyChanged() {
477 network_event_log::AddEntry(kLogModule, "NetworkManagerChanged", ""); 461 NET_LOG_DEBUG("NotifyManagerPropertyChanged", "");
478 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_, 462 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_,
479 NetworkManagerChanged()); 463 NetworkManagerChanged());
480 } 464 }
481 465
482 void NetworkStateHandler::ManagedStateListChanged( 466 void NetworkStateHandler::ManagedStateListChanged(
483 ManagedState::ManagedType type) { 467 ManagedState::ManagedType type) {
484 if (type == ManagedState::MANAGED_TYPE_NETWORK) { 468 if (type == ManagedState::MANAGED_TYPE_NETWORK) {
485 // Notify observers that the list of networks has changed. 469 // Notify observers that the list of networks has changed.
486 network_event_log::AddEntry( 470 NET_LOG_EVENT("NetworkListChanged",
487 kLogModule, "NetworkListChanged", 471 base::StringPrintf("Size:%"PRIuS, network_list_.size()));
488 base::StringPrintf("Size:%"PRIuS, network_list_.size()));
489 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_, 472 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_,
490 NetworkListChanged()); 473 NetworkListChanged());
491 // The list order may have changed, so check if the default network changed. 474 // The list order may have changed, so check if the default network changed.
492 if (CheckDefaultNetworkChanged()) 475 if (CheckDefaultNetworkChanged())
493 OnDefaultNetworkChanged(); 476 OnDefaultNetworkChanged();
494 } else if (type == ManagedState::MANAGED_TYPE_DEVICE) { 477 } else if (type == ManagedState::MANAGED_TYPE_DEVICE) {
495 network_event_log::AddEntry( 478 NET_LOG_DEBUG("DeviceListChanged",
496 kLogModule, "DeviceListChanged", 479 base::StringPrintf("Size:%"PRIuS, device_list_.size()));
497 base::StringPrintf("Size:%"PRIuS, device_list_.size()));
498 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_, 480 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_,
499 DeviceListChanged()); 481 DeviceListChanged());
500 } else { 482 } else {
501 NOTREACHED(); 483 NOTREACHED();
502 } 484 }
503 } 485 }
504 486
505 //------------------------------------------------------------------------------ 487 //------------------------------------------------------------------------------
506 // Private methods 488 // Private methods
507 489
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 case ManagedState::MANAGED_TYPE_DEVICE: 524 case ManagedState::MANAGED_TYPE_DEVICE:
543 return &device_list_; 525 return &device_list_;
544 } 526 }
545 NOTREACHED(); 527 NOTREACHED();
546 return NULL; 528 return NULL;
547 } 529 }
548 530
549 void NetworkStateHandler::OnNetworkConnectionStateChanged( 531 void NetworkStateHandler::OnNetworkConnectionStateChanged(
550 NetworkState* network) { 532 NetworkState* network) {
551 DCHECK(network); 533 DCHECK(network);
552 network_event_log::AddEntry( 534 NET_LOG_EVENT("NetworkConnectionStateChanged", base::StringPrintf(
553 kLogModule, "NetworkConnectionStateChanged", 535 "%s:%s", GetManagedStateLogName(network).c_str(),
554 base::StringPrintf("%s:%s", network->path().c_str(), 536 network->connection_state().c_str()));
555 network->connection_state().c_str()));
556 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_, 537 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_,
557 NetworkConnectionStateChanged(network)); 538 NetworkConnectionStateChanged(network));
558 if (CheckDefaultNetworkChanged() || network->path() == default_network_path_) 539 if (CheckDefaultNetworkChanged() || network->path() == default_network_path_)
559 OnDefaultNetworkChanged(); 540 OnDefaultNetworkChanged();
560 } 541 }
561 542
562 bool NetworkStateHandler::CheckDefaultNetworkChanged() { 543 bool NetworkStateHandler::CheckDefaultNetworkChanged() {
563 std::string new_default_network_path; 544 std::string new_default_network_path;
564 const NetworkState* new_default_network = DefaultNetwork(); 545 const NetworkState* new_default_network = DefaultNetwork();
565 if (new_default_network) 546 if (new_default_network)
566 new_default_network_path = new_default_network->path(); 547 new_default_network_path = new_default_network->path();
567 if (new_default_network_path == default_network_path_) 548 if (new_default_network_path == default_network_path_)
568 return false; 549 return false;
569 default_network_path_ = new_default_network_path; 550 default_network_path_ = new_default_network_path;
570 return true; 551 return true;
571 } 552 }
572 553
573 void NetworkStateHandler::OnDefaultNetworkChanged() { 554 void NetworkStateHandler::OnDefaultNetworkChanged() {
574 const NetworkState* default_network = DefaultNetwork(); 555 const NetworkState* default_network = DefaultNetwork();
575 network_event_log::AddEntry( 556 NET_LOG_EVENT("DefaultNetworkChanged",
576 kLogModule, "DefaultNetworkChanged", 557 GetManagedStateLogName(default_network));
577 default_network ? default_network->path() : "None");
578 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_, 558 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_,
579 DefaultNetworkChanged(default_network)); 559 DefaultNetworkChanged(default_network));
580 } 560 }
581 561
582 void NetworkStateHandler::NetworkPropertiesUpdated( 562 void NetworkStateHandler::NetworkPropertiesUpdated(
583 const NetworkState* network) { 563 const NetworkState* network) {
584 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_, 564 FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_,
585 NetworkPropertiesUpdated(network)); 565 NetworkPropertiesUpdated(network));
586 // If |connecting_network_| transitions to a non-idle, non-connecting state, 566 // If |connecting_network_| transitions to a non-idle, non-connecting state,
587 // clear it *after* signalling observers. 567 // clear it *after* signalling observers.
588 if (network->path() == connecting_network_ && 568 if (network->path() == connecting_network_ &&
589 !network->IsConnectingState() && 569 !network->IsConnectingState() &&
590 network->connection_state() != flimflam::kStateIdle) { 570 network->connection_state() != flimflam::kStateIdle) {
591 connecting_network_.clear(); 571 connecting_network_.clear();
592 network_event_log::AddEntry( 572 NET_LOG_EVENT("ClearConnectingNetwork", base::StringPrintf(
593 kLogModule, "ClearConnectingNetwork", 573 "%s:%s", GetManagedStateLogName(network).c_str(),
594 base::StringPrintf("%s:%s", network->path().c_str(), 574 network->connection_state().c_str()));
595 network->connection_state().c_str()));
596 } 575 }
597 } 576 }
598 577
599 void NetworkStateHandler::ScanCompleted(const std::string& type) { 578 void NetworkStateHandler::ScanCompleted(const std::string& type) {
600 size_t num_callbacks = scan_complete_callbacks_.count(type); 579 size_t num_callbacks = scan_complete_callbacks_.count(type);
601 network_event_log::AddEntry( 580 NET_LOG_EVENT("ScanCompleted",
602 kLogModule, "ScanCompleted", 581 base::StringPrintf("%s:%"PRIuS, type.c_str(), num_callbacks));
603 base::StringPrintf("%s:%"PRIuS, type.c_str(), num_callbacks));
604 if (num_callbacks == 0) 582 if (num_callbacks == 0)
605 return; 583 return;
606 ScanCallbackList& callback_list = scan_complete_callbacks_[type]; 584 ScanCallbackList& callback_list = scan_complete_callbacks_[type];
607 for (ScanCallbackList::iterator iter = callback_list.begin(); 585 for (ScanCallbackList::iterator iter = callback_list.begin();
608 iter != callback_list.end(); ++iter) { 586 iter != callback_list.end(); ++iter) {
609 (*iter).Run(); 587 (*iter).Run();
610 } 588 }
611 scan_complete_callbacks_.erase(type); 589 scan_complete_callbacks_.erase(type);
612 } 590 }
613 591
614 std::string NetworkStateHandler::GetTechnologyForType( 592 std::string NetworkStateHandler::GetTechnologyForType(
615 const std::string& type) const { 593 const std::string& type) const {
616 if (type == kMatchTypeMobile) { 594 if (type == kMatchTypeMobile) {
617 if (shill_property_handler_->IsTechnologyAvailable(flimflam::kTypeWimax)) 595 if (shill_property_handler_->IsTechnologyAvailable(flimflam::kTypeWimax))
618 return flimflam::kTypeWimax; 596 return flimflam::kTypeWimax;
619 else 597 else
620 return flimflam::kTypeCellular; 598 return flimflam::kTypeCellular;
621 } 599 }
622 if (type == kMatchTypeDefault || type == kMatchTypeNonVirtual || 600 if (type == kMatchTypeDefault || type == kMatchTypeNonVirtual ||
623 type == kMatchTypeWireless) { 601 type == kMatchTypeWireless) {
624 NOTREACHED(); 602 NOTREACHED();
625 return flimflam::kTypeWifi; 603 return flimflam::kTypeWifi;
626 } 604 }
627 return type; 605 return type;
628 } 606 }
629 607
630 } // namespace chromeos 608 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/network/network_state_handler.h ('k') | chromeos/network/network_state_handler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698