Chromium Code Reviews| Index: extensions/browser/event_router.h |
| diff --git a/extensions/browser/event_router.h b/extensions/browser/event_router.h |
| index 48bc266980cce4ce121f64a3402d8afbc5926e8a..06ba29ebce73a470be7285ec67fd8a67ac331ae8 100644 |
| --- a/extensions/browser/event_router.h |
| +++ b/extensions/browser/event_router.h |
| @@ -72,6 +72,9 @@ class EventRouter : public KeyedService, |
| virtual void OnListenerAdded(const EventListenerInfo& details) {} |
| // Called when a listener is removed. |
| virtual void OnListenerRemoved(const EventListenerInfo& details) {} |
| + |
| + protected: |
| + virtual ~Observer() {} |
| }; |
| // Gets the EventRouter for |browser_context|. |
| @@ -126,8 +129,7 @@ class EventRouter : public KeyedService, |
| // 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); |
| + void RegisterObserver(Observer* observer, const std::string& event_name); |
| // Unregisters an observer from all events. |
| void UnregisterObserver(Observer* observer); |
| @@ -157,11 +159,12 @@ class EventRouter : public KeyedService, |
| bool remove_lazy_listener); |
| // Returns true if there is at least one listener for the given event. |
| - bool HasEventListener(const std::string& event_name); |
| + bool HasEventListener(const std::string& event_name) const; |
| // Returns true if the extension is listening to the given event. |
| + // (virtual for testing only.) |
| virtual bool ExtensionHasEventListener(const std::string& extension_id, |
| - const std::string& event_name); |
| + const std::string& event_name) const; |
| // Broadcasts an event to every listener registered for that event. |
| virtual void BroadcastEvent(std::unique_ptr<Event> event); |
| @@ -321,11 +324,11 @@ class EventRouter : public KeyedService, |
| int exit_code) override; |
| void RenderProcessHostDestroyed(content::RenderProcessHost* host) override; |
| - content::BrowserContext* browser_context_; |
| + content::BrowserContext* const browser_context_; |
| // The ExtensionPrefs associated with |browser_context_|. May be NULL in |
| // tests. |
| - ExtensionPrefs* extension_prefs_; |
| + ExtensionPrefs* const extension_prefs_; |
| content::NotificationRegistrar registrar_; |
| @@ -335,7 +338,7 @@ class EventRouter : public KeyedService, |
| EventListenerMap listeners_; |
| // Map from base event name to observer. |
| - typedef base::hash_map<std::string, Observer*> ObserverMap; |
| + using ObserverMap = base::hash_map<std::string, Observer*>; |
|
Devlin
2017/05/20 00:49:16
s/base::hash_map/std::unordered_map?
Lei Zhang
2017/05/20 01:04:14
Done.
|
| ObserverMap observers_; |
| std::set<content::RenderProcessHost*> observed_process_set_; |
| @@ -346,19 +349,19 @@ class EventRouter : public KeyedService, |
| struct Event { |
| // This callback should return true if the event should be dispatched to the |
| // given context and extension, and false otherwise. |
| - typedef base::Callback<bool(content::BrowserContext*, |
| - const Extension*, |
| - Event*, |
| - const base::DictionaryValue*)> |
| - WillDispatchCallback; |
| + using WillDispatchCallback = |
| + base::Callback<bool(content::BrowserContext*, |
| + const Extension*, |
| + Event*, |
| + const base::DictionaryValue*)>; |
| // The identifier for the event, for histograms. In most cases this |
| // correlates 1:1 with |event_name|, in some cases events will generate |
| // their own names, but they cannot generate their own identifier. |
| - events::HistogramValue histogram_value; |
| + const events::HistogramValue histogram_value; |
| // The event to dispatch. |
| - std::string event_name; |
| + const std::string event_name; |
| // Arguments to send to the event listener. |
| std::unique_ptr<base::ListValue> event_args; |
| @@ -423,7 +426,7 @@ struct EventListenerInfo { |
| const std::string extension_id; |
| const GURL listener_url; |
| - content::BrowserContext* browser_context; |
| + content::BrowserContext* const browser_context; |
| }; |
| } // namespace extensions |