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

Unified Diff: third_party/WebKit/Source/devtools/front_end/components/EventListenersUtils.js

Issue 2490303003: Add once field to devtools so it can be queried by lighthouse. (Closed)
Patch Set: Created 4 years, 1 month 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: third_party/WebKit/Source/devtools/front_end/components/EventListenersUtils.js
diff --git a/third_party/WebKit/Source/devtools/front_end/components/EventListenersUtils.js b/third_party/WebKit/Source/devtools/front_end/components/EventListenersUtils.js
index 6b9aeba338cb0f17f4e056587c694110922ae03f..7392c49ad6adf0bed0e46ece0d242c0614ac3f6d 100644
--- a/third_party/WebKit/Source/devtools/front_end/components/EventListenersUtils.js
+++ b/third_party/WebKit/Source/devtools/front_end/components/EventListenersUtils.js
@@ -4,7 +4,7 @@
/** @typedef {{eventListeners:!Array<!WebInspector.EventListener>, internalHandlers:?WebInspector.RemoteArray}} */
WebInspector.FrameworkEventListenersObject;
-/** @typedef {{type: string, useCapture: boolean, passive: boolean, handler: function()}} */
+/** @typedef {{type: string, useCapture: boolean, passive: boolean, once: boolean, handler: function()}} */
WebInspector.EventListenerObjectInInspectedPage;
/**
@@ -73,6 +73,8 @@ WebInspector.EventListener.frameworkEventListeners = function(object) {
var useCapture;
/** @type {boolean} */
var passive;
+ /** @type {boolean} */
+ var once;
/** @type {?WebInspector.RemoteObject} */
var handler = null;
/** @type {?WebInspector.RemoteObject} */
@@ -89,19 +91,20 @@ WebInspector.EventListener.frameworkEventListeners = function(object) {
/**
* @suppressReceiverCheck
* @this {WebInspector.EventListenerObjectInInspectedPage}
- * @return {!{type:string, useCapture:boolean, passive:boolean}}
+ * @return {!{type:string, useCapture:boolean, passive:boolean, once:boolean}}
*/
function truncatePageEventListener() {
- return {type: this.type, useCapture: this.useCapture, passive: this.passive};
+ return {type: this.type, useCapture: this.useCapture, passive: this.passive, once: this.once};
}
/**
- * @param {!{type:string, useCapture: boolean, passive: boolean}} truncatedListener
+ * @param {!{type:string, useCapture: boolean, passive: boolean, once: boolean}} truncatedListener
*/
function storeTruncatedListener(truncatedListener) {
type = truncatedListener.type;
useCapture = truncatedListener.useCapture;
passive = truncatedListener.passive;
+ once = truncatedListener.once;
}
promises.push(listenerObject.callFunctionPromise(handlerFunction)
@@ -178,7 +181,7 @@ WebInspector.EventListener.frameworkEventListeners = function(object) {
if (!location)
throw new Error('Empty event listener\'s location');
return new WebInspector.EventListener(
- handler._target, object, type, useCapture, passive, handler, originalHandler, location,
+ handler._target, object, type, useCapture, passive, once, handler, originalHandler, location,
removeFunctionObject, 'frameworkUser');
}
}
@@ -267,6 +270,7 @@ WebInspector.EventListener.frameworkEventListeners = function(object) {
"handler": function(),
"useCapture": true,
"passive": false,
+ "once": false,
"type": "change",
"remove": function(type, handler, useCapture, passive)
},
@@ -356,6 +360,9 @@ WebInspector.EventListener.frameworkEventListeners = function(object) {
var passive = eventListener.passive;
if (typeof passive !== 'boolean')
errorString += 'event listener\'s passive isn\'t boolean or undefined, ';
+ var once = eventListener.once;
+ if (typeof once !== 'boolean')
+ errorString += 'event listener\'s once isn\'t boolean or undefined, ';
var handler = eventListener.handler;
if (!handler || (typeof handler !== 'function'))
errorString += 'event listener\'s handler isn\'t a function or empty, ';
@@ -363,7 +370,7 @@ WebInspector.EventListener.frameworkEventListeners = function(object) {
if (remove && (typeof remove !== 'function'))
errorString += 'event listener\'s remove isn\'t a function, ';
if (!errorString) {
- return {type: type, useCapture: useCapture, passive: passive, handler: handler, remove: remove};
+ return {type: type, useCapture: useCapture, passive: passive, once: once, handler: handler, remove: remove};
} else {
errorLines.push(errorString.substr(0, errorString.length - 2));
return null;
@@ -428,6 +435,7 @@ WebInspector.EventListener.frameworkEventListeners = function(object) {
handler: frameworkListener.handler || frameworkListener,
useCapture: true,
passive: false,
+ once: false,
type: type
};
listener.remove = jQueryRemove.bind(node, frameworkListener.selector);
@@ -446,7 +454,7 @@ WebInspector.EventListener.frameworkEventListeners = function(object) {
var events = entryEvents[type];
for (var key in events) {
if (typeof events[key] === 'function') {
- var listener = {handler: events[key], useCapture: true, passive: false, type: type};
+ var listener = {handler: events[key], useCapture: true, passive: false, once: false, type: type};
// We don't support removing for old version < 1.4 of jQuery because it doesn't provide API for getting "selector".
eventListeners.push(listener);
}

Powered by Google App Engine
This is Rietveld 408576698