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

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

Issue 2022503002: Add ability to toggle passive state on an individual event listener. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix layout tests Created 4 years, 7 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: third_party/WebKit/Source/devtools/front_end/components/EventListenersView.js
diff --git a/third_party/WebKit/Source/devtools/front_end/components/EventListenersView.js b/third_party/WebKit/Source/devtools/front_end/components/EventListenersView.js
index c2963b5036c506df074f097a6eae10ee70b39f27..83ef420c52685c2c481388f8a748a63eac9f0dcd 100644
--- a/third_party/WebKit/Source/devtools/front_end/components/EventListenersView.js
+++ b/third_party/WebKit/Source/devtools/front_end/components/EventListenersView.js
@@ -10,10 +10,12 @@ WebInspector.EventListenersResult;
/**
* @constructor
* @param {!Element} element
+ * @param {function()} changeCallback
*/
-WebInspector.EventListenersView = function(element)
+WebInspector.EventListenersView = function(element, changeCallback)
{
this._element = element;
+ this._changeCallback = changeCallback;
this._treeOutline = new TreeOutlineInShadow();
this._treeOutline.hideOverflow();
this._treeOutline.registerRequiredCSS("components/objectValue.css");
@@ -178,7 +180,7 @@ WebInspector.EventListenersView.prototype = {
{
var treeItem = this._treeItemMap.get(type);
if (!treeItem) {
- treeItem = new WebInspector.EventListenersTreeElement(type, this._linkifier);
+ treeItem = new WebInspector.EventListenersTreeElement(type, this._linkifier, this._changeCallback);
this._treeItemMap.set(type, treeItem);
treeItem.hidden = true;
this._treeOutline.appendChild(treeItem);
@@ -216,13 +218,15 @@ WebInspector.EventListenersView.prototype = {
* @extends {TreeElement}
* @param {string} type
* @param {!WebInspector.Linkifier} linkifier
+ * @param {function()} changeCallback
*/
-WebInspector.EventListenersTreeElement = function(type, linkifier)
+WebInspector.EventListenersTreeElement = function(type, linkifier, changeCallback)
{
TreeElement.call(this, type);
this.toggleOnClick = true;
this.selectable = false;
this._linkifier = linkifier;
+ this._changeCallback = changeCallback;
}
/**
@@ -243,7 +247,7 @@ WebInspector.EventListenersTreeElement.prototype = {
*/
addObjectEventListener: function(eventListener, object)
{
- var treeElement = new WebInspector.ObjectEventListenerBar(eventListener, object, this._linkifier);
+ var treeElement = new WebInspector.ObjectEventListenerBar(eventListener, object, this._linkifier, this._changeCallback);
this.appendChild(/** @type {!TreeElement} */ (treeElement));
},
@@ -256,14 +260,16 @@ WebInspector.EventListenersTreeElement.prototype = {
* @param {!WebInspector.EventListener} eventListener
* @param {!WebInspector.RemoteObject} object
* @param {!WebInspector.Linkifier} linkifier
+ * @param {function()} changeCallback
*/
-WebInspector.ObjectEventListenerBar = function(eventListener, object, linkifier)
+WebInspector.ObjectEventListenerBar = function(eventListener, object, linkifier, changeCallback)
{
TreeElement.call(this, "", true);
this._eventListener = eventListener;
this.editable = false;
this.selectable = false;
this._setTitle(object, linkifier);
+ this._changeCallback = changeCallback;
}
WebInspector.ObjectEventListenerBar.prototype = {
@@ -292,13 +298,22 @@ WebInspector.ObjectEventListenerBar.prototype = {
title.appendChild(WebInspector.ObjectPropertiesSection.createValueElement(object, false));
if (this._eventListener.removeFunction()) {
- var deleteButton = title.createChild("span", "event-listener-delete-button");
+ var deleteButton = title.createChild("span", "event-listener-button");
deleteButton.textContent = WebInspector.UIString("Remove");
deleteButton.title = WebInspector.UIString("Delete event listener");
deleteButton.addEventListener("click", removeListener.bind(this), false);
title.appendChild(deleteButton);
}
+ if (this._eventListener.isScrollBlockingType() &&
+ this._eventListener.isNormalListenerType()) {
+ var passiveButton = title.createChild("span", "event-listener-button");
+ passiveButton.textContent = WebInspector.UIString("Toggle Passive");
+ passiveButton.title = WebInspector.UIString("Toggle whether event listener is passive or blocking");
+ passiveButton.addEventListener("click", togglePassiveListener.bind(this), false);
+ title.appendChild(passiveButton);
+ }
+
/**
* @param {!WebInspector.Event} event
* @this {WebInspector.ObjectEventListenerBar}
@@ -309,6 +324,16 @@ WebInspector.ObjectEventListenerBar.prototype = {
this._removeListenerBar();
this._eventListener.remove();
}
+
+ /**
+ * @param {!WebInspector.Event} event
+ * @this {WebInspector.ObjectEventListenerBar}
+ */
+ function togglePassiveListener(event)
+ {
+ event.consume();
+ this._eventListener.togglePassive().then(this._changeCallback());
+ }
},
_removeListenerBar: function()

Powered by Google App Engine
This is Rietveld 408576698