| Index: extensions/renderer/event_bindings.h
|
| diff --git a/extensions/renderer/event_bindings.h b/extensions/renderer/event_bindings.h
|
| index 0f69cd36edf4f6af562c102a3660d16b21e9a154..3575b649b1787536e5b885ff84a4bd73e629d2d6 100644
|
| --- a/extensions/renderer/event_bindings.h
|
| +++ b/extensions/renderer/event_bindings.h
|
| @@ -5,6 +5,9 @@
|
| #ifndef EXTENSIONS_RENDERER_EVENT_BINDINGS_H_
|
| #define EXTENSIONS_RENDERER_EVENT_BINDINGS_H_
|
|
|
| +#include <set>
|
| +
|
| +#include "base/macros.h"
|
| #include "extensions/renderer/object_backed_native_handler.h"
|
| #include "v8/include/v8.h"
|
|
|
| @@ -14,7 +17,6 @@ class DictionaryValue;
|
|
|
| namespace extensions {
|
| class Dispatcher;
|
| -class EventFilter;
|
| class EventFilteringInfo;
|
| class EventMatcher;
|
|
|
| @@ -25,16 +27,25 @@ class EventBindings : public ObjectBackedNativeHandler {
|
| ~EventBindings() override;
|
|
|
| private:
|
| + // JavaScript handler which forwards to AttachEvent().
|
| + // args[0] forwards to |event_name|.
|
| + void AttachEventHandler(const v8::FunctionCallbackInfo<v8::Value>& args);
|
| +
|
| // Attach an event name to an object.
|
| // |event_name| The name of the event to attach.
|
| - void AttachEvent(const v8::FunctionCallbackInfo<v8::Value>& args);
|
| + void AttachEvent(const std::string& event_name);
|
| +
|
| + // JavaScript handler which forwards to DetachEvent().
|
| + // args[0] forwards to |event_name|.
|
| + // args[1] forwards to |is_manual|.
|
| + void DetachEventHandler(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
|
| - // Detach an event name from an object.
|
| + // Detaches an event name from an object.
|
| // |event_name| The name of the event to stop listening to.
|
| // |is_manual| True if this detach was done by the user via removeListener()
|
| // as opposed to automatically during shutdown, in which case we should inform
|
| // the browser we are no longer interested in that event.
|
| - void DetachEvent(const v8::FunctionCallbackInfo<v8::Value>& args);
|
| + void DetachEvent(const std::string& event_name, bool is_manual);
|
|
|
| // MatcherID AttachFilteredEvent(string event_name, object filter)
|
| // |event_name| Name of the event to attach.
|
| @@ -51,9 +62,19 @@ class EventBindings : public ObjectBackedNativeHandler {
|
|
|
| void MatchAgainstEventFilter(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
|
| - Dispatcher* dispatcher_;
|
| scoped_ptr<EventMatcher> ParseEventMatcher(
|
| base::DictionaryValue* filter_dict);
|
| +
|
| + // Called when our context, and therefore us, is invalidated. Run any cleanup.
|
| + void OnInvalidated();
|
| +
|
| + // The set of attached events. Maintain this so that we can detch them on
|
| + // unload.
|
| + std::set<std::string> attached_event_names_;
|
| +
|
| + Dispatcher* dispatcher_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(EventBindings);
|
| };
|
|
|
| } // namespace extensions
|
|
|