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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js

Issue 2782773002: [DevTools] Remove SDKModels' fromTarget methods (Closed)
Patch Set: addressed review comments Created 3 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> 3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
4 * Copyright (C) 2009 Joseph Pecoraro 4 * Copyright (C) 2009 Joseph Pecoraro
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 9 *
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 11 matching lines...) Expand all
22 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 22 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
23 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 /** 30 /**
31 * @implements {UI.Searchable} 31 * @implements {UI.Searchable}
32 * @implements {SDK.TargetManager.Observer} 32 * @implements {SDK.SDKModelObserver<!SDK.DOMModel>}
33 * @implements {UI.ViewLocationResolver} 33 * @implements {UI.ViewLocationResolver}
34 * @unrestricted 34 * @unrestricted
35 */ 35 */
36 Elements.ElementsPanel = class extends UI.Panel { 36 Elements.ElementsPanel = class extends UI.Panel {
37 constructor() { 37 constructor() {
38 super('elements'); 38 super('elements');
39 this.registerRequiredCSS('elements/elementsPanel.css'); 39 this.registerRequiredCSS('elements/elementsPanel.css');
40 40
41 this._splitWidget = new UI.SplitWidget(true, true, 'elementsPanelSplitViewSt ate', 325, 325); 41 this._splitWidget = new UI.SplitWidget(true, true, 'elementsPanelSplitViewSt ate', 325, 325);
42 this._splitWidget.addEventListener( 42 this._splitWidget.addEventListener(
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 74
75 this._stylesSidebarToolbar = this._createStylesSidebarToolbar(); 75 this._stylesSidebarToolbar = this._createStylesSidebarToolbar();
76 76
77 Common.moduleSetting('sidebarPosition').addChangeListener(this._updateSideba rPosition.bind(this)); 77 Common.moduleSetting('sidebarPosition').addChangeListener(this._updateSideba rPosition.bind(this));
78 this._updateSidebarPosition(); 78 this._updateSidebarPosition();
79 79
80 /** @type {!Array.<!Elements.ElementsTreeOutline>} */ 80 /** @type {!Array.<!Elements.ElementsTreeOutline>} */
81 this._treeOutlines = []; 81 this._treeOutlines = [];
82 /** @type {!Map<!Elements.ElementsTreeOutline, !Element>} */ 82 /** @type {!Map<!Elements.ElementsTreeOutline, !Element>} */
83 this._treeOutlineHeaders = new Map(); 83 this._treeOutlineHeaders = new Map();
84 SDK.targetManager.observeTargets(this); 84 SDK.targetManager.observeModels(SDK.DOMModel, this);
85 SDK.targetManager.addEventListener( 85 SDK.targetManager.addEventListener(
86 SDK.TargetManager.Events.NameChanged, 86 SDK.TargetManager.Events.NameChanged,
87 event => this._targetNameChanged(/** @type {!SDK.Target} */ (event.data) )); 87 event => this._targetNameChanged(/** @type {!SDK.Target} */ (event.data) ));
88 Common.moduleSetting('showUAShadowDOM').addChangeListener(this._showUAShadow DOMChanged.bind(this)); 88 Common.moduleSetting('showUAShadowDOM').addChangeListener(this._showUAShadow DOMChanged.bind(this));
89 SDK.targetManager.addModelListener( 89 SDK.targetManager.addModelListener(
90 SDK.DOMModel, SDK.DOMModel.Events.DocumentUpdated, this._documentUpdated Event, this); 90 SDK.DOMModel, SDK.DOMModel.Events.DocumentUpdated, this._documentUpdated Event, this);
91 Extensions.extensionServer.addEventListener( 91 Extensions.extensionServer.addEventListener(
92 Extensions.ExtensionServer.Events.SidebarPaneAdded, this._extensionSideb arPaneAdded, this); 92 Extensions.ExtensionServer.Events.SidebarPaneAdded, this._extensionSideb arPaneAdded, this);
93 } 93 }
94 94
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 200
201 if (this._pendingWidget !== undefined) { 201 if (this._pendingWidget !== undefined) {
202 this._startToolbarPaneAnimation(this._pendingWidget); 202 this._startToolbarPaneAnimation(this._pendingWidget);
203 delete this._pendingWidget; 203 delete this._pendingWidget;
204 } 204 }
205 } 205 }
206 } 206 }
207 207
208 /** 208 /**
209 * @override 209 * @override
210 * @param {!SDK.Target} target 210 * @param {!SDK.DOMModel} domModel
211 */ 211 */
212 targetAdded(target) { 212 modelAdded(domModel) {
213 var domModel = SDK.DOMModel.fromTarget(target);
214 if (!domModel)
215 return;
216 var treeOutline = new Elements.ElementsTreeOutline(domModel, true, true); 213 var treeOutline = new Elements.ElementsTreeOutline(domModel, true, true);
217 treeOutline.setWordWrap(Common.moduleSetting('domWordWrap').get()); 214 treeOutline.setWordWrap(Common.moduleSetting('domWordWrap').get());
218 treeOutline.wireToDOMModel(); 215 treeOutline.wireToDOMModel();
219 treeOutline.addEventListener( 216 treeOutline.addEventListener(
220 Elements.ElementsTreeOutline.Events.SelectedNodeChanged, this._selectedN odeChanged, this); 217 Elements.ElementsTreeOutline.Events.SelectedNodeChanged, this._selectedN odeChanged, this);
221 treeOutline.addEventListener( 218 treeOutline.addEventListener(
222 Elements.ElementsTreeOutline.Events.ElementsTreeUpdated, this._updateBre adcrumbIfNeeded, this); 219 Elements.ElementsTreeOutline.Events.ElementsTreeUpdated, this._updateBre adcrumbIfNeeded, this);
223 new Elements.ElementsTreeElementHighlighter(treeOutline); 220 new Elements.ElementsTreeElementHighlighter(treeOutline);
224 this._treeOutlines.push(treeOutline); 221 this._treeOutlines.push(treeOutline);
225 if (target.parentTarget()) { 222 if (domModel.target().parentTarget()) {
226 this._treeOutlineHeaders.set(treeOutline, createElementWithClass('div', 'e lements-tree-header')); 223 this._treeOutlineHeaders.set(treeOutline, createElementWithClass('div', 'e lements-tree-header'));
227 this._targetNameChanged(target); 224 this._targetNameChanged(domModel.target());
228 } 225 }
229 226
230 // Perform attach if necessary. 227 // Perform attach if necessary.
231 if (this.isShowing()) 228 if (this.isShowing())
232 this.wasShown(); 229 this.wasShown();
233 } 230 }
234 231
235 /** 232 /**
236 * @override 233 * @override
237 * @param {!SDK.Target} target 234 * @param {!SDK.DOMModel} domModel
238 */ 235 */
239 targetRemoved(target) { 236 modelRemoved(domModel) {
240 var domModel = SDK.DOMModel.fromTarget(target);
241 if (!domModel)
242 return;
243 var treeOutline = Elements.ElementsTreeOutline.forDOMModel(domModel); 237 var treeOutline = Elements.ElementsTreeOutline.forDOMModel(domModel);
244 treeOutline.unwireFromDOMModel(); 238 treeOutline.unwireFromDOMModel();
245 this._treeOutlines.remove(treeOutline); 239 this._treeOutlines.remove(treeOutline);
246 var header = this._treeOutlineHeaders.get(treeOutline); 240 var header = this._treeOutlineHeaders.get(treeOutline);
247 if (header) 241 if (header)
248 header.remove(); 242 header.remove();
249 this._treeOutlineHeaders.delete(treeOutline); 243 this._treeOutlineHeaders.delete(treeOutline);
250 treeOutline.element.remove(); 244 treeOutline.element.remove();
251 } 245 }
252 246
253 /** 247 /**
254 * @param {!SDK.Target} target 248 * @param {!SDK.Target} target
255 */ 249 */
256 _targetNameChanged(target) { 250 _targetNameChanged(target) {
257 var domModel = SDK.DOMModel.fromTarget(target); 251 var domModel = target.model(SDK.DOMModel);
258 if (!domModel) 252 if (!domModel)
259 return; 253 return;
260 var treeOutline = Elements.ElementsTreeOutline.forDOMModel(domModel); 254 var treeOutline = Elements.ElementsTreeOutline.forDOMModel(domModel);
261 if (!treeOutline) 255 if (!treeOutline)
262 return; 256 return;
263 var header = this._treeOutlineHeaders.get(treeOutline); 257 var header = this._treeOutlineHeaders.get(treeOutline);
264 if (!header) 258 if (!header)
265 return; 259 return;
266 header.removeChildren(); 260 header.removeChildren();
267 header.createChild('div', 'elements-tree-header-frame').textContent = Common .UIString('Frame'); 261 header.createChild('div', 'elements-tree-header-frame').textContent = Common .UIString('Frame');
(...skipping 740 matching lines...) Expand 10 before | Expand all | Expand 10 after
1008 /** 1002 /**
1009 * @param {function(undefined)} resolve 1003 * @param {function(undefined)} resolve
1010 * @param {function(!Error)} reject 1004 * @param {function(!Error)} reject
1011 */ 1005 */
1012 function revealPromise(resolve, reject) { 1006 function revealPromise(resolve, reject) {
1013 if (node instanceof SDK.DOMNode) { 1007 if (node instanceof SDK.DOMNode) {
1014 onNodeResolved(/** @type {!SDK.DOMNode} */ (node)); 1008 onNodeResolved(/** @type {!SDK.DOMNode} */ (node));
1015 } else if (node instanceof SDK.DeferredDOMNode) { 1009 } else if (node instanceof SDK.DeferredDOMNode) {
1016 (/** @type {!SDK.DeferredDOMNode} */ (node)).resolve(onNodeResolved); 1010 (/** @type {!SDK.DeferredDOMNode} */ (node)).resolve(onNodeResolved);
1017 } else if (node instanceof SDK.RemoteObject) { 1011 } else if (node instanceof SDK.RemoteObject) {
1018 var domModel = SDK.DOMModel.fromTarget(/** @type {!SDK.RemoteObject} */ (node).runtimeModel().target()); 1012 var domModel = /** @type {!SDK.RemoteObject} */ (node).runtimeModel().ta rget().model(SDK.DOMModel);
1019 if (domModel) 1013 if (domModel)
1020 domModel.pushObjectAsNodeToFrontend(node).then(onNodeResolved); 1014 domModel.pushObjectAsNodeToFrontend(node).then(onNodeResolved);
1021 else 1015 else
1022 reject(new Error('Could not resolve a node to reveal.')); 1016 reject(new Error('Could not resolve a node to reveal.'));
1023 } else { 1017 } else {
1024 reject(new Error('Can\'t reveal a non-node.')); 1018 reject(new Error('Can\'t reveal a non-node.'));
1025 panel._pendingNodeReveal = false; 1019 panel._pendingNodeReveal = false;
1026 } 1020 }
1027 1021
1028 /** 1022 /**
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1099 * @param {!SDK.DOMNode} node 1093 * @param {!SDK.DOMNode} node
1100 * @return {?{title: string, color: string}} 1094 * @return {?{title: string, color: string}}
1101 */ 1095 */
1102 decorate(node) { 1096 decorate(node) {
1103 return { 1097 return {
1104 color: 'orange', 1098 color: 'orange',
1105 title: Common.UIString('Element state: %s', ':' + node.domModel().cssModel ().pseudoState(node).join(', :')) 1099 title: Common.UIString('Element state: %s', ':' + node.domModel().cssModel ().pseudoState(node).join(', :'))
1106 }; 1100 };
1107 } 1101 }
1108 }; 1102 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698