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

Unified Diff: extensions/renderer/api_event_handler.cc

Issue 2909673003: [Extensions Bindings] Request JS execution from messaging bindings (Closed)
Patch Set: lazyboy's Created 3 years, 6 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/renderer/api_event_handler.h ('k') | extensions/renderer/dispatcher.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « extensions/renderer/api_event_handler.h ('k') | extensions/renderer/dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698