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

Unified Diff: extensions/renderer/event_bindings.h

Issue 1227093008: Clear an extension's filtered events when a context is destroyed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moar Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/common/value_counter.cc ('k') | extensions/renderer/event_bindings.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/renderer/event_bindings.h
diff --git a/extensions/renderer/event_bindings.h b/extensions/renderer/event_bindings.h
index cf06692c3bb800226d9f633778315874f5bdec61..ad979fce22b39d4ea9f2dd410063859b88908ea5 100644
--- a/extensions/renderer/event_bindings.h
+++ b/extensions/renderer/event_bindings.h
@@ -53,23 +53,32 @@ class EventBindings : public ObjectBackedNativeHandler {
// to MatchAgainstEventFilter where this listener matches.
void AttachFilteredEvent(const v8::FunctionCallbackInfo<v8::Value>& args);
+ // JavaScript handler which forwards to DetachFilteredEvent.
// void DetachFilteredEvent(int id, bool manual)
- // id - Id of the event to detach.
- // manual - false if this is part of the extension unload process where all
- // listeners are automatically detached.
- void DetachFilteredEvent(const v8::FunctionCallbackInfo<v8::Value>& args);
+ // args[0] forwards to |matcher_id|
+ // args[1] forwards to |is_manual|
+ void DetachFilteredEventHandler(
+ const v8::FunctionCallbackInfo<v8::Value>& args);
+
+ // Detaches a filtered event. Unlike a normal event, a filtered event is
+ // identified by a unique ID per filter, not its name.
+ // |matcher_id| The ID of the filtered event.
+ // |is_manual| false if this is part of the extension unload process where all
+ // listeners are automatically detached.
+ void DetachFilteredEvent(int matcher_id, bool is_manual);
void MatchAgainstEventFilter(const v8::FunctionCallbackInfo<v8::Value>& args);
scoped_ptr<EventMatcher> ParseEventMatcher(
- base::DictionaryValue* filter_dict);
+ scoped_ptr<base::DictionaryValue> filter);
// 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.
+ // The set of attached events and filtered events. Maintain these so that we
+ // can detch them on unload.
std::set<std::string> attached_event_names_;
+ std::set<int> attached_matcher_ids_;
DISALLOW_COPY_AND_ASSIGN(EventBindings);
};
« no previous file with comments | « extensions/common/value_counter.cc ('k') | extensions/renderer/event_bindings.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698