| 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 |