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

Side by Side Diff: extensions/browser/api/networking_private/networking_private_event_router_chromeos.cc

Issue 2891453002: Introduce networkingPrivate.getCertificateLists (Closed)
Patch Set: Clang format Created 3 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "extensions/browser/api/networking_private/networking_private_event_rou ter.h" 5 #include "extensions/browser/api/networking_private/networking_private_event_rou ter.h"
6 6
7 #include "base/json/json_writer.h" 7 #include "base/json/json_writer.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "chromeos/network/device_state.h" 9 #include "chromeos/network/device_state.h"
10 #include "chromeos/network/network_certificate_handler.h"
10 #include "chromeos/network/network_event_log.h" 11 #include "chromeos/network/network_event_log.h"
11 #include "chromeos/network/network_state.h" 12 #include "chromeos/network/network_state.h"
12 #include "chromeos/network/network_state_handler.h" 13 #include "chromeos/network/network_state_handler.h"
13 #include "chromeos/network/network_state_handler_observer.h" 14 #include "chromeos/network/network_state_handler_observer.h"
14 #include "chromeos/network/onc/onc_signature.h" 15 #include "chromeos/network/onc/onc_signature.h"
15 #include "chromeos/network/onc/onc_translator.h" 16 #include "chromeos/network/onc/onc_translator.h"
16 #include "chromeos/network/portal_detector/network_portal_detector.h" 17 #include "chromeos/network/portal_detector/network_portal_detector.h"
17 #include "components/keyed_service/content/browser_context_dependency_manager.h" 18 #include "components/keyed_service/content/browser_context_dependency_manager.h"
18 #include "components/onc/onc_constants.h" 19 #include "components/onc/onc_constants.h"
19 #include "content/public/browser/browser_context.h" 20 #include "content/public/browser/browser_context.h"
20 #include "extensions/browser/api/networking_private/networking_private_api.h" 21 #include "extensions/browser/api/networking_private/networking_private_api.h"
21 #include "extensions/browser/extension_system.h" 22 #include "extensions/browser/extension_system.h"
22 #include "extensions/common/api/networking_private.h" 23 #include "extensions/common/api/networking_private.h"
23 #include "third_party/cros_system_api/dbus/service_constants.h" 24 #include "third_party/cros_system_api/dbus/service_constants.h"
24 25
25 using chromeos::DeviceState; 26 using chromeos::DeviceState;
26 using chromeos::NetworkHandler; 27 using chromeos::NetworkHandler;
27 using chromeos::NetworkPortalDetector; 28 using chromeos::NetworkPortalDetector;
28 using chromeos::NetworkState; 29 using chromeos::NetworkState;
29 using chromeos::NetworkStateHandler; 30 using chromeos::NetworkStateHandler;
30 31
31 namespace extensions { 32 namespace extensions {
32 33
33 class NetworkingPrivateEventRouterImpl 34 class NetworkingPrivateEventRouterImpl
34 : public NetworkingPrivateEventRouter, 35 : public NetworkingPrivateEventRouter,
35 public chromeos::NetworkStateHandlerObserver, 36 public chromeos::NetworkStateHandlerObserver,
37 public chromeos::NetworkCertificateHandler::Observer,
36 public NetworkPortalDetector::Observer { 38 public NetworkPortalDetector::Observer {
37 public: 39 public:
38 explicit NetworkingPrivateEventRouterImpl(content::BrowserContext* context); 40 explicit NetworkingPrivateEventRouterImpl(content::BrowserContext* context);
39 ~NetworkingPrivateEventRouterImpl() override; 41 ~NetworkingPrivateEventRouterImpl() override;
40 42
41 protected: 43 protected:
42 // KeyedService overrides: 44 // KeyedService overrides:
43 void Shutdown() override; 45 void Shutdown() override;
44 46
45 // EventRouter::Observer overrides: 47 // EventRouter::Observer overrides:
46 void OnListenerAdded(const EventListenerInfo& details) override; 48 void OnListenerAdded(const EventListenerInfo& details) override;
47 void OnListenerRemoved(const EventListenerInfo& details) override; 49 void OnListenerRemoved(const EventListenerInfo& details) override;
48 50
49 // NetworkStateHandlerObserver overrides: 51 // NetworkStateHandlerObserver overrides:
50 void NetworkListChanged() override; 52 void NetworkListChanged() override;
51 void DeviceListChanged() override; 53 void DeviceListChanged() override;
52 void NetworkPropertiesUpdated(const NetworkState* network) override; 54 void NetworkPropertiesUpdated(const NetworkState* network) override;
53 void DevicePropertiesUpdated(const DeviceState* device) override; 55 void DevicePropertiesUpdated(const DeviceState* device) override;
54 56
57 // NetworkCertificateHandler::Observer overrides:
58 void OnCertificatesChanged() override;
59
55 // NetworkPortalDetector::Observer overrides: 60 // NetworkPortalDetector::Observer overrides:
56 void OnPortalDetectionCompleted( 61 void OnPortalDetectionCompleted(
57 const NetworkState* network, 62 const NetworkState* network,
58 const NetworkPortalDetector::CaptivePortalState& state) override; 63 const NetworkPortalDetector::CaptivePortalState& state) override;
59 64
60 private: 65 private:
61 // Decide if we should listen for network changes or not. If there are any 66 // Decide if we should listen for network changes or not. If there are any
62 // JavaScript listeners registered for the onNetworkChanged event, then we 67 // JavaScript listeners registered for the onNetworkChanged event, then we
63 // want to register for change notification from the network state handler. 68 // want to register for change notification from the network state handler.
64 // Otherwise, we want to unregister and not be listening to network changes. 69 // Otherwise, we want to unregister and not be listening to network changes.
(...skipping 15 matching lines...) Expand all
80 EventRouter* event_router = EventRouter::Get(context_); 85 EventRouter* event_router = EventRouter::Get(context_);
81 if (event_router) { 86 if (event_router) {
82 event_router->RegisterObserver( 87 event_router->RegisterObserver(
83 this, api::networking_private::OnNetworksChanged::kEventName); 88 this, api::networking_private::OnNetworksChanged::kEventName);
84 event_router->RegisterObserver( 89 event_router->RegisterObserver(
85 this, api::networking_private::OnNetworkListChanged::kEventName); 90 this, api::networking_private::OnNetworkListChanged::kEventName);
86 event_router->RegisterObserver( 91 event_router->RegisterObserver(
87 this, api::networking_private::OnDeviceStateListChanged::kEventName); 92 this, api::networking_private::OnDeviceStateListChanged::kEventName);
88 event_router->RegisterObserver( 93 event_router->RegisterObserver(
89 this, api::networking_private::OnPortalDetectionCompleted::kEventName); 94 this, api::networking_private::OnPortalDetectionCompleted::kEventName);
95 event_router->RegisterObserver(
96 this, api::networking_private::OnCertificateListsChanged::kEventName);
90 StartOrStopListeningForNetworkChanges(); 97 StartOrStopListeningForNetworkChanges();
91 } 98 }
92 } 99 }
93 100
94 NetworkingPrivateEventRouterImpl::~NetworkingPrivateEventRouterImpl() { 101 NetworkingPrivateEventRouterImpl::~NetworkingPrivateEventRouterImpl() {
95 DCHECK(!listening_); 102 DCHECK(!listening_);
96 } 103 }
97 104
98 void NetworkingPrivateEventRouterImpl::Shutdown() { 105 void NetworkingPrivateEventRouterImpl::Shutdown() {
99 // Unregister with the event router. We first check and see if there *is* an 106 // Unregister with the event router. We first check and see if there *is* an
(...skipping 26 matching lines...) Expand all
126 void NetworkingPrivateEventRouterImpl::StartOrStopListeningForNetworkChanges() { 133 void NetworkingPrivateEventRouterImpl::StartOrStopListeningForNetworkChanges() {
127 EventRouter* event_router = EventRouter::Get(context_); 134 EventRouter* event_router = EventRouter::Get(context_);
128 bool should_listen = 135 bool should_listen =
129 event_router->HasEventListener( 136 event_router->HasEventListener(
130 api::networking_private::OnNetworksChanged::kEventName) || 137 api::networking_private::OnNetworksChanged::kEventName) ||
131 event_router->HasEventListener( 138 event_router->HasEventListener(
132 api::networking_private::OnNetworkListChanged::kEventName) || 139 api::networking_private::OnNetworkListChanged::kEventName) ||
133 event_router->HasEventListener( 140 event_router->HasEventListener(
134 api::networking_private::OnDeviceStateListChanged::kEventName) || 141 api::networking_private::OnDeviceStateListChanged::kEventName) ||
135 event_router->HasEventListener( 142 event_router->HasEventListener(
136 api::networking_private::OnPortalDetectionCompleted::kEventName); 143 api::networking_private::OnPortalDetectionCompleted::kEventName) ||
144 event_router->HasEventListener(
145 api::networking_private::OnCertificateListsChanged::kEventName);
137 146
138 if (should_listen && !listening_) { 147 if (should_listen && !listening_) {
139 NetworkHandler::Get()->network_state_handler()->AddObserver(this, 148 NetworkHandler::Get()->network_state_handler()->AddObserver(this,
140 FROM_HERE); 149 FROM_HERE);
150 NetworkHandler::Get()->network_certificate_handler()->AddObserver(this);
141 if (chromeos::network_portal_detector::IsInitialized()) 151 if (chromeos::network_portal_detector::IsInitialized())
142 chromeos::network_portal_detector::GetInstance()->AddObserver(this); 152 chromeos::network_portal_detector::GetInstance()->AddObserver(this);
143 } else if (!should_listen && listening_) { 153 } else if (!should_listen && listening_) {
144 NetworkHandler::Get()->network_state_handler()->RemoveObserver(this, 154 NetworkHandler::Get()->network_state_handler()->RemoveObserver(this,
145 FROM_HERE); 155 FROM_HERE);
156 NetworkHandler::Get()->network_certificate_handler()->RemoveObserver(this);
146 if (chromeos::network_portal_detector::IsInitialized()) 157 if (chromeos::network_portal_detector::IsInitialized())
147 chromeos::network_portal_detector::GetInstance()->RemoveObserver(this); 158 chromeos::network_portal_detector::GetInstance()->RemoveObserver(this);
148 } 159 }
149 listening_ = should_listen; 160 listening_ = should_listen;
150 } 161 }
151 162
152 void NetworkingPrivateEventRouterImpl::NetworkListChanged() { 163 void NetworkingPrivateEventRouterImpl::NetworkListChanged() {
153 EventRouter* event_router = EventRouter::Get(context_); 164 EventRouter* event_router = EventRouter::Get(context_);
154 if (!event_router->HasEventListener( 165 if (!event_router->HasEventListener(
155 api::networking_private::OnNetworkListChanged::kEventName)) { 166 api::networking_private::OnNetworkListChanged::kEventName)) {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 229
219 NetworkStateHandler::NetworkStateList cellular_networks; 230 NetworkStateHandler::NetworkStateList cellular_networks;
220 NetworkHandler::Get()->network_state_handler()->GetNetworkListByType( 231 NetworkHandler::Get()->network_state_handler()->GetNetworkListByType(
221 chromeos::NetworkTypePattern::Cellular(), false /* configured_only */, 232 chromeos::NetworkTypePattern::Cellular(), false /* configured_only */,
222 true /* visible_only */, -1 /* default limit */, &cellular_networks); 233 true /* visible_only */, -1 /* default limit */, &cellular_networks);
223 for (const NetworkState* network : cellular_networks) { 234 for (const NetworkState* network : cellular_networks) {
224 NetworkPropertiesUpdated(network); 235 NetworkPropertiesUpdated(network);
225 } 236 }
226 } 237 }
227 238
239 void NetworkingPrivateEventRouterImpl::OnCertificatesChanged() {
240 EventRouter* event_router = EventRouter::Get(context_);
241 if (!event_router->HasEventListener(
242 api::networking_private::OnCertificateListsChanged::kEventName)) {
243 NET_LOG_EVENT("NetworkingPrivate.OnCertificatesChanged: No Listeners", "");
244 return;
245 }
246 NET_LOG_EVENT("NetworkingPrivate.OnCertificatesChanged", "");
247
248 std::unique_ptr<base::ListValue> args(
249 api::networking_private::OnCertificateListsChanged::Create());
250 std::unique_ptr<Event> extension_event(
251 new Event(events::NETWORKING_PRIVATE_ON_CERTIFICATE_LISTS_CHANGED,
252 api::networking_private::OnCertificateListsChanged::kEventName,
253 std::move(args)));
254 event_router->BroadcastEvent(std::move(extension_event));
255 }
256
228 void NetworkingPrivateEventRouterImpl::OnPortalDetectionCompleted( 257 void NetworkingPrivateEventRouterImpl::OnPortalDetectionCompleted(
229 const NetworkState* network, 258 const NetworkState* network,
230 const NetworkPortalDetector::CaptivePortalState& state) { 259 const NetworkPortalDetector::CaptivePortalState& state) {
231 const std::string path = network ? network->guid() : std::string(); 260 const std::string path = network ? network->guid() : std::string();
232 261
233 EventRouter* event_router = EventRouter::Get(context_); 262 EventRouter* event_router = EventRouter::Get(context_);
234 if (!event_router->HasEventListener( 263 if (!event_router->HasEventListener(
235 api::networking_private::OnPortalDetectionCompleted::kEventName)) { 264 api::networking_private::OnPortalDetectionCompleted::kEventName)) {
236 NET_LOG_EVENT("NetworkingPrivate.OnPortalDetectionCompleted: No Listeners", 265 NET_LOG_EVENT("NetworkingPrivate.OnPortalDetectionCompleted: No Listeners",
237 path); 266 path);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 std::move(args))); 300 std::move(args)));
272 event_router->BroadcastEvent(std::move(extension_event)); 301 event_router->BroadcastEvent(std::move(extension_event));
273 } 302 }
274 303
275 NetworkingPrivateEventRouter* NetworkingPrivateEventRouter::Create( 304 NetworkingPrivateEventRouter* NetworkingPrivateEventRouter::Create(
276 content::BrowserContext* context) { 305 content::BrowserContext* context) {
277 return new NetworkingPrivateEventRouterImpl(context); 306 return new NetworkingPrivateEventRouterImpl(context);
278 } 307 }
279 308
280 } // namespace extensions 309 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698