| Index: extensions/renderer/dispatcher.cc
|
| diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc
|
| index 7dfb51c298507ec9e6d10aba12a6f6235c133aaa..7761664db00d3727dfa99cbd97f424edc7eac628 100644
|
| --- a/extensions/renderer/dispatcher.cc
|
| +++ b/extensions/renderer/dispatcher.cc
|
| @@ -215,8 +215,9 @@ void SendEventListenersIPC(binding::EventListenersChanged changed,
|
| ScriptContext* context,
|
| const std::string& event_name,
|
| const base::DictionaryValue* filter,
|
| - bool was_manual) {
|
| - bool lazy = ExtensionFrameHelper::IsContextForEventPage(context);
|
| + bool update_lazy_listeners) {
|
| + bool is_lazy = update_lazy_listeners &&
|
| + ExtensionFrameHelper::IsContextForEventPage(context);
|
| // TODO(lazyboy): For service workers, use worker specific IPC::Sender
|
| // instead of |render_thread|.
|
| const int worker_thread_id = content::WorkerThread::GetCurrentId();
|
| @@ -226,17 +227,17 @@ void SendEventListenersIPC(binding::EventListenersChanged changed,
|
| if (filter) {
|
| if (changed == binding::EventListenersChanged::HAS_LISTENERS) {
|
| render_thread->Send(new ExtensionHostMsg_AddFilteredListener(
|
| - extension_id, event_name, *filter, lazy));
|
| + extension_id, event_name, *filter, is_lazy));
|
| } else {
|
| DCHECK_EQ(binding::EventListenersChanged::NO_LISTENERS, changed);
|
| render_thread->Send(new ExtensionHostMsg_RemoveFilteredListener(
|
| - extension_id, event_name, *filter, lazy));
|
| + extension_id, event_name, *filter, is_lazy));
|
| }
|
| } else {
|
| if (changed == binding::EventListenersChanged::HAS_LISTENERS) {
|
| render_thread->Send(new ExtensionHostMsg_AddListener(
|
| extension_id, context->url(), event_name, worker_thread_id));
|
| - if (lazy) {
|
| + if (is_lazy) {
|
| render_thread->Send(
|
| new ExtensionHostMsg_AddLazyListener(extension_id, event_name));
|
| }
|
| @@ -244,7 +245,7 @@ void SendEventListenersIPC(binding::EventListenersChanged changed,
|
| DCHECK_EQ(binding::EventListenersChanged::NO_LISTENERS, changed);
|
| render_thread->Send(new ExtensionHostMsg_RemoveListener(
|
| extension_id, context->url(), event_name, worker_thread_id));
|
| - if (lazy && was_manual) {
|
| + if (is_lazy) {
|
| render_thread->Send(
|
| new ExtensionHostMsg_RemoveLazyListener(extension_id, event_name));
|
| }
|
|
|