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

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

Issue 1183143002: [DevTools] Fixed blink of "No Event Listeners" in event listeners sidebar (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 6 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: Source/devtools/front_end/components/EventListenersView.js
diff --git a/Source/devtools/front_end/components/EventListenersView.js b/Source/devtools/front_end/components/EventListenersView.js
index 795610a41a17889600d8437e106000766fe0e606..5b50bfaf6c9bd14d4836cf89dbd7bd8e7e3a7a2e 100644
--- a/Source/devtools/front_end/components/EventListenersView.js
+++ b/Source/devtools/front_end/components/EventListenersView.js
@@ -17,7 +17,6 @@ WebInspector.EventListenersView = function(element)
this._element.appendChild(this._treeOutline.element)
this._emptyHolder = createElementWithClass("div", "info");
this._emptyHolder.textContent = WebInspector.UIString("No Event Listeners");
- this._element.appendChild(this._emptyHolder);
this._linkifier = new WebInspector.Linkifier();
/** @type {!Map<string, !WebInspector.EventListenersTreeElement>} */
this._treeItemMap = new Map();
@@ -25,10 +24,34 @@ WebInspector.EventListenersView = function(element)
WebInspector.EventListenersView.prototype = {
/**
+ * @param {!Array<!WebInspector.RemoteObject>} objects
+ * @return {!Promise<undefined>}
+ */
+ addObjects: function(objects)
+ {
+ var promises = [];
+ for (var i = 0; i < objects.length; ++i)
+ promises.push(objects[i].eventListeners());
+ return Promise.all(promises).then(listenersCallback.bind(this));
+ /**
+ * @param {!Array<?Array<!WebInspector.EventListener>>} listeners
+ * @this {WebInspector.EventListenersView}
+ */
+ function listenersCallback(listeners)
+ {
+ this.reset();
+ for (var i = 0; i < listeners.length; ++i)
+ this.addObjectEventListeners(objects[i], listeners[i]);
+ this.addEmptyHolderIfNeeded();
+ this._eventListenersArrivedForTest();
+ }
+ },
+
+ /**
* @param {!WebInspector.RemoteObject} object
* @param {?Array<!WebInspector.EventListener>} eventListeners
*/
- _addObjectEventListeners: function(object, eventListeners)
+ addObjectEventListeners: function(object, eventListeners)
lushnikov 2015/06/17 14:44:50 private?
kozy 2015/06/17 15:54:32 Done.
{
if (!eventListeners)
return;
@@ -54,21 +77,21 @@ WebInspector.EventListenersView.prototype = {
return treeItem;
},
- /**
- * @param {!WebInspector.RemoteObject} object
- * @return {!Promise<undefined>}
- */
- addObjectEventListeners: function(object)
+ addEmptyHolderIfNeeded: function()
{
- return object.eventListeners().then(this._addObjectEventListeners.bind(this, object));
+ if (!this._treeOutline.firstChild() && !this._emptyHolder.parentNode)
+ this._element.appendChild(this._emptyHolder);
},
reset: function()
{
this._treeItemMap = new Map();
this._treeOutline.removeChildren();
- this._element.appendChild(this._emptyHolder);
this._linkifier.reset();
+ },
+
+ _eventListenersArrivedForTest: function()
+ {
}
}

Powered by Google App Engine
This is Rietveld 408576698