Index: extensions/browser/api/networking_private/networking_private_event_router_chromeos.cc |
diff --git a/extensions/browser/api/networking_private/networking_private_event_router_chromeos.cc b/extensions/browser/api/networking_private/networking_private_event_router_chromeos.cc |
index 3bf43298666cdd1c7ba04c17aadfdb2c9499e3d6..999576d0598b26c61d09bba5b23ac1ac57d29e1f 100644 |
--- a/extensions/browser/api/networking_private/networking_private_event_router_chromeos.cc |
+++ b/extensions/browser/api/networking_private/networking_private_event_router_chromeos.cc |
@@ -45,6 +45,7 @@ class NetworkingPrivateEventRouterImpl |
// NetworkStateHandlerObserver overrides: |
void NetworkListChanged() override; |
+ void DeviceListChanged() override; |
void NetworkPropertiesUpdated(const NetworkState* network) override; |
// NetworkPortalDetector::Observer overrides: |
@@ -80,6 +81,9 @@ NetworkingPrivateEventRouterImpl::NetworkingPrivateEventRouterImpl( |
this, core_api::networking_private::OnNetworkListChanged::kEventName); |
event_router->RegisterObserver( |
this, |
+ core_api::networking_private::OnDeviceStateListChanged::kEventName); |
+ event_router->RegisterObserver( |
+ this, |
core_api::networking_private::OnPortalDetectionCompleted::kEventName); |
StartOrStopListeningForNetworkChanges(); |
} |
@@ -125,6 +129,8 @@ void NetworkingPrivateEventRouterImpl::StartOrStopListeningForNetworkChanges() { |
event_router->HasEventListener( |
core_api::networking_private::OnNetworkListChanged::kEventName) || |
event_router->HasEventListener( |
+ core_api::networking_private::OnDeviceStateListChanged::kEventName) || |
+ event_router->HasEventListener( |
core_api::networking_private::OnPortalDetectionCompleted::kEventName); |
if (should_listen && !listening_) { |
@@ -143,19 +149,14 @@ void NetworkingPrivateEventRouterImpl::StartOrStopListeningForNetworkChanges() { |
void NetworkingPrivateEventRouterImpl::NetworkListChanged() { |
EventRouter* event_router = EventRouter::Get(context_); |
- NetworkStateHandler::NetworkStateList networks; |
- NetworkHandler::Get()->network_state_handler()->GetVisibleNetworkList( |
- &networks); |
if (!event_router->HasEventListener( |
core_api::networking_private::OnNetworkListChanged::kEventName)) { |
- // TODO(stevenjb): Remove logging once crbug.com/256881 is fixed |
- // (or at least reduce to LOG_DEBUG). Same with NET_LOG events below. |
- NET_LOG_EVENT("NetworkingPrivate.NetworkListChanged: No Listeners", ""); |
return; |
} |
- NET_LOG_EVENT("NetworkingPrivate.NetworkListChanged", ""); |
- |
+ NetworkStateHandler::NetworkStateList networks; |
+ NetworkHandler::Get()->network_state_handler()->GetVisibleNetworkList( |
+ &networks); |
std::vector<std::string> changes; |
for (NetworkStateHandler::NetworkStateList::const_iterator iter = |
networks.begin(); |
@@ -171,6 +172,21 @@ void NetworkingPrivateEventRouterImpl::NetworkListChanged() { |
event_router->BroadcastEvent(extension_event.Pass()); |
} |
+void NetworkingPrivateEventRouterImpl::DeviceListChanged() { |
+ EventRouter* event_router = EventRouter::Get(context_); |
+ if (!event_router->HasEventListener( |
+ core_api::networking_private::OnDeviceStateListChanged::kEventName)) { |
+ return; |
+ } |
+ |
+ scoped_ptr<base::ListValue> args( |
+ core_api::networking_private::OnDeviceStateListChanged::Create()); |
+ scoped_ptr<Event> extension_event(new Event( |
+ core_api::networking_private::OnDeviceStateListChanged::kEventName, |
+ args.Pass())); |
+ event_router->BroadcastEvent(extension_event.Pass()); |
+} |
+ |
void NetworkingPrivateEventRouterImpl::NetworkPropertiesUpdated( |
const NetworkState* network) { |
EventRouter* event_router = EventRouter::Get(context_); |