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

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

Issue 2493373002: DevTools: rename WebInspector into modules. (Closed)
Patch Set: for bots Created 4 years, 1 month 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 Apple Inc. All rights reserved. 2 * Copyright (C) 2007 Apple Inc. All rights reserved.
3 * Copyright (C) 2009 Joseph Pecoraro 3 * Copyright (C) 2009 Joseph Pecoraro
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 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 12 matching lines...) Expand all
23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */ 28 */
29 29
30 /** 30 /**
31 * @unrestricted 31 * @unrestricted
32 */ 32 */
33 WebInspector.ComputedStyleWidget = class extends WebInspector.ThrottledWidget { 33 Elements.ComputedStyleWidget = class extends UI.ThrottledWidget {
34 constructor() { 34 constructor() {
35 super(); 35 super();
36 this.element.classList.add('computed-style-sidebar-pane'); 36 this.element.classList.add('computed-style-sidebar-pane');
37 37
38 this.registerRequiredCSS('elements/computedStyleSidebarPane.css'); 38 this.registerRequiredCSS('elements/computedStyleSidebarPane.css');
39 this._alwaysShowComputedProperties = {'display': true, 'height': true, 'widt h': true}; 39 this._alwaysShowComputedProperties = {'display': true, 'height': true, 'widt h': true};
40 40
41 this._computedStyleModel = new WebInspector.ComputedStyleModel(); 41 this._computedStyleModel = new Elements.ComputedStyleModel();
42 this._computedStyleModel.addEventListener( 42 this._computedStyleModel.addEventListener(
43 WebInspector.ComputedStyleModel.Events.ComputedStyleChanged, this.update , this); 43 Elements.ComputedStyleModel.Events.ComputedStyleChanged, this.update, th is);
44 44
45 this._showInheritedComputedStylePropertiesSetting = 45 this._showInheritedComputedStylePropertiesSetting =
46 WebInspector.settings.createSetting('showInheritedComputedStylePropertie s', false); 46 Common.settings.createSetting('showInheritedComputedStyleProperties', fa lse);
47 this._showInheritedComputedStylePropertiesSetting.addChangeListener( 47 this._showInheritedComputedStylePropertiesSetting.addChangeListener(
48 this._showInheritedComputedStyleChanged.bind(this)); 48 this._showInheritedComputedStyleChanged.bind(this));
49 49
50 var hbox = this.element.createChild('div', 'hbox styles-sidebar-pane-toolbar '); 50 var hbox = this.element.createChild('div', 'hbox styles-sidebar-pane-toolbar ');
51 var filterContainerElement = hbox.createChild('div', 'styles-sidebar-pane-fi lter-box'); 51 var filterContainerElement = hbox.createChild('div', 'styles-sidebar-pane-fi lter-box');
52 var filterInput = WebInspector.StylesSidebarPane.createPropertyFilterElement ( 52 var filterInput = Elements.StylesSidebarPane.createPropertyFilterElement(
53 WebInspector.UIString('Filter'), hbox, filterCallback.bind(this)); 53 Common.UIString('Filter'), hbox, filterCallback.bind(this));
54 filterContainerElement.appendChild(filterInput); 54 filterContainerElement.appendChild(filterInput);
55 55
56 var toolbar = new WebInspector.Toolbar('styles-pane-toolbar', hbox); 56 var toolbar = new UI.Toolbar('styles-pane-toolbar', hbox);
57 toolbar.appendToolbarItem(new WebInspector.ToolbarCheckbox( 57 toolbar.appendToolbarItem(new UI.ToolbarCheckbox(
58 WebInspector.UIString('Show all'), undefined, this._showInheritedCompute dStylePropertiesSetting)); 58 Common.UIString('Show all'), undefined, this._showInheritedComputedStyle PropertiesSetting));
59 59
60 this._propertiesOutline = new TreeOutlineInShadow(); 60 this._propertiesOutline = new TreeOutlineInShadow();
61 this._propertiesOutline.hideOverflow(); 61 this._propertiesOutline.hideOverflow();
62 this._propertiesOutline.registerRequiredCSS('elements/computedStyleSidebarPa ne.css'); 62 this._propertiesOutline.registerRequiredCSS('elements/computedStyleSidebarPa ne.css');
63 this._propertiesOutline.element.classList.add('monospace', 'computed-propert ies'); 63 this._propertiesOutline.element.classList.add('monospace', 'computed-propert ies');
64 this.element.appendChild(this._propertiesOutline.element); 64 this.element.appendChild(this._propertiesOutline.element);
65 65
66 this._linkifier = new WebInspector.Linkifier(WebInspector.ComputedStyleWidge t._maxLinkLength); 66 this._linkifier = new Components.Linkifier(Elements.ComputedStyleWidget._max LinkLength);
67 67
68 /** 68 /**
69 * @param {?RegExp} regex 69 * @param {?RegExp} regex
70 * @this {WebInspector.ComputedStyleWidget} 70 * @this {Elements.ComputedStyleWidget}
71 */ 71 */
72 function filterCallback(regex) { 72 function filterCallback(regex) {
73 this._filterRegex = regex; 73 this._filterRegex = regex;
74 this._updateFilter(regex); 74 this._updateFilter(regex);
75 } 75 }
76 76
77 var fontsWidget = new WebInspector.PlatformFontsWidget(this._computedStyleMo del); 77 var fontsWidget = new Elements.PlatformFontsWidget(this._computedStyleModel) ;
78 fontsWidget.show(this.element); 78 fontsWidget.show(this.element);
79 } 79 }
80 80
81 _showInheritedComputedStyleChanged() { 81 _showInheritedComputedStyleChanged() {
82 this.update(); 82 this.update();
83 } 83 }
84 84
85 /** 85 /**
86 * @override 86 * @override
87 * @return {!Promise.<?>} 87 * @return {!Promise.<?>}
88 */ 88 */
89 doUpdate() { 89 doUpdate() {
90 var promises = [this._computedStyleModel.fetchComputedStyle(), this._fetchMa tchedCascade()]; 90 var promises = [this._computedStyleModel.fetchComputedStyle(), this._fetchMa tchedCascade()];
91 return Promise.all(promises).spread(this._innerRebuildUpdate.bind(this)); 91 return Promise.all(promises).spread(this._innerRebuildUpdate.bind(this));
92 } 92 }
93 93
94 /** 94 /**
95 * @return {!Promise.<?WebInspector.CSSMatchedStyles>} 95 * @return {!Promise.<?SDK.CSSMatchedStyles>}
96 */ 96 */
97 _fetchMatchedCascade() { 97 _fetchMatchedCascade() {
98 var node = this._computedStyleModel.node(); 98 var node = this._computedStyleModel.node();
99 if (!node || !this._computedStyleModel.cssModel()) 99 if (!node || !this._computedStyleModel.cssModel())
100 return Promise.resolve(/** @type {?WebInspector.CSSMatchedStyles} */ (null )); 100 return Promise.resolve(/** @type {?SDK.CSSMatchedStyles} */ (null));
101 101
102 return this._computedStyleModel.cssModel().cachedMatchedCascadeForNode(node) .then(validateStyles.bind(this)); 102 return this._computedStyleModel.cssModel().cachedMatchedCascadeForNode(node) .then(validateStyles.bind(this));
103 103
104 /** 104 /**
105 * @param {?WebInspector.CSSMatchedStyles} matchedStyles 105 * @param {?SDK.CSSMatchedStyles} matchedStyles
106 * @return {?WebInspector.CSSMatchedStyles} 106 * @return {?SDK.CSSMatchedStyles}
107 * @this {WebInspector.ComputedStyleWidget} 107 * @this {Elements.ComputedStyleWidget}
108 */ 108 */
109 function validateStyles(matchedStyles) { 109 function validateStyles(matchedStyles) {
110 return matchedStyles && matchedStyles.node() === this._computedStyleModel. node() ? matchedStyles : null; 110 return matchedStyles && matchedStyles.node() === this._computedStyleModel. node() ? matchedStyles : null;
111 } 111 }
112 } 112 }
113 113
114 /** 114 /**
115 * @param {string} text 115 * @param {string} text
116 * @return {!Node} 116 * @return {!Node}
117 */ 117 */
118 _processColor(text) { 118 _processColor(text) {
119 var color = WebInspector.Color.parse(text); 119 var color = Common.Color.parse(text);
120 if (!color) 120 if (!color)
121 return createTextNode(text); 121 return createTextNode(text);
122 var swatch = WebInspector.ColorSwatch.create(); 122 var swatch = UI.ColorSwatch.create();
123 swatch.setColor(color); 123 swatch.setColor(color);
124 swatch.setFormat(WebInspector.Color.detectColorFormat(color)); 124 swatch.setFormat(Common.Color.detectColorFormat(color));
125 return swatch; 125 return swatch;
126 } 126 }
127 127
128 /** 128 /**
129 * @param {?WebInspector.ComputedStyleModel.ComputedStyle} nodeStyle 129 * @param {?Elements.ComputedStyleModel.ComputedStyle} nodeStyle
130 * @param {?WebInspector.CSSMatchedStyles} matchedStyles 130 * @param {?SDK.CSSMatchedStyles} matchedStyles
131 */ 131 */
132 _innerRebuildUpdate(nodeStyle, matchedStyles) { 132 _innerRebuildUpdate(nodeStyle, matchedStyles) {
133 /** @type {!Set<string>} */ 133 /** @type {!Set<string>} */
134 var expandedProperties = new Set(); 134 var expandedProperties = new Set();
135 for (var treeElement of this._propertiesOutline.rootElement().children()) { 135 for (var treeElement of this._propertiesOutline.rootElement().children()) {
136 if (!treeElement.expanded) 136 if (!treeElement.expanded)
137 continue; 137 continue;
138 var propertyName = treeElement[WebInspector.ComputedStyleWidget._propertyS ymbol].name; 138 var propertyName = treeElement[Elements.ComputedStyleWidget._propertySymbo l].name;
139 expandedProperties.add(propertyName); 139 expandedProperties.add(propertyName);
140 } 140 }
141 this._propertiesOutline.removeChildren(); 141 this._propertiesOutline.removeChildren();
142 this._linkifier.reset(); 142 this._linkifier.reset();
143 var cssModel = this._computedStyleModel.cssModel(); 143 var cssModel = this._computedStyleModel.cssModel();
144 if (!nodeStyle || !matchedStyles || !cssModel) 144 if (!nodeStyle || !matchedStyles || !cssModel)
145 return; 145 return;
146 146
147 var uniqueProperties = nodeStyle.computedStyle.keysArray(); 147 var uniqueProperties = nodeStyle.computedStyle.keysArray();
148 uniqueProperties.sort(propertySorter); 148 uniqueProperties.sort(propertySorter);
149 149
150 var propertyTraces = this._computePropertyTraces(matchedStyles); 150 var propertyTraces = this._computePropertyTraces(matchedStyles);
151 var inhertiedProperties = this._computeInheritedProperties(matchedStyles); 151 var inhertiedProperties = this._computeInheritedProperties(matchedStyles);
152 var showInherited = this._showInheritedComputedStylePropertiesSetting.get(); 152 var showInherited = this._showInheritedComputedStylePropertiesSetting.get();
153 for (var i = 0; i < uniqueProperties.length; ++i) { 153 for (var i = 0; i < uniqueProperties.length; ++i) {
154 var propertyName = uniqueProperties[i]; 154 var propertyName = uniqueProperties[i];
155 var propertyValue = nodeStyle.computedStyle.get(propertyName); 155 var propertyValue = nodeStyle.computedStyle.get(propertyName);
156 var canonicalName = WebInspector.cssMetadata().canonicalPropertyName(prope rtyName); 156 var canonicalName = SDK.cssMetadata().canonicalPropertyName(propertyName);
157 var inherited = !inhertiedProperties.has(canonicalName); 157 var inherited = !inhertiedProperties.has(canonicalName);
158 if (!showInherited && inherited && !(propertyName in this._alwaysShowCompu tedProperties)) 158 if (!showInherited && inherited && !(propertyName in this._alwaysShowCompu tedProperties))
159 continue; 159 continue;
160 if (propertyName !== canonicalName && propertyValue === nodeStyle.computed Style.get(canonicalName)) 160 if (propertyName !== canonicalName && propertyValue === nodeStyle.computed Style.get(canonicalName))
161 continue; 161 continue;
162 162
163 var propertyElement = createElement('div'); 163 var propertyElement = createElement('div');
164 propertyElement.classList.add('computed-style-property'); 164 propertyElement.classList.add('computed-style-property');
165 propertyElement.classList.toggle('computed-style-property-inherited', inhe rited); 165 propertyElement.classList.toggle('computed-style-property-inherited', inhe rited);
166 var renderer = new WebInspector.StylesSidebarPropertyRenderer( 166 var renderer = new Elements.StylesSidebarPropertyRenderer(
167 null, nodeStyle.node, propertyName, /** @type {string} */ (propertyVal ue)); 167 null, nodeStyle.node, propertyName, /** @type {string} */ (propertyVal ue));
168 renderer.setColorHandler(this._processColor.bind(this)); 168 renderer.setColorHandler(this._processColor.bind(this));
169 var propertyNameElement = renderer.renderName(); 169 var propertyNameElement = renderer.renderName();
170 propertyNameElement.classList.add('property-name'); 170 propertyNameElement.classList.add('property-name');
171 propertyElement.appendChild(propertyNameElement); 171 propertyElement.appendChild(propertyNameElement);
172 172
173 var colon = createElementWithClass('span', 'delimeter'); 173 var colon = createElementWithClass('span', 'delimeter');
174 colon.textContent = ':'; 174 colon.textContent = ':';
175 propertyNameElement.appendChild(colon); 175 propertyNameElement.appendChild(colon);
176 176
177 var propertyValueElement = propertyElement.createChild('span', 'property-v alue'); 177 var propertyValueElement = propertyElement.createChild('span', 'property-v alue');
178 178
179 var propertyValueText = renderer.renderValue(); 179 var propertyValueText = renderer.renderValue();
180 propertyValueText.classList.add('property-value-text'); 180 propertyValueText.classList.add('property-value-text');
181 propertyValueElement.appendChild(propertyValueText); 181 propertyValueElement.appendChild(propertyValueText);
182 182
183 var semicolon = createElementWithClass('span', 'delimeter'); 183 var semicolon = createElementWithClass('span', 'delimeter');
184 semicolon.textContent = ';'; 184 semicolon.textContent = ';';
185 propertyValueElement.appendChild(semicolon); 185 propertyValueElement.appendChild(semicolon);
186 186
187 var treeElement = new TreeElement(); 187 var treeElement = new TreeElement();
188 treeElement.selectable = false; 188 treeElement.selectable = false;
189 treeElement.title = propertyElement; 189 treeElement.title = propertyElement;
190 treeElement[WebInspector.ComputedStyleWidget._propertySymbol] = {name: pro pertyName, value: propertyValue}; 190 treeElement[Elements.ComputedStyleWidget._propertySymbol] = {name: propert yName, value: propertyValue};
191 var isOdd = this._propertiesOutline.rootElement().children().length % 2 == = 0; 191 var isOdd = this._propertiesOutline.rootElement().children().length % 2 == = 0;
192 treeElement.listItemElement.classList.toggle('odd-row', isOdd); 192 treeElement.listItemElement.classList.toggle('odd-row', isOdd);
193 this._propertiesOutline.appendChild(treeElement); 193 this._propertiesOutline.appendChild(treeElement);
194 194
195 var trace = propertyTraces.get(propertyName); 195 var trace = propertyTraces.get(propertyName);
196 if (trace) { 196 if (trace) {
197 var activeProperty = this._renderPropertyTrace(cssModel, matchedStyles, nodeStyle.node, treeElement, trace); 197 var activeProperty = this._renderPropertyTrace(cssModel, matchedStyles, nodeStyle.node, treeElement, trace);
198 treeElement.listItemElement.addEventListener('mousedown', (e) => e.consu me(), false); 198 treeElement.listItemElement.addEventListener('mousedown', (e) => e.consu me(), false);
199 treeElement.listItemElement.addEventListener('dblclick', (e) => e.consum e(), false); 199 treeElement.listItemElement.addEventListener('dblclick', (e) => e.consum e(), false);
200 treeElement.listItemElement.addEventListener('click', handleClick.bind(n ull, treeElement), false); 200 treeElement.listItemElement.addEventListener('click', handleClick.bind(n ull, treeElement), false);
201 var gotoSourceElement = propertyValueElement.createChild('div', 'goto-so urce-icon'); 201 var gotoSourceElement = propertyValueElement.createChild('div', 'goto-so urce-icon');
202 gotoSourceElement.addEventListener('click', this._navigateToSource.bind( this, activeProperty)); 202 gotoSourceElement.addEventListener('click', this._navigateToSource.bind( this, activeProperty));
203 if (expandedProperties.has(propertyName)) 203 if (expandedProperties.has(propertyName))
204 treeElement.expand(); 204 treeElement.expand();
205 } 205 }
206 } 206 }
207 207
208 this._updateFilter(this._filterRegex); 208 this._updateFilter(this._filterRegex);
209 209
210 /** 210 /**
211 * @param {string} a 211 * @param {string} a
212 * @param {string} b 212 * @param {string} b
213 * @return {number} 213 * @return {number}
214 */ 214 */
215 function propertySorter(a, b) { 215 function propertySorter(a, b) {
216 if (a.startsWith('-webkit') ^ b.startsWith('-webkit')) 216 if (a.startsWith('-webkit') ^ b.startsWith('-webkit'))
217 return a.startsWith('-webkit') ? 1 : -1; 217 return a.startsWith('-webkit') ? 1 : -1;
218 var canonical1 = WebInspector.cssMetadata().canonicalPropertyName(a); 218 var canonical1 = SDK.cssMetadata().canonicalPropertyName(a);
219 var canonical2 = WebInspector.cssMetadata().canonicalPropertyName(b); 219 var canonical2 = SDK.cssMetadata().canonicalPropertyName(b);
220 return canonical1.compareTo(canonical2); 220 return canonical1.compareTo(canonical2);
221 } 221 }
222 222
223 /** 223 /**
224 * @param {!TreeElement} treeElement 224 * @param {!TreeElement} treeElement
225 * @param {!Event} event 225 * @param {!Event} event
226 */ 226 */
227 function handleClick(treeElement, event) { 227 function handleClick(treeElement, event) {
228 if (!treeElement.expanded) 228 if (!treeElement.expanded)
229 treeElement.expand(); 229 treeElement.expand();
230 else 230 else
231 treeElement.collapse(); 231 treeElement.collapse();
232 event.consume(); 232 event.consume();
233 } 233 }
234 } 234 }
235 235
236 /** 236 /**
237 * @param {!WebInspector.CSSProperty} cssProperty 237 * @param {!SDK.CSSProperty} cssProperty
238 * @param {!Event} event 238 * @param {!Event} event
239 */ 239 */
240 _navigateToSource(cssProperty, event) { 240 _navigateToSource(cssProperty, event) {
241 WebInspector.Revealer.reveal(cssProperty); 241 Common.Revealer.reveal(cssProperty);
242 event.consume(true); 242 event.consume(true);
243 } 243 }
244 244
245 /** 245 /**
246 * @param {!WebInspector.CSSModel} cssModel 246 * @param {!SDK.CSSModel} cssModel
247 * @param {!WebInspector.CSSMatchedStyles} matchedStyles 247 * @param {!SDK.CSSMatchedStyles} matchedStyles
248 * @param {!WebInspector.DOMNode} node 248 * @param {!SDK.DOMNode} node
249 * @param {!TreeElement} rootTreeElement 249 * @param {!TreeElement} rootTreeElement
250 * @param {!Array<!WebInspector.CSSProperty>} tracedProperties 250 * @param {!Array<!SDK.CSSProperty>} tracedProperties
251 * @return {!WebInspector.CSSProperty} 251 * @return {!SDK.CSSProperty}
252 */ 252 */
253 _renderPropertyTrace(cssModel, matchedStyles, node, rootTreeElement, tracedPro perties) { 253 _renderPropertyTrace(cssModel, matchedStyles, node, rootTreeElement, tracedPro perties) {
254 var activeProperty = null; 254 var activeProperty = null;
255 for (var property of tracedProperties) { 255 for (var property of tracedProperties) {
256 var trace = createElement('div'); 256 var trace = createElement('div');
257 trace.classList.add('property-trace'); 257 trace.classList.add('property-trace');
258 if (matchedStyles.propertyState(property) === WebInspector.CSSMatchedStyle s.PropertyState.Overloaded) 258 if (matchedStyles.propertyState(property) === SDK.CSSMatchedStyles.Propert yState.Overloaded)
259 trace.classList.add('property-trace-inactive'); 259 trace.classList.add('property-trace-inactive');
260 else 260 else
261 activeProperty = property; 261 activeProperty = property;
262 262
263 var renderer = new WebInspector.StylesSidebarPropertyRenderer( 263 var renderer = new Elements.StylesSidebarPropertyRenderer(
264 null, node, property.name, /** @type {string} */ (property.value)); 264 null, node, property.name, /** @type {string} */ (property.value));
265 renderer.setColorHandler(this._processColor.bind(this)); 265 renderer.setColorHandler(this._processColor.bind(this));
266 var valueElement = renderer.renderValue(); 266 var valueElement = renderer.renderValue();
267 valueElement.classList.add('property-trace-value'); 267 valueElement.classList.add('property-trace-value');
268 valueElement.addEventListener('click', this._navigateToSource.bind(this, p roperty), false); 268 valueElement.addEventListener('click', this._navigateToSource.bind(this, p roperty), false);
269 var gotoSourceElement = createElement('div'); 269 var gotoSourceElement = createElement('div');
270 gotoSourceElement.classList.add('goto-source-icon'); 270 gotoSourceElement.classList.add('goto-source-icon');
271 gotoSourceElement.addEventListener('click', this._navigateToSource.bind(th is, property)); 271 gotoSourceElement.addEventListener('click', this._navigateToSource.bind(th is, property));
272 valueElement.insertBefore(gotoSourceElement, valueElement.firstChild); 272 valueElement.insertBefore(gotoSourceElement, valueElement.firstChild);
273 273
274 trace.appendChild(valueElement); 274 trace.appendChild(valueElement);
275 275
276 var rule = property.ownerStyle.parentRule; 276 var rule = property.ownerStyle.parentRule;
277 if (rule) { 277 if (rule) {
278 var linkSpan = trace.createChild('span', 'trace-link'); 278 var linkSpan = trace.createChild('span', 'trace-link');
279 linkSpan.appendChild( 279 linkSpan.appendChild(
280 WebInspector.StylePropertiesSection.createRuleOriginNode(matchedStyl es, this._linkifier, rule)); 280 Elements.StylePropertiesSection.createRuleOriginNode(matchedStyles, this._linkifier, rule));
281 } 281 }
282 282
283 var selectorElement = trace.createChild('span', 'property-trace-selector') ; 283 var selectorElement = trace.createChild('span', 'property-trace-selector') ;
284 selectorElement.textContent = rule ? rule.selectorText() : 'element.style' ; 284 selectorElement.textContent = rule ? rule.selectorText() : 'element.style' ;
285 selectorElement.title = selectorElement.textContent; 285 selectorElement.title = selectorElement.textContent;
286 286
287 var traceTreeElement = new TreeElement(); 287 var traceTreeElement = new TreeElement();
288 traceTreeElement.title = trace; 288 traceTreeElement.title = trace;
289 traceTreeElement.selectable = false; 289 traceTreeElement.selectable = false;
290 rootTreeElement.appendChild(traceTreeElement); 290 rootTreeElement.appendChild(traceTreeElement);
291 } 291 }
292 return /** @type {!WebInspector.CSSProperty} */ (activeProperty); 292 return /** @type {!SDK.CSSProperty} */ (activeProperty);
293 } 293 }
294 294
295 /** 295 /**
296 * @param {!WebInspector.CSSMatchedStyles} matchedStyles 296 * @param {!SDK.CSSMatchedStyles} matchedStyles
297 * @return {!Map<string, !Array<!WebInspector.CSSProperty>>} 297 * @return {!Map<string, !Array<!SDK.CSSProperty>>}
298 */ 298 */
299 _computePropertyTraces(matchedStyles) { 299 _computePropertyTraces(matchedStyles) {
300 var result = new Map(); 300 var result = new Map();
301 for (var style of matchedStyles.nodeStyles()) { 301 for (var style of matchedStyles.nodeStyles()) {
302 var allProperties = style.allProperties; 302 var allProperties = style.allProperties;
303 for (var property of allProperties) { 303 for (var property of allProperties) {
304 if (!property.activeInStyle() || !matchedStyles.propertyState(property)) 304 if (!property.activeInStyle() || !matchedStyles.propertyState(property))
305 continue; 305 continue;
306 if (!result.has(property.name)) 306 if (!result.has(property.name))
307 result.set(property.name, []); 307 result.set(property.name, []);
308 result.get(property.name).push(property); 308 result.get(property.name).push(property);
309 } 309 }
310 } 310 }
311 return result; 311 return result;
312 } 312 }
313 313
314 /** 314 /**
315 * @param {!WebInspector.CSSMatchedStyles} matchedStyles 315 * @param {!SDK.CSSMatchedStyles} matchedStyles
316 * @return {!Set<string>} 316 * @return {!Set<string>}
317 */ 317 */
318 _computeInheritedProperties(matchedStyles) { 318 _computeInheritedProperties(matchedStyles) {
319 var result = new Set(); 319 var result = new Set();
320 for (var style of matchedStyles.nodeStyles()) { 320 for (var style of matchedStyles.nodeStyles()) {
321 for (var property of style.allProperties) { 321 for (var property of style.allProperties) {
322 if (!matchedStyles.propertyState(property)) 322 if (!matchedStyles.propertyState(property))
323 continue; 323 continue;
324 result.add(WebInspector.cssMetadata().canonicalPropertyName(property.nam e)); 324 result.add(SDK.cssMetadata().canonicalPropertyName(property.name));
325 } 325 }
326 } 326 }
327 return result; 327 return result;
328 } 328 }
329 329
330 /** 330 /**
331 * @param {?RegExp} regex 331 * @param {?RegExp} regex
332 */ 332 */
333 _updateFilter(regex) { 333 _updateFilter(regex) {
334 var children = this._propertiesOutline.rootElement().children(); 334 var children = this._propertiesOutline.rootElement().children();
335 for (var child of children) { 335 for (var child of children) {
336 var property = child[WebInspector.ComputedStyleWidget._propertySymbol]; 336 var property = child[Elements.ComputedStyleWidget._propertySymbol];
337 var matched = !regex || regex.test(property.name) || regex.test(property.v alue); 337 var matched = !regex || regex.test(property.name) || regex.test(property.v alue);
338 child.hidden = !matched; 338 child.hidden = !matched;
339 } 339 }
340 } 340 }
341 }; 341 };
342 342
343 WebInspector.ComputedStyleWidget._maxLinkLength = 30; 343 Elements.ComputedStyleWidget._maxLinkLength = 30;
344 344
345 WebInspector.ComputedStyleWidget._propertySymbol = Symbol('property'); 345 Elements.ComputedStyleWidget._propertySymbol = Symbol('property');
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698