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

Unified Diff: chrome/browser/chromeos/extensions/networking_private_event_router.cc

Issue 12220113: Next phase for chrome.networkingPrivate interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Upload after merge Created 7 years, 10 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 side-by-side diff with in-line comments
Download patch
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());
}

Powered by Google App Engine
This is Rietveld 408576698