| Index: extensions/renderer/event_emitter.h
|
| diff --git a/extensions/renderer/event_emitter.h b/extensions/renderer/event_emitter.h
|
| index 6705cca8e01438b48c169e2bf43d5742edc62b5d..f160135f1377a57bdacdfaf03af8dd1cc6d9d89a 100644
|
| --- a/extensions/renderer/event_emitter.h
|
| +++ b/extensions/renderer/event_emitter.h
|
| @@ -40,7 +40,11 @@ class EventEmitter final : public gin::Wrappable<EventEmitter> {
|
| void Fire(v8::Local<v8::Context> context,
|
| std::vector<v8::Local<v8::Value>>* args);
|
|
|
| - Listeners* listeners() { return &listeners_; }
|
| + // Removes all listeners and marks this object as invalid so that no more
|
| + // are added.
|
| + void Invalidate();
|
| +
|
| + const Listeners* listeners() const { return &listeners_; }
|
|
|
| private:
|
| // Bound methods for the Event JS object.
|
| @@ -50,6 +54,10 @@ class EventEmitter final : public gin::Wrappable<EventEmitter> {
|
| bool HasListeners();
|
| void Dispatch(gin::Arguments* arguments);
|
|
|
| + // Whether or not this object is still valid; false upon context release.
|
| + // When invalid, no listeners can be added or removed.
|
| + bool valid_ = true;
|
| +
|
| Listeners listeners_;
|
|
|
| binding::RunJSFunction run_js_;
|
|
|