| Index: chrome/browser/extensions/extension_event_router.h
|
| diff --git a/chrome/browser/extensions/extension_event_router.h b/chrome/browser/extensions/extension_event_router.h
|
| index 2b52cc812bae9e6b4526fa6f8307338eb1525cf7..a08d816fdb14cdd8d90f90fa8476f5a93507bb90 100644
|
| --- a/chrome/browser/extensions/extension_event_router.h
|
| +++ b/chrome/browser/extensions/extension_event_router.h
|
| @@ -15,6 +15,7 @@
|
| #include "base/memory/ref_counted.h"
|
| #include "content/public/browser/notification_observer.h"
|
| #include "content/public/browser/notification_registrar.h"
|
| +#include "chrome/common/extensions/feature.h"
|
| #include "ipc/ipc_message.h"
|
|
|
| class GURL;
|
| @@ -23,6 +24,8 @@ class ExtensionHost;
|
| class ExtensionDevToolsManager;
|
| class Profile;
|
|
|
| +using extensions::Feature;
|
| +
|
| namespace content {
|
| class RenderProcessHost;
|
| }
|
| @@ -54,8 +57,9 @@ class ExtensionEventRouter : public content::NotificationObserver {
|
| // collapsing. Also, a single extension can have 2 processes if it is a split
|
| // mode extension.
|
| void AddEventListener(const std::string& event_name,
|
| + const std::string& extension_id,
|
| content::RenderProcessHost* process,
|
| - const std::string& extension_id);
|
| + Feature::Context context);
|
| void RemoveEventListener(const std::string& event_name,
|
| content::RenderProcessHost* process,
|
| const std::string& extension_id);
|
| @@ -65,6 +69,12 @@ class ExtensionEventRouter : public content::NotificationObserver {
|
| // 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,
|
| + content::RenderProcessHost* process,
|
| + Feature::Context context);
|
| + // Use this overload when subscribing extensions to events from C++, or when
|
| + // access checking the calling process and context is not required.
|
| + void AddLazyEventListener(const std::string& event_name,
|
| const std::string& extension_id);
|
| void RemoveLazyEventListener(const std::string& event_name,
|
| const std::string& extension_id);
|
| @@ -131,6 +141,12 @@ class ExtensionEventRouter : public content::NotificationObserver {
|
| // event.
|
| struct ListenerProcess;
|
|
|
| + // Helper that returns whether the event is accessible to the calling context.
|
| + bool IsEventAvailable(const std::string& event_name,
|
| + const std::string& extension_id,
|
| + content::RenderProcessHost* render_process,
|
| + Feature::Context context_type) const;
|
| +
|
| // 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;
|
|
|