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

Unified Diff: extensions/renderer/resources/event.js

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
Index: extensions/renderer/resources/event.js
diff --git a/extensions/renderer/resources/event.js b/extensions/renderer/resources/event.js
index 9e7226be14d7007c0867551aeefd11354dbcecac..e98d17997b601235feb9d2397decad79a07202bf 100644
--- a/extensions/renderer/resources/event.js
+++ b/extensions/renderer/resources/event.js
@@ -90,7 +90,8 @@
function(listener) {
// Only attach / detach on the first / last listener removed.
if (this.event_.listeners.length == 0)
- eventNatives.AttachEvent(this.event_.eventName);
+ eventNatives.AttachEvent(this.event_.eventName,
+ this.event_.eventOptions.supportsLazyListeners);
};
UnfilteredAttachmentStrategy.prototype.onRemovedListener =
@@ -100,7 +101,8 @@
};
UnfilteredAttachmentStrategy.prototype.detach = function(manual) {
- eventNatives.DetachEvent(this.event_.eventName, manual);
+ eventNatives.DetachEvent(this.event_.eventName, manual,
+ this.event_.eventOptions.supportsLazyListeners);
};
UnfilteredAttachmentStrategy.prototype.getListenersByIDs = function(ids) {
@@ -118,8 +120,9 @@
{__proto__: null});
FilteredAttachmentStrategy.prototype.onAddedListener = function(listener) {
- var id = eventNatives.AttachFilteredEvent(this.event_.eventName,
- listener.filters || {});
+ var id = eventNatives.AttachFilteredEvent(
+ this.event_.eventName, listener.filters || {},
+ this.event_.eventOptions.supportsLazyListeners);
if (id == -1)
throw new Error("Can't add listener");
listener.id = id;
@@ -138,7 +141,8 @@
var id = listener.id;
delete this.listenerMap_[id];
delete FilteredAttachmentStrategy.idToEventMap[id];
- eventNatives.DetachFilteredEvent(id, manual);
+ eventNatives.DetachFilteredEvent(
+ id, manual, this.event_.eventOptions.supportsLazyListeners);
};
FilteredAttachmentStrategy.prototype.detach = function(manual) {
@@ -168,6 +172,10 @@
// event.addListener(listener);
supportsListeners: true,
+ // Event supports lazy listeners, where an extension can register a
+ // listener to be used to "wake up" a lazy context.
+ supportsLazyListeners: true,
+
// Event supports adding rules ("declarative events") rather than
// listeners, for example as used in the declarativeWebRequest API.
//
« no previous file with comments | « extensions/renderer/resources/context_menus_handlers.js ('k') | extensions/renderer/resources/guest_view/guest_view_events.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698