summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions')
-rw-r--r--chrome/browser/extensions/activity_log/activity_log.h2
-rw-r--r--chrome/browser/extensions/api/activity_log_private/activity_log_private_api.h2
-rw-r--r--chrome/browser/extensions/api/alarms/alarm_manager.cc2
-rw-r--r--chrome/browser/extensions/api/app_runtime/app_runtime_api.cc2
-rw-r--r--chrome/browser/extensions/api/audio/audio_api.cc2
-rw-r--r--chrome/browser/extensions/api/bluetooth/bluetooth_api.cc2
-rw-r--r--chrome/browser/extensions/api/bluetooth/bluetooth_api.h2
-rw-r--r--chrome/browser/extensions/api/bluetooth/bluetooth_event_router.cc2
-rw-r--r--chrome/browser/extensions/api/bluetooth/bluetooth_event_router_unittest.cc2
-rw-r--r--chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc2
-rw-r--r--chrome/browser/extensions/api/bookmarks/bookmarks_api.cc2
-rw-r--r--chrome/browser/extensions/api/bookmarks/bookmarks_api.h2
-rw-r--r--chrome/browser/extensions/api/braille_display_private/braille_display_private_api.h2
-rw-r--r--chrome/browser/extensions/api/cast_channel/cast_channel_api.cc2
-rw-r--r--chrome/browser/extensions/api/cookies/cookies_api.cc2
-rw-r--r--chrome/browser/extensions/api/cookies/cookies_api.h2
-rw-r--r--chrome/browser/extensions/api/debugger/debugger_api.cc2
-rw-r--r--chrome/browser/extensions/api/developer_private/developer_private_api.h2
-rw-r--r--chrome/browser/extensions/api/dial/dial_api.cc2
-rw-r--r--chrome/browser/extensions/api/dial/dial_api.h2
-rw-r--r--chrome/browser/extensions/api/downloads/downloads_api.cc2
-rw-r--r--chrome/browser/extensions/api/downloads/downloads_api.h2
-rw-r--r--chrome/browser/extensions/api/extension_action/extension_action_api.cc2
-rw-r--r--chrome/browser/extensions/api/feedback_private/feedback_browsertest.cc2
-rw-r--r--chrome/browser/extensions/api/feedback_private/feedback_private_api.cc2
-rw-r--r--chrome/browser/extensions/api/font_settings/font_settings_api.h2
-rw-r--r--chrome/browser/extensions/api/history/history_api.cc2
-rw-r--r--chrome/browser/extensions/api/history/history_api.h2
-rw-r--r--chrome/browser/extensions/api/identity/identity_api.cc2
-rw-r--r--chrome/browser/extensions/api/identity/web_auth_flow.cc2
-rw-r--r--chrome/browser/extensions/api/idle/idle_api_unittest.cc2
-rw-r--r--chrome/browser/extensions/api/idle/idle_manager.cc2
-rw-r--r--chrome/browser/extensions/api/idle/idle_manager.h2
-rw-r--r--chrome/browser/extensions/api/image_writer_private/operation_manager.cc2
-rw-r--r--chrome/browser/extensions/api/input_ime/input_ime_api.cc2
-rw-r--r--chrome/browser/extensions/api/location/location_manager.cc2
-rw-r--r--chrome/browser/extensions/api/management/management_api.cc2
-rw-r--r--chrome/browser/extensions/api/management/management_api.h2
-rw-r--r--chrome/browser/extensions/api/mdns/mdns_api.h2
-rw-r--r--chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.cc2
-rw-r--r--chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h2
-rw-r--r--chrome/browser/extensions/api/media_galleries_private/media_galleries_private_event_router.cc2
-rw-r--r--chrome/browser/extensions/api/networking_private/networking_private_api_nonchromeos.cc2
-rw-r--r--chrome/browser/extensions/api/networking_private/networking_private_event_router.h2
-rw-r--r--chrome/browser/extensions/api/notifications/notifications_api.cc2
-rw-r--r--chrome/browser/extensions/api/omnibox/omnibox_api.cc2
-rw-r--r--chrome/browser/extensions/api/preference/chrome_direct_setting_api.h2
-rw-r--r--chrome/browser/extensions/api/preference/preference_api.h2
-rw-r--r--chrome/browser/extensions/api/preference/preference_helpers.cc2
-rw-r--r--chrome/browser/extensions/api/processes/processes_api.cc2
-rw-r--r--chrome/browser/extensions/api/processes/processes_api.h2
-rw-r--r--chrome/browser/extensions/api/push_messaging/push_messaging_api.cc2
-rw-r--r--chrome/browser/extensions/api/runtime/runtime_api.cc2
-rw-r--r--chrome/browser/extensions/api/serial/serial_event_dispatcher.cc2
-rw-r--r--chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.cc2
-rw-r--r--chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.h2
-rw-r--r--chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager_unittest.cc2
-rw-r--r--chrome/browser/extensions/api/sockets_tcp/tcp_socket_event_dispatcher.cc2
-rw-r--r--chrome/browser/extensions/api/sockets_tcp_server/tcp_server_socket_event_dispatcher.cc2
-rw-r--r--chrome/browser/extensions/api/sockets_udp/udp_socket_event_dispatcher.cc2
-rw-r--r--chrome/browser/extensions/api/storage/settings_frontend.cc2
-rw-r--r--chrome/browser/extensions/api/storage/settings_test_util.h2
-rw-r--r--chrome/browser/extensions/api/streams_private/streams_private_api.cc2
-rw-r--r--chrome/browser/extensions/api/streams_private/streams_private_apitest.cc2
-rw-r--r--chrome/browser/extensions/api/sync_file_system/extension_sync_event_observer.cc2
-rw-r--r--chrome/browser/extensions/api/system_indicator/system_indicator_manager.cc2
-rw-r--r--chrome/browser/extensions/api/system_indicator/system_indicator_manager.h2
-rw-r--r--chrome/browser/extensions/api/system_info/system_info_api.h2
-rw-r--r--chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc2
-rw-r--r--chrome/browser/extensions/api/tabs/tabs_event_router.h2
-rw-r--r--chrome/browser/extensions/api/tabs/tabs_windows_api.cc2
-rw-r--r--chrome/browser/extensions/api/tabs/tabs_windows_api.h2
-rw-r--r--chrome/browser/extensions/api/tabs/windows_event_router.cc2
-rw-r--r--chrome/browser/extensions/api/terminal/terminal_private_api.cc2
-rw-r--r--chrome/browser/extensions/api/web_navigation/web_navigation_api.cc2
-rw-r--r--chrome/browser/extensions/api/web_navigation/web_navigation_api.h2
-rw-r--r--chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc2
-rw-r--r--chrome/browser/extensions/api/web_request/web_request_api.cc2
-rw-r--r--chrome/browser/extensions/api/web_request/web_request_api.h2
-rw-r--r--chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc2
-rw-r--r--chrome/browser/extensions/event_router.cc783
-rw-r--r--chrome/browser/extensions/event_router.h387
-rw-r--r--chrome/browser/extensions/event_router_forwarder.cc2
-rw-r--r--chrome/browser/extensions/event_router_unittest.cc122
-rw-r--r--chrome/browser/extensions/extension_host.cc2
-rw-r--r--chrome/browser/extensions/extension_keybinding_registry.cc2
-rw-r--r--chrome/browser/extensions/extension_messages_apitest.cc2
-rw-r--r--chrome/browser/extensions/extension_prefs.cc2
-rw-r--r--chrome/browser/extensions/extension_service.cc2
-rw-r--r--chrome/browser/extensions/extension_system.cc2
-rw-r--r--chrome/browser/extensions/menu_manager.cc2
-rw-r--r--chrome/browser/extensions/menu_manager_unittest.cc2
-rw-r--r--chrome/browser/extensions/permissions_updater.cc2
-rw-r--r--chrome/browser/extensions/test_extension_system.cc2
94 files changed, 91 insertions, 1383 deletions
diff --git a/chrome/browser/extensions/activity_log/activity_log.h b/chrome/browser/extensions/activity_log/activity_log.h
index 5b2c335..f3f00b9 100644
--- a/chrome/browser/extensions/activity_log/activity_log.h
+++ b/chrome/browser/extensions/activity_log/activity_log.h
@@ -17,7 +17,6 @@
#include "chrome/browser/extensions/activity_log/activity_actions.h"
#include "chrome/browser/extensions/activity_log/activity_database.h"
#include "chrome/browser/extensions/activity_log/activity_log_policy.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/install_observer.h"
#include "chrome/browser/extensions/install_tracker.h"
#include "chrome/browser/extensions/tab_helper.h"
@@ -26,6 +25,7 @@
#include "components/browser_context_keyed_service/browser_context_dependency_manager.h"
#include "components/browser_context_keyed_service/browser_context_keyed_service.h"
#include "components/browser_context_keyed_service/browser_context_keyed_service_factory.h"
+#include "extensions/browser/event_router.h"
class Profile;
using content::BrowserThread;
diff --git a/chrome/browser/extensions/api/activity_log_private/activity_log_private_api.h b/chrome/browser/extensions/api/activity_log_private/activity_log_private_api.h
index a2bf60b..5dc496f 100644
--- a/chrome/browser/extensions/api/activity_log_private/activity_log_private_api.h
+++ b/chrome/browser/extensions/api/activity_log_private/activity_log_private_api.h
@@ -14,7 +14,7 @@
#include "chrome/browser/extensions/activity_log/activity_log.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
#include "chrome/browser/extensions/chrome_extension_function.h"
-#include "chrome/browser/extensions/event_router.h"
+#include "extensions/browser/event_router.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/alarms/alarm_manager.cc b/chrome/browser/extensions/api/alarms/alarm_manager.cc
index 8bef9cc..582257c 100644
--- a/chrome/browser/extensions/api/alarms/alarm_manager.cc
+++ b/chrome/browser/extensions/api/alarms/alarm_manager.cc
@@ -14,13 +14,13 @@
#include "base/value_conversions.h"
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/state_store.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/api/alarms.h"
#include "content/public/browser/notification_service.h"
+#include "extensions/browser/event_router.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/app_runtime/app_runtime_api.cc b/chrome/browser/extensions/api/app_runtime/app_runtime_api.cc
index 8feaa5c..1d988f9 100644
--- a/chrome/browser/extensions/api/app_runtime/app_runtime_api.cc
+++ b/chrome/browser/extensions/api/app_runtime/app_runtime_api.cc
@@ -11,13 +11,13 @@
#include "base/time/time.h"
#include "base/values.h"
#include "chrome/browser/extensions/api/file_handlers/app_file_handler_util.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_prefs.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/api/app_runtime.h"
#include "content/public/browser/web_contents.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
#include "url/gurl.h"
diff --git a/chrome/browser/extensions/api/audio/audio_api.cc b/chrome/browser/extensions/api/audio/audio_api.cc
index 90415ae..2d0cd34 100644
--- a/chrome/browser/extensions/api/audio/audio_api.cc
+++ b/chrome/browser/extensions/api/audio/audio_api.cc
@@ -6,9 +6,9 @@
#include "base/lazy_instance.h"
#include "base/values.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/common/extensions/api/audio.h"
+#include "extensions/browser/event_router.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/bluetooth/bluetooth_api.cc b/chrome/browser/extensions/api/bluetooth/bluetooth_api.cc
index af06d9a..88053e6 100644
--- a/chrome/browser/extensions/api/bluetooth/bluetooth_api.cc
+++ b/chrome/browser/extensions/api/bluetooth/bluetooth_api.cc
@@ -11,7 +11,6 @@
#include "chrome/browser/extensions/api/bluetooth/bluetooth_api_utils.h"
#include "chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h"
#include "chrome/browser/extensions/event_names.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/api/bluetooth.h"
@@ -24,6 +23,7 @@
#include "device/bluetooth/bluetooth_service_record.h"
#include "device/bluetooth/bluetooth_socket.h"
#include "device/bluetooth/bluetooth_utils.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/permissions/permissions_data.h"
#include "net/base/io_buffer.h"
diff --git a/chrome/browser/extensions/api/bluetooth/bluetooth_api.h b/chrome/browser/extensions/api/bluetooth/bluetooth_api.h
index 01dbe00..d914b42 100644
--- a/chrome/browser/extensions/api/bluetooth/bluetooth_api.h
+++ b/chrome/browser/extensions/api/bluetooth/bluetooth_api.h
@@ -11,10 +11,10 @@
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/extensions/api/api_function.h"
#include "chrome/browser/extensions/api/bluetooth/bluetooth_extension_function.h"
-#include "chrome/browser/extensions/event_router.h"
#include "components/browser_context_keyed_service/browser_context_keyed_service.h"
#include "device/bluetooth/bluetooth_device.h"
#include "device/bluetooth/bluetooth_profile.h"
+#include "extensions/browser/event_router.h"
namespace device {
diff --git a/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.cc b/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.cc
index 1913ee4..a1757e7 100644
--- a/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.cc
+++ b/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.cc
@@ -15,7 +15,6 @@
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/extensions/api/bluetooth/bluetooth_api_utils.h"
#include "chrome/browser/extensions/event_names.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/common/extensions/api/bluetooth.h"
#include "device/bluetooth/bluetooth_adapter.h"
@@ -23,6 +22,7 @@
#include "device/bluetooth/bluetooth_device.h"
#include "device/bluetooth/bluetooth_profile.h"
#include "device/bluetooth/bluetooth_socket.h"
+#include "extensions/browser/event_router.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/bluetooth/bluetooth_event_router_unittest.cc b/chrome/browser/extensions/api/bluetooth/bluetooth_event_router_unittest.cc
index 39d3908..e4b463e 100644
--- a/chrome/browser/extensions/api/bluetooth/bluetooth_event_router_unittest.cc
+++ b/chrome/browser/extensions/api/bluetooth/bluetooth_event_router_unittest.cc
@@ -10,7 +10,6 @@
#include "base/run_loop.h"
#include "chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h"
#include "chrome/browser/extensions/event_names.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system_factory.h"
#include "chrome/browser/extensions/test_extension_system.h"
#include "chrome/common/extensions/api/bluetooth.h"
@@ -20,6 +19,7 @@
#include "device/bluetooth/test/mock_bluetooth_device.h"
#include "device/bluetooth/test/mock_bluetooth_profile.h"
#include "device/bluetooth/test/mock_bluetooth_socket.h"
+#include "extensions/browser/event_router.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc b/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc
index 0493a56..7a742ed 100644
--- a/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc
+++ b/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc
@@ -17,7 +17,6 @@
#include "chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api_constants.h"
#include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h"
#include "chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_function_dispatcher.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_web_ui.h"
@@ -30,6 +29,7 @@
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_view.h"
#include "content/public/browser/web_ui.h"
+#include "extensions/browser/event_router.h"
#include "extensions/browser/view_type_utils.h"
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
diff --git a/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc b/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
index f946556..446e84f 100644
--- a/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
+++ b/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
@@ -27,7 +27,6 @@
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h"
#include "chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_function_dispatcher.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/importer/external_process_importer_host.h"
@@ -44,6 +43,7 @@
#include "content/public/browser/notification_service.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_view.h"
+#include "extensions/browser/event_router.h"
#include "extensions/browser/quota_service.h"
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
diff --git a/chrome/browser/extensions/api/bookmarks/bookmarks_api.h b/chrome/browser/extensions/api/bookmarks/bookmarks_api.h
index 641a409..62d91a3 100644
--- a/chrome/browser/extensions/api/bookmarks/bookmarks_api.h
+++ b/chrome/browser/extensions/api/bookmarks/bookmarks_api.h
@@ -14,7 +14,7 @@
#include "chrome/browser/bookmarks/base_bookmark_model_observer.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
#include "chrome/browser/extensions/chrome_extension_function.h"
-#include "chrome/browser/extensions/event_router.h"
+#include "extensions/browser/event_router.h"
#include "ui/shell_dialogs/select_file_dialog.h"
class Profile;
diff --git a/chrome/browser/extensions/api/braille_display_private/braille_display_private_api.h b/chrome/browser/extensions/api/braille_display_private/braille_display_private_api.h
index b130e8a..111052f 100644
--- a/chrome/browser/extensions/api/braille_display_private/braille_display_private_api.h
+++ b/chrome/browser/extensions/api/braille_display_private/braille_display_private_api.h
@@ -9,8 +9,8 @@
#include "chrome/browser/extensions/api/api_function.h"
#include "chrome/browser/extensions/api/braille_display_private/braille_controller.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/common/extensions/api/braille_display_private.h"
+#include "extensions/browser/event_router.h"
namespace extensions {
namespace api {
diff --git a/chrome/browser/extensions/api/cast_channel/cast_channel_api.cc b/chrome/browser/extensions/api/cast_channel/cast_channel_api.cc
index 8c770d5..9432171 100644
--- a/chrome/browser/extensions/api/cast_channel/cast_channel_api.cc
+++ b/chrome/browser/extensions/api/cast_channel/cast_channel_api.cc
@@ -9,11 +9,11 @@
#include "base/values.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/api/cast_channel/cast_socket.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/net/chrome_net_log.h"
#include "chrome/browser/profiles/profile.h"
#include "content/public/browser/browser_thread.h"
+#include "extensions/browser/event_router.h"
#include "net/base/net_errors.h"
#include "url/gurl.h"
diff --git a/chrome/browser/extensions/api/cookies/cookies_api.cc b/chrome/browser/extensions/api/cookies/cookies_api.cc
index b26a9ea..d0477e0 100644
--- a/chrome/browser/extensions/api/cookies/cookies_api.cc
+++ b/chrome/browser/extensions/api/cookies/cookies_api.cc
@@ -18,7 +18,6 @@
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/cookies/cookies_api_constants.h"
#include "chrome/browser/extensions/api/cookies/cookies_helpers.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
@@ -26,6 +25,7 @@
#include "chrome/common/extensions/api/cookies.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/notification_service.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/error_utils.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/permissions_data.h"
diff --git a/chrome/browser/extensions/api/cookies/cookies_api.h b/chrome/browser/extensions/api/cookies/cookies_api.h
index 551a2be..c4cbc88 100644
--- a/chrome/browser/extensions/api/cookies/cookies_api.h
+++ b/chrome/browser/extensions/api/cookies/cookies_api.h
@@ -15,11 +15,11 @@
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
#include "chrome/browser/extensions/chrome_extension_function.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/net/chrome_cookie_notification_details.h"
#include "chrome/common/extensions/api/cookies.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
+#include "extensions/browser/event_router.h"
#include "net/cookies/canonical_cookie.h"
#include "url/gurl.h"
diff --git a/chrome/browser/extensions/api/debugger/debugger_api.cc b/chrome/browser/extensions/api/debugger/debugger_api.cc
index 44769c10..f26bab3 100644
--- a/chrome/browser/extensions/api/debugger/debugger_api.cc
+++ b/chrome/browser/extensions/api/debugger/debugger_api.cc
@@ -21,7 +21,6 @@
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/devtools/devtools_target_impl.h"
#include "chrome/browser/extensions/api/debugger/debugger_api_constants.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_host.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
@@ -44,6 +43,7 @@
#include "content/public/browser/web_contents.h"
#include "content/public/common/content_client.h"
#include "content/public/common/url_utils.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/error_utils.h"
#include "extensions/common/extension.h"
#include "grit/generated_resources.h"
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.h b/chrome/browser/extensions/api/developer_private/developer_private_api.h
index e5f0721..4af2eec 100644
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.h
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.h
@@ -9,7 +9,6 @@
#include "chrome/browser/extensions/api/developer_private/entry_picker.h"
#include "chrome/browser/extensions/api/file_system/file_system_api.h"
#include "chrome/browser/extensions/chrome_extension_function.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_install_prompt.h"
#include "chrome/browser/extensions/extension_uninstall_dialog.h"
#include "chrome/browser/extensions/pack_extension_job.h"
@@ -18,6 +17,7 @@
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/render_view_host.h"
+#include "extensions/browser/event_router.h"
#include "ui/shell_dialogs/select_file_dialog.h"
#include "webkit/browser/fileapi/file_system_context.h"
#include "webkit/browser/fileapi/file_system_operation.h"
diff --git a/chrome/browser/extensions/api/dial/dial_api.cc b/chrome/browser/extensions/api/dial/dial_api.cc
index 9b4b1f3..c5416d2 100644
--- a/chrome/browser/extensions/api/dial/dial_api.cc
+++ b/chrome/browser/extensions/api/dial/dial_api.cc
@@ -8,11 +8,11 @@
#include "base/time/time.h"
#include "chrome/browser/extensions/api/dial/dial_api_factory.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/api/dial.h"
#include "content/public/browser/browser_thread.h"
+#include "extensions/browser/event_router.h"
using base::TimeDelta;
using content::BrowserThread;
diff --git a/chrome/browser/extensions/api/dial/dial_api.h b/chrome/browser/extensions/api/dial/dial_api.h
index 74e284e..d1481ca 100644
--- a/chrome/browser/extensions/api/dial/dial_api.h
+++ b/chrome/browser/extensions/api/dial/dial_api.h
@@ -10,8 +10,8 @@
#include "chrome/browser/extensions/api/api_function.h"
#include "chrome/browser/extensions/api/dial/dial_device_data.h"
#include "chrome/browser/extensions/api/dial/dial_registry.h"
-#include "chrome/browser/extensions/event_router.h"
#include "components/browser_context_keyed_service/refcounted_browser_context_keyed_service.h"
+#include "extensions/browser/event_router.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/browser/extensions/api/downloads/downloads_api.cc
index ded4aa8..999b2a1 100644
--- a/chrome/browser/extensions/api/downloads/downloads_api.cc
+++ b/chrome/browser/extensions/api/downloads/downloads_api.cc
@@ -38,7 +38,6 @@
#include "chrome/browser/download/download_shelf.h"
#include "chrome/browser/download/download_stats.h"
#include "chrome/browser/download/drag_download_item.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_function_dispatcher.h"
#include "chrome/browser/extensions/extension_prefs.h"
#include "chrome/browser/extensions/extension_service.h"
@@ -71,6 +70,7 @@
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_view.h"
#include "content/public/browser/web_contents_view.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/permissions_data.h"
#include "net/base/load_flags.h"
diff --git a/chrome/browser/extensions/api/downloads/downloads_api.h b/chrome/browser/extensions/api/downloads/downloads_api.h
index 5542058..6a9fee9 100644
--- a/chrome/browser/extensions/api/downloads/downloads_api.h
+++ b/chrome/browser/extensions/api/downloads/downloads_api.h
@@ -16,13 +16,13 @@
#include "chrome/browser/download/download_danger_prompt.h"
#include "chrome/browser/download/download_path_reservation_tracker.h"
#include "chrome/browser/extensions/chrome_extension_function.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_warning_set.h"
#include "chrome/common/extensions/api/downloads.h"
#include "content/public/browser/download_item.h"
#include "content/public/browser/download_manager.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
+#include "extensions/browser/event_router.h"
class DownloadFileIconExtractor;
class DownloadQuery;
diff --git a/chrome/browser/extensions/api/extension_action/extension_action_api.cc b/chrome/browser/extensions/api/extension_action/extension_action_api.cc
index c041ce23..5c7b068 100644
--- a/chrome/browser/extensions/api/extension_action/extension_action_api.cc
+++ b/chrome/browser/extensions/api/extension_action/extension_action_api.cc
@@ -11,7 +11,6 @@
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/extension_action/extension_page_actions_api_constants.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_action.h"
#include "chrome/browser/extensions/extension_action_manager.h"
#include "chrome/browser/extensions/extension_function_registry.h"
@@ -28,6 +27,7 @@
#include "chrome/common/render_messages.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/notification_service.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/error_utils.h"
#include "ui/gfx/image/image.h"
#include "ui/gfx/image/image_skia.h"
diff --git a/chrome/browser/extensions/api/feedback_private/feedback_browsertest.cc b/chrome/browser/extensions/api/feedback_private/feedback_browsertest.cc
index 82c2137..11fef26 100644
--- a/chrome/browser/extensions/api/feedback_private/feedback_browsertest.cc
+++ b/chrome/browser/extensions/api/feedback_private/feedback_browsertest.cc
@@ -9,7 +9,6 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/api/feedback_private/feedback_private_api.h"
#include "chrome/browser/extensions/component_loader.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_browsertest.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
@@ -18,6 +17,7 @@
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
#include "content/public/common/content_switches.h"
+#include "extensions/browser/event_router.h"
using apps::ShellWindow;
using apps::ShellWindowRegistry;
diff --git a/chrome/browser/extensions/api/feedback_private/feedback_private_api.cc b/chrome/browser/extensions/api/feedback_private/feedback_private_api.cc
index 1888ffb..c8698d4 100644
--- a/chrome/browser/extensions/api/feedback_private/feedback_private_api.cc
+++ b/chrome/browser/extensions/api/feedback_private/feedback_private_api.cc
@@ -11,9 +11,9 @@
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/extensions/api/feedback_private/feedback_service.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/feedback/tracing_manager.h"
+#include "extensions/browser/event_router.h"
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/webui/web_ui_util.h"
diff --git a/chrome/browser/extensions/api/font_settings/font_settings_api.h b/chrome/browser/extensions/api/font_settings/font_settings_api.h
index 497ee35..3b0f537 100644
--- a/chrome/browser/extensions/api/font_settings/font_settings_api.h
+++ b/chrome/browser/extensions/api/font_settings/font_settings_api.h
@@ -15,7 +15,7 @@
#include "base/prefs/pref_service.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
#include "chrome/browser/extensions/chrome_extension_function.h"
-#include "chrome/browser/extensions/event_router.h"
+#include "extensions/browser/event_router.h"
class Profile;
diff --git a/chrome/browser/extensions/api/history/history_api.cc b/chrome/browser/extensions/api/history/history_api.cc
index 9bbb36f..e55b726 100644
--- a/chrome/browser/extensions/api/history/history_api.cc
+++ b/chrome/browser/extensions/api/history/history_api.cc
@@ -19,7 +19,6 @@
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/activity_log/activity_log.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/history/history_service.h"
#include "chrome/browser/history/history_service_factory.h"
@@ -33,6 +32,7 @@
#include "chrome/common/pref_names.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h"
+#include "extensions/browser/event_router.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/history/history_api.h b/chrome/browser/extensions/api/history/history_api.h
index 2106949..65a4736 100644
--- a/chrome/browser/extensions/api/history/history_api.h
+++ b/chrome/browser/extensions/api/history/history_api.h
@@ -12,12 +12,12 @@
#include "base/memory/linked_ptr.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
#include "chrome/browser/extensions/chrome_extension_function.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/history/history_notifications.h"
#include "chrome/browser/history/history_service.h"
#include "chrome/common/cancelable_task_tracker.h"
#include "chrome/common/extensions/api/history.h"
#include "content/public/browser/notification_registrar.h"
+#include "extensions/browser/event_router.h"
namespace base {
class ListValue;
diff --git a/chrome/browser/extensions/api/identity/identity_api.cc b/chrome/browser/extensions/api/identity/identity_api.cc
index 5955853..650f250 100644
--- a/chrome/browser/extensions/api/identity/identity_api.cc
+++ b/chrome/browser/extensions/api/identity/identity_api.cc
@@ -17,7 +17,6 @@
#include "chrome/browser/app_mode/app_mode_utils.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_function_dispatcher.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
@@ -30,6 +29,7 @@
#include "chrome/common/extensions/api/identity/oauth2_manifest_handler.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
#include "google_apis/gaia/gaia_urls.h"
#include "url/gurl.h"
diff --git a/chrome/browser/extensions/api/identity/web_auth_flow.cc b/chrome/browser/extensions/api/identity/web_auth_flow.cc
index 92a0b5a..eb61068 100644
--- a/chrome/browser/extensions/api/identity/web_auth_flow.cc
+++ b/chrome/browser/extensions/api/identity/web_auth_flow.cc
@@ -11,7 +11,6 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/extensions/component_loader.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_system.h"
@@ -28,6 +27,7 @@
#include "content/public/browser/resource_request_details.h"
#include "content/public/browser/web_contents.h"
#include "crypto/random.h"
+#include "extensions/browser/event_router.h"
#include "grit/browser_resources.h"
#include "url/gurl.h"
diff --git a/chrome/browser/extensions/api/idle/idle_api_unittest.cc b/chrome/browser/extensions/api/idle/idle_api_unittest.cc
index 7b44f07..e6655be 100644
--- a/chrome/browser/extensions/api/idle/idle_api_unittest.cc
+++ b/chrome/browser/extensions/api/idle/idle_api_unittest.cc
@@ -12,12 +12,12 @@
#include "chrome/browser/extensions/api/idle/idle_api_constants.h"
#include "chrome/browser/extensions/api/idle/idle_manager.h"
#include "chrome/browser/extensions/api/idle/idle_manager_factory.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_function_test_utils.h"
#include "chrome/common/extensions/api/idle.h"
#include "chrome/test/base/browser_with_test_window_test.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/extensions/api/idle/idle_manager.cc b/chrome/browser/extensions/api/idle/idle_manager.cc
index 461bca1..d3726a7 100644
--- a/chrome/browser/extensions/api/idle/idle_manager.cc
+++ b/chrome/browser/extensions/api/idle/idle_manager.cc
@@ -9,13 +9,13 @@
#include "base/stl_util.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/idle/idle_api_constants.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/api/idle.h"
#include "chrome/common/extensions/extension_constants.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
namespace keys = extensions::idle_api_constants;
diff --git a/chrome/browser/extensions/api/idle/idle_manager.h b/chrome/browser/extensions/api/idle/idle_manager.h
index 91108c2..a300dba 100644
--- a/chrome/browser/extensions/api/idle/idle_manager.h
+++ b/chrome/browser/extensions/api/idle/idle_manager.h
@@ -13,11 +13,11 @@
#include "base/memory/weak_ptr.h"
#include "base/threading/thread_checker.h"
#include "base/timer/timer.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/idle.h"
#include "components/browser_context_keyed_service/browser_context_keyed_service.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
+#include "extensions/browser/event_router.h"
namespace base {
class StringValue;
diff --git a/chrome/browser/extensions/api/image_writer_private/operation_manager.cc b/chrome/browser/extensions/api/image_writer_private/operation_manager.cc
index c6d8c85..8d892ea 100644
--- a/chrome/browser/extensions/api/image_writer_private/operation_manager.cc
+++ b/chrome/browser/extensions/api/image_writer_private/operation_manager.cc
@@ -10,7 +10,6 @@
#include "chrome/browser/extensions/api/image_writer_private/operation_manager.h"
#include "chrome/browser/extensions/api/image_writer_private/write_from_file_operation.h"
#include "chrome/browser/extensions/api/image_writer_private/write_from_url_operation.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/event_router_forwarder.h"
#include "chrome/browser/extensions/extension_host.h"
#include "chrome/browser/extensions/extension_service.h"
@@ -18,6 +17,7 @@
#include "chrome/browser/extensions/extension_system_factory.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/notification_service.h"
+#include "extensions/browser/event_router.h"
namespace image_writer_api = extensions::api::image_writer_private;
diff --git a/chrome/browser/extensions/api/input_ime/input_ime_api.cc b/chrome/browser/extensions/api/input_ime/input_ime_api.cc
index 5a938b9..3690b26 100644
--- a/chrome/browser/extensions/api/input_ime/input_ime_api.cc
+++ b/chrome/browser/extensions/api/input_ime/input_ime_api.cc
@@ -8,7 +8,6 @@
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/chromeos/input_method/input_method_engine.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_function_registry.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
@@ -16,6 +15,7 @@
#include "chrome/common/extensions/api/input_ime/input_components_handler.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h"
+#include "extensions/browser/event_router.h"
namespace input_ime = extensions::api::input_ime;
namespace KeyEventHandled = extensions::api::input_ime::KeyEventHandled;
diff --git a/chrome/browser/extensions/api/location/location_manager.cc b/chrome/browser/extensions/api/location/location_manager.cc
index 5cd2290..2b57845 100644
--- a/chrome/browser/extensions/api/location/location_manager.cc
+++ b/chrome/browser/extensions/api/location/location_manager.cc
@@ -11,7 +11,6 @@
#include "base/lazy_instance.h"
#include "base/time/time.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/common/extensions/api/location.h"
#include "content/public/browser/browser_thread.h"
@@ -19,6 +18,7 @@
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h"
#include "content/public/common/geoposition.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/permission_set.h"
diff --git a/chrome/browser/extensions/api/management/management_api.cc b/chrome/browser/extensions/api/management/management_api.cc
index 28b3bdc..8b889c7 100644
--- a/chrome/browser/extensions/api/management/management_api.cc
+++ b/chrome/browser/extensions/api/management/management_api.cc
@@ -21,7 +21,6 @@
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/management/management_api_constants.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_uninstall_dialog.h"
@@ -40,6 +39,7 @@
#include "content/public/browser/notification_source.h"
#include "content/public/browser/utility_process_host.h"
#include "content/public/browser/utility_process_host_client.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/constants.h"
#include "extensions/common/error_utils.h"
#include "extensions/common/extension.h"
diff --git a/chrome/browser/extensions/api/management/management_api.h b/chrome/browser/extensions/api/management/management_api.h
index 1dcde84..f8cc7e6 100644
--- a/chrome/browser/extensions/api/management/management_api.h
+++ b/chrome/browser/extensions/api/management/management_api.h
@@ -8,12 +8,12 @@
#include "base/compiler_specific.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
#include "chrome/browser/extensions/chrome_extension_function.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_install_prompt.h"
#include "chrome/browser/extensions/extension_uninstall_dialog.h"
#include "components/browser_context_keyed_service/browser_context_keyed_service.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
+#include "extensions/browser/event_router.h"
class ExtensionService;
class ExtensionUninstallDialog;
diff --git a/chrome/browser/extensions/api/mdns/mdns_api.h b/chrome/browser/extensions/api/mdns/mdns_api.h
index 851e0b9..dabf325 100644
--- a/chrome/browser/extensions/api/mdns/mdns_api.h
+++ b/chrome/browser/extensions/api/mdns/mdns_api.h
@@ -12,7 +12,7 @@
#include "base/threading/thread_checker.h"
#include "chrome/browser/extensions/api/mdns/dns_sd_registry.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
-#include "chrome/browser/extensions/event_router.h"
+#include "extensions/browser/event_router.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.cc b/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.cc
index f5386fd..bed03c0 100644
--- a/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.cc
+++ b/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.cc
@@ -15,7 +15,6 @@
#include "chrome/browser/extensions/api/media_galleries_private/gallery_watch_manager.h"
#include "chrome/browser/extensions/api/media_galleries_private/media_galleries_private_event_router.h"
#include "chrome/browser/extensions/event_names.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_util.h"
@@ -26,6 +25,7 @@
#include "chrome/common/extensions/api/media_galleries_private/media_galleries_handler.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_view_host.h"
+#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_function.h"
using base::DictionaryValue;
diff --git a/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h b/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h
index 129296f..a0e745e 100644
--- a/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h
+++ b/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h
@@ -13,9 +13,9 @@
#include "chrome/browser/extensions/api/media_galleries_private/gallery_watch_state_tracker.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
#include "chrome/browser/extensions/chrome_extension_function.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/media_galleries/media_galleries_preferences.h"
#include "chrome/common/extensions/api/media_galleries_private.h"
+#include "extensions/browser/event_router.h"
class Profile;
diff --git a/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_event_router.cc b/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_event_router.cc
index e2a0367..b924116 100644
--- a/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_event_router.cc
+++ b/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_event_router.cc
@@ -11,12 +11,12 @@
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/extensions/event_names.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/storage_monitor/storage_monitor.h"
#include "chrome/common/extensions/api/media_galleries_private.h"
#include "content/public/browser/browser_thread.h"
+#include "extensions/browser/event_router.h"
namespace media_galleries_private = extensions::api::media_galleries_private;
diff --git a/chrome/browser/extensions/api/networking_private/networking_private_api_nonchromeos.cc b/chrome/browser/extensions/api/networking_private/networking_private_api_nonchromeos.cc
index 03fcd4c..4c717e5 100644
--- a/chrome/browser/extensions/api/networking_private/networking_private_api_nonchromeos.cc
+++ b/chrome/browser/extensions/api/networking_private/networking_private_api_nonchromeos.cc
@@ -10,12 +10,12 @@
#include "base/command_line.h"
#include "base/json/json_reader.h"
#include "chrome/browser/browser_process.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_function_registry.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/extensions/api/networking_private.h"
+#include "extensions/browser/event_router.h"
using extensions::EventRouter;
using extensions::ExtensionSystem;
diff --git a/chrome/browser/extensions/api/networking_private/networking_private_event_router.h b/chrome/browser/extensions/api/networking_private/networking_private_event_router.h
index 011c8dd..442db09 100644
--- a/chrome/browser/extensions/api/networking_private/networking_private_event_router.h
+++ b/chrome/browser/extensions/api/networking_private/networking_private_event_router.h
@@ -5,9 +5,9 @@
#ifndef CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_EVENT_ROUTER_H_
#define CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_EVENT_ROUTER_H_
-#include "chrome/browser/extensions/event_router.h"
#include "chromeos/network/network_state_handler_observer.h"
#include "components/browser_context_keyed_service/browser_context_keyed_service.h"
+#include "extensions/browser/event_router.h"
class Profile;
diff --git a/chrome/browser/extensions/api/notifications/notifications_api.cc b/chrome/browser/extensions/api/notifications/notifications_api.cc
index 64af8b0..79fb5c7 100644
--- a/chrome/browser/extensions/api/notifications/notifications_api.cc
+++ b/chrome/browser/extensions/api/notifications/notifications_api.cc
@@ -12,7 +12,6 @@
#include "base/time/time.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/event_names.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/notifications/desktop_notification_service.h"
#include "chrome/browser/notifications/desktop_notification_service_factory.h"
@@ -21,6 +20,7 @@
#include "chrome/common/chrome_version_info.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_view_host.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
#include "extensions/common/features/feature.h"
#include "third_party/skia/include/core/SkBitmap.h"
diff --git a/chrome/browser/extensions/api/omnibox/omnibox_api.cc b/chrome/browser/extensions/api/omnibox/omnibox_api.cc
index 3e97382..85df2cf 100644
--- a/chrome/browser/extensions/api/omnibox/omnibox_api.cc
+++ b/chrome/browser/extensions/api/omnibox/omnibox_api.cc
@@ -11,7 +11,6 @@
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_prefs.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
@@ -24,6 +23,7 @@
#include "chrome/common/extensions/api/omnibox/omnibox_handler.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_service.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
#include "ui/gfx/image/image.h"
diff --git a/chrome/browser/extensions/api/preference/chrome_direct_setting_api.h b/chrome/browser/extensions/api/preference/chrome_direct_setting_api.h
index 4d5e9ff..1acb3a5e 100644
--- a/chrome/browser/extensions/api/preference/chrome_direct_setting_api.h
+++ b/chrome/browser/extensions/api/preference/chrome_direct_setting_api.h
@@ -7,7 +7,7 @@
#include "base/prefs/pref_change_registrar.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
-#include "chrome/browser/extensions/event_router.h"
+#include "extensions/browser/event_router.h"
class Profile;
diff --git a/chrome/browser/extensions/api/preference/preference_api.h b/chrome/browser/extensions/api/preference/preference_api.h
index b924126..313fdc2 100644
--- a/chrome/browser/extensions/api/preference/preference_api.h
+++ b/chrome/browser/extensions/api/preference/preference_api.h
@@ -11,8 +11,8 @@
#include "chrome/browser/extensions/api/content_settings/content_settings_store.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
#include "chrome/browser/extensions/chrome_extension_function.h"
-#include "chrome/browser/extensions/event_router.h"
#include "content/public/browser/notification_observer.h"
+#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_prefs_scope.h"
class ExtensionPrefValueMap;
diff --git a/chrome/browser/extensions/api/preference/preference_helpers.cc b/chrome/browser/extensions/api/preference/preference_helpers.cc
index b2d7eb0..c0235ab 100644
--- a/chrome/browser/extensions/api/preference/preference_helpers.cc
+++ b/chrome/browser/extensions/api/preference/preference_helpers.cc
@@ -8,12 +8,12 @@
#include "base/prefs/pref_service.h"
#include "base/values.h"
#include "chrome/browser/extensions/api/preference/preference_api.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_prefs.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/profiles/profile.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/manifest_handlers/incognito_info.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/processes/processes_api.cc b/chrome/browser/extensions/api/processes/processes_api.cc
index 16e423b..1d304d9 100644
--- a/chrome/browser/extensions/api/processes/processes_api.cc
+++ b/chrome/browser/extensions/api/processes/processes_api.cc
@@ -15,7 +15,6 @@
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/processes/processes_api_constants.h"
#include "chrome/browser/extensions/api/tabs/tabs_constants.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_function_registry.h"
#include "chrome/browser/extensions/extension_function_util.h"
#include "chrome/browser/extensions/extension_service.h"
@@ -34,6 +33,7 @@
#include "content/public/browser/render_widget_host_iterator.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/result_codes.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/error_utils.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/processes/processes_api.h b/chrome/browser/extensions/api/processes/processes_api.h
index 85455f9..8468883 100644
--- a/chrome/browser/extensions/api/processes/processes_api.h
+++ b/chrome/browser/extensions/api/processes/processes_api.h
@@ -11,12 +11,12 @@
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
#include "chrome/browser/extensions/chrome_extension_function.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/task_manager/task_manager.h"
#include "components/browser_context_keyed_service/browser_context_keyed_service.h"
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_widget_host.h"
+#include "extensions/browser/event_router.h"
class Profile;
diff --git a/chrome/browser/extensions/api/push_messaging/push_messaging_api.cc b/chrome/browser/extensions/api/push_messaging/push_messaging_api.cc
index c77f667..6c7b0e9 100644
--- a/chrome/browser/extensions/api/push_messaging/push_messaging_api.cc
+++ b/chrome/browser/extensions/api/push_messaging/push_messaging_api.cc
@@ -13,7 +13,6 @@
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_system_factory.h"
@@ -30,6 +29,7 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/api_permission.h"
#include "google_apis/gaia/gaia_constants.h"
diff --git a/chrome/browser/extensions/api/runtime/runtime_api.cc b/chrome/browser/extensions/api/runtime/runtime_api.cc
index 7711d6bc..9a5c475 100644
--- a/chrome/browser/extensions/api/runtime/runtime_api.cc
+++ b/chrome/browser/extensions/api/runtime/runtime_api.cc
@@ -11,7 +11,6 @@
#include "base/values.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_host.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
@@ -27,6 +26,7 @@
#include "content/public/browser/notification_service.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_view_host.h"
+#include "extensions/browser/event_router.h"
#include "extensions/browser/extensions_browser_client.h"
#include "extensions/browser/lazy_background_task_queue.h"
#include "extensions/browser/process_manager.h"
diff --git a/chrome/browser/extensions/api/serial/serial_event_dispatcher.cc b/chrome/browser/extensions/api/serial/serial_event_dispatcher.cc
index 5d475c2..563ebfb 100644
--- a/chrome/browser/extensions/api/serial/serial_event_dispatcher.cc
+++ b/chrome/browser/extensions/api/serial/serial_event_dispatcher.cc
@@ -6,10 +6,10 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/api/serial/serial_connection.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "extensions/browser/event_router.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.cc b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.cc
index 9d5e450..a48a3d6 100644
--- a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.cc
+++ b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.cc
@@ -14,7 +14,6 @@
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/signed_in_devices/signed_in_devices_api.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
@@ -27,6 +26,7 @@
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_source.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
using browser_sync::DeviceInfo;
diff --git a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.h b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.h
index d03325e..ea4a5f1 100644
--- a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.h
+++ b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.h
@@ -10,8 +10,8 @@
#include "base/gtest_prod_util.h"
#include "base/memory/scoped_vector.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/sync/glue/synced_device_tracker.h"
+#include "extensions/browser/event_router.h"
class Profile;
namespace content {
diff --git a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager_unittest.cc b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager_unittest.cc
index 59905a9..02b6e94 100644
--- a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager_unittest.cc
+++ b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager_unittest.cc
@@ -6,11 +6,11 @@
#include "base/prefs/pref_service.h"
#include "base/prefs/testing_pref_store.h"
#include "chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/sync/profile_sync_service_factory.h"
#include "chrome/common/extensions/api/signed_in_devices.h"
#include "chrome/common/pref_names.h"
#include "chrome/test/base/testing_profile.h"
+#include "extensions/browser/event_router.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/extensions/api/sockets_tcp/tcp_socket_event_dispatcher.cc b/chrome/browser/extensions/api/sockets_tcp/tcp_socket_event_dispatcher.cc
index 40d8c22..ced1575 100644
--- a/chrome/browser/extensions/api/sockets_tcp/tcp_socket_event_dispatcher.cc
+++ b/chrome/browser/extensions/api/sockets_tcp/tcp_socket_event_dispatcher.cc
@@ -6,10 +6,10 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/api/socket/tcp_socket.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "extensions/browser/event_router.h"
#include "net/base/net_errors.h"
namespace {
diff --git a/chrome/browser/extensions/api/sockets_tcp_server/tcp_server_socket_event_dispatcher.cc b/chrome/browser/extensions/api/sockets_tcp_server/tcp_server_socket_event_dispatcher.cc
index d849e8c..faf4a05 100644
--- a/chrome/browser/extensions/api/sockets_tcp_server/tcp_server_socket_event_dispatcher.cc
+++ b/chrome/browser/extensions/api/sockets_tcp_server/tcp_server_socket_event_dispatcher.cc
@@ -6,10 +6,10 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/api/socket/tcp_socket.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "extensions/browser/event_router.h"
#include "net/base/net_errors.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/sockets_udp/udp_socket_event_dispatcher.cc b/chrome/browser/extensions/api/sockets_udp/udp_socket_event_dispatcher.cc
index 1f67872..6b4a518 100644
--- a/chrome/browser/extensions/api/sockets_udp/udp_socket_event_dispatcher.cc
+++ b/chrome/browser/extensions/api/sockets_udp/udp_socket_event_dispatcher.cc
@@ -6,10 +6,10 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/api/socket/udp_socket.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "extensions/browser/event_router.h"
#include "net/base/net_errors.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/storage/settings_frontend.cc b/chrome/browser/extensions/api/storage/settings_frontend.cc
index 86f4262..2a48bf3 100644
--- a/chrome/browser/extensions/api/storage/settings_frontend.cc
+++ b/chrome/browser/extensions/api/storage/settings_frontend.cc
@@ -14,12 +14,12 @@
#include "chrome/browser/extensions/api/storage/settings_backend.h"
#include "chrome/browser/extensions/api/storage/sync_or_local_value_store_cache.h"
#include "chrome/browser/extensions/event_names.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/api/storage.h"
#include "content/public/browser/browser_thread.h"
+#include "extensions/browser/event_router.h"
#if defined(ENABLE_CONFIGURATION_POLICY)
#include "chrome/browser/extensions/api/storage/managed_value_store_cache.h"
diff --git a/chrome/browser/extensions/api/storage/settings_test_util.h b/chrome/browser/extensions/api/storage/settings_test_util.h
index e801dd1..e4d3ea2 100644
--- a/chrome/browser/extensions/api/storage/settings_test_util.h
+++ b/chrome/browser/extensions/api/storage/settings_test_util.h
@@ -14,11 +14,11 @@
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/extensions/api/storage/settings_namespace.h"
#include "chrome/browser/extensions/api/storage/settings_storage_factory.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/test_extension_service.h"
#include "chrome/browser/extensions/test_extension_system.h"
#include "chrome/test/base/testing_profile.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
class ValueStore;
diff --git a/chrome/browser/extensions/api/streams_private/streams_private_api.cc b/chrome/browser/extensions/api/streams_private/streams_private_api.cc
index 61fceb2..d76f24b 100644
--- a/chrome/browser/extensions/api/streams_private/streams_private_api.cc
+++ b/chrome/browser/extensions/api/streams_private/streams_private_api.cc
@@ -10,7 +10,6 @@
#include "base/strings/string_number_conversions.h"
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_function_registry.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_tab_util.h"
@@ -18,6 +17,7 @@
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h"
#include "content/public/browser/stream_handle.h"
+#include "extensions/browser/event_router.h"
namespace events {
diff --git a/chrome/browser/extensions/api/streams_private/streams_private_apitest.cc b/chrome/browser/extensions/api/streams_private/streams_private_apitest.cc
index 723793a..5bc5790 100644
--- a/chrome/browser/extensions/api/streams_private/streams_private_apitest.cc
+++ b/chrome/browser/extensions/api/streams_private/streams_private_apitest.cc
@@ -6,7 +6,6 @@
#include "base/message_loop/message_loop.h"
#include "base/prefs/pref_service.h"
#include "chrome/browser/download/download_prefs.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_apitest.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
@@ -22,6 +21,7 @@
#include "content/public/browser/resource_controller.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/download_test_observer.h"
+#include "extensions/browser/event_router.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
#include "net/test/embedded_test_server/http_request.h"
#include "net/test/embedded_test_server/http_response.h"
diff --git a/chrome/browser/extensions/api/sync_file_system/extension_sync_event_observer.cc b/chrome/browser/extensions/api/sync_file_system/extension_sync_event_observer.cc
index af647fa..df7fe59 100644
--- a/chrome/browser/extensions/api/sync_file_system/extension_sync_event_observer.cc
+++ b/chrome/browser/extensions/api/sync_file_system/extension_sync_event_observer.cc
@@ -6,7 +6,6 @@
#include "chrome/browser/extensions/api/sync_file_system/sync_file_system_api_helpers.h"
#include "chrome/browser/extensions/event_names.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
@@ -14,6 +13,7 @@
#include "chrome/browser/sync_file_system/sync_file_system_service.h"
#include "chrome/browser/sync_file_system/syncable_file_system_util.h"
#include "chrome/common/extensions/api/sync_file_system.h"
+#include "extensions/browser/event_router.h"
#include "webkit/browser/fileapi/file_system_url.h"
#include "webkit/common/fileapi/file_system_util.h"
diff --git a/chrome/browser/extensions/api/system_indicator/system_indicator_manager.cc b/chrome/browser/extensions/api/system_indicator/system_indicator_manager.cc
index b68bcc4..f6bdc3e 100644
--- a/chrome/browser/extensions/api/system_indicator/system_indicator_manager.cc
+++ b/chrome/browser/extensions/api/system_indicator/system_indicator_manager.cc
@@ -7,7 +7,6 @@
#include "base/memory/linked_ptr.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_action.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
@@ -18,6 +17,7 @@
#include "chrome/common/extensions/api/system_indicator.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
#include "ui/gfx/image/image.h"
diff --git a/chrome/browser/extensions/api/system_indicator/system_indicator_manager.h b/chrome/browser/extensions/api/system_indicator/system_indicator_manager.h
index a2e403f..f7b8e75 100644
--- a/chrome/browser/extensions/api/system_indicator/system_indicator_manager.h
+++ b/chrome/browser/extensions/api/system_indicator/system_indicator_manager.h
@@ -10,11 +10,11 @@
#include "base/memory/linked_ptr.h"
#include "base/threading/thread_checker.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_action_icon_factory.h"
#include "components/browser_context_keyed_service/browser_context_keyed_service.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
+#include "extensions/browser/event_router.h"
class ExtensionAction;
class Profile;
diff --git a/chrome/browser/extensions/api/system_info/system_info_api.h b/chrome/browser/extensions/api/system_info/system_info_api.h
index 3fbb7fa..d262546 100644
--- a/chrome/browser/extensions/api/system_info/system_info_api.h
+++ b/chrome/browser/extensions/api/system_info/system_info_api.h
@@ -6,7 +6,7 @@
#define CHROME_BROWSER_EXTENSIONS_API_SYSTEM_INFO_SYSTEM_INFO_API_H_
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
-#include "chrome/browser/extensions/event_router.h"
+#include "extensions/browser/event_router.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc
index a819b37..7f0af85 100644
--- a/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc
+++ b/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc
@@ -6,7 +6,6 @@
#include "base/lazy_instance.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/fullscreen/fullscreen_controller.h"
@@ -18,6 +17,7 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_observer.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
using content::BrowserThread;
diff --git a/chrome/browser/extensions/api/tabs/tabs_event_router.h b/chrome/browser/extensions/api/tabs/tabs_event_router.h
index 1c95f7a..b7f911c 100644
--- a/chrome/browser/extensions/api/tabs/tabs_event_router.h
+++ b/chrome/browser/extensions/api/tabs/tabs_event_router.h
@@ -11,10 +11,10 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "chrome/browser/extensions/api/tabs/tabs_api.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/ui/browser_list_observer.h"
#include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
#include "content/public/browser/notification_registrar.h"
+#include "extensions/browser/event_router.h"
namespace content {
class WebContents;
diff --git a/chrome/browser/extensions/api/tabs/tabs_windows_api.cc b/chrome/browser/extensions/api/tabs/tabs_windows_api.cc
index 605a710..604d67d 100644
--- a/chrome/browser/extensions/api/tabs/tabs_windows_api.cc
+++ b/chrome/browser/extensions/api/tabs/tabs_windows_api.cc
@@ -7,10 +7,10 @@
#include "base/lazy_instance.h"
#include "chrome/browser/extensions/api/tabs/tabs_event_router.h"
#include "chrome/browser/extensions/api/tabs/windows_event_router.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/common/extensions/api/tabs.h"
#include "chrome/common/extensions/api/windows.h"
+#include "extensions/browser/event_router.h"
namespace extensions {
diff --git a/chrome/browser/extensions/api/tabs/tabs_windows_api.h b/chrome/browser/extensions/api/tabs/tabs_windows_api.h
index 7f8873e..cba5874 100644
--- a/chrome/browser/extensions/api/tabs/tabs_windows_api.h
+++ b/chrome/browser/extensions/api/tabs/tabs_windows_api.h
@@ -7,8 +7,8 @@
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
-#include "chrome/browser/extensions/event_router.h"
#include "components/browser_context_keyed_service/browser_context_keyed_service.h"
+#include "extensions/browser/event_router.h"
namespace extensions {
class TabsEventRouter;
diff --git a/chrome/browser/extensions/api/tabs/windows_event_router.cc b/chrome/browser/extensions/api/tabs/windows_event_router.cc
index 6468774..e6d55fc 100644
--- a/chrome/browser/extensions/api/tabs/windows_event_router.cc
+++ b/chrome/browser/extensions/api/tabs/windows_event_router.cc
@@ -6,7 +6,6 @@
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_util.h"
@@ -16,6 +15,7 @@
#include "chrome/common/extensions/api/windows.h"
#include "chrome/common/extensions/extension_constants.h"
#include "content/public/browser/notification_service.h"
+#include "extensions/browser/event_router.h"
#if defined(TOOLKIT_GTK)
#include "ui/base/x/active_window_watcher_x.h"
diff --git a/chrome/browser/extensions/api/terminal/terminal_private_api.cc b/chrome/browser/extensions/api/terminal/terminal_private_api.cc
index 5ac2492..e183c56 100644
--- a/chrome/browser/extensions/api/terminal/terminal_private_api.cc
+++ b/chrome/browser/extensions/api/terminal/terminal_private_api.cc
@@ -9,13 +9,13 @@
#include "base/sys_info.h"
#include "base/values.h"
#include "chrome/browser/extensions/api/terminal/terminal_extension_helper.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/api/terminal_private.h"
#include "chromeos/process_proxy/process_proxy_registry.h"
#include "content/public/browser/browser_thread.h"
+#include "extensions/browser/event_router.h"
namespace terminal_private = extensions::api::terminal_private;
namespace OnTerminalResize =
diff --git a/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc b/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc
index f4ecce5..839b4b6 100644
--- a/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc
+++ b/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc
@@ -10,7 +10,6 @@
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/web_navigation/web_navigation_api_constants.h"
#include "chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_tab_util.h"
#include "chrome/browser/profiles/profile.h"
@@ -27,6 +26,7 @@
#include "content/public/browser/resource_request_details.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/url_constants.h"
+#include "extensions/browser/event_router.h"
#include "extensions/browser/view_type_utils.h"
#include "net/base/net_errors.h"
diff --git a/chrome/browser/extensions/api/web_navigation/web_navigation_api.h b/chrome/browser/extensions/api/web_navigation/web_navigation_api.h
index 00f17fe..1f3e357 100644
--- a/chrome/browser/extensions/api/web_navigation/web_navigation_api.h
+++ b/chrome/browser/extensions/api/web_navigation/web_navigation_api.h
@@ -15,7 +15,6 @@
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
#include "chrome/browser/extensions/api/web_navigation/frame_navigation_state.h"
#include "chrome/browser/extensions/chrome_extension_function.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser_list_observer.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
@@ -23,6 +22,7 @@
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/browser/web_contents_user_data.h"
+#include "extensions/browser/event_router.h"
#include "url/gurl.h"
struct RetargetingDetails;
diff --git a/chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc b/chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc
index bb1ae8e..fe11eef 100644
--- a/chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc
+++ b/chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc
@@ -11,7 +11,6 @@
#include "base/time/time.h"
#include "base/values.h"
#include "chrome/browser/extensions/api/web_navigation/web_navigation_api_constants.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_tab_util.h"
#include "chrome/browser/profiles/profile.h"
@@ -19,6 +18,7 @@
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/event_filtering_info.h"
#include "net/base/net_errors.h"
diff --git a/chrome/browser/extensions/api/web_request/web_request_api.cc b/chrome/browser/extensions/api/web_request/web_request_api.cc
index d0a7237..500d885 100644
--- a/chrome/browser/extensions/api/web_request/web_request_api.cc
+++ b/chrome/browser/extensions/api/web_request/web_request_api.cc
@@ -30,7 +30,6 @@
#include "chrome/browser/extensions/api/web_request/web_request_api_constants.h"
#include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h"
#include "chrome/browser/extensions/api/web_request/web_request_time_tracker.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_prefs.h"
#include "chrome/browser/extensions/extension_renderer_state.h"
#include "chrome/browser/extensions/extension_service.h"
@@ -49,6 +48,7 @@
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/resource_request_info.h"
#include "content/public/browser/user_metrics.h"
+#include "extensions/browser/event_router.h"
#include "extensions/browser/info_map.h"
#include "extensions/common/error_utils.h"
#include "extensions/common/event_filtering_info.h"
diff --git a/chrome/browser/extensions/api/web_request/web_request_api.h b/chrome/browser/extensions/api/web_request/web_request_api.h
index d46fe9d..e9d434a 100644
--- a/chrome/browser/extensions/api/web_request/web_request_api.h
+++ b/chrome/browser/extensions/api/web_request/web_request_api.h
@@ -19,7 +19,7 @@
#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
#include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h"
#include "chrome/browser/extensions/api/web_request/web_request_permissions.h"
-#include "chrome/browser/extensions/event_router.h"
+#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_function.h"
#include "extensions/common/url_pattern_set.h"
#include "ipc/ipc_sender.h"
diff --git a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
index 971dfe6..48b0921 100644
--- a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
+++ b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
@@ -9,11 +9,11 @@
#include "base/strings/string_number_conversions.h"
#include "base/task_runner_util.h"
#include "chrome/browser/extensions/api/tabs/tabs_constants.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_tab_util.h"
#include "content/public/browser/media_device_id.h"
#include "content/public/browser/web_contents.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/error_utils.h"
#include "media/audio/audio_manager_base.h"
#include "media/audio/audio_output_controller.h"
diff --git a/chrome/browser/extensions/event_router.cc b/chrome/browser/extensions/event_router.cc
deleted file mode 100644
index 8687983..0000000
--- a/chrome/browser/extensions/event_router.cc
+++ /dev/null
@@ -1,783 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/extensions/event_router.h"
-
-#include <utility>
-
-#include "base/bind.h"
-#include "base/command_line.h"
-#include "base/message_loop/message_loop.h"
-#include "base/stl_util.h"
-#include "base/values.h"
-#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/extension_host.h"
-#include "chrome/browser/extensions/extension_prefs.h"
-#include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/extension_system.h"
-#include "chrome/browser/extensions/extension_util.h"
-#include "chrome/common/extensions/extension_messages.h"
-#include "content/public/browser/notification_service.h"
-#include "content/public/browser/render_process_host.h"
-#include "extensions/browser/extensions_browser_client.h"
-#include "extensions/browser/lazy_background_task_queue.h"
-#include "extensions/browser/process_manager.h"
-#include "extensions/browser/process_map.h"
-#include "extensions/common/extension.h"
-#include "extensions/common/extension_api.h"
-#include "extensions/common/extension_urls.h"
-#include "extensions/common/manifest_handlers/background_info.h"
-#include "extensions/common/manifest_handlers/incognito_info.h"
-
-using base::DictionaryValue;
-using base::ListValue;
-using content::BrowserContext;
-using content::BrowserThread;
-
-namespace extensions {
-
-namespace {
-
-void DoNothing(ExtensionHost* host) {}
-
-// A dictionary of event names to lists of filters that this extension has
-// registered from its lazy background page.
-const char kFilteredEvents[] = "filtered_events";
-
-} // namespace
-
-const char EventRouter::kRegisteredEvents[] = "events";
-
-struct EventRouter::ListenerProcess {
- content::RenderProcessHost* process;
- std::string extension_id;
-
- ListenerProcess(content::RenderProcessHost* process,
- const std::string& extension_id)
- : process(process), extension_id(extension_id) {}
-
- bool operator<(const ListenerProcess& that) const {
- if (process < that.process)
- return true;
- if (process == that.process && extension_id < that.extension_id)
- return true;
- return false;
- }
-};
-
-// static
-void EventRouter::NotifyExtensionDispatchObserverOnUIThread(
- void* browser_context_id,
- scoped_ptr<EventDispatchInfo> details) {
- if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
- BrowserThread::PostTask(
- BrowserThread::UI,
- FROM_HERE,
- base::Bind(&NotifyExtensionDispatchObserverOnUIThread,
- browser_context_id, base::Passed(&details)));
- } else {
- BrowserContext* context =
- reinterpret_cast<BrowserContext*>(browser_context_id);
- if (!ExtensionsBrowserClient::Get()->IsValidContext(context))
- return;
- ExtensionSystem* extension_system =
- ExtensionSystem::GetForBrowserContext(context);
- EventRouter* event_router = extension_system->event_router();
- if (!event_router)
- return;
- if (event_router->event_dispatch_observer_) {
- event_router->event_dispatch_observer_->OnWillDispatchEvent(
- details.Pass());
- }
- }
-}
-
-// static
-void EventRouter::DispatchExtensionMessage(IPC::Sender* ipc_sender,
- void* browser_context_id,
- const std::string& extension_id,
- const std::string& event_name,
- ListValue* event_args,
- UserGestureState user_gesture,
- const EventFilteringInfo& info) {
- NotifyExtensionDispatchObserverOnUIThread(
- browser_context_id,
- make_scoped_ptr(new EventDispatchInfo(
- extension_id,
- event_name,
- make_scoped_ptr(event_args->DeepCopy()))));
-
- ListValue args;
- args.Set(0, new base::StringValue(event_name));
- args.Set(1, event_args);
- args.Set(2, info.AsValue().release());
- ipc_sender->Send(new ExtensionMsg_MessageInvoke(
- MSG_ROUTING_CONTROL,
- extension_id,
- kEventBindings,
- "dispatchEvent",
- args,
- user_gesture == USER_GESTURE_ENABLED));
-
- // DispatchExtensionMessage does _not_ take ownership of event_args, so we
- // must ensure that the destruction of args does not attempt to free it.
- scoped_ptr<Value> removed_event_args;
- args.Remove(1, &removed_event_args);
- ignore_result(removed_event_args.release());
-}
-
-// static
-std::string EventRouter::GetBaseEventName(const std::string& full_event_name) {
- size_t slash_sep = full_event_name.find('/');
- return full_event_name.substr(0, slash_sep);
-}
-
-// static
-void EventRouter::DispatchEvent(IPC::Sender* ipc_sender,
- void* browser_context_id,
- const std::string& extension_id,
- const std::string& event_name,
- scoped_ptr<ListValue> event_args,
- UserGestureState user_gesture,
- const EventFilteringInfo& info) {
- DispatchExtensionMessage(ipc_sender,
- browser_context_id,
- extension_id,
- event_name,
- event_args.get(),
- user_gesture,
- info);
-
- BrowserThread::PostTask(
- BrowserThread::UI,
- FROM_HERE,
- base::Bind(&EventRouter::IncrementInFlightEventsOnUI,
- browser_context_id,
- extension_id));
-}
-
-EventRouter::EventRouter(BrowserContext* browser_context,
- ExtensionPrefs* extension_prefs)
- : browser_context_(browser_context),
- extension_prefs_(extension_prefs),
- listeners_(this),
- event_dispatch_observer_(NULL) {
- registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED,
- content::NotificationService::AllSources());
- registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
- content::NotificationService::AllSources());
- registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_ENABLED,
- content::Source<BrowserContext>(browser_context_));
- registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED,
- content::Source<BrowserContext>(browser_context_));
- registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED,
- content::Source<BrowserContext>(browser_context_));
-}
-
-EventRouter::~EventRouter() {}
-
-void EventRouter::AddEventListener(const std::string& event_name,
- content::RenderProcessHost* process,
- const std::string& extension_id) {
- listeners_.AddListener(scoped_ptr<EventListener>(new EventListener(
- event_name, extension_id, process, scoped_ptr<DictionaryValue>())));
-}
-
-void EventRouter::RemoveEventListener(const std::string& event_name,
- content::RenderProcessHost* process,
- const std::string& extension_id) {
- EventListener listener(event_name, extension_id, process,
- scoped_ptr<DictionaryValue>());
- listeners_.RemoveListener(&listener);
-}
-
-void EventRouter::RegisterObserver(Observer* observer,
- const std::string& event_name) {
- // Observing sub-event names like "foo.onBar/123" is not allowed.
- DCHECK(event_name.find('/') == std::string::npos);
- observers_[event_name] = observer;
-}
-
-void EventRouter::UnregisterObserver(Observer* observer) {
- std::vector<ObserverMap::iterator> iters_to_remove;
- for (ObserverMap::iterator iter = observers_.begin();
- iter != observers_.end(); ++iter) {
- if (iter->second == observer)
- iters_to_remove.push_back(iter);
- }
- for (size_t i = 0; i < iters_to_remove.size(); ++i)
- observers_.erase(iters_to_remove[i]);
-}
-
-void EventRouter::SetEventDispatchObserver(EventDispatchObserver* observer) {
- CHECK(!event_dispatch_observer_);
- event_dispatch_observer_ = observer;
-}
-
-void EventRouter::OnListenerAdded(const EventListener* listener) {
- const EventListenerInfo details(
- listener->event_name,
- listener->extension_id,
- listener->process ? listener->process->GetBrowserContext() : NULL);
- std::string base_event_name = GetBaseEventName(listener->event_name);
- ObserverMap::iterator observer = observers_.find(base_event_name);
- if (observer != observers_.end())
- observer->second->OnListenerAdded(details);
-}
-
-void EventRouter::OnListenerRemoved(const EventListener* listener) {
- const EventListenerInfo details(
- listener->event_name,
- listener->extension_id,
- listener->process ? listener->process->GetBrowserContext() : NULL);
- std::string base_event_name = GetBaseEventName(listener->event_name);
- ObserverMap::iterator observer = observers_.find(base_event_name);
- if (observer != observers_.end())
- observer->second->OnListenerRemoved(details);
-}
-
-void EventRouter::AddLazyEventListener(const std::string& event_name,
- const std::string& extension_id) {
- scoped_ptr<EventListener> listener(new EventListener(
- event_name, extension_id, NULL, scoped_ptr<DictionaryValue>()));
- bool is_new = listeners_.AddListener(listener.Pass());
-
- if (is_new) {
- std::set<std::string> events = GetRegisteredEvents(extension_id);
- bool prefs_is_new = events.insert(event_name).second;
- if (prefs_is_new)
- SetRegisteredEvents(extension_id, events);
- }
-}
-
-void EventRouter::RemoveLazyEventListener(const std::string& event_name,
- const std::string& extension_id) {
- EventListener listener(event_name, extension_id, NULL,
- scoped_ptr<DictionaryValue>());
- bool did_exist = listeners_.RemoveListener(&listener);
-
- if (did_exist) {
- std::set<std::string> events = GetRegisteredEvents(extension_id);
- bool prefs_did_exist = events.erase(event_name) > 0;
- DCHECK(prefs_did_exist);
- SetRegisteredEvents(extension_id, events);
- }
-}
-
-void EventRouter::AddFilteredEventListener(const std::string& event_name,
- content::RenderProcessHost* process,
- const std::string& extension_id,
- const base::DictionaryValue& filter,
- bool add_lazy_listener) {
- listeners_.AddListener(scoped_ptr<EventListener>(new EventListener(
- event_name, extension_id, process,
- scoped_ptr<DictionaryValue>(filter.DeepCopy()))));
-
- if (add_lazy_listener) {
- bool added = listeners_.AddListener(scoped_ptr<EventListener>(
- new EventListener(event_name, extension_id, NULL,
- scoped_ptr<DictionaryValue>(filter.DeepCopy()))));
-
- if (added)
- AddFilterToEvent(event_name, extension_id, &filter);
- }
-}
-
-void EventRouter::RemoveFilteredEventListener(
- const std::string& event_name,
- content::RenderProcessHost* process,
- const std::string& extension_id,
- const base::DictionaryValue& filter,
- bool remove_lazy_listener) {
- EventListener listener(event_name, extension_id, process,
- scoped_ptr<DictionaryValue>(filter.DeepCopy()));
-
- listeners_.RemoveListener(&listener);
-
- if (remove_lazy_listener) {
- listener.process = NULL;
- bool removed = listeners_.RemoveListener(&listener);
-
- if (removed)
- RemoveFilterFromEvent(event_name, extension_id, &filter);
- }
-}
-
-bool EventRouter::HasEventListener(const std::string& event_name) {
- return listeners_.HasListenerForEvent(event_name);
-}
-
-bool EventRouter::ExtensionHasEventListener(const std::string& extension_id,
- const std::string& event_name) {
- return listeners_.HasListenerForExtension(extension_id, event_name);
-}
-
-bool EventRouter::HasEventListenerImpl(const ListenerMap& listener_map,
- const std::string& extension_id,
- const std::string& event_name) {
- ListenerMap::const_iterator it = listener_map.find(event_name);
- if (it == listener_map.end())
- return false;
-
- const std::set<ListenerProcess>& listeners = it->second;
- if (extension_id.empty())
- return !listeners.empty();
-
- for (std::set<ListenerProcess>::const_iterator listener = listeners.begin();
- listener != listeners.end(); ++listener) {
- if (listener->extension_id == extension_id)
- return true;
- }
- return false;
-}
-
-std::set<std::string> EventRouter::GetRegisteredEvents(
- const std::string& extension_id) {
- std::set<std::string> events;
- const ListValue* events_value = NULL;
-
- if (!extension_prefs_ ||
- !extension_prefs_->ReadPrefAsList(
- extension_id, kRegisteredEvents, &events_value)) {
- return events;
- }
-
- for (size_t i = 0; i < events_value->GetSize(); ++i) {
- std::string event;
- if (events_value->GetString(i, &event))
- events.insert(event);
- }
- return events;
-}
-
-void EventRouter::SetRegisteredEvents(const std::string& extension_id,
- const std::set<std::string>& events) {
- ListValue* events_value = new ListValue;
- for (std::set<std::string>::const_iterator iter = events.begin();
- iter != events.end(); ++iter) {
- events_value->Append(new StringValue(*iter));
- }
- extension_prefs_->UpdateExtensionPref(
- extension_id, kRegisteredEvents, events_value);
-}
-
-void EventRouter::AddFilterToEvent(const std::string& event_name,
- const std::string& extension_id,
- const DictionaryValue* filter) {
- ExtensionPrefs::ScopedDictionaryUpdate update(
- extension_prefs_, extension_id, kFilteredEvents);
- DictionaryValue* filtered_events = update.Get();
- if (!filtered_events)
- filtered_events = update.Create();
-
- ListValue* filter_list = NULL;
- if (!filtered_events->GetList(event_name, &filter_list)) {
- filter_list = new ListValue;
- filtered_events->SetWithoutPathExpansion(event_name, filter_list);
- }
-
- filter_list->Append(filter->DeepCopy());
-}
-
-void EventRouter::RemoveFilterFromEvent(const std::string& event_name,
- const std::string& extension_id,
- const DictionaryValue* filter) {
- ExtensionPrefs::ScopedDictionaryUpdate update(
- extension_prefs_, extension_id, kFilteredEvents);
- DictionaryValue* filtered_events = update.Get();
- ListValue* filter_list = NULL;
- if (!filtered_events ||
- !filtered_events->GetListWithoutPathExpansion(event_name, &filter_list)) {
- return;
- }
-
- for (size_t i = 0; i < filter_list->GetSize(); i++) {
- DictionaryValue* filter = NULL;
- CHECK(filter_list->GetDictionary(i, &filter));
- if (filter->Equals(filter)) {
- filter_list->Remove(i, NULL);
- break;
- }
- }
-}
-
-const DictionaryValue* EventRouter::GetFilteredEvents(
- const std::string& extension_id) {
- const DictionaryValue* events = NULL;
- extension_prefs_->ReadPrefAsDictionary(
- extension_id, kFilteredEvents, &events);
- return events;
-}
-
-void EventRouter::BroadcastEvent(scoped_ptr<Event> event) {
- DispatchEventImpl(std::string(), linked_ptr<Event>(event.release()));
-}
-
-void EventRouter::DispatchEventToExtension(const std::string& extension_id,
- scoped_ptr<Event> event) {
- DCHECK(!extension_id.empty());
- DispatchEventImpl(extension_id, linked_ptr<Event>(event.release()));
-}
-
-void EventRouter::DispatchEventWithLazyListener(const std::string& extension_id,
- scoped_ptr<Event> event) {
- DCHECK(!extension_id.empty());
- std::string event_name = event->event_name;
- bool has_listener = ExtensionHasEventListener(extension_id, event_name);
- if (!has_listener)
- AddLazyEventListener(event_name, extension_id);
- DispatchEventToExtension(extension_id, event.Pass());
- if (!has_listener)
- RemoveLazyEventListener(event_name, extension_id);
-}
-
-void EventRouter::DispatchEventImpl(const std::string& restrict_to_extension_id,
- const linked_ptr<Event>& event) {
- // We don't expect to get events from a completely different browser context.
- DCHECK(!event->restrict_to_browser_context ||
- ExtensionsBrowserClient::Get()->IsSameContext(
- browser_context_, event->restrict_to_browser_context));
-
- std::set<const EventListener*> listeners(
- listeners_.GetEventListeners(*event));
-
- std::set<EventDispatchIdentifier> already_dispatched;
-
- // We dispatch events for lazy background pages first because attempting to do
- // so will cause those that are being suspended to cancel that suspension.
- // As canceling a suspension entails sending an event to the affected
- // background page, and as that event needs to be delivered before we dispatch
- // the event we are dispatching here, we dispatch to the lazy listeners here
- // first.
- for (std::set<const EventListener*>::iterator it = listeners.begin();
- it != listeners.end(); it++) {
- const EventListener* listener = *it;
- if (restrict_to_extension_id.empty() ||
- restrict_to_extension_id == listener->extension_id) {
- if (!listener->process) {
- DispatchLazyEvent(listener->extension_id, event, &already_dispatched);
- }
- }
- }
-
- for (std::set<const EventListener*>::iterator it = listeners.begin();
- it != listeners.end(); it++) {
- const EventListener* listener = *it;
- if (restrict_to_extension_id.empty() ||
- restrict_to_extension_id == listener->extension_id) {
- if (listener->process) {
- EventDispatchIdentifier dispatch_id(
- listener->process->GetBrowserContext(), listener->extension_id);
- if (!ContainsKey(already_dispatched, dispatch_id)) {
- DispatchEventToProcess(listener->extension_id, listener->process,
- event);
- }
- }
- }
- }
-}
-
-void EventRouter::DispatchLazyEvent(
- const std::string& extension_id,
- const linked_ptr<Event>& event,
- std::set<EventDispatchIdentifier>* already_dispatched) {
- ExtensionService* service = ExtensionSystem::GetForBrowserContext(
- browser_context_)->extension_service();
- // Check both the original and the incognito browser context to see if we
- // should load a lazy bg page to handle the event. The latter case
- // occurs in the case of split-mode extensions.
- const Extension* extension = service->extensions()->GetByID(extension_id);
- if (!extension)
- return;
-
- if (MaybeLoadLazyBackgroundPageToDispatchEvent(
- browser_context_, extension, event)) {
- already_dispatched->insert(std::make_pair(browser_context_, extension_id));
- }
-
- ExtensionsBrowserClient* browser_client = ExtensionsBrowserClient::Get();
- if (browser_client->HasOffTheRecordContext(browser_context_) &&
- IncognitoInfo::IsSplitMode(extension)) {
- BrowserContext* incognito_context =
- browser_client->GetOffTheRecordContext(browser_context_);
- if (MaybeLoadLazyBackgroundPageToDispatchEvent(
- incognito_context, extension, event)) {
- already_dispatched->insert(
- std::make_pair(incognito_context, extension_id));
- }
- }
-}
-
-void EventRouter::DispatchEventToProcess(const std::string& extension_id,
- content::RenderProcessHost* process,
- const linked_ptr<Event>& event) {
- ExtensionService* service = ExtensionSystem::GetForBrowserContext(
- browser_context_)->extension_service();
- const Extension* extension = service->extensions()->GetByID(extension_id);
-
- // The extension could have been removed, but we do not unregister it until
- // the extension process is unloaded.
- if (!extension)
- return;
-
- BrowserContext* listener_context = process->GetBrowserContext();
- ProcessMap* process_map =
- ExtensionSystem::GetForBrowserContext(listener_context)
- ->extension_service()
- ->process_map();
- // If the event is privileged, only send to extension processes. Otherwise,
- // it's OK to send to normal renderers (e.g., for content scripts).
- if (ExtensionAPI::GetSharedInstance()->IsPrivileged(event->event_name) &&
- !process_map->Contains(extension->id(), process->GetID())) {
- return;
- }
-
- // If the event is restricted to a URL, only dispatch if the extension has
- // permission for it (or if the event originated from itself).
- if (!event->event_url.is_empty() &&
- event->event_url.host() != extension->id() &&
- !extension->GetActivePermissions()->HasEffectiveAccessToURL(
- event->event_url)) {
- return;
- }
-
- if (!CanDispatchEventToBrowserContext(listener_context, extension, event))
- return;
-
- if (!event->will_dispatch_callback.is_null()) {
- event->will_dispatch_callback.Run(listener_context, extension,
- event->event_args.get());
- }
-
- DispatchExtensionMessage(process, listener_context, extension->id(),
- event->event_name, event->event_args.get(),
- event->user_gesture, event->filter_info);
- IncrementInFlightEvents(listener_context, extension);
-}
-
-bool EventRouter::CanDispatchEventToBrowserContext(
- BrowserContext* context,
- const Extension* extension,
- const linked_ptr<Event>& event) {
- // Is this event from a different browser context than the renderer (ie, an
- // incognito tab event sent to a normal process, or vice versa).
- bool cross_incognito = event->restrict_to_browser_context &&
- context != event->restrict_to_browser_context;
- if (!cross_incognito)
- return true;
- ExtensionService* service =
- ExtensionSystem::GetForBrowserContext(context)->extension_service();
- return extension_util::CanCrossIncognito(extension, service);
-}
-
-bool EventRouter::MaybeLoadLazyBackgroundPageToDispatchEvent(
- BrowserContext* context,
- const Extension* extension,
- const linked_ptr<Event>& event) {
- if (!CanDispatchEventToBrowserContext(context, extension, event))
- return false;
-
- LazyBackgroundTaskQueue* queue = ExtensionSystem::GetForBrowserContext(
- context)->lazy_background_task_queue();
- if (queue->ShouldEnqueueTask(context, extension)) {
- linked_ptr<Event> dispatched_event(event);
-
- // If there's a dispatch callback, call it now (rather than dispatch time)
- // to avoid lifetime issues. Use a separate copy of the event args, so they
- // last until the event is dispatched.
- if (!event->will_dispatch_callback.is_null()) {
- dispatched_event.reset(event->DeepCopy());
- dispatched_event->will_dispatch_callback.Run(
- context, extension, dispatched_event->event_args.get());
- // Ensure we don't call it again at dispatch time.
- dispatched_event->will_dispatch_callback.Reset();
- }
-
- queue->AddPendingTask(context, extension->id(),
- base::Bind(&EventRouter::DispatchPendingEvent,
- base::Unretained(this), dispatched_event));
- return true;
- }
-
- return false;
-}
-
-// static
-void EventRouter::IncrementInFlightEventsOnUI(
- void* browser_context_id,
- const std::string& extension_id) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- BrowserContext* browser_context =
- reinterpret_cast<BrowserContext*>(browser_context_id);
- if (!ExtensionsBrowserClient::Get()->IsValidContext(browser_context))
- return;
- ExtensionSystem* extension_system =
- ExtensionSystem::GetForBrowserContext(browser_context);
- EventRouter* event_router = extension_system->event_router();
- if (!event_router)
- return;
- ExtensionService* extension_service = extension_system->extension_service();
- const Extension* extension =
- extension_service->extensions()->GetByID(extension_id);
- if (!extension)
- return;
- event_router->IncrementInFlightEvents(browser_context, extension);
-}
-
-void EventRouter::IncrementInFlightEvents(BrowserContext* context,
- const Extension* extension) {
- // Only increment in-flight events if the lazy background page is active,
- // because that's the only time we'll get an ACK.
- if (BackgroundInfo::HasLazyBackgroundPage(extension)) {
- ProcessManager* pm =
- ExtensionSystem::GetForBrowserContext(context)->process_manager();
- ExtensionHost* host = pm->GetBackgroundHostForExtension(extension->id());
- if (host)
- pm->IncrementLazyKeepaliveCount(extension);
- }
-}
-
-void EventRouter::OnEventAck(BrowserContext* context,
- const std::string& extension_id) {
- ProcessManager* pm =
- ExtensionSystem::GetForBrowserContext(context)->process_manager();
- ExtensionHost* host = pm->GetBackgroundHostForExtension(extension_id);
- // The event ACK is routed to the background host, so this should never be
- // NULL.
- CHECK(host);
- // TODO(mpcomplete): We should never get this message unless
- // HasLazyBackgroundPage is true. Find out why we're getting it anyway.
- if (host->extension() &&
- BackgroundInfo::HasLazyBackgroundPage(host->extension()))
- pm->DecrementLazyKeepaliveCount(host->extension());
-}
-
-void EventRouter::DispatchPendingEvent(const linked_ptr<Event>& event,
- ExtensionHost* host) {
- if (!host)
- return;
-
- if (listeners_.HasProcessListener(host->render_process_host(),
- host->extension()->id())) {
- DispatchEventToProcess(host->extension()->id(),
- host->render_process_host(), event);
- }
-}
-
-void EventRouter::Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) {
- switch (type) {
- case content::NOTIFICATION_RENDERER_PROCESS_TERMINATED:
- case content::NOTIFICATION_RENDERER_PROCESS_CLOSED: {
- content::RenderProcessHost* renderer =
- content::Source<content::RenderProcessHost>(source).ptr();
- // Remove all event listeners associated with this renderer.
- listeners_.RemoveListenersForProcess(renderer);
- break;
- }
- case chrome::NOTIFICATION_EXTENSION_ENABLED: {
- // If the extension has a lazy background page, make sure it gets loaded
- // to register the events the extension is interested in.
- const Extension* extension =
- content::Details<const Extension>(details).ptr();
- if (BackgroundInfo::HasLazyBackgroundPage(extension)) {
- LazyBackgroundTaskQueue* queue = ExtensionSystem::GetForBrowserContext(
- browser_context_)->lazy_background_task_queue();
- queue->AddPendingTask(browser_context_, extension->id(),
- base::Bind(&DoNothing));
- }
- break;
- }
- case chrome::NOTIFICATION_EXTENSION_LOADED: {
- // Add all registered lazy listeners to our cache.
- const Extension* extension =
- content::Details<const Extension>(details).ptr();
- std::set<std::string> registered_events =
- GetRegisteredEvents(extension->id());
- listeners_.LoadUnfilteredLazyListeners(extension->id(),
- registered_events);
- const DictionaryValue* filtered_events =
- GetFilteredEvents(extension->id());
- if (filtered_events)
- listeners_.LoadFilteredLazyListeners(extension->id(), *filtered_events);
- break;
- }
- case chrome::NOTIFICATION_EXTENSION_UNLOADED: {
- // Remove all registered lazy listeners from our cache.
- UnloadedExtensionInfo* unloaded =
- content::Details<UnloadedExtensionInfo>(details).ptr();
- listeners_.RemoveLazyListenersForExtension(unloaded->extension->id());
- break;
- }
- default:
- NOTREACHED();
- return;
- }
-}
-
-Event::Event(const std::string& event_name,
- scoped_ptr<base::ListValue> event_args)
- : event_name(event_name),
- event_args(event_args.Pass()),
- restrict_to_browser_context(NULL),
- user_gesture(EventRouter::USER_GESTURE_UNKNOWN) {
- DCHECK(this->event_args.get());
-}
-
-Event::Event(const std::string& event_name,
- scoped_ptr<base::ListValue> event_args,
- BrowserContext* restrict_to_browser_context)
- : event_name(event_name),
- event_args(event_args.Pass()),
- restrict_to_browser_context(restrict_to_browser_context),
- user_gesture(EventRouter::USER_GESTURE_UNKNOWN) {
- DCHECK(this->event_args.get());
-}
-
-Event::Event(const std::string& event_name,
- scoped_ptr<ListValue> event_args,
- BrowserContext* restrict_to_browser_context,
- const GURL& event_url,
- EventRouter::UserGestureState user_gesture,
- const EventFilteringInfo& filter_info)
- : event_name(event_name),
- event_args(event_args.Pass()),
- restrict_to_browser_context(restrict_to_browser_context),
- event_url(event_url),
- user_gesture(user_gesture),
- filter_info(filter_info) {
- DCHECK(this->event_args.get());
-}
-
-Event::~Event() {}
-
-Event* Event::DeepCopy() {
- Event* copy = new Event(event_name,
- scoped_ptr<base::ListValue>(event_args->DeepCopy()),
- restrict_to_browser_context,
- event_url,
- user_gesture,
- filter_info);
- copy->will_dispatch_callback = will_dispatch_callback;
- return copy;
-}
-
-EventListenerInfo::EventListenerInfo(const std::string& event_name,
- const std::string& extension_id,
- content::BrowserContext* browser_context)
- : event_name(event_name),
- extension_id(extension_id),
- browser_context(browser_context) {}
-
-EventDispatchInfo::EventDispatchInfo(const std::string& extension_id,
- const std::string& event_name,
- scoped_ptr<ListValue> event_args)
- : extension_id(extension_id),
- event_name(event_name),
- event_args(event_args.Pass()) {}
-
-EventDispatchInfo::~EventDispatchInfo() {}
-
-} // namespace extensions
diff --git a/chrome/browser/extensions/event_router.h b/chrome/browser/extensions/event_router.h
deleted file mode 100644
index 528ccb3..0000000
--- a/chrome/browser/extensions/event_router.h
+++ /dev/null
@@ -1,387 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_EXTENSIONS_EVENT_ROUTER_H_
-#define CHROME_BROWSER_EXTENSIONS_EVENT_ROUTER_H_
-
-#include <map>
-#include <set>
-#include <string>
-#include <utility>
-
-#include "base/callback.h"
-#include "base/compiler_specific.h"
-#include "base/containers/hash_tables.h"
-#include "base/gtest_prod_util.h"
-#include "base/memory/linked_ptr.h"
-#include "base/memory/ref_counted.h"
-#include "base/values.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/browser/notification_registrar.h"
-#include "extensions/browser/event_listener_map.h"
-#include "extensions/common/event_filtering_info.h"
-#include "ipc/ipc_sender.h"
-
-class GURL;
-class PrefService;
-
-namespace content {
-class BrowserContext;
-class RenderProcessHost;
-}
-
-namespace extensions {
-class ActivityLog;
-class Extension;
-class ExtensionHost;
-class ExtensionPrefs;
-
-struct Event;
-struct EventDispatchInfo;
-struct EventListenerInfo;
-
-class EventRouter : public content::NotificationObserver,
- public EventListenerMap::Delegate {
- public:
- // These constants convey the state of our knowledge of whether we're in
- // a user-caused gesture as part of DispatchEvent.
- enum UserGestureState {
- USER_GESTURE_UNKNOWN = 0,
- USER_GESTURE_ENABLED = 1,
- USER_GESTURE_NOT_ENABLED = 2,
- };
-
- // The pref key for the list of event names for which an extension has
- // registered from its lazy background page.
- static const char kRegisteredEvents[];
-
- // Observers register interest in events with a particular name and are
- // notified when a listener is added or removed. Observers are matched by
- // the base name of the event (e.g. adding an event listener for event name
- // "foo.onBar/123" will trigger observers registered for "foo.onBar").
- class Observer {
- public:
- // Called when a listener is added.
- virtual void OnListenerAdded(const EventListenerInfo& details) {}
- // Called when a listener is removed.
- virtual void OnListenerRemoved(const EventListenerInfo& details) {}
- };
-
- // The EventDispatchObserver is notified on the UI thread whenever
- // an event is dispatched. There can be only one EventDispatchObserver.
- class EventDispatchObserver {
- public:
- virtual void OnWillDispatchEvent(scoped_ptr<EventDispatchInfo> details) = 0;
- };
-
- // Converts event names like "foo.onBar/123" into "foo.onBar". Event names
- // without a "/" are returned unchanged.
- static std::string GetBaseEventName(const std::string& full_event_name);
-
- // Sends an event via ipc_sender to the given extension. Can be called on any
- // thread.
- static void DispatchEvent(IPC::Sender* ipc_sender,
- void* browser_context_id,
- const std::string& extension_id,
- const std::string& event_name,
- scoped_ptr<base::ListValue> event_args,
- UserGestureState user_gesture,
- const EventFilteringInfo& info);
-
- // An EventRouter is shared between |browser_context| and its associated
- // incognito context. |extension_prefs| may be NULL in tests.
- EventRouter(content::BrowserContext* browser_context,
- ExtensionPrefs* extension_prefs);
- virtual ~EventRouter();
-
- // Add or remove the process/extension pair as a listener for |event_name|.
- // Note that multiple extensions can share a process due to process
- // collapsing. Also, a single extension can have 2 processes if it is a split
- // mode extension.
- void AddEventListener(const std::string& event_name,
- content::RenderProcessHost* process,
- const std::string& extension_id);
- void RemoveEventListener(const std::string& event_name,
- content::RenderProcessHost* process,
- const std::string& extension_id);
-
- EventListenerMap& listeners() { return listeners_; }
-
- // Registers an observer to be notified when an event listener for
- // |event_name| is added or removed. There can currently be only one observer
- // for each distinct |event_name|.
- void RegisterObserver(Observer* observer,
- const std::string& event_name);
-
- // Unregisters an observer from all events.
- void UnregisterObserver(Observer* observer);
-
- // Sets the observer to be notified whenever an event is dispatched to an
- // extension.
- void SetEventDispatchObserver(EventDispatchObserver* observer);
-
- // Add or remove the extension as having a lazy background page that listens
- // to the event. The difference from the above methods is that these will be
- // remembered even after the process goes away. We use this list to decide
- // which extension pages to load when dispatching an event.
- void AddLazyEventListener(const std::string& event_name,
- const std::string& extension_id);
- void RemoveLazyEventListener(const std::string& event_name,
- const std::string& extension_id);
-
- // If |add_lazy_listener| is true also add the lazy version of this listener.
- void AddFilteredEventListener(const std::string& event_name,
- content::RenderProcessHost* process,
- const std::string& extension_id,
- const base::DictionaryValue& filter,
- bool add_lazy_listener);
-
- // If |remove_lazy_listener| is true also remove the lazy version of this
- // listener.
- void RemoveFilteredEventListener(const std::string& event_name,
- content::RenderProcessHost* process,
- const std::string& extension_id,
- const base::DictionaryValue& filter,
- bool remove_lazy_listener);
-
- // Returns true if there is at least one listener for the given event.
- bool HasEventListener(const std::string& event_name);
-
- // Returns true if the extension is listening to the given event.
- bool ExtensionHasEventListener(const std::string& extension_id,
- const std::string& event_name);
-
- // Return or set the list of events for which the given extension has
- // registered.
- std::set<std::string> GetRegisteredEvents(const std::string& extension_id);
- void SetRegisteredEvents(const std::string& extension_id,
- const std::set<std::string>& events);
-
- // Broadcasts an event to every listener registered for that event.
- virtual void BroadcastEvent(scoped_ptr<Event> event);
-
- // Dispatches an event to the given extension.
- virtual void DispatchEventToExtension(const std::string& extension_id,
- scoped_ptr<Event> event);
-
- // Dispatches |event| to the given extension as if the extension has a lazy
- // listener for it. NOTE: This should be used rarely, for dispatching events
- // to extensions that haven't had a chance to add their own listeners yet, eg:
- // newly installed extensions.
- void DispatchEventWithLazyListener(const std::string& extension_id,
- scoped_ptr<Event> event);
-
- // Record the Event Ack from the renderer. (One less event in-flight.)
- void OnEventAck(content::BrowserContext* context,
- const std::string& extension_id);
-
- private:
- FRIEND_TEST_ALL_PREFIXES(EventRouterTest, EventRouterObserver);
-
- // The extension and process that contains the event listener for a given
- // event.
- struct ListenerProcess;
-
- // A map between an event name and a set of extensions that are listening
- // to that event.
- typedef std::map<std::string, std::set<ListenerProcess> > ListenerMap;
-
- // An identifier for an event dispatch that is used to prevent double dispatch
- // due to race conditions between the direct and lazy dispatch paths.
- typedef std::pair<const content::BrowserContext*, std::string>
- EventDispatchIdentifier;
-
- // Sends a notification about an event to the event dispatch observer on the
- // UI thread. Can be called from any thread.
- static void NotifyExtensionDispatchObserverOnUIThread(
- void* browser_context_id,
- scoped_ptr<EventDispatchInfo> details);
-
- // TODO(gdk): Document this.
- static void DispatchExtensionMessage(
- IPC::Sender* ipc_sender,
- void* browser_context_id,
- const std::string& extension_id,
- const std::string& event_name,
- base::ListValue* event_args,
- UserGestureState user_gesture,
- const extensions::EventFilteringInfo& info);
-
- virtual void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) OVERRIDE;
-
- // Returns true if the given listener map contains a event listeners for
- // the given event. If |extension_id| is non-empty, we also check that that
- // extension is one of the listeners.
- bool HasEventListenerImpl(const ListenerMap& listeners,
- const std::string& extension_id,
- const std::string& event_name);
-
- // Shared by DispatchEvent*. If |restrict_to_extension_id| is empty, the
- // event is broadcast.
- // An event that just came off the pending list may not be delayed again.
- void DispatchEventImpl(const std::string& restrict_to_extension_id,
- const linked_ptr<Event>& event);
-
- // Ensures that all lazy background pages that are interested in the given
- // event are loaded, and queues the event if the page is not ready yet.
- // Inserts an EventDispatchIdentifier into |already_dispatched| for each lazy
- // event dispatch that is queued.
- void DispatchLazyEvent(const std::string& extension_id,
- const linked_ptr<Event>& event,
- std::set<EventDispatchIdentifier>* already_dispatched);
-
- // Dispatches the event to the specified extension running in |process|.
- void DispatchEventToProcess(const std::string& extension_id,
- content::RenderProcessHost* process,
- const linked_ptr<Event>& event);
-
- // Returns false when the event is scoped to a context and the listening
- // extension does not have access to events from that context. Also fills
- // |event_args| with the proper arguments to send, which may differ if
- // the event crosses the incognito boundary.
- bool CanDispatchEventToBrowserContext(content::BrowserContext* context,
- const Extension* extension,
- const linked_ptr<Event>& event);
-
- // Possibly loads given extension's background page in preparation to
- // dispatch an event. Returns true if the event was queued for subsequent
- // dispatch, false otherwise.
- bool MaybeLoadLazyBackgroundPageToDispatchEvent(
- content::BrowserContext* context,
- const Extension* extension,
- const linked_ptr<Event>& event);
-
- // Adds a filter to an event.
- void AddFilterToEvent(const std::string& event_name,
- const std::string& extension_id,
- const base::DictionaryValue* filter);
-
- // Removes a filter from an event.
- void RemoveFilterFromEvent(const std::string& event_name,
- const std::string& extension_id,
- const base::DictionaryValue* filter);
-
- // Returns the dictionary of event filters that the given extension has
- // registered.
- const base::DictionaryValue* GetFilteredEvents(
- const std::string& extension_id);
-
- // Track of the number of dispatched events that have not yet sent an
- // ACK from the renderer.
- void IncrementInFlightEvents(content::BrowserContext* context,
- const Extension* extension);
-
- // static
- static void IncrementInFlightEventsOnUI(
- void* browser_context_id,
- const std::string& extension_id);
-
- void DispatchPendingEvent(const linked_ptr<Event>& event,
- ExtensionHost* host);
-
- // Implementation of EventListenerMap::Delegate.
- virtual void OnListenerAdded(const EventListener* listener) OVERRIDE;
- virtual void OnListenerRemoved(const EventListener* listener) OVERRIDE;
-
- content::BrowserContext* browser_context_;
-
- // The ExtensionPrefs associated with |browser_context_|. May be NULL in
- // tests.
- ExtensionPrefs* extension_prefs_;
-
- content::NotificationRegistrar registrar_;
-
- EventListenerMap listeners_;
-
- // Map from base event name to observer.
- typedef base::hash_map<std::string, Observer*> ObserverMap;
- ObserverMap observers_;
-
- EventDispatchObserver* event_dispatch_observer_;
-
- DISALLOW_COPY_AND_ASSIGN(EventRouter);
-};
-
-struct Event {
- typedef base::Callback<void(content::BrowserContext*,
- const Extension*,
- base::ListValue*)> WillDispatchCallback;
-
- // The event to dispatch.
- std::string event_name;
-
- // Arguments to send to the event listener.
- scoped_ptr<base::ListValue> event_args;
-
- // If non-NULL, then the event will not be sent to other BrowserContexts
- // unless the extension has permission (e.g. incognito tab update -> normal
- // tab only works if extension is allowed incognito access).
- content::BrowserContext* restrict_to_browser_context;
-
- // If not empty, the event is only sent to extensions with host permissions
- // for this url.
- GURL event_url;
-
- // Whether a user gesture triggered the event.
- EventRouter::UserGestureState user_gesture;
-
- // Extra information used to filter which events are sent to the listener.
- EventFilteringInfo filter_info;
-
- // If specified, this is called before dispatching an event to each
- // extension. The third argument is a mutable reference to event_args,
- // allowing the caller to provide different arguments depending on the
- // extension and profile. This is guaranteed to be called synchronously with
- // DispatchEvent, so callers don't need to worry about lifetime.
- WillDispatchCallback will_dispatch_callback;
-
- Event(const std::string& event_name,
- scoped_ptr<base::ListValue> event_args);
-
- Event(const std::string& event_name,
- scoped_ptr<base::ListValue> event_args,
- content::BrowserContext* restrict_to_browser_context);
-
- Event(const std::string& event_name,
- scoped_ptr<base::ListValue> event_args,
- content::BrowserContext* restrict_to_browser_context,
- const GURL& event_url,
- EventRouter::UserGestureState user_gesture,
- const EventFilteringInfo& info);
-
- ~Event();
-
- // Makes a deep copy of this instance. Ownership is transferred to the
- // caller.
- Event* DeepCopy();
-};
-
-struct EventListenerInfo {
- EventListenerInfo(const std::string& event_name,
- const std::string& extension_id,
- content::BrowserContext* browser_context);
- // The event name including any sub-event, e.g. "runtime.onStartup" or
- // "webRequest.onCompleted/123".
- const std::string event_name;
-
- const std::string extension_id;
- content::BrowserContext* browser_context;
-};
-
-struct EventDispatchInfo {
- EventDispatchInfo(const std::string& extension_id,
- const std::string& event_name,
- scoped_ptr<ListValue> event_args);
- ~EventDispatchInfo();
-
- const std::string extension_id;
- const std::string event_name;
- scoped_ptr<ListValue> event_args;
-};
-
-} // namespace extensions
-
-#endif // CHROME_BROWSER_EXTENSIONS_EVENT_ROUTER_H_
diff --git a/chrome/browser/extensions/event_router_forwarder.cc b/chrome/browser/extensions/event_router_forwarder.cc
index e5b0117..9c123ed 100644
--- a/chrome/browser/extensions/event_router_forwarder.cc
+++ b/chrome/browser/extensions/event_router_forwarder.cc
@@ -7,10 +7,10 @@
#include "base/bind.h"
#include "base/values.h"
#include "chrome/browser/browser_process.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "content/public/browser/browser_thread.h"
+#include "extensions/browser/event_router.h"
#include "url/gurl.h"
using content::BrowserThread;
diff --git a/chrome/browser/extensions/event_router_unittest.cc b/chrome/browser/extensions/event_router_unittest.cc
deleted file mode 100644
index de318f0..0000000
--- a/chrome/browser/extensions/event_router_unittest.cc
+++ /dev/null
@@ -1,122 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/extensions/event_router.h"
-
-#include <string>
-
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/values.h"
-#include "extensions/browser/event_listener_map.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace extensions {
-
-namespace {
-
-// A simple mock to keep track of listener additions and removals.
-class MockEventRouterObserver : public EventRouter::Observer {
- public:
- MockEventRouterObserver()
- : listener_added_count_(0),
- listener_removed_count_(0) {}
- virtual ~MockEventRouterObserver() {}
-
- int listener_added_count() const { return listener_added_count_; }
- int listener_removed_count() const { return listener_removed_count_; }
- const std::string& last_event_name() const { return last_event_name_; }
-
- void Reset() {
- listener_added_count_ = 0;
- listener_removed_count_ = 0;
- last_event_name_.clear();
- }
-
- // EventRouter::Observer overrides:
- virtual void OnListenerAdded(const EventListenerInfo& details) OVERRIDE {
- listener_added_count_++;
- last_event_name_ = details.event_name;
- }
-
- virtual void OnListenerRemoved(const EventListenerInfo& details) OVERRIDE {
- listener_removed_count_++;
- last_event_name_ = details.event_name;
- }
-
- private:
- int listener_added_count_;
- int listener_removed_count_;
- std::string last_event_name_;
-
- DISALLOW_COPY_AND_ASSIGN(MockEventRouterObserver);
-};
-
-} // namespace
-
-typedef testing::Test EventRouterTest;
-
-TEST_F(EventRouterTest, GetBaseEventName) {
- // Normal event names are passed through unchanged.
- EXPECT_EQ("foo.onBar", EventRouter::GetBaseEventName("foo.onBar"));
-
- // Sub-events are converted to the part before the slash.
- EXPECT_EQ("foo.onBar", EventRouter::GetBaseEventName("foo.onBar/123"));
-}
-
-// Tests adding and removing observers from EventRouter.
-TEST_F(EventRouterTest, EventRouterObserver) {
- EventRouter router(NULL, NULL);
- EventListener listener(
- "event_name", "extension_id", NULL, scoped_ptr<DictionaryValue>());
-
- // Add/remove works without any observers.
- router.OnListenerAdded(&listener);
- router.OnListenerRemoved(&listener);
-
- // Register observers that both match and don't match the event above.
- MockEventRouterObserver matching_observer;
- router.RegisterObserver(&matching_observer, "event_name");
- MockEventRouterObserver non_matching_observer;
- router.RegisterObserver(&non_matching_observer, "other");
-
- // Adding a listener notifies the appropriate observers.
- router.OnListenerAdded(&listener);
- EXPECT_EQ(1, matching_observer.listener_added_count());
- EXPECT_EQ(0, non_matching_observer.listener_added_count());
-
- // Removing a listener notifies the appropriate observers.
- router.OnListenerRemoved(&listener);
- EXPECT_EQ(1, matching_observer.listener_removed_count());
- EXPECT_EQ(0, non_matching_observer.listener_removed_count());
-
- // Adding the listener again notifies again.
- router.OnListenerAdded(&listener);
- EXPECT_EQ(2, matching_observer.listener_added_count());
- EXPECT_EQ(0, non_matching_observer.listener_added_count());
-
- // Removing the listener again notifies again.
- router.OnListenerRemoved(&listener);
- EXPECT_EQ(2, matching_observer.listener_removed_count());
- EXPECT_EQ(0, non_matching_observer.listener_removed_count());
-
- // Adding a listener with a sub-event notifies the main observer with
- // proper details.
- matching_observer.Reset();
- EventListener sub_event_listener(
- "event_name/1", "extension_id", NULL, scoped_ptr<DictionaryValue>());
- router.OnListenerAdded(&sub_event_listener);
- EXPECT_EQ(1, matching_observer.listener_added_count());
- EXPECT_EQ(0, matching_observer.listener_removed_count());
- EXPECT_EQ("event_name/1", matching_observer.last_event_name());
-
- // Ditto for removing the listener.
- matching_observer.Reset();
- router.OnListenerRemoved(&sub_event_listener);
- EXPECT_EQ(0, matching_observer.listener_added_count());
- EXPECT_EQ(1, matching_observer.listener_removed_count());
- EXPECT_EQ("event_name/1", matching_observer.last_event_name());
-}
-
-} // namespace extensions
diff --git a/chrome/browser/extensions/extension_host.cc b/chrome/browser/extensions/extension_host.cc
index f312a95..25ea64b 100644
--- a/chrome/browser/extensions/extension_host.cc
+++ b/chrome/browser/extensions/extension_host.cc
@@ -17,7 +17,6 @@
#include "chrome/browser/browser_shutdown.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/error_console/error_console.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_tab_util.h"
@@ -47,6 +46,7 @@
#include "content/public/browser/site_instance.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_view.h"
+#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_error.h"
#include "extensions/browser/process_manager.h"
#include "extensions/browser/view_type_utils.h"
diff --git a/chrome/browser/extensions/extension_keybinding_registry.cc b/chrome/browser/extensions/extension_keybinding_registry.cc
index dc67565..c770563 100644
--- a/chrome/browser/extensions/extension_keybinding_registry.cc
+++ b/chrome/browser/extensions/extension_keybinding_registry.cc
@@ -7,11 +7,11 @@
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/active_tab_permission_granter.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/extension_set.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/manifest_constants.h"
namespace extensions {
diff --git a/chrome/browser/extensions/extension_messages_apitest.cc b/chrome/browser/extensions/extension_messages_apitest.cc
index cee04bb..5853612 100644
--- a/chrome/browser/extensions/extension_messages_apitest.cc
+++ b/chrome/browser/extensions/extension_messages_apitest.cc
@@ -14,7 +14,6 @@
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/messaging/incognito_connectability.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_apitest.h"
#include "chrome/browser/extensions/extension_prefs.h"
#include "chrome/browser/extensions/extension_system.h"
@@ -29,6 +28,7 @@
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/notification_service.h"
#include "content/public/test/browser_test_utils.h"
+#include "extensions/browser/event_router.h"
#include "net/cert/asn1_util.h"
#include "net/cert/jwk_serializer.h"
#include "net/dns/mock_host_resolver.h"
diff --git a/chrome/browser/extensions/extension_prefs.cc b/chrome/browser/extensions/extension_prefs.cc
index 6b32db0..a76f691 100644
--- a/chrome/browser/extensions/extension_prefs.cc
+++ b/chrome/browser/extensions/extension_prefs.cc
@@ -15,7 +15,6 @@
#include "chrome/browser/extensions/api/content_settings/content_settings_store.h"
#include "chrome/browser/extensions/api/preference/preference_api.h"
#include "chrome/browser/extensions/chrome_app_sorting.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_pref_store.h"
#include "chrome/browser/extensions/extension_prefs_factory.h"
#include "chrome/browser/profiles/profile.h"
@@ -27,6 +26,7 @@
#include "components/user_prefs/pref_registry_syncable.h"
#include "content/public/browser/notification_service.h"
#include "extensions/browser/admin_policy.h"
+#include "extensions/browser/event_router.h"
#include "extensions/browser/pref_names.h"
#include "extensions/common/feature_switch.h"
#include "extensions/common/manifest.h"
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index f9dbb59..a6b2b8e 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -38,7 +38,6 @@
#include "chrome/browser/extensions/component_loader.h"
#include "chrome/browser/extensions/crx_installer.h"
#include "chrome/browser/extensions/data_deleter.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_disabled_ui.h"
#include "chrome/browser/extensions/extension_error_reporter.h"
#include "chrome/browser/extensions/extension_error_ui.h"
@@ -88,6 +87,7 @@
#include "content/public/browser/storage_partition.h"
#include "content/public/browser/url_data_source.h"
#include "extensions/browser/app_sorting.h"
+#include "extensions/browser/event_router.h"
#include "extensions/browser/process_manager.h"
#include "extensions/common/constants.h"
#include "extensions/common/error_utils.h"
diff --git a/chrome/browser/extensions/extension_system.cc b/chrome/browser/extensions/extension_system.cc
index 96f4b87..0e5911a 100644
--- a/chrome/browser/extensions/extension_system.cc
+++ b/chrome/browser/extensions/extension_system.cc
@@ -14,7 +14,6 @@
#include "chrome/browser/extensions/blacklist.h"
#include "chrome/browser/extensions/component_loader.h"
#include "chrome/browser/extensions/error_console/error_console.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_error_reporter.h"
#include "chrome/browser/extensions/extension_pref_store.h"
#include "chrome/browser/extensions/extension_pref_value_map.h"
@@ -40,6 +39,7 @@
#include "chrome/common/extensions/features/feature_channel.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/url_data_source.h"
+#include "extensions/browser/event_router.h"
#include "extensions/browser/info_map.h"
#include "extensions/browser/lazy_background_task_queue.h"
#include "extensions/browser/process_manager.h"
diff --git a/chrome/browser/extensions/menu_manager.cc b/chrome/browser/extensions/menu_manager.cc
index ac88df8..909bff0e 100644
--- a/chrome/browser/extensions/menu_manager.cc
+++ b/chrome/browser/extensions/menu_manager.cc
@@ -14,7 +14,6 @@
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/event_names.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_tab_util.h"
@@ -28,6 +27,7 @@
#include "content/public/browser/notification_source.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/context_menu_params.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest_handlers/background_info.h"
#include "ui/gfx/favicon_size.h"
diff --git a/chrome/browser/extensions/menu_manager_unittest.cc b/chrome/browser/extensions/menu_manager_unittest.cc
index aaeb46e..e6e8b6c 100644
--- a/chrome/browser/extensions/menu_manager_unittest.cc
+++ b/chrome/browser/extensions/menu_manager_unittest.cc
@@ -14,7 +14,6 @@
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/event_names.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_system_factory.h"
#include "chrome/browser/extensions/menu_manager.h"
@@ -27,6 +26,7 @@
#include "content/public/browser/notification_service.h"
#include "content/public/common/context_menu_params.h"
#include "content/public/test/test_browser_thread.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/extensions/permissions_updater.cc b/chrome/browser/extensions/permissions_updater.cc
index 6fdd758..279767aa 100644
--- a/chrome/browser/extensions/permissions_updater.cc
+++ b/chrome/browser/extensions/permissions_updater.cc
@@ -9,7 +9,6 @@
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/permissions/permissions_api_helpers.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_prefs.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
@@ -19,6 +18,7 @@
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/render_process_host.h"
+#include "extensions/browser/event_router.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/permissions_data.h"
diff --git a/chrome/browser/extensions/test_extension_system.cc b/chrome/browser/extensions/test_extension_system.cc
index 33838b8..f3f899c 100644
--- a/chrome/browser/extensions/test_extension_system.cc
+++ b/chrome/browser/extensions/test_extension_system.cc
@@ -8,7 +8,6 @@
#include "base/prefs/pref_service.h"
#include "chrome/browser/extensions/blacklist.h"
#include "chrome/browser/extensions/error_console/error_console.h"
-#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_pref_value_map.h"
#include "chrome/browser/extensions/extension_pref_value_map_factory.h"
#include "chrome/browser/extensions/extension_prefs.h"
@@ -24,6 +23,7 @@
#include "chrome/browser/value_store/testing_value_store.h"
#include "chrome/common/chrome_switches.h"
#include "content/public/browser/browser_thread.h"
+#include "extensions/browser/event_router.h"
#include "extensions/browser/info_map.h"
#include "extensions/browser/process_manager.h"