| Index: extensions/renderer/api_event_handler.cc
|
| diff --git a/extensions/renderer/api_event_handler.cc b/extensions/renderer/api_event_handler.cc
|
| index 7c37c60d6cd0a93a64d48f84f3a0f1ef7ed883e4..3452237350646220d4a8de24baf5a5135f55146f 100644
|
| --- a/extensions/renderer/api_event_handler.cc
|
| +++ b/extensions/renderer/api_event_handler.cc
|
| @@ -257,6 +257,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;
|
| +}
|
| +
|
| void APIEventHandler::InvalidateContext(v8::Local<v8::Context> context) {
|
| gin::PerContextData* per_context_data = gin::PerContextData::From(context);
|
| DCHECK(per_context_data);
|
|
|