Chromium Code Reviews| Index: extensions/renderer/api_event_handler.cc |
| diff --git a/extensions/renderer/api_event_handler.cc b/extensions/renderer/api_event_handler.cc |
| index fc8c3a1a25119d12c11094715aa147751bf4df16..531d68e7fcb17c57c940cde4c2eda10580339f12 100644 |
| --- a/extensions/renderer/api_event_handler.cc |
| +++ b/extensions/renderer/api_event_handler.cc |
| @@ -255,6 +255,22 @@ void APIEventHandler::RegisterArgumentMassager( |
| data->massagers[event_name].Reset(context->GetIsolate(), massager); |
| } |
| +bool APIEventHandler::HasListenerForEvent(const std::string& event_name, |
| + v8::Local<v8::Context> context) { |
| + APIEventPerContextData* data = GetContextData(context, false); |
| + if (!data) |
| + return false; |
| + |
| + auto iter = data->emitters.find(event_name); |
| + if (iter == data->emitters.end()) |
| + return false; |
| + EventEmitter* emitter = nullptr; |
| + gin::Converter<EventEmitter*>::FromV8( |
| + context->GetIsolate(), iter->second.Get(context->GetIsolate()), &emitter); |
| + CHECK(emitter); |
| + return emitter->GetNumListeners() > 0; |
|
lazyboy
2017/06/05 18:18:32
Given that we only care about EventEmitter::HasLis
Devlin
2017/06/09 20:18:01
Good thought. Since this patch is already a bit l
lazyboy
2017/06/10 00:09:05
Acknowledged.
|
| +} |
| + |
| void APIEventHandler::InvalidateContext(v8::Local<v8::Context> context) { |
| gin::PerContextData* per_context_data = gin::PerContextData::From(context); |
| DCHECK(per_context_data); |