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

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

Issue 10704023: Moved ExtensionPrefs and related into extensions namespace (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Latest-er master merged in Created 8 years, 5 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 (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/extension_event_router.h" 5 #include "chrome/browser/extensions/extension_event_router.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 } 180 }
181 181
182 void ExtensionEventRouter::AddLazyEventListener( 182 void ExtensionEventRouter::AddLazyEventListener(
183 const std::string& event_name, 183 const std::string& event_name,
184 const std::string& extension_id) { 184 const std::string& extension_id) {
185 scoped_ptr<EventListener> listener(new EventListener( 185 scoped_ptr<EventListener> listener(new EventListener(
186 event_name, extension_id, NULL, scoped_ptr<DictionaryValue>())); 186 event_name, extension_id, NULL, scoped_ptr<DictionaryValue>()));
187 bool is_new = listeners_.AddListener(listener.Pass()); 187 bool is_new = listeners_.AddListener(listener.Pass());
188 188
189 if (is_new) { 189 if (is_new) {
190 ExtensionPrefs* prefs = profile_->GetExtensionService()->extension_prefs(); 190 extensions::ExtensionPrefs* prefs =
191 profile_->GetExtensionService()->extension_prefs();
191 std::set<std::string> events = prefs->GetRegisteredEvents(extension_id); 192 std::set<std::string> events = prefs->GetRegisteredEvents(extension_id);
192 bool prefs_is_new = events.insert(event_name).second; 193 bool prefs_is_new = events.insert(event_name).second;
193 if (prefs_is_new) 194 if (prefs_is_new)
194 prefs->SetRegisteredEvents(extension_id, events); 195 prefs->SetRegisteredEvents(extension_id, events);
195 } 196 }
196 } 197 }
197 198
198 void ExtensionEventRouter::RemoveLazyEventListener( 199 void ExtensionEventRouter::RemoveLazyEventListener(
199 const std::string& event_name, 200 const std::string& event_name,
200 const std::string& extension_id) { 201 const std::string& extension_id) {
201 EventListener listener(event_name, extension_id, NULL, 202 EventListener listener(event_name, extension_id, NULL,
202 scoped_ptr<DictionaryValue>()); 203 scoped_ptr<DictionaryValue>());
203 bool did_exist = listeners_.RemoveListener(&listener); 204 bool did_exist = listeners_.RemoveListener(&listener);
204 205
205 if (did_exist) { 206 if (did_exist) {
206 ExtensionPrefs* prefs = profile_->GetExtensionService()->extension_prefs(); 207 extensions::ExtensionPrefs* prefs =
208 profile_->GetExtensionService()->extension_prefs();
207 std::set<std::string> events = prefs->GetRegisteredEvents(extension_id); 209 std::set<std::string> events = prefs->GetRegisteredEvents(extension_id);
208 bool prefs_did_exist = events.erase(event_name) > 0; 210 bool prefs_did_exist = events.erase(event_name) > 0;
209 DCHECK(prefs_did_exist); 211 DCHECK(prefs_did_exist);
210 prefs->SetRegisteredEvents(extension_id, events); 212 prefs->SetRegisteredEvents(extension_id, events);
211 } 213 }
212 } 214 }
213 215
214 void ExtensionEventRouter::AddFilteredEventListener( 216 void ExtensionEventRouter::AddFilteredEventListener(
215 const std::string& event_name, 217 const std::string& event_name,
216 content::RenderProcessHost* process, 218 content::RenderProcessHost* process,
217 const std::string& extension_id, 219 const std::string& extension_id,
218 const base::DictionaryValue& filter, 220 const base::DictionaryValue& filter,
219 bool add_lazy_listener) { 221 bool add_lazy_listener) {
220 listeners_.AddListener(scoped_ptr<EventListener>(new EventListener( 222 listeners_.AddListener(scoped_ptr<EventListener>(new EventListener(
221 event_name, extension_id, process, 223 event_name, extension_id, process,
222 scoped_ptr<DictionaryValue>(filter.DeepCopy())))); 224 scoped_ptr<DictionaryValue>(filter.DeepCopy()))));
223 225
224 if (add_lazy_listener) { 226 if (add_lazy_listener) {
225 bool added = listeners_.AddListener(scoped_ptr<EventListener>( 227 bool added = listeners_.AddListener(scoped_ptr<EventListener>(
226 new EventListener(event_name, extension_id, NULL, 228 new EventListener(event_name, extension_id, NULL,
227 scoped_ptr<DictionaryValue>(filter.DeepCopy())))); 229 scoped_ptr<DictionaryValue>(filter.DeepCopy()))));
228 230
229 if (added) { 231 if (added) {
230 ExtensionPrefs* prefs = 232 extensions::ExtensionPrefs* prefs =
231 profile_->GetExtensionService()->extension_prefs(); 233 profile_->GetExtensionService()->extension_prefs();
232 prefs->AddFilterToEvent(event_name, extension_id, &filter); 234 prefs->AddFilterToEvent(event_name, extension_id, &filter);
233 } 235 }
234 } 236 }
235 } 237 }
236 238
237 void ExtensionEventRouter::RemoveFilteredEventListener( 239 void ExtensionEventRouter::RemoveFilteredEventListener(
238 const std::string& event_name, 240 const std::string& event_name,
239 content::RenderProcessHost* process, 241 content::RenderProcessHost* process,
240 const std::string& extension_id, 242 const std::string& extension_id,
241 const base::DictionaryValue& filter, 243 const base::DictionaryValue& filter,
242 bool remove_lazy_listener) { 244 bool remove_lazy_listener) {
243 EventListener listener(event_name, extension_id, process, 245 EventListener listener(event_name, extension_id, process,
244 scoped_ptr<DictionaryValue>(filter.DeepCopy())); 246 scoped_ptr<DictionaryValue>(filter.DeepCopy()));
245 247
246 listeners_.RemoveListener(&listener); 248 listeners_.RemoveListener(&listener);
247 249
248 if (remove_lazy_listener) { 250 if (remove_lazy_listener) {
249 listener.process = NULL; 251 listener.process = NULL;
250 bool removed = listeners_.RemoveListener(&listener); 252 bool removed = listeners_.RemoveListener(&listener);
251 253
252 if (removed) { 254 if (removed) {
253 ExtensionPrefs* prefs = 255 extensions::ExtensionPrefs* prefs =
254 profile_->GetExtensionService()->extension_prefs(); 256 profile_->GetExtensionService()->extension_prefs();
255 prefs->RemoveFilterFromEvent(event_name, extension_id, &filter); 257 prefs->RemoveFilterFromEvent(event_name, extension_id, &filter);
256 } 258 }
257 } 259 }
258 } 260 }
259 261
260 bool ExtensionEventRouter::HasEventListener(const std::string& event_name) { 262 bool ExtensionEventRouter::HasEventListener(const std::string& event_name) {
261 return listeners_.HasListenerForEvent(event_name); 263 return listeners_.HasListenerForEvent(event_name);
262 } 264 }
263 265
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 content::RenderProcessHost* renderer = 532 content::RenderProcessHost* renderer =
531 content::Source<content::RenderProcessHost>(source).ptr(); 533 content::Source<content::RenderProcessHost>(source).ptr();
532 // Remove all event listeners associated with this renderer. 534 // Remove all event listeners associated with this renderer.
533 listeners_.RemoveListenersForProcess(renderer); 535 listeners_.RemoveListenersForProcess(renderer);
534 break; 536 break;
535 } 537 }
536 case chrome::NOTIFICATION_EXTENSION_LOADED: { 538 case chrome::NOTIFICATION_EXTENSION_LOADED: {
537 // Add all registered lazy listeners to our cache. 539 // Add all registered lazy listeners to our cache.
538 const Extension* extension = 540 const Extension* extension =
539 content::Details<const Extension>(details).ptr(); 541 content::Details<const Extension>(details).ptr();
540 ExtensionPrefs* prefs = 542 extensions::ExtensionPrefs* prefs =
541 profile_->GetExtensionService()->extension_prefs(); 543 profile_->GetExtensionService()->extension_prefs();
542 std::set<std::string> registered_events = 544 std::set<std::string> registered_events =
543 prefs->GetRegisteredEvents(extension->id()); 545 prefs->GetRegisteredEvents(extension->id());
544 listeners_.LoadUnfilteredLazyListeners(extension->id(), 546 listeners_.LoadUnfilteredLazyListeners(extension->id(),
545 registered_events); 547 registered_events);
546 const DictionaryValue* filtered_events = 548 const DictionaryValue* filtered_events =
547 prefs->GetFilteredEvents(extension->id()); 549 prefs->GetFilteredEvents(extension->id());
548 if (filtered_events) 550 if (filtered_events)
549 listeners_.LoadFilteredLazyListeners(extension->id(), *filtered_events); 551 listeners_.LoadFilteredLazyListeners(extension->id(), *filtered_events);
550 break; 552 break;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 event_args(event_args.DeepCopy()), 618 event_args(event_args.DeepCopy()),
617 event_url(event_url), 619 event_url(event_url),
618 restrict_to_profile(restrict_to_profile), 620 restrict_to_profile(restrict_to_profile),
619 cross_incognito_args(NULL), 621 cross_incognito_args(NULL),
620 user_gesture(user_gesture), 622 user_gesture(user_gesture),
621 info(info) { 623 info(info) {
622 } 624 }
623 625
624 ExtensionEvent::~ExtensionEvent() { 626 ExtensionEvent::~ExtensionEvent() {
625 } 627 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/app_notification_browsertest.cc ('k') | chrome/browser/extensions/extension_font_settings_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698