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..fa9ca4150f500690de19b4c9beeceae682a9a4c9 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()-> |
not at google - send to devlin
2013/02/12 22:07:25
save reference to the event router rather than gra
Greg Spencer (Chromium)
2013/02/12 23:11:02
Done.
|
+ 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 |
+ // ManagedNetworkConfigurationManager. |
+ changes.push_back((*iter)->path()); |
+ change_str += (*iter)->path() + " "; |
not at google - send to devlin
2013/02/12 22:07:25
change_str doesn't appear to be used?
Greg Spencer (Chromium)
2013/02/12 23:11:02
Removed. That was for some debugging output that'
|
+ } |
+ |
+ scoped_ptr<base::ListValue> args(api::OnNetworksChanged::Create(changes)); |
+ scoped_ptr<extensions::Event> extension_event(new extensions::Event( |
+ extensions::event_names::kOnNetworkListChanged, args.Pass())); |
not at google - send to devlin
2013/02/12 22:07:25
why does OnNetworkListChanged take OnNetworksChang
Greg Spencer (Chromium)
2013/02/12 23:11:02
Whoa. I guess this worked because in the end they
|
+ 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)); |
not at google - send to devlin
2013/02/12 22:07:25
just
scoped_ptr<base::ListValue> args(
api::O
Greg Spencer (Chromium)
2013/02/12 23:11:02
Done.
|
scoped_ptr<extensions::Event> extension_event(new extensions::Event( |
- extensions::event_names::kOnNetworkChanged, args.Pass())); |
+ extensions::event_names::kOnNetworksChanged, args.Pass())); |
not at google - send to devlin
2013/02/12 22:07:25
see above comment
Greg Spencer (Chromium)
2013/02/12 23:11:02
Done.
|
ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent( |
extension_event.Pass()); |
} |