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

Unified Diff: third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js

Issue 1927703003: [DevTools] Remove bind from CommandLineAPI (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove-injected-script-host
Patch Set: Created 4 years, 8 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 | « no previous file | third_party/WebKit/Source/platform/v8_inspector/V8InjectedScriptHost.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js
diff --git a/third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js b/third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js
index 70aeacfd9b6aa72165be383433e9ee4b969d13dd..1a9ae17fbbc84ecdc86c23c73c9b7b0a65e32385 100644
--- a/third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js
+++ b/third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js
@@ -599,9 +599,8 @@ InjectedScript.prototype = {
// NOTE: This list contains only not native Command Line API methods. For full list: V8Console.
// NOTE: Argument names of these methods will be printed in the console, so use pretty names!
var members = [ "$", "$$", "$x", "monitorEvents", "unmonitorEvents", "getEventListeners" ];
- var commandLineAPIImpl = this._commandLineAPIImpl;
for (var member of members)
- nativeCommandLineAPI[member] = bind(commandLineAPIImpl[member], commandLineAPIImpl);
+ nativeCommandLineAPI[member] = CommandLineAPIImpl[member];
var functionToStringMap = new Map([
["$", "function $(selector, [startNode]) { [Command Line API] }"],
["$$", "function $$(selector, [startNode]) { [Command Line API] }"],
@@ -1148,187 +1147,179 @@ InjectedScript.RemoteObject.prototype = {
__proto__: null
}
+var CommandLineAPIImpl = { __proto__: null }
+
/**
- * @constructor
+ * @param {string} selector
+ * @param {!Node=} opt_startNode
+ * @return {*}
*/
-function CommandLineAPIImpl()
+CommandLineAPIImpl.$ = function (selector, opt_startNode)
{
+ if (CommandLineAPIImpl._canQuerySelectorOnNode(opt_startNode))
+ return opt_startNode.querySelector(selector);
+
+ return inspectedGlobalObject.document.querySelector(selector);
}
-CommandLineAPIImpl.prototype = {
- /**
- * @param {string} selector
- * @param {!Node=} opt_startNode
- * @return {*}
- */
- $: function (selector, opt_startNode)
- {
- if (this._canQuerySelectorOnNode(opt_startNode))
- return opt_startNode.querySelector(selector);
+/**
+ * @param {string} selector
+ * @param {!Node=} opt_startNode
+ * @return {*}
+ */
+CommandLineAPIImpl.$$ = function (selector, opt_startNode)
+{
+ if (CommandLineAPIImpl._canQuerySelectorOnNode(opt_startNode))
+ return slice(opt_startNode.querySelectorAll(selector));
+ return slice(inspectedGlobalObject.document.querySelectorAll(selector));
+}
- return inspectedGlobalObject.document.querySelector(selector);
- },
+/**
+ * @param {!Node=} node
+ * @return {boolean}
+ */
+CommandLineAPIImpl._canQuerySelectorOnNode = function(node)
+{
+ return !!node && InjectedScriptHost.subtype(node) === "node" && (node.nodeType === Node.ELEMENT_NODE || node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE);
+}
- /**
- * @param {string} selector
- * @param {!Node=} opt_startNode
- * @return {*}
- */
- $$: function (selector, opt_startNode)
- {
- if (this._canQuerySelectorOnNode(opt_startNode))
- return slice(opt_startNode.querySelectorAll(selector));
- return slice(inspectedGlobalObject.document.querySelectorAll(selector));
- },
+/**
+ * @param {string} xpath
+ * @param {!Node=} opt_startNode
+ * @return {*}
+ */
+CommandLineAPIImpl.$x = function(xpath, opt_startNode)
+{
+ var doc = (opt_startNode && opt_startNode.ownerDocument) || inspectedGlobalObject.document;
+ var result = doc.evaluate(xpath, opt_startNode || doc, null, XPathResult.ANY_TYPE, null);
+ switch (result.resultType) {
+ case XPathResult.NUMBER_TYPE:
+ return result.numberValue;
+ case XPathResult.STRING_TYPE:
+ return result.stringValue;
+ case XPathResult.BOOLEAN_TYPE:
+ return result.booleanValue;
+ default:
+ var nodes = [];
+ var node;
+ while (node = result.iterateNext())
+ push(nodes, node);
+ return nodes;
+ }
+}
- /**
- * @param {!Node=} node
- * @return {boolean}
- */
- _canQuerySelectorOnNode: function(node)
- {
- return !!node && InjectedScriptHost.subtype(node) === "node" && (node.nodeType === Node.ELEMENT_NODE || node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE);
- },
+/**
+ * @param {!Object} object
+ * @param {!Array.<string>|string=} opt_types
+ */
+CommandLineAPIImpl.monitorEvents = function(object, opt_types)
+{
+ if (!object || !object.addEventListener || !object.removeEventListener)
+ return;
+ var types = CommandLineAPIImpl._normalizeEventTypes(opt_types);
+ for (var i = 0; i < types.length; ++i) {
+ object.removeEventListener(types[i], CommandLineAPIImpl._logEvent, false);
+ object.addEventListener(types[i], CommandLineAPIImpl._logEvent, false);
+ }
+}
- /**
- * @param {string} xpath
- * @param {!Node=} opt_startNode
- * @return {*}
- */
- $x: function(xpath, opt_startNode)
- {
- var doc = (opt_startNode && opt_startNode.ownerDocument) || inspectedGlobalObject.document;
- var result = doc.evaluate(xpath, opt_startNode || doc, null, XPathResult.ANY_TYPE, null);
- switch (result.resultType) {
- case XPathResult.NUMBER_TYPE:
- return result.numberValue;
- case XPathResult.STRING_TYPE:
- return result.stringValue;
- case XPathResult.BOOLEAN_TYPE:
- return result.booleanValue;
- default:
- var nodes = [];
- var node;
- while (node = result.iterateNext())
- push(nodes, node);
- return nodes;
- }
- },
+/**
+ * @param {!Object} object
+ * @param {!Array.<string>|string=} opt_types
+ */
+CommandLineAPIImpl.unmonitorEvents = function(object, opt_types)
+{
+ if (!object || !object.addEventListener || !object.removeEventListener)
+ return;
+ var types = CommandLineAPIImpl._normalizeEventTypes(opt_types);
+ for (var i = 0; i < types.length; ++i)
+ object.removeEventListener(types[i], CommandLineAPIImpl._logEvent, false);
+}
- /**
- * @param {!Object} object
- * @param {!Array.<string>|string=} opt_types
- */
- monitorEvents: function(object, opt_types)
- {
- if (!object || !object.addEventListener || !object.removeEventListener)
- return;
- var types = this._normalizeEventTypes(opt_types);
- for (var i = 0; i < types.length; ++i) {
- object.removeEventListener(types[i], this._logEvent, false);
- object.addEventListener(types[i], this._logEvent, false);
- }
- },
+/**
+ * @param {!Node} node
+ * @return {!Object|undefined}
+ */
+CommandLineAPIImpl.getEventListeners = function(node)
+{
+ var result = nullifyObjectProto(InjectedScriptHost.getEventListeners(node));
+ if (!result)
+ return;
- /**
- * @param {!Object} object
- * @param {!Array.<string>|string=} opt_types
- */
- unmonitorEvents: function(object, opt_types)
+ // TODO(dtapuska): Remove this one closure compiler is updated
+ // to handle EventListenerOptions and passive event listeners
+ // has shipped. Don't JSDoc these otherwise it will fail.
+ // @param {boolean} capture
+ // @param {boolean} passive
+ // @return {boolean|undefined|{capture: (boolean|undefined), passive: boolean}}
+ function eventListenerOptions(capture, passive)
{
- if (!object || !object.addEventListener || !object.removeEventListener)
- return;
- var types = this._normalizeEventTypes(opt_types);
- for (var i = 0; i < types.length; ++i)
- object.removeEventListener(types[i], this._logEvent, false);
- },
+ return {"capture": capture, "passive": passive};
+ }
/**
* @param {!Node} node
- * @return {!Object|undefined}
+ * @param {string} type
+ * @param {function()} listener
+ * @param {boolean} capture
+ * @param {boolean} passive
*/
- getEventListeners: function(node)
+ function removeEventListenerWrapper(node, type, listener, capture, passive)
{
- var result = nullifyObjectProto(InjectedScriptHost.getEventListeners(node));
- if (!result)
- return;
-
- // TODO(dtapuska): Remove this one closure compiler is updated
- // to handle EventListenerOptions and passive event listeners
- // has shipped. Don't JSDoc these otherwise it will fail.
- // @param {boolean} capture
- // @param {boolean} passive
- // @return {boolean|undefined|{capture: (boolean|undefined), passive: boolean}}
- function eventListenerOptions(capture, passive)
- {
- return {"capture": capture, "passive": passive};
- }
-
- /**
- * @param {!Node} node
- * @param {string} type
- * @param {function()} listener
- * @param {boolean} capture
- * @param {boolean} passive
- */
- function removeEventListenerWrapper(node, type, listener, capture, passive)
- {
- node.removeEventListener(type, listener, eventListenerOptions(capture, passive));
- }
-
- /** @this {{type: string, listener: function(), useCapture: boolean, passive: boolean}} */
- var removeFunc = function()
- {
- removeEventListenerWrapper(node, this.type, this.listener, this.useCapture, this.passive);
- }
- for (var type in result) {
- var listeners = result[type];
- for (var i = 0, listener; listener = listeners[i]; ++i) {
- listener["type"] = type;
- listener["remove"] = removeFunc;
- }
- }
- return result;
- },
+ node.removeEventListener(type, listener, eventListenerOptions(capture, passive));
+ }
- /**
- * @param {!Array.<string>|string=} types
- * @return {!Array.<string>}
- */
- _normalizeEventTypes: function(types)
+ /** @this {{type: string, listener: function(), useCapture: boolean, passive: boolean}} */
+ var removeFunc = function()
{
- if (typeof types === "undefined")
- types = ["mouse", "key", "touch", "pointer", "control", "load", "unload", "abort", "error", "select", "input", "change", "submit", "reset", "focus", "blur", "resize", "scroll", "search", "devicemotion", "deviceorientation"];
- else if (typeof types === "string")
- types = [types];
-
- var result = [];
- for (var i = 0; i < types.length; ++i) {
- if (types[i] === "mouse")
- push(result, "click", "dblclick", "mousedown", "mouseeenter", "mouseleave", "mousemove", "mouseout", "mouseover", "mouseup", "mouseleave", "mousewheel");
- else if (types[i] === "key")
- push(result, "keydown", "keyup", "keypress", "textInput");
- else if (types[i] === "touch")
- push(result, "touchstart", "touchmove", "touchend", "touchcancel");
- else if (types[i] === "pointer")
- push(result, "pointerover", "pointerout", "pointerenter", "pointerleave", "pointerdown", "pointerup", "pointermove", "pointercancel", "gotpointercapture", "lostpointercapture");
- else if (types[i] === "control")
- push(result, "resize", "scroll", "zoom", "focus", "blur", "select", "input", "change", "submit", "reset");
- else
- push(result, types[i]);
+ removeEventListenerWrapper(node, this.type, this.listener, this.useCapture, this.passive);
+ }
+ for (var type in result) {
+ var listeners = result[type];
+ for (var i = 0, listener; listener = listeners[i]; ++i) {
+ listener["type"] = type;
+ listener["remove"] = removeFunc;
}
- return result;
- },
+ }
+ return result;
+}
- /**
- * @param {!Event} event
- */
- _logEvent: function(event)
- {
- inspectedGlobalObject.console.log(event.type, event);
+/**
+ * @param {!Array.<string>|string=} types
+ * @return {!Array.<string>}
+ */
+CommandLineAPIImpl._normalizeEventTypes = function(types)
+{
+ if (typeof types === "undefined")
+ types = ["mouse", "key", "touch", "pointer", "control", "load", "unload", "abort", "error", "select", "input", "change", "submit", "reset", "focus", "blur", "resize", "scroll", "search", "devicemotion", "deviceorientation"];
+ else if (typeof types === "string")
+ types = [types];
+
+ var result = [];
+ for (var i = 0; i < types.length; ++i) {
+ if (types[i] === "mouse")
+ push(result, "click", "dblclick", "mousedown", "mouseeenter", "mouseleave", "mousemove", "mouseout", "mouseover", "mouseup", "mouseleave", "mousewheel");
+ else if (types[i] === "key")
+ push(result, "keydown", "keyup", "keypress", "textInput");
+ else if (types[i] === "touch")
+ push(result, "touchstart", "touchmove", "touchend", "touchcancel");
+ else if (types[i] === "pointer")
+ push(result, "pointerover", "pointerout", "pointerenter", "pointerleave", "pointerdown", "pointerup", "pointermove", "pointercancel", "gotpointercapture", "lostpointercapture");
+ else if (types[i] === "control")
+ push(result, "resize", "scroll", "zoom", "focus", "blur", "select", "input", "change", "submit", "reset");
+ else
+ push(result, types[i]);
}
+ return result;
+}
+
+/**
+ * @param {!Event} event
+ */
+CommandLineAPIImpl._logEvent = function(event)
+{
+ inspectedGlobalObject.console.log(event.type, event);
}
-injectedScript._commandLineAPIImpl = new CommandLineAPIImpl();
return injectedScript;
})
« no previous file with comments | « no previous file | third_party/WebKit/Source/platform/v8_inspector/V8InjectedScriptHost.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698