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

Side by Side Diff: chrome/browser/extensions/event_router.cc

Issue 11368145: Lazy-creates BluetoothAdapter in ExtensionBluetoothEventRouter (EBEE). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use GetMutableAdapter Created 8 years, 1 month 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 | Annotate | Revision Log
OLDNEW
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 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 // TODO(yoz): Migrate these to become EventRouter observers. 191 // TODO(yoz): Migrate these to become EventRouter observers.
192 // EventRouter shouldn't need to know about them. 192 // EventRouter shouldn't need to know about them.
193 ExtensionDevToolsManager* extension_devtools_manager = 193 ExtensionDevToolsManager* extension_devtools_manager =
194 ExtensionSystem::Get(profile_)->devtools_manager(); 194 ExtensionSystem::Get(profile_)->devtools_manager();
195 if (extension_devtools_manager) 195 if (extension_devtools_manager)
196 extension_devtools_manager->AddEventListener(event_name, 196 extension_devtools_manager->AddEventListener(event_name,
197 listener->process->GetID()); 197 listener->process->GetID());
198 198
199 if (SystemInfoEventRouter::IsSystemInfoEvent(event_name)) 199 if (SystemInfoEventRouter::IsSystemInfoEvent(event_name))
200 SystemInfoEventRouter::GetInstance()->AddEventListener(event_name); 200 SystemInfoEventRouter::GetInstance()->AddEventListener(event_name);
201 ExtensionService* service =
202 ExtensionSystem::Get(profile_)->extension_service();
203 service->NotifyExtensionEventRoutersOnListenerAdded(event_name);
201 } 204 }
202 205
203 void EventRouter::OnListenerRemoved(const EventListener* listener) { 206 void EventRouter::OnListenerRemoved(const EventListener* listener) {
204 // We don't care about lazy events being removed. 207 // We don't care about lazy events being removed.
205 if (!listener->process) 208 if (!listener->process)
206 return; 209 return;
207 210
208 const std::string& event_name = listener->event_name; 211 const std::string& event_name = listener->event_name;
209 ObserverMap::iterator observer = observers_.find(event_name); 212 ObserverMap::iterator observer = observers_.find(event_name);
210 if (observer != observers_.end()) 213 if (observer != observers_.end())
211 observer->second->OnListenerRemoved(event_name); 214 observer->second->OnListenerRemoved(event_name);
212 215
213 // TODO(yoz): Migrate these to become EventRouter observers. 216 // TODO(yoz): Migrate these to become EventRouter observers.
214 // EventRouter shouldn't need to know about them. 217 // EventRouter shouldn't need to know about them.
215 ExtensionDevToolsManager* extension_devtools_manager = 218 ExtensionDevToolsManager* extension_devtools_manager =
216 ExtensionSystem::Get(profile_)->devtools_manager(); 219 ExtensionSystem::Get(profile_)->devtools_manager();
217 if (extension_devtools_manager) 220 if (extension_devtools_manager)
218 extension_devtools_manager->RemoveEventListener( 221 extension_devtools_manager->RemoveEventListener(
219 event_name, listener->process->GetID()); 222 event_name, listener->process->GetID());
220 223
221 BrowserThread::PostTask( 224 BrowserThread::PostTask(
222 BrowserThread::IO, FROM_HERE, 225 BrowserThread::IO, FROM_HERE,
223 base::Bind(&NotifyEventListenerRemovedOnIOThread, 226 base::Bind(&NotifyEventListenerRemovedOnIOThread,
224 profile_, listener->extension_id, event_name)); 227 profile_, listener->extension_id, event_name));
225 228
226 if (SystemInfoEventRouter::IsSystemInfoEvent(event_name)) 229 if (SystemInfoEventRouter::IsSystemInfoEvent(event_name))
227 SystemInfoEventRouter::GetInstance()->RemoveEventListener(event_name); 230 SystemInfoEventRouter::GetInstance()->RemoveEventListener(event_name);
231 ExtensionService* service =
232 ExtensionSystem::Get(profile_)->extension_service();
233 service->NotifyExtensionEventRoutersOnListenerRemoved(event_name);
228 } 234 }
229 235
230 void EventRouter::AddLazyEventListener(const std::string& event_name, 236 void EventRouter::AddLazyEventListener(const std::string& event_name,
231 const std::string& extension_id) { 237 const std::string& extension_id) {
232 scoped_ptr<EventListener> listener(new EventListener( 238 scoped_ptr<EventListener> listener(new EventListener(
233 event_name, extension_id, NULL, scoped_ptr<DictionaryValue>())); 239 event_name, extension_id, NULL, scoped_ptr<DictionaryValue>()));
234 bool is_new = listeners_.AddListener(listener.Pass()); 240 bool is_new = listeners_.AddListener(listener.Pass());
235 241
236 if (is_new) { 242 if (is_new) {
237 ExtensionPrefs* prefs = 243 ExtensionPrefs* prefs =
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 event_args(event_args.Pass()), 692 event_args(event_args.Pass()),
687 event_url(event_url), 693 event_url(event_url),
688 restrict_to_profile(restrict_to_profile), 694 restrict_to_profile(restrict_to_profile),
689 cross_incognito_args(NULL), 695 cross_incognito_args(NULL),
690 user_gesture(user_gesture), 696 user_gesture(user_gesture),
691 info(info) {} 697 info(info) {}
692 698
693 Event::~Event() {} 699 Event::~Event() {}
694 700
695 } // namespace extensions 701 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/bluetooth_event_router_unittest.cc ('k') | chrome/browser/extensions/extension_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698