Chromium Code Reviews| 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()); |
| } |