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

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

Issue 425303002: Move extension notifications to extensions/browser/notification_types.h (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: (extension-notifications) rebase Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « extensions/browser/api/test/test_api.cc ('k') | extensions/browser/extension_host.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "extensions/browser/event_router.h" 5 #include "extensions/browser/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"
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "base/stl_util.h" 12 #include "base/stl_util.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/browser/chrome_notification_types.h"
15 #include "content/public/browser/child_process_security_policy.h" 14 #include "content/public/browser/child_process_security_policy.h"
16 #include "content/public/browser/notification_service.h" 15 #include "content/public/browser/notification_service.h"
17 #include "content/public/browser/render_process_host.h" 16 #include "content/public/browser/render_process_host.h"
18 #include "extensions/browser/api_activity_monitor.h" 17 #include "extensions/browser/api_activity_monitor.h"
19 #include "extensions/browser/extension_host.h" 18 #include "extensions/browser/extension_host.h"
20 #include "extensions/browser/extension_prefs.h" 19 #include "extensions/browser/extension_prefs.h"
21 #include "extensions/browser/extension_registry.h" 20 #include "extensions/browser/extension_registry.h"
22 #include "extensions/browser/extension_system.h" 21 #include "extensions/browser/extension_system.h"
23 #include "extensions/browser/extension_util.h" 22 #include "extensions/browser/extension_util.h"
24 #include "extensions/browser/extensions_browser_client.h" 23 #include "extensions/browser/extensions_browser_client.h"
25 #include "extensions/browser/lazy_background_task_queue.h" 24 #include "extensions/browser/lazy_background_task_queue.h"
25 #include "extensions/browser/notification_types.h"
26 #include "extensions/browser/process_manager.h" 26 #include "extensions/browser/process_manager.h"
27 #include "extensions/browser/process_map.h" 27 #include "extensions/browser/process_map.h"
28 #include "extensions/common/extension.h" 28 #include "extensions/common/extension.h"
29 #include "extensions/common/extension_api.h" 29 #include "extensions/common/extension_api.h"
30 #include "extensions/common/extension_messages.h" 30 #include "extensions/common/extension_messages.h"
31 #include "extensions/common/extension_urls.h" 31 #include "extensions/common/extension_urls.h"
32 #include "extensions/common/manifest_handlers/background_info.h" 32 #include "extensions/common/manifest_handlers/background_info.h"
33 #include "extensions/common/manifest_handlers/incognito_info.h" 33 #include "extensions/common/manifest_handlers/incognito_info.h"
34 #include "extensions/common/permissions/permissions_data.h" 34 #include "extensions/common/permissions/permissions_data.h"
35 35
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 167
168 EventRouter::EventRouter(BrowserContext* browser_context, 168 EventRouter::EventRouter(BrowserContext* browser_context,
169 ExtensionPrefs* extension_prefs) 169 ExtensionPrefs* extension_prefs)
170 : browser_context_(browser_context), 170 : browser_context_(browser_context),
171 extension_prefs_(extension_prefs), 171 extension_prefs_(extension_prefs),
172 listeners_(this) { 172 listeners_(this) {
173 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, 173 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED,
174 content::NotificationService::AllSources()); 174 content::NotificationService::AllSources());
175 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CLOSED, 175 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
176 content::NotificationService::AllSources()); 176 content::NotificationService::AllSources());
177 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_ENABLED, 177 registrar_.Add(this,
178 extensions::NOTIFICATION_EXTENSION_ENABLED,
178 content::Source<BrowserContext>(browser_context_)); 179 content::Source<BrowserContext>(browser_context_));
179 registrar_.Add(this, 180 registrar_.Add(this,
180 chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED, 181 extensions::NOTIFICATION_EXTENSION_LOADED_DEPRECATED,
181 content::Source<BrowserContext>(browser_context_)); 182 content::Source<BrowserContext>(browser_context_));
182 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED, 183 registrar_.Add(this,
184 extensions::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED,
183 content::Source<BrowserContext>(browser_context_)); 185 content::Source<BrowserContext>(browser_context_));
184 } 186 }
185 187
186 EventRouter::~EventRouter() {} 188 EventRouter::~EventRouter() {}
187 189
188 void EventRouter::AddEventListener(const std::string& event_name, 190 void EventRouter::AddEventListener(const std::string& event_name,
189 content::RenderProcessHost* process, 191 content::RenderProcessHost* process,
190 const std::string& extension_id) { 192 const std::string& extension_id) {
191 listeners_.AddListener(EventListener::ForExtension( 193 listeners_.AddListener(EventListener::ForExtension(
192 event_name, extension_id, process, scoped_ptr<DictionaryValue>())); 194 event_name, extension_id, process, scoped_ptr<DictionaryValue>()));
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 const content::NotificationDetails& details) { 730 const content::NotificationDetails& details) {
729 switch (type) { 731 switch (type) {
730 case content::NOTIFICATION_RENDERER_PROCESS_TERMINATED: 732 case content::NOTIFICATION_RENDERER_PROCESS_TERMINATED:
731 case content::NOTIFICATION_RENDERER_PROCESS_CLOSED: { 733 case content::NOTIFICATION_RENDERER_PROCESS_CLOSED: {
732 content::RenderProcessHost* renderer = 734 content::RenderProcessHost* renderer =
733 content::Source<content::RenderProcessHost>(source).ptr(); 735 content::Source<content::RenderProcessHost>(source).ptr();
734 // Remove all event listeners associated with this renderer. 736 // Remove all event listeners associated with this renderer.
735 listeners_.RemoveListenersForProcess(renderer); 737 listeners_.RemoveListenersForProcess(renderer);
736 break; 738 break;
737 } 739 }
738 case chrome::NOTIFICATION_EXTENSION_ENABLED: { 740 case extensions::NOTIFICATION_EXTENSION_ENABLED: {
739 // If the extension has a lazy background page, make sure it gets loaded 741 // If the extension has a lazy background page, make sure it gets loaded
740 // to register the events the extension is interested in. 742 // to register the events the extension is interested in.
741 const Extension* extension = 743 const Extension* extension =
742 content::Details<const Extension>(details).ptr(); 744 content::Details<const Extension>(details).ptr();
743 if (BackgroundInfo::HasLazyBackgroundPage(extension)) { 745 if (BackgroundInfo::HasLazyBackgroundPage(extension)) {
744 LazyBackgroundTaskQueue* queue = ExtensionSystem::Get( 746 LazyBackgroundTaskQueue* queue = ExtensionSystem::Get(
745 browser_context_)->lazy_background_task_queue(); 747 browser_context_)->lazy_background_task_queue();
746 queue->AddPendingTask(browser_context_, extension->id(), 748 queue->AddPendingTask(browser_context_, extension->id(),
747 base::Bind(&DoNothing)); 749 base::Bind(&DoNothing));
748 } 750 }
749 break; 751 break;
750 } 752 }
751 case chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED: { 753 case extensions::NOTIFICATION_EXTENSION_LOADED_DEPRECATED: {
752 // Add all registered lazy listeners to our cache. 754 // Add all registered lazy listeners to our cache.
753 const Extension* extension = 755 const Extension* extension =
754 content::Details<const Extension>(details).ptr(); 756 content::Details<const Extension>(details).ptr();
755 std::set<std::string> registered_events = 757 std::set<std::string> registered_events =
756 GetRegisteredEvents(extension->id()); 758 GetRegisteredEvents(extension->id());
757 listeners_.LoadUnfilteredLazyListeners(extension->id(), 759 listeners_.LoadUnfilteredLazyListeners(extension->id(),
758 registered_events); 760 registered_events);
759 const DictionaryValue* filtered_events = 761 const DictionaryValue* filtered_events =
760 GetFilteredEvents(extension->id()); 762 GetFilteredEvents(extension->id());
761 if (filtered_events) 763 if (filtered_events)
762 listeners_.LoadFilteredLazyListeners(extension->id(), *filtered_events); 764 listeners_.LoadFilteredLazyListeners(extension->id(), *filtered_events);
763 break; 765 break;
764 } 766 }
765 case chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED: { 767 case extensions::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED: {
766 // Remove all registered lazy listeners from our cache. 768 // Remove all registered lazy listeners from our cache.
767 UnloadedExtensionInfo* unloaded = 769 UnloadedExtensionInfo* unloaded =
768 content::Details<UnloadedExtensionInfo>(details).ptr(); 770 content::Details<UnloadedExtensionInfo>(details).ptr();
769 listeners_.RemoveLazyListenersForExtension(unloaded->extension->id()); 771 listeners_.RemoveLazyListenersForExtension(unloaded->extension->id());
770 break; 772 break;
771 } 773 }
772 default: 774 default:
773 NOTREACHED(); 775 NOTREACHED();
774 return; 776 return;
775 } 777 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
829 const std::string& extension_id, 831 const std::string& extension_id,
830 const GURL& listener_url, 832 const GURL& listener_url,
831 content::BrowserContext* browser_context) 833 content::BrowserContext* browser_context)
832 : event_name(event_name), 834 : event_name(event_name),
833 extension_id(extension_id), 835 extension_id(extension_id),
834 listener_url(listener_url), 836 listener_url(listener_url),
835 browser_context(browser_context) { 837 browser_context(browser_context) {
836 } 838 }
837 839
838 } // namespace extensions 840 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/api/test/test_api.cc ('k') | extensions/browser/extension_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698