OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/extensions/event_router.h" | 5 #include "chrome/browser/extensions/event_router.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 observers_.erase(iters_to_remove[i]); | 229 observers_.erase(iters_to_remove[i]); |
230 } | 230 } |
231 | 231 |
232 void EventRouter::OnListenerAdded(const EventListener* listener) { | 232 void EventRouter::OnListenerAdded(const EventListener* listener) { |
233 const std::string& event_name = listener->event_name; | 233 const std::string& event_name = listener->event_name; |
234 const EventListenerInfo details(event_name, listener->extension_id); | 234 const EventListenerInfo details(event_name, listener->extension_id); |
235 ObserverMap::iterator observer = observers_.find(event_name); | 235 ObserverMap::iterator observer = observers_.find(event_name); |
236 if (observer != observers_.end()) | 236 if (observer != observers_.end()) |
237 observer->second->OnListenerAdded(details); | 237 observer->second->OnListenerAdded(details); |
238 | 238 |
| 239 #if 0 |
| 240 // TODO(felt): Experimentally determine if these are needed, or if they |
| 241 // can be permanently removed. Temporarily removing for now to reduce log |
| 242 // size while under investigation. |
239 const Extension* extension = extensions::ExtensionSystem::Get(profile_)-> | 243 const Extension* extension = extensions::ExtensionSystem::Get(profile_)-> |
240 extension_service()->GetExtensionById(listener->extension_id, | 244 extension_service()->GetExtensionById(listener->extension_id, |
241 ExtensionService::INCLUDE_ENABLED); | 245 ExtensionService::INCLUDE_ENABLED); |
242 if (extension) { | 246 if (extension) { |
243 scoped_ptr<ListValue> args(new ListValue()); | 247 scoped_ptr<ListValue> args(new ListValue()); |
244 if (listener->filter) | 248 if (listener->filter) |
245 args->Append(listener->filter->DeepCopy()); | 249 args->Append(listener->filter->DeepCopy()); |
246 activity_log_->LogAPIAction(extension, | 250 activity_log_->LogAPIAction(extension, |
247 event_name + ".addListener", | 251 event_name + ".addListener", |
248 args.get(), | 252 args.get(), |
249 ""); | 253 ""); |
250 } | 254 } |
| 255 #endif |
251 } | 256 } |
252 | 257 |
253 void EventRouter::OnListenerRemoved(const EventListener* listener) { | 258 void EventRouter::OnListenerRemoved(const EventListener* listener) { |
254 const std::string& event_name = listener->event_name; | 259 const std::string& event_name = listener->event_name; |
255 const EventListenerInfo details(event_name, listener->extension_id); | 260 const EventListenerInfo details(event_name, listener->extension_id); |
256 ObserverMap::iterator observer = observers_.find(event_name); | 261 ObserverMap::iterator observer = observers_.find(event_name); |
257 if (observer != observers_.end()) | 262 if (observer != observers_.end()) |
258 observer->second->OnListenerRemoved(details); | 263 observer->second->OnListenerRemoved(details); |
259 | 264 |
260 void* profile = | 265 void* profile = |
261 listener->process | 266 listener->process |
262 ? Profile::FromBrowserContext(listener->process->GetBrowserContext()) | 267 ? Profile::FromBrowserContext(listener->process->GetBrowserContext()) |
263 : NULL; | 268 : NULL; |
264 BrowserThread::PostTask( | 269 BrowserThread::PostTask( |
265 BrowserThread::IO, FROM_HERE, | 270 BrowserThread::IO, FROM_HERE, |
266 base::Bind(&NotifyEventListenerRemovedOnIOThread, | 271 base::Bind(&NotifyEventListenerRemovedOnIOThread, |
267 profile, listener->extension_id, event_name)); | 272 profile, listener->extension_id, event_name)); |
268 | 273 #if 0 |
| 274 // TODO(felt): Experimentally determine if these are needed, or if they |
| 275 // can be permanently removed. Temporarily removing for now to reduce log |
| 276 // size while under investigation. |
269 const Extension* extension = extensions::ExtensionSystem::Get(profile_)-> | 277 const Extension* extension = extensions::ExtensionSystem::Get(profile_)-> |
270 extension_service()->GetExtensionById(listener->extension_id, | 278 extension_service()->GetExtensionById(listener->extension_id, |
271 ExtensionService::INCLUDE_ENABLED); | 279 ExtensionService::INCLUDE_ENABLED); |
272 if (extension) { | 280 if (extension) { |
273 scoped_ptr<ListValue> args(new ListValue()); | 281 scoped_ptr<ListValue> args(new ListValue()); |
274 activity_log_->LogAPIAction(extension, | 282 activity_log_->LogAPIAction(extension, |
275 event_name + ".removeListener", | 283 event_name + ".removeListener", |
276 args.get(), | 284 args.get(), |
277 ""); | 285 ""); |
278 } | 286 } |
| 287 #endif |
279 } | 288 } |
280 | 289 |
281 void EventRouter::AddLazyEventListener(const std::string& event_name, | 290 void EventRouter::AddLazyEventListener(const std::string& event_name, |
282 const std::string& extension_id) { | 291 const std::string& extension_id) { |
283 scoped_ptr<EventListener> listener(new EventListener( | 292 scoped_ptr<EventListener> listener(new EventListener( |
284 event_name, extension_id, NULL, scoped_ptr<DictionaryValue>())); | 293 event_name, extension_id, NULL, scoped_ptr<DictionaryValue>())); |
285 bool is_new = listeners_.AddListener(listener.Pass()); | 294 bool is_new = listeners_.AddListener(listener.Pass()); |
286 | 295 |
287 if (is_new) { | 296 if (is_new) { |
288 ExtensionPrefs* prefs = extensions::ExtensionSystem::Get(profile_)-> | 297 ExtensionPrefs* prefs = extensions::ExtensionSystem::Get(profile_)-> |
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
720 copy->will_dispatch_callback = will_dispatch_callback; | 729 copy->will_dispatch_callback = will_dispatch_callback; |
721 return copy; | 730 return copy; |
722 } | 731 } |
723 | 732 |
724 EventListenerInfo::EventListenerInfo(const std::string& event_name, | 733 EventListenerInfo::EventListenerInfo(const std::string& event_name, |
725 const std::string& extension_id) | 734 const std::string& extension_id) |
726 : event_name(event_name), | 735 : event_name(event_name), |
727 extension_id(extension_id) {} | 736 extension_id(extension_id) {} |
728 | 737 |
729 } // namespace extensions | 738 } // namespace extensions |
OLD | NEW |