Index: chrome/browser/chromeos/extensions/networking_private_event_router.cc |
diff --git a/chrome/browser/chromeos/extensions/networking_private_event_router.cc b/chrome/browser/chromeos/extensions/networking_private_event_router.cc |
index 2f884f8615a230b71e41dea21243aa4b9b5ae75e..4d49da3a7feee8d67170f54b4a4acb258440c585 100644 |
--- a/chrome/browser/chromeos/extensions/networking_private_event_router.cc |
+++ b/chrome/browser/chromeos/extensions/networking_private_event_router.cc |
@@ -66,7 +66,9 @@ NetworkingPrivateEventRouter::NetworkingPrivateEventRouter(Profile* profile) |
ExtensionSystem::Get(profile_)->event_router(); |
if (event_router) { |
event_router->RegisterObserver( |
- this, extensions::event_names::kOnNetworkChanged); |
+ this, extensions::event_names::kOnNetworksChanged); |
+ event_router->RegisterObserver( |
+ this, extensions::event_names::kOnNetworkListChanged); |
StartOrStopListeningForNetworkChanges(); |
} |
} |
@@ -102,8 +104,10 @@ void NetworkingPrivateEventRouter::OnListenerRemoved( |
} |
void NetworkingPrivateEventRouter::StartOrStopListeningForNetworkChanges() { |
- bool should_listen = ExtensionSystem::Get(profile_)->event_router()-> |
- HasEventListener(extensions::event_names::kOnNetworkChanged); |
+ bool should_listen = (ExtensionSystem::Get(profile_)->event_router()-> |
+ HasEventListener(extensions::event_names::kOnNetworksChanged) || |
+ ExtensionSystem::Get(profile_)->event_router()-> |
+ HasEventListener(extensions::event_names::kOnNetworkListChanged)); |
if (should_listen) { |
if (!listening_) |
@@ -118,26 +122,41 @@ void NetworkingPrivateEventRouter::StartOrStopListeningForNetworkChanges() { |
void NetworkingPrivateEventRouter::NetworkListChanged() { |
NetworkStateList networks; |
NetworkStateHandler::Get()->GetNetworkList(&networks); |
- std::vector<linked_ptr<api::NetworkProperties> > changes; |
+ if (!ExtensionSystem::Get(profile_)->event_router()-> |
+ HasEventListener(extensions::event_names::kOnNetworkListChanged)) { |
+ return; |
+ } |
+ |
+ std::vector<std::string> changes; |
+ std::string change_str; |
for (NetworkStateList::const_iterator iter = networks.begin(); |
iter != networks.end(); ++iter) { |
- api::NetworkProperties* network_properties = new api::NetworkProperties; |
- network_properties->additional_properties.SetString( |
- onc::network_config::kName, (*iter)->name()); |
- network_properties->additional_properties.SetString( |
- onc::network_config::kGUID, (*iter)->path()); |
- network_properties->additional_properties.SetString( |
- onc::network_config::kType, |
- GetConnectionType((*iter)->type())); |
- network_properties->additional_properties.SetString( |
- onc::network_config::kConnectionState, |
- GetConnectionState(*iter)); |
- changes.push_back(make_linked_ptr(network_properties)); |
+ // TODO(gspencer): Currently the "GUID" is actually the service path. Fix |
+ // this to be the real GUID once we're using the |
stevenjb
2013/02/12 17:19:16
nit: s/using the/using/
Greg Spencer (Chromium)
2013/02/12 17:34:56
Done.
|
+ // ManagedNetworkConfigurationManager. |
+ changes.push_back((*iter)->path()); |
+ change_str += (*iter)->path() + " "; |
+ } |
+ |
+ scoped_ptr<base::ListValue> args(api::OnNetworksChanged::Create(changes)); |
+ scoped_ptr<extensions::Event> extension_event(new extensions::Event( |
+ extensions::event_names::kOnNetworkListChanged, args.Pass())); |
+ ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent( |
+ extension_event.Pass()); |
+} |
+ |
+void NetworkingPrivateEventRouter::NetworkPropertiesUpdated( |
+ const NetworkState* network) { |
+ if (!ExtensionSystem::Get(profile_)->event_router()-> |
+ HasEventListener(extensions::event_names::kOnNetworksChanged)) { |
+ return; |
} |
- scoped_ptr<base::ListValue> args(api::OnNetworkChanged::Create(changes)); |
+ std::vector<std::string> changes; |
+ changes.push_back(network->path()); |
+ scoped_ptr<base::ListValue> args(api::OnNetworkListChanged::Create(changes)); |
scoped_ptr<extensions::Event> extension_event(new extensions::Event( |
- extensions::event_names::kOnNetworkChanged, args.Pass())); |
+ extensions::event_names::kOnNetworksChanged, args.Pass())); |
ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent( |
extension_event.Pass()); |
} |