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

Side by Side Diff: Source/devtools/front_end/sources/ScopeChainSidebarPane.js

Issue 826713005: DevTools: Highlight changed scope variables as they change (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: addressing feedback. v good points. simplified Created 5 years, 11 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) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.
3 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2011 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 16 matching lines...) Expand all
27 /** 27 /**
28 * @constructor 28 * @constructor
29 * @extends {WebInspector.SidebarPane} 29 * @extends {WebInspector.SidebarPane}
30 */ 30 */
31 WebInspector.ScopeChainSidebarPane = function() 31 WebInspector.ScopeChainSidebarPane = function()
32 { 32 {
33 WebInspector.SidebarPane.call(this, WebInspector.UIString("Scope Variables") ); 33 WebInspector.SidebarPane.call(this, WebInspector.UIString("Scope Variables") );
34 this._sections = []; 34 this._sections = [];
35 /** @type {!Set.<?string>} */ 35 /** @type {!Set.<?string>} */
36 this._expandedSections = new Set(); 36 this._expandedSections = new Set();
37 /** @type {!Set.<string>} */ 37 /** @type {!WebInspector.ObjectPropertiesMemento} */
38 this._expandedProperties = new Set(); 38 this.memento = new WebInspector.ObjectPropertiesMemento();
39 } 39 }
40 40
41 WebInspector.ScopeChainSidebarPane.prototype = { 41 WebInspector.ScopeChainSidebarPane.prototype = {
42 /** 42 /**
43 * @param {?WebInspector.DebuggerModel.CallFrame} callFrame 43 * @param {?WebInspector.DebuggerModel.CallFrame} callFrame
44 */ 44 */
45 update: function(callFrame) 45 update: function(callFrame)
46 { 46 {
47 this.bodyElement.removeChildren(); 47 this.bodyElement.removeChildren();
48 48
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 var subtitle = declarativeScope ? undefined : scope.object.descripti on; 121 var subtitle = declarativeScope ? undefined : scope.object.descripti on;
122 if (!title || title === subtitle) 122 if (!title || title === subtitle)
123 subtitle = undefined; 123 subtitle = undefined;
124 124
125 var runtimeModel = callFrame.target().runtimeModel; 125 var runtimeModel = callFrame.target().runtimeModel;
126 if (declarativeScope) 126 if (declarativeScope)
127 var scopeObject = runtimeModel.createScopeRemoteObject(scope.obj ect, new WebInspector.ScopeRef(i, callFrame.id, undefined)); 127 var scopeObject = runtimeModel.createScopeRemoteObject(scope.obj ect, new WebInspector.ScopeRef(i, callFrame.id, undefined));
128 else 128 else
129 var scopeObject = runtimeModel.createRemoteObject(scope.object); 129 var scopeObject = runtimeModel.createRemoteObject(scope.object);
130 130
131 var section = new WebInspector.ObjectPropertiesSection(scopeObject, title, subtitle, emptyPlaceholder, true, extraProperties, WebInspector.ScopeVari ableTreeElement); 131 var section = new WebInspector.ObjectPropertiesSection(scopeObject, title, subtitle, emptyPlaceholder, true, extraProperties, WebInspector.ScopeVari ableTreeElement, this.memento);
132 section.editInSelectedCallFrameWhenPaused = true; 132 section.editInSelectedCallFrameWhenPaused = true;
133 section.pane = this;
134 133
135 if (scope.type === DebuggerAgent.ScopeType.Global) 134 if (scope.type === DebuggerAgent.ScopeType.Global)
136 section.collapse(); 135 section.collapse();
137 else if (!foundLocalScope || scope.type === DebuggerAgent.ScopeType. Local || this._expandedSections.has(title)) 136 else if (!foundLocalScope || scope.type === DebuggerAgent.ScopeType. Local || this._expandedSections.has(title))
138 section.expand(); 137 section.expand();
139 138
140 this._sections.push(section); 139 this._sections.push(section);
141 this.bodyElement.appendChild(section.element); 140 this.bodyElement.appendChild(section.element);
142 } 141 }
143 }, 142 },
144 143
145 __proto__: WebInspector.SidebarPane.prototype 144 __proto__: WebInspector.SidebarPane.prototype
146 } 145 }
147 146
147
148 /** 148 /**
149 * @constructor 149 * @constructor
150 * @extends {WebInspector.ObjectPropertyTreeElement} 150 * @extends {WebInspector.ObjectPropertyTreeElement}
151 * @param {!WebInspector.RemoteObjectProperty} property 151 * @param {!WebInspector.RemoteObjectProperty} property
152 */ 152 */
153 WebInspector.ScopeVariableTreeElement = function(property) 153 WebInspector.ScopeVariableTreeElement = function(property)
154 { 154 {
155 WebInspector.ObjectPropertyTreeElement.call(this, property); 155 WebInspector.ObjectPropertyTreeElement.call(this, property);
156 } 156 }
157 157
158 WebInspector.ScopeVariableTreeElement.prototype = { 158 WebInspector.ScopeVariableTreeElement.prototype = {
159 onattach: function() 159 onattach: function()
160 { 160 {
161 WebInspector.ObjectPropertyTreeElement.prototype.onattach.call(this); 161 WebInspector.ObjectPropertyTreeElement.prototype.onattach.call(this);
162 if (this.hasChildren && this.treeOutline.section.pane._expandedPropertie s.has(this.propertyPath())) 162 if (this.hasChildren && this.treeOutline.section.memento.isPropertyPathE xpanded(this.propertyPath()))
163 this.expand(); 163 this.expand();
164 }, 164 },
165 165
166 onexpand: function() 166 onexpand: function()
167 { 167 {
168 this.treeOutline.section.pane._expandedProperties.add(this.propertyPath( )); 168 this.treeOutline.section.memento.addExpandedPropertyPath(this.propertyPa th());
169 }, 169 },
170 170
171 oncollapse: function() 171 oncollapse: function()
172 { 172 {
173 this.treeOutline.section.pane._expandedProperties.delete(this.propertyPa th()); 173 this.treeOutline.section.memento.deleteExpandedPropertyPath(this.propert yPath());
174 }, 174 },
175 175
176 /** 176 /**
177 * @override 177 * @override
178 * @return {string|undefined} 178 * @return {string|undefined}
179 */ 179 */
180 propertyPath: function() 180 propertyPath: function()
181 { 181 {
182 if (!this._propertyIdentifier) { 182 if (!this._propertyIdentifier) {
183 var section = this.treeOutline.section; 183 var section = this.treeOutline.section;
184 this._propertyIdentifier = section.title + ":" + (section.subtitle ? section.subtitle + ":" : "") + WebInspector.ObjectPropertyTreeElement.prototype .propertyPath.call(this); 184 this._propertyIdentifier = section.title + ":" + (section.subtitle ? section.subtitle + ":" : "") + WebInspector.ObjectPropertyTreeElement.prototype .propertyPath.call(this);
185 } 185 }
186 return this._propertyIdentifier; 186 return this._propertyIdentifier;
187 }, 187 },
188 188
189 __proto__: WebInspector.ObjectPropertyTreeElement.prototype 189 __proto__: WebInspector.ObjectPropertyTreeElement.prototype
190 } 190 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/main/Main.js ('k') | Source/devtools/front_end/sources/WatchExpressionsSidebarPane.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698