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

Unified Diff: extensions/renderer/native_extension_bindings_system.cc

Issue 2973903002: [Extensions Bindings] Introduce a supportsLazyListeners property (Closed)
Patch Set: onMessage event fix Created 3 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/renderer/event_bindings.cc ('k') | extensions/renderer/resources/app_window_custom_bindings.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/renderer/native_extension_bindings_system.cc
diff --git a/extensions/renderer/native_extension_bindings_system.cc b/extensions/renderer/native_extension_bindings_system.cc
index fd29b6017e1f71c6a019b9c2a038f896f794e5db..de2948617815096de6de5adc7322915d8caf8b87 100644
--- a/extensions/renderer/native_extension_bindings_system.cc
+++ b/extensions/renderer/native_extension_bindings_system.cc
@@ -747,18 +747,18 @@ void NativeExtensionBindingsSystem::OnEventListenerChanged(
const std::string& event_name,
binding::EventListenersChanged change,
const base::DictionaryValue* filter,
- bool was_manual,
+ bool update_lazy_listeners,
v8::Local<v8::Context> context) {
ScriptContext* script_context =
ScriptContextSet::GetContextByV8Context(context);
// Note: Check context_type() first to avoid accessing ExtensionFrameHelper on
// a worker thread.
bool is_lazy =
- script_context->context_type() == Feature::SERVICE_WORKER_CONTEXT ||
- ExtensionFrameHelper::IsContextForEventPage(script_context);
+ update_lazy_listeners &&
+ (script_context->context_type() == Feature::SERVICE_WORKER_CONTEXT ||
+ ExtensionFrameHelper::IsContextForEventPage(script_context));
// We only remove a lazy listener if the listener removal was triggered
// manually by the extension.
- bool remove_lazy_listener = is_lazy && was_manual;
if (filter) { // Filtered event listeners.
DCHECK(filter);
@@ -768,7 +768,7 @@ void NativeExtensionBindingsSystem::OnEventListenerChanged(
} else {
DCHECK_EQ(binding::EventListenersChanged::NO_LISTENERS, change);
ipc_message_sender_->SendRemoveFilteredEventListenerIPC(
- script_context, event_name, *filter, remove_lazy_listener);
+ script_context, event_name, *filter, is_lazy);
}
} else { // Unfiltered event listeners.
if (change == binding::EventListenersChanged::HAS_LISTENERS) {
@@ -788,7 +788,7 @@ void NativeExtensionBindingsSystem::OnEventListenerChanged(
DCHECK_EQ(binding::EventListenersChanged::NO_LISTENERS, change);
ipc_message_sender_->SendRemoveUnfilteredEventListenerIPC(script_context,
event_name);
- if (remove_lazy_listener) {
+ if (is_lazy) {
ipc_message_sender_->SendRemoveUnfilteredLazyEventListenerIPC(
script_context, event_name);
}
« no previous file with comments | « extensions/renderer/event_bindings.cc ('k') | extensions/renderer/resources/app_window_custom_bindings.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698