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

Side by Side Diff: Source/devtools/front_end/components/EventListenersView.js

Issue 1268353005: [DevTools] Support JQuery event listeners (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @constructor 6 * @constructor
7 * @param {!Element} element 7 * @param {!Element} element
8 */ 8 */
9 WebInspector.EventListenersView = function(element) 9 WebInspector.EventListenersView = function(element)
10 { 10 {
11 this._element = element; 11 this._element = element;
12 this._treeOutline = new TreeOutlineInShadow("event-listener-tree"); 12 this._treeOutline = new TreeOutlineInShadow("event-listener-tree");
13 this._treeOutline.registerRequiredCSS("components/objectValue.css"); 13 this._treeOutline.registerRequiredCSS("components/objectValue.css");
14 this._treeOutline.registerRequiredCSS("components/eventListenersView.css"); 14 this._treeOutline.registerRequiredCSS("components/eventListenersView.css");
15 this._treeOutline.setComparator(WebInspector.EventListenersTreeElement.compa rator); 15 this._treeOutline.setComparator(WebInspector.EventListenersTreeElement.compa rator);
16 this._treeOutline.element.classList.add("monospace"); 16 this._treeOutline.element.classList.add("monospace");
17 this._element.appendChild(this._treeOutline.element) 17 this._element.appendChild(this._treeOutline.element)
18 this._emptyHolder = createElementWithClass("div", "info"); 18 this._emptyHolder = createElementWithClass("div", "info");
19 this._emptyHolder.textContent = WebInspector.UIString("No Event Listeners"); 19 this._emptyHolder.textContent = WebInspector.UIString("No Event Listeners");
20 this._linkifier = new WebInspector.Linkifier(); 20 this._linkifier = new WebInspector.Linkifier();
21 /** @type {!Map<string, !WebInspector.EventListenersTreeElement>} */ 21 /** @type {!Map<string, !WebInspector.EventListenersTreeElement>} */
22 this._treeItemMap = new Map(); 22 this._treeItemMap = new Map();
23 this._listenerTreeElements = [];
23 } 24 }
24 25
25 WebInspector.EventListenersView.prototype = { 26 WebInspector.EventListenersView.prototype = {
26 /** 27 /**
27 * @param {!Array<!WebInspector.RemoteObject>} objects 28 * @param {!Array<!WebInspector.RemoteObject>} objects
28 * @return {!Promise<undefined>} 29 * @return {!Promise<undefined>}
29 */ 30 */
30 addObjects: function(objects) 31 addObjects: function(objects)
31 { 32 {
32 var promises = []; 33 var promises = [];
(...skipping 17 matching lines...) Expand all
50 /** 51 /**
51 * @param {!WebInspector.RemoteObject} object 52 * @param {!WebInspector.RemoteObject} object
52 * @param {?Array<!WebInspector.EventListener>} eventListeners 53 * @param {?Array<!WebInspector.EventListener>} eventListeners
53 */ 54 */
54 _addObjectEventListeners: function(object, eventListeners) 55 _addObjectEventListeners: function(object, eventListeners)
55 { 56 {
56 if (!eventListeners) 57 if (!eventListeners)
57 return; 58 return;
58 for (var eventListener of eventListeners) { 59 for (var eventListener of eventListeners) {
59 var treeItem = this._getOrCreateTreeElementForType(eventListener.typ e()); 60 var treeItem = this._getOrCreateTreeElementForType(eventListener.typ e());
60 treeItem.addObjectEventListener(eventListener, object); 61 this._listenerTreeElements.push(treeItem.addObjectEventListener(even tListener, object));
61 } 62 }
62 }, 63 },
63 64
64 /** 65 /**
65 * @param {string} type 66 * @param {string} type
66 * @return {!WebInspector.EventListenersTreeElement} 67 * @return {!WebInspector.EventListenersTreeElement}
67 */ 68 */
68 _getOrCreateTreeElementForType: function(type) 69 _getOrCreateTreeElementForType: function(type)
69 { 70 {
70 var treeItem = this._treeItemMap.get(type); 71 var treeItem = this._treeItemMap.get(type);
71 if (!treeItem) { 72 if (!treeItem) {
72 treeItem = new WebInspector.EventListenersTreeElement(type, this._li nkifier); 73 treeItem = new WebInspector.EventListenersTreeElement(type, this._li nkifier);
73 this._treeItemMap.set(type, treeItem); 74 this._treeItemMap.set(type, treeItem);
74 this._treeOutline.appendChild(treeItem); 75 this._treeOutline.appendChild(treeItem);
75 this._emptyHolder.remove(); 76 this._emptyHolder.remove();
76 } 77 }
77 return treeItem; 78 return treeItem;
78 }, 79 },
79 80
80 addEmptyHolderIfNeeded: function() 81 addEmptyHolderIfNeeded: function()
81 { 82 {
82 if (!this._treeOutline.firstChild() && !this._emptyHolder.parentNode) 83 if (!this._treeOutline.firstChild() && !this._emptyHolder.parentNode)
83 this._element.appendChild(this._emptyHolder); 84 this._element.appendChild(this._emptyHolder);
84 }, 85 },
85 86
86 reset: function() 87 reset: function()
87 { 88 {
88 this._treeItemMap = new Map(); 89 this._treeItemMap = new Map();
90 this._listenerTreeElements = [];
89 this._treeOutline.removeChildren(); 91 this._treeOutline.removeChildren();
90 this._linkifier.reset(); 92 this._linkifier.reset();
91 }, 93 },
92 94
95 /**
96 * @param {boolean} showUserListeners
97 */
98 showFrameworkUserEventListeners: function(showUserListeners)
99 {
100 for (var listenerTreeElement of this._listenerTreeElements) {
101 var listenerType = listenerTreeElement.eventListener().listenerType( );
102 var hidden = false;
103 if (listenerType === "frameworkUser" && !showUserListeners)
104 hidden = true;
105 if (listenerType === "frameworkInternal" && showUserListeners)
106 hidden = true;
107 listenerTreeElement.hidden = hidden;
108 }
109 },
110
93 _eventListenersArrivedForTest: function() 111 _eventListenersArrivedForTest: function()
94 { 112 {
95 } 113 }
96 } 114 }
97 115
98 /** 116 /**
99 * @constructor 117 * @constructor
100 * @extends {TreeElement} 118 * @extends {TreeElement}
101 * @param {string} type 119 * @param {string} type
102 * @param {!WebInspector.Linkifier} linkifier 120 * @param {!WebInspector.Linkifier} linkifier
(...skipping 14 matching lines...) Expand all
117 WebInspector.EventListenersTreeElement.comparator = function(element1, element2) { 135 WebInspector.EventListenersTreeElement.comparator = function(element1, element2) {
118 if (element1.title === element2.title) 136 if (element1.title === element2.title)
119 return 0; 137 return 0;
120 return element1.title > element2.title ? 1 : -1; 138 return element1.title > element2.title ? 1 : -1;
121 } 139 }
122 140
123 WebInspector.EventListenersTreeElement.prototype = { 141 WebInspector.EventListenersTreeElement.prototype = {
124 /** 142 /**
125 * @param {!WebInspector.EventListener} eventListener 143 * @param {!WebInspector.EventListener} eventListener
126 * @param {!WebInspector.RemoteObject} object 144 * @param {!WebInspector.RemoteObject} object
145 * @return {!WebInspector.ObjectEventListenerBar}
127 */ 146 */
128 addObjectEventListener: function(eventListener, object) 147 addObjectEventListener: function(eventListener, object)
129 { 148 {
130 var treeElement = new WebInspector.ObjectEventListenerBar(eventListener, object, this._linkifier); 149 var treeElement = new WebInspector.ObjectEventListenerBar(eventListener, object, this._linkifier);
131 this.appendChild(/** @type {!TreeElement} */ (treeElement)); 150 this.appendChild(/** @type {!TreeElement} */ (treeElement));
151 return treeElement;
132 }, 152 },
133 153
134 __proto__: TreeElement.prototype 154 __proto__: TreeElement.prototype
135 } 155 }
136 156
137 /** 157 /**
138 * @constructor 158 * @constructor
139 * @extends {TreeElement} 159 * @extends {TreeElement}
140 * @param {!WebInspector.EventListener} eventListener 160 * @param {!WebInspector.EventListener} eventListener
141 * @param {!WebInspector.RemoteObject} object 161 * @param {!WebInspector.RemoteObject} object
(...skipping 25 matching lines...) Expand all
167 * @param {!WebInspector.Linkifier} linkifier 187 * @param {!WebInspector.Linkifier} linkifier
168 */ 188 */
169 _setTitle: function(object, linkifier) 189 _setTitle: function(object, linkifier)
170 { 190 {
171 var title = this.listItemElement.createChild("span"); 191 var title = this.listItemElement.createChild("span");
172 var subtitle = this.listItemElement.createChild("span", "event-listener- tree-subtitle"); 192 var subtitle = this.listItemElement.createChild("span", "event-listener- tree-subtitle");
173 subtitle.appendChild(linkifier.linkifyRawLocation(this._eventListener.lo cation(), this._eventListener.sourceName())); 193 subtitle.appendChild(linkifier.linkifyRawLocation(this._eventListener.lo cation(), this._eventListener.sourceName()));
174 title.appendChild(WebInspector.ObjectPropertiesSection.createValueElemen t(object, false)); 194 title.appendChild(WebInspector.ObjectPropertiesSection.createValueElemen t(object, false));
175 }, 195 },
176 196
197 /**
198 * @return {!WebInspector.EventListener}
199 */
200 eventListener: function()
201 {
202 return this._eventListener;
203 },
204
177 __proto__: TreeElement.prototype 205 __proto__: TreeElement.prototype
178 } 206 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698