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

Side by Side Diff: Source/devtools/front_end/StylesSidebarPane.js

Issue 221253002: DevTools: move off WebInspector.css/domModel in sidebars. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Review comment addressed. Created 6 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 | Annotate | Revision Log
« no previous file with comments | « Source/devtools/front_end/PlatformFontsSidebarPane.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 addButton.id = "add-style-button-test-id"; 48 addButton.id = "add-style-button-test-id";
49 addButton.title = WebInspector.UIString("New Style Rule"); 49 addButton.title = WebInspector.UIString("New Style Rule");
50 addButton.addEventListener("click", this._createNewRule.bind(this), false); 50 addButton.addEventListener("click", this._createNewRule.bind(this), false);
51 this.titleElement.appendChild(addButton); 51 this.titleElement.appendChild(addButton);
52 52
53 this._computedStylePane = computedStylePane; 53 this._computedStylePane = computedStylePane;
54 computedStylePane.setHostingPane(this); 54 computedStylePane.setHostingPane(this);
55 this._setPseudoClassCallback = setPseudoClassCallback; 55 this._setPseudoClassCallback = setPseudoClassCallback;
56 this.element.addEventListener("contextmenu", this._contextMenuEventFired.bin d(this), true); 56 this.element.addEventListener("contextmenu", this._contextMenuEventFired.bin d(this), true);
57 WebInspector.settings.colorFormat.addChangeListener(this._colorFormatSetting Changed.bind(this)); 57 WebInspector.settings.colorFormat.addChangeListener(this._colorFormatSetting Changed.bind(this));
58 WebInspector.settings.showUserAgentStyles.addChangeListener(this._showUserAg entStylesSettingChanged.bind(this));
58 59
59 this._createElementStatePane(); 60 this._createElementStatePane();
60 this.bodyElement.appendChild(this._elementStatePane); 61 this.bodyElement.appendChild(this._elementStatePane);
61 this._sectionsContainer = document.createElement("div"); 62 this._sectionsContainer = document.createElement("div");
62 this.bodyElement.appendChild(this._sectionsContainer); 63 this.bodyElement.appendChild(this._sectionsContainer);
63 64
64 this._spectrumHelper = new WebInspector.SpectrumPopupHelper(); 65 this._spectrumHelper = new WebInspector.SpectrumPopupHelper();
65 this._linkifier = new WebInspector.Linkifier(new WebInspector.Linkifier.Defa ultCSSFormatter()); 66 this._linkifier = new WebInspector.Linkifier(new WebInspector.Linkifier.Defa ultCSSFormatter());
66 67
67 WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.Sty leSheetAdded, this._styleSheetOrMediaQueryResultChanged, this);
68 WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.Sty leSheetRemoved, this._styleSheetOrMediaQueryResultChanged, this);
69 WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.Sty leSheetChanged, this._styleSheetOrMediaQueryResultChanged, this);
70 WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.Med iaQueryResultChanged, this._styleSheetOrMediaQueryResultChanged, this);
71 WebInspector.domModel.addEventListener(WebInspector.DOMModel.Events.AttrModi fied, this._attributeChanged, this);
72 WebInspector.domModel.addEventListener(WebInspector.DOMModel.Events.AttrRemo ved, this._attributeChanged, this);
73 WebInspector.settings.showUserAgentStyles.addChangeListener(this._showUserAg entStylesSettingChanged.bind(this));
74 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod el.EventTypes.FrameResized, this._frameResized, this);
75 this.element.classList.add("styles-pane"); 68 this.element.classList.add("styles-pane");
76 this.element.classList.toggle("show-user-styles", WebInspector.settings.show UserAgentStyles.get()); 69 this.element.classList.toggle("show-user-styles", WebInspector.settings.show UserAgentStyles.get());
77 this.element.addEventListener("mousemove", this._mouseMovedOverElement.bind( this), false); 70 this.element.addEventListener("mousemove", this._mouseMovedOverElement.bind( this), false);
78 document.body.addEventListener("keydown", this._keyDown.bind(this), false); 71 document.body.addEventListener("keydown", this._keyDown.bind(this), false);
79 document.body.addEventListener("keyup", this._keyUp.bind(this), false); 72 document.body.addEventListener("keyup", this._keyUp.bind(this), false);
80 } 73 }
81 74
82 // Keep in sync with RenderStyleConstants.h PseudoId enum. Array below contains pseudo id names for corresponding enum indexes. 75 // Keep in sync with RenderStyleConstants.h PseudoId enum. Array below contains pseudo id names for corresponding enum indexes.
83 // First item is empty due to its artificial NOPSEUDO nature in the enum. 76 // First item is empty due to its artificial NOPSEUDO nature in the enum.
84 // FIXME: find a way of generating this mapping or getting it from combination o f RenderStyleConstants and CSSSelector.cpp at 77 // FIXME: find a way of generating this mapping or getting it from combination o f RenderStyleConstants and CSSSelector.cpp at
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 function searchHandler(regex) 197 function searchHandler(regex)
205 { 198 {
206 this._filterRegex = regex; 199 this._filterRegex = regex;
207 } 200 }
208 201
209 return filterInput; 202 return filterInput;
210 }, 203 },
211 204
212 get _forcedPseudoClasses() 205 get _forcedPseudoClasses()
213 { 206 {
214 return this.node ? (this.node.getUserProperty(WebInspector.CSSStyleModel .PseudoStatePropertyName) || undefined) : undefined; 207 return this._node ? (this._node.getUserProperty(WebInspector.CSSStyleMod el.PseudoStatePropertyName) || undefined) : undefined;
215 }, 208 },
216 209
217 _updateForcedPseudoStateInputs: function() 210 _updateForcedPseudoStateInputs: function()
218 { 211 {
219 if (!this.node) 212 if (!this._node)
220 return; 213 return;
221 214
222 var hasPseudoType = !!this.node.pseudoType(); 215 var hasPseudoType = !!this._node.pseudoType();
223 this._elementStateButton.classList.toggle("hidden", hasPseudoType); 216 this._elementStateButton.classList.toggle("hidden", hasPseudoType);
224 this._elementStatePane.classList.toggle("expanded", !hasPseudoType && th is._elementStateButton.classList.contains("toggled")); 217 this._elementStatePane.classList.toggle("expanded", !hasPseudoType && th is._elementStateButton.classList.contains("toggled"));
225 218
226 var nodePseudoState = this._forcedPseudoClasses; 219 var nodePseudoState = this._forcedPseudoClasses;
227 if (!nodePseudoState) 220 if (!nodePseudoState)
228 nodePseudoState = []; 221 nodePseudoState = [];
229 222
230 var inputs = this._elementStatePane.inputs; 223 var inputs = this._elementStatePane.inputs;
231 for (var i = 0; i < inputs.length; ++i) 224 for (var i = 0; i < inputs.length; ++i)
232 inputs[i].checked = nodePseudoState.indexOf(inputs[i].state) >= 0; 225 inputs[i].checked = nodePseudoState.indexOf(inputs[i].state) >= 0;
233 }, 226 },
234 227
235 /** 228 /**
236 * @param {?WebInspector.DOMNode} node 229 * @param {?WebInspector.DOMNode} node
237 * @param {boolean=} forceUpdate 230 * @param {boolean=} forceUpdate
238 */ 231 */
239 update: function(node, forceUpdate) 232 update: function(node, forceUpdate)
240 { 233 {
241 this._spectrumHelper.hide(); 234 this._spectrumHelper.hide();
242 this._discardElementUnderMouse(); 235 this._discardElementUnderMouse();
243 236
244 var refresh = false; 237 var refresh = false;
245 238
246 if (forceUpdate) 239 if (forceUpdate)
247 delete this.node; 240 delete this._node;
248 241
249 if (!forceUpdate && (node === this.node)) 242 if (!forceUpdate && (node === this._node))
250 refresh = true; 243 refresh = true;
251 244
252 if (node && node.nodeType() === Node.TEXT_NODE && node.parentNode) 245 if (node && node.nodeType() === Node.TEXT_NODE && node.parentNode)
253 node = node.parentNode; 246 node = node.parentNode;
254 247
255 if (node && node.nodeType() !== Node.ELEMENT_NODE) 248 if (node && node.nodeType() !== Node.ELEMENT_NODE)
256 node = null; 249 node = null;
257 250
258 if (node) 251 if (node) {
259 this.node = node; 252 this._updateTarget(node.target());
260 else 253 this._node = node;
261 node = this.node; 254 } else
255 node = this._node;
262 256
263 this._updateForcedPseudoStateInputs(); 257 this._updateForcedPseudoStateInputs();
264 258
265 if (refresh) 259 if (refresh)
266 this._refreshUpdate(); 260 this._refreshUpdate();
267 else 261 else
268 this._rebuildUpdate(); 262 this._rebuildUpdate();
269 }, 263 },
270 264
271 /** 265 /**
266 * @param {!WebInspector.Target} target
267 */
268 _updateTarget: function(target)
269 {
270 if (this._target === target)
271 return;
272 if (this._target) {
273 this._target.cssModel.removeEventListener(WebInspector.CSSStyleModel .Events.StyleSheetAdded, this._styleSheetOrMediaQueryResultChanged, this);
274 this._target.cssModel.removeEventListener(WebInspector.CSSStyleModel .Events.StyleSheetRemoved, this._styleSheetOrMediaQueryResultChanged, this);
275 this._target.cssModel.removeEventListener(WebInspector.CSSStyleModel .Events.StyleSheetChanged, this._styleSheetOrMediaQueryResultChanged, this);
276 this._target.cssModel.removeEventListener(WebInspector.CSSStyleModel .Events.MediaQueryResultChanged, this._styleSheetOrMediaQueryResultChanged, this );
277 this._target.domModel.removeEventListener(WebInspector.DOMModel.Even ts.AttrModified, this._attributeChanged, this);
278 this._target.domModel.removeEventListener(WebInspector.DOMModel.Even ts.AttrRemoved, this._attributeChanged, this);
279 this._target.resourceTreeModel.removeEventListener(WebInspector.Reso urceTreeModel.EventTypes.FrameResized, this._frameResized, this);
280 }
281 this._target = target;
282 this._target.cssModel.addEventListener(WebInspector.CSSStyleModel.Events .StyleSheetAdded, this._styleSheetOrMediaQueryResultChanged, this);
283 this._target.cssModel.addEventListener(WebInspector.CSSStyleModel.Events .StyleSheetRemoved, this._styleSheetOrMediaQueryResultChanged, this);
284 this._target.cssModel.addEventListener(WebInspector.CSSStyleModel.Events .StyleSheetChanged, this._styleSheetOrMediaQueryResultChanged, this);
285 this._target.cssModel.addEventListener(WebInspector.CSSStyleModel.Events .MediaQueryResultChanged, this._styleSheetOrMediaQueryResultChanged, this);
286 this._target.domModel.addEventListener(WebInspector.DOMModel.Events.Attr Modified, this._attributeChanged, this);
287 this._target.domModel.addEventListener(WebInspector.DOMModel.Events.Attr Removed, this._attributeChanged, this);
288 this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTre eModel.EventTypes.FrameResized, this._frameResized, this);
289 },
290
291 /**
272 * @param {!WebInspector.StylePropertiesSection=} editedSection 292 * @param {!WebInspector.StylePropertiesSection=} editedSection
273 * @param {boolean=} forceFetchComputedStyle 293 * @param {boolean=} forceFetchComputedStyle
274 * @param {function()=} userCallback 294 * @param {function()=} userCallback
275 */ 295 */
276 _refreshUpdate: function(editedSection, forceFetchComputedStyle, userCallbac k) 296 _refreshUpdate: function(editedSection, forceFetchComputedStyle, userCallbac k)
277 { 297 {
278 var callbackWrapper = function() 298 var callbackWrapper = function()
279 { 299 {
280 if (this._filterRegex) 300 if (this._filterRegex)
281 this._updateFilter(false); 301 this._updateFilter(false);
282 if (userCallback) 302 if (userCallback)
283 userCallback(); 303 userCallback();
284 }.bind(this); 304 }.bind(this);
285 305
286 if (this._refreshUpdateInProgress) { 306 if (this._refreshUpdateInProgress) {
287 this._lastNodeForInnerRefresh = this.node; 307 this._lastNodeForInnerRefresh = this._node;
288 return; 308 return;
289 } 309 }
290 310
291 var node = this._validateNode(userCallback); 311 var node = this._validateNode(userCallback);
292 if (!node) 312 if (!node)
293 return; 313 return;
294 314
295 /** 315 /**
296 * @param {?WebInspector.CSSStyleDeclaration} computedStyle 316 * @param {?WebInspector.CSSStyleDeclaration} computedStyle
297 * @this {WebInspector.StylesSidebarPane} 317 * @this {WebInspector.StylesSidebarPane}
298 */ 318 */
299 function computedStyleCallback(computedStyle) 319 function computedStyleCallback(computedStyle)
300 { 320 {
301 delete this._refreshUpdateInProgress; 321 delete this._refreshUpdateInProgress;
302 322
303 if (this._lastNodeForInnerRefresh) { 323 if (this._lastNodeForInnerRefresh) {
304 delete this._lastNodeForInnerRefresh; 324 delete this._lastNodeForInnerRefresh;
305 this._refreshUpdate(editedSection, forceFetchComputedStyle, call backWrapper); 325 this._refreshUpdate(editedSection, forceFetchComputedStyle, call backWrapper);
306 return; 326 return;
307 } 327 }
308 328
309 if (this.node === node && computedStyle) 329 if (this._node === node && computedStyle)
310 this._innerRefreshUpdate(node, computedStyle, editedSection); 330 this._innerRefreshUpdate(node, computedStyle, editedSection);
311 331
312 callbackWrapper(); 332 callbackWrapper();
313 } 333 }
314 334
315 if (this._computedStylePane.isShowing() || forceFetchComputedStyle) { 335 if (this._computedStylePane.isShowing() || forceFetchComputedStyle) {
316 this._refreshUpdateInProgress = true; 336 this._refreshUpdateInProgress = true;
317 WebInspector.cssModel.getComputedStyleAsync(node.id, computedStyleCa llback.bind(this)); 337 this._target.cssModel.getComputedStyleAsync(node.id, computedStyleCa llback.bind(this));
318 } else { 338 } else {
319 this._innerRefreshUpdate(node, null, editedSection); 339 this._innerRefreshUpdate(node, null, editedSection);
320 callbackWrapper(); 340 callbackWrapper();
321 } 341 }
322 }, 342 },
323 343
324 _rebuildUpdate: function() 344 _rebuildUpdate: function()
325 { 345 {
326 if (this._rebuildUpdateInProgress) { 346 if (this._rebuildUpdateInProgress) {
327 this._lastNodeForInnerRebuild = this.node; 347 this._lastNodeForInnerRebuild = this._node;
328 return; 348 return;
329 } 349 }
330 350
331 var node = this._validateNode(); 351 var node = this._validateNode();
332 if (!node) 352 if (!node)
333 return; 353 return;
334 354
335 this._rebuildUpdateInProgress = true; 355 this._rebuildUpdateInProgress = true;
336 356
337 var resultStyles = {}; 357 var resultStyles = {};
338 358
339 /** 359 /**
340 * @param {?*} matchedResult 360 * @param {?*} matchedResult
341 * @this {WebInspector.StylesSidebarPane} 361 * @this {WebInspector.StylesSidebarPane}
342 */ 362 */
343 function stylesCallback(matchedResult) 363 function stylesCallback(matchedResult)
344 { 364 {
345 delete this._rebuildUpdateInProgress; 365 delete this._rebuildUpdateInProgress;
346 366
347 var lastNodeForRebuild = this._lastNodeForInnerRebuild; 367 var lastNodeForRebuild = this._lastNodeForInnerRebuild;
348 if (lastNodeForRebuild) { 368 if (lastNodeForRebuild) {
349 delete this._lastNodeForInnerRebuild; 369 delete this._lastNodeForInnerRebuild;
350 if (lastNodeForRebuild !== this.node) { 370 if (lastNodeForRebuild !== this._node) {
351 this._rebuildUpdate(); 371 this._rebuildUpdate();
352 return; 372 return;
353 } 373 }
354 } 374 }
355 375
356 if (matchedResult && this.node === node) { 376 if (matchedResult && this._node === node) {
357 resultStyles.matchedCSSRules = matchedResult.matchedCSSRules; 377 resultStyles.matchedCSSRules = matchedResult.matchedCSSRules;
358 resultStyles.pseudoElements = matchedResult.pseudoElements; 378 resultStyles.pseudoElements = matchedResult.pseudoElements;
359 resultStyles.inherited = matchedResult.inherited; 379 resultStyles.inherited = matchedResult.inherited;
360 this._innerRebuildUpdate(node, resultStyles); 380 this._innerRebuildUpdate(node, resultStyles);
361 } 381 }
362 382
363 if (lastNodeForRebuild) { 383 if (lastNodeForRebuild) {
364 // lastNodeForRebuild is the same as this.node - another rebuild has been requested. 384 // lastNodeForRebuild is the same as this.node - another rebuild has been requested.
365 this._rebuildUpdate(); 385 this._rebuildUpdate();
366 return; 386 return;
(...skipping 12 matching lines...) Expand all
379 399
380 /** 400 /**
381 * @param {?WebInspector.CSSStyleDeclaration} computedStyle 401 * @param {?WebInspector.CSSStyleDeclaration} computedStyle
382 */ 402 */
383 function computedCallback(computedStyle) 403 function computedCallback(computedStyle)
384 { 404 {
385 resultStyles.computedStyle = computedStyle; 405 resultStyles.computedStyle = computedStyle;
386 } 406 }
387 407
388 if (this._computedStylePane.isShowing()) 408 if (this._computedStylePane.isShowing())
389 WebInspector.cssModel.getComputedStyleAsync(node.id, computedCallbac k); 409 this._target.cssModel.getComputedStyleAsync(node.id, computedCallbac k);
390 WebInspector.cssModel.getInlineStylesAsync(node.id, inlineCallback); 410 this._target.cssModel.getInlineStylesAsync(node.id, inlineCallback);
391 WebInspector.cssModel.getMatchedStylesAsync(node.id, true, true, stylesC allback.bind(this)); 411 this._target.cssModel.getMatchedStylesAsync(node.id, true, true, stylesC allback.bind(this));
392 }, 412 },
393 413
394 /** 414 /**
395 * @param {function()=} userCallback 415 * @param {function()=} userCallback
396 */ 416 */
397 _validateNode: function(userCallback) 417 _validateNode: function(userCallback)
398 { 418 {
399 if (!this.node) { 419 if (!this._node) {
400 this._sectionsContainer.removeChildren(); 420 this._sectionsContainer.removeChildren();
401 this._computedStylePane.bodyElement.removeChildren(); 421 this._computedStylePane.bodyElement.removeChildren();
402 this.sections = {}; 422 this.sections = {};
403 if (userCallback) 423 if (userCallback)
404 userCallback(); 424 userCallback();
405 return null; 425 return null;
406 } 426 }
407 return this.node; 427 return this._node;
408 }, 428 },
409 429
410 _styleSheetOrMediaQueryResultChanged: function() 430 _styleSheetOrMediaQueryResultChanged: function()
411 { 431 {
412 if (this._userOperation || this._isEditingStyle) 432 if (this._userOperation || this._isEditingStyle)
413 return; 433 return;
414 434
415 this._rebuildUpdate(); 435 this._rebuildUpdate();
416 }, 436 },
417 437
(...skipping 22 matching lines...) Expand all
440 return; 460 return;
441 461
442 if (!this._canAffectCurrentStyles(event.data.node)) 462 if (!this._canAffectCurrentStyles(event.data.node))
443 return; 463 return;
444 464
445 this._rebuildUpdate(); 465 this._rebuildUpdate();
446 }, 466 },
447 467
448 _canAffectCurrentStyles: function(node) 468 _canAffectCurrentStyles: function(node)
449 { 469 {
450 return this.node && (this.node === node || node.parentNode === this.node .parentNode || node.isAncestor(this.node)); 470 return this._node && (this._node === node || node.parentNode === this._n ode.parentNode || node.isAncestor(this._node));
451 }, 471 },
452 472
453 _innerRefreshUpdate: function(node, computedStyle, editedSection) 473 _innerRefreshUpdate: function(node, computedStyle, editedSection)
454 { 474 {
455 for (var pseudoId in this.sections) { 475 for (var pseudoId in this.sections) {
456 var styleRules = this._refreshStyleRules(this.sections[pseudoId], co mputedStyle); 476 var styleRules = this._refreshStyleRules(this.sections[pseudoId], co mputedStyle);
457 var usedProperties = {}; 477 var usedProperties = {};
458 this._markUsedProperties(styleRules, usedProperties); 478 this._markUsedProperties(styleRules, usedProperties);
459 this._refreshSectionsForStyleRules(styleRules, usedProperties, edite dSection); 479 this._refreshSectionsForStyleRules(styleRules, usedProperties, edite dSection);
460 } 480 }
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 event.consume(); 782 event.consume();
763 this.expand(); 783 this.expand();
764 this.addBlankSection().startEditingSelector(); 784 this.addBlankSection().startEditingSelector();
765 }, 785 },
766 786
767 /** 787 /**
768 * @return {!WebInspector.BlankStylePropertiesSection} 788 * @return {!WebInspector.BlankStylePropertiesSection}
769 */ 789 */
770 addBlankSection: function() 790 addBlankSection: function()
771 { 791 {
772 var blankSection = new WebInspector.BlankStylePropertiesSection(this, th is.node ? WebInspector.DOMPresentationUtils.simpleSelector(this.node) : ""); 792 var blankSection = new WebInspector.BlankStylePropertiesSection(this, th is._node ? WebInspector.DOMPresentationUtils.simpleSelector(this._node) : "");
773 793
774 var elementStyleSection = this.sections[0][1]; 794 var elementStyleSection = this.sections[0][1];
775 this._sectionsContainer.insertBefore(blankSection.element, elementStyleS ection.element.nextSibling); 795 this._sectionsContainer.insertBefore(blankSection.element, elementStyleS ection.element.nextSibling);
776 796
777 this.sections[0].splice(2, 0, blankSection); 797 this.sections[0].splice(2, 0, blankSection);
778 798
779 return blankSection; 799 return blankSection;
780 }, 800 },
781 801
782 removeSection: function(section) 802 removeSection: function(section)
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
1081 if (media.sourceURL) { 1101 if (media.sourceURL) {
1082 var refElement = mediaDataElement.createChild("div", "subtitle") ; 1102 var refElement = mediaDataElement.createChild("div", "subtitle") ;
1083 var rawLocation; 1103 var rawLocation;
1084 var mediaHeader; 1104 var mediaHeader;
1085 if (media.range) { 1105 if (media.range) {
1086 mediaHeader = media.header(); 1106 mediaHeader = media.header();
1087 if (mediaHeader) { 1107 if (mediaHeader) {
1088 var lineNumber = media.lineNumberInSource(); 1108 var lineNumber = media.lineNumberInSource();
1089 var columnNumber = media.columnNumberInSource(); 1109 var columnNumber = media.columnNumberInSource();
1090 console.assert(typeof lineNumber !== "undefined" && type of columnNumber !== "undefined"); 1110 console.assert(typeof lineNumber !== "undefined" && type of columnNumber !== "undefined");
1091 rawLocation = new WebInspector.CSSLocation(WebInspector. cssModel.target(), media.sourceURL, lineNumber, columnNumber); 1111 rawLocation = new WebInspector.CSSLocation(this._parentP ane._target, media.sourceURL, lineNumber, columnNumber);
1092 } 1112 }
1093 } 1113 }
1094 1114
1095 var anchor; 1115 var anchor;
1096 if (rawLocation) 1116 if (rawLocation)
1097 anchor = this._parentPane._linkifier.linkifyCSSLocation(medi aHeader.id, rawLocation); 1117 anchor = this._parentPane._linkifier.linkifyCSSLocation(medi aHeader.id, rawLocation);
1098 else { 1118 else {
1099 // The "linkedStylesheet" case. 1119 // The "linkedStylesheet" case.
1100 anchor = WebInspector.linkifyResourceAsNode(media.sourceURL, undefined, "subtitle", media.sourceURL); 1120 anchor = WebInspector.linkifyResourceAsNode(media.sourceURL, undefined, "subtitle", media.sourceURL);
1101 } 1121 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1153 this.element.classList.add("styles-show-inherited"); // This one is rela ted to inherited rules, not computed style. 1173 this.element.classList.add("styles-show-inherited"); // This one is rela ted to inherited rules, not computed style.
1154 1174
1155 if (this.navigable) 1175 if (this.navigable)
1156 this.element.classList.add("navigable"); 1176 this.element.classList.add("navigable");
1157 1177
1158 if (!this.editable) 1178 if (!this.editable)
1159 this.element.classList.add("read-only"); 1179 this.element.classList.add("read-only");
1160 } 1180 }
1161 1181
1162 WebInspector.StylePropertiesSection.prototype = { 1182 WebInspector.StylePropertiesSection.prototype = {
1163 get pane()
1164 {
1165 return this._parentPane;
1166 },
1167
1168 collapse: function() 1183 collapse: function()
1169 { 1184 {
1170 // Overriding with empty body. 1185 // Overriding with empty body.
1171 }, 1186 },
1172 1187
1173 handleClick: function() 1188 handleClick: function()
1174 { 1189 {
1175 // Avoid consuming events. 1190 // Avoid consuming events.
1176 }, 1191 },
1177 1192
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
1384 1399
1385 var selectors = rule.selectors; 1400 var selectors = rule.selectors;
1386 var fragment = document.createDocumentFragment(); 1401 var fragment = document.createDocumentFragment();
1387 var currentMatch = 0; 1402 var currentMatch = 0;
1388 for (var i = 0; i < selectors.length ; ++i) { 1403 for (var i = 0; i < selectors.length ; ++i) {
1389 if (i) 1404 if (i)
1390 fragment.appendChild(document.createTextNode(", ")); 1405 fragment.appendChild(document.createTextNode(", "));
1391 var isSelectorMatching = matchingSelectors[currentMatch] === i; 1406 var isSelectorMatching = matchingSelectors[currentMatch] === i;
1392 if (isSelectorMatching) 1407 if (isSelectorMatching)
1393 ++currentMatch; 1408 ++currentMatch;
1394 var rawLocation = new WebInspector.CSSLocation(WebInspector.cssModel .target(), rule.sourceURL, rule.lineNumberInSource(i), rule.columnNumberInSource (i)); 1409 var rawLocation = new WebInspector.CSSLocation(this._parentPane._tar get, rule.sourceURL, rule.lineNumberInSource(i), rule.columnNumberInSource(i));
1395 var matchingSelectorClass = isSelectorMatching ? " selector-matches" : ""; 1410 var matchingSelectorClass = isSelectorMatching ? " selector-matches" : "";
1396 var selectorElement = document.createElement("span"); 1411 var selectorElement = document.createElement("span");
1397 selectorElement.className = "simple-selector" + matchingSelectorClas s; 1412 selectorElement.className = "simple-selector" + matchingSelectorClas s;
1398 if (rule.id) 1413 if (rule.id)
1399 selectorElement._selectorIndex = i; 1414 selectorElement._selectorIndex = i;
1400 selectorElement.textContent = selectors[i].value; 1415 selectorElement.textContent = selectors[i].value;
1401 1416
1402 fragment.appendChild(selectorElement); 1417 fragment.appendChild(selectorElement);
1403 } 1418 }
1404 1419
1405 this._selectorElement.removeChildren(); 1420 this._selectorElement.removeChildren();
1406 this._selectorElement.appendChild(fragment); 1421 this._selectorElement.appendChild(fragment);
1407 this._markSelectorHighlights(); 1422 this._markSelectorHighlights();
1408 }, 1423 },
1409 1424
1410 _markSelectorHighlights: function() 1425 _markSelectorHighlights: function()
1411 { 1426 {
1412 var selectors = this._selectorElement.getElementsByClassName("simple-sel ector"); 1427 var selectors = this._selectorElement.getElementsByClassName("simple-sel ector");
1413 var regex = this.pane.filterRegex(); 1428 var regex = this._parentPane.filterRegex();
1414 for (var i = 0; i < selectors.length; ++i) { 1429 for (var i = 0; i < selectors.length; ++i) {
1415 var selectorMatchesFilter = regex && regex.test(selectors[i].textCon tent); 1430 var selectorMatchesFilter = regex && regex.test(selectors[i].textCon tent);
1416 selectors[i].classList.toggle("filter-match", selectorMatchesFilter) ; 1431 selectors[i].classList.toggle("filter-match", selectorMatchesFilter) ;
1417 } 1432 }
1418 }, 1433 },
1419 1434
1420 _checkWillCancelEditing: function() 1435 _checkWillCancelEditing: function()
1421 { 1436 {
1422 var willCauseCancelEditing = this._willCauseCancelEditing; 1437 var willCauseCancelEditing = this._willCauseCancelEditing;
1423 delete this._willCauseCancelEditing; 1438 delete this._willCauseCancelEditing;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1459 { 1474 {
1460 var link = WebInspector.linkifyResourceAsNode(url, line, "", url + " :" + (line + 1)); 1475 var link = WebInspector.linkifyResourceAsNode(url, line, "", url + " :" + (line + 1));
1461 link.classList.add("webkit-html-resource-link"); 1476 link.classList.add("webkit-html-resource-link");
1462 link.setAttribute("data-uncopyable", link.textContent); 1477 link.setAttribute("data-uncopyable", link.textContent);
1463 link.textContent = ""; 1478 link.textContent = "";
1464 return link; 1479 return link;
1465 } 1480 }
1466 1481
1467 if (this.styleRule.sourceURL) { 1482 if (this.styleRule.sourceURL) {
1468 var firstMatchingIndex = this.styleRule.rule.matchingSelectors && th is.rule.matchingSelectors.length ? this.rule.matchingSelectors[0] : 0; 1483 var firstMatchingIndex = this.styleRule.rule.matchingSelectors && th is.rule.matchingSelectors.length ? this.rule.matchingSelectors[0] : 0;
1469 var matchingSelectorLocation = new WebInspector.CSSLocation(WebInspe ctor.cssModel.target(), this.styleRule.sourceURL, this.rule.lineNumberInSource(f irstMatchingIndex), this.rule.columnNumberInSource(firstMatchingIndex)); 1484 var matchingSelectorLocation = new WebInspector.CSSLocation(this._pa rentPane._target, this.styleRule.sourceURL, this.rule.lineNumberInSource(firstMa tchingIndex), this.rule.columnNumberInSource(firstMatchingIndex));
1470 return this._parentPane._linkifier.linkifyCSSLocation(this.rule.id.s tyleSheetId, matchingSelectorLocation) || linkifyUncopyable(this.styleRule.sourc eURL, this.rule.lineNumberInSource()); 1485 return this._parentPane._linkifier.linkifyCSSLocation(this.rule.id.s tyleSheetId, matchingSelectorLocation) || linkifyUncopyable(this.styleRule.sourc eURL, this.rule.lineNumberInSource());
1471 } 1486 }
1472 1487
1473 if (!this.rule) 1488 if (!this.rule)
1474 return document.createTextNode(""); 1489 return document.createTextNode("");
1475 1490
1476 if (this.rule.isUserAgent) 1491 if (this.rule.isUserAgent)
1477 return document.createTextNode(WebInspector.UIString("user agent sty lesheet")); 1492 return document.createTextNode(WebInspector.UIString("user agent sty lesheet"));
1478 if (this.rule.isUser) 1493 if (this.rule.isUser)
1479 return document.createTextNode(WebInspector.UIString("user styleshee t")); 1494 return document.createTextNode(WebInspector.UIString("user styleshee t"));
(...skipping 23 matching lines...) Expand all
1503 return; 1518 return;
1504 } 1519 }
1505 this.expand(); 1520 this.expand();
1506 this.addNewBlankProperty().startEditing(); 1521 this.addNewBlankProperty().startEditing();
1507 }, 1522 },
1508 1523
1509 _handleSelectorClick: function(event) 1524 _handleSelectorClick: function(event)
1510 { 1525 {
1511 if (WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event) && this.navi gable && event.target.classList.contains("simple-selector")) { 1526 if (WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event) && this.navi gable && event.target.classList.contains("simple-selector")) {
1512 var index = event.target._selectorIndex; 1527 var index = event.target._selectorIndex;
1513 var styleSheetHeader = WebInspector.cssModel.styleSheetHeaderForId(t his.rule.id.styleSheetId); 1528 var styleSheetHeader = this._parentPane._target.cssModel.styleSheetH eaderForId(this.rule.id.styleSheetId);
1514 var uiLocation = styleSheetHeader.rawLocationToUILocation(this.rule. lineNumberInSource(index), this.rule.columnNumberInSource(index)); 1529 var uiLocation = styleSheetHeader.rawLocationToUILocation(this.rule. lineNumberInSource(index), this.rule.columnNumberInSource(index));
1515 WebInspector.Revealer.reveal(uiLocation); 1530 WebInspector.Revealer.reveal(uiLocation);
1516 return; 1531 return;
1517 } 1532 }
1518 this._startEditingOnMouseEvent(); 1533 this._startEditingOnMouseEvent();
1519 event.consume(true); 1534 event.consume(true);
1520 }, 1535 },
1521 1536
1522 _startEditingOnMouseEvent: function() 1537 _startEditingOnMouseEvent: function()
1523 { 1538 {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1583 this._editingSelectorEnded(); 1598 this._editingSelectorEnded();
1584 if (newContent) 1599 if (newContent)
1585 newContent = newContent.trim(); 1600 newContent = newContent.trim();
1586 if (newContent === oldContent) { 1601 if (newContent === oldContent) {
1587 // Revert to a trimmed version of the selector if need be. 1602 // Revert to a trimmed version of the selector if need be.
1588 this._selectorElement.textContent = newContent; 1603 this._selectorElement.textContent = newContent;
1589 this._moveEditorFromSelector(moveDirection); 1604 this._moveEditorFromSelector(moveDirection);
1590 return; 1605 return;
1591 } 1606 }
1592 1607
1593 var selectedNode = this._parentPane.node; 1608 var selectedNode = this._parentPane._node;
1594 1609
1595 /** 1610 /**
1596 * @param {!WebInspector.CSSRule} newRule 1611 * @param {!WebInspector.CSSRule} newRule
1597 * @this {WebInspector.StylePropertiesSection} 1612 * @this {WebInspector.StylePropertiesSection}
1598 */ 1613 */
1599 function successCallback(newRule) 1614 function successCallback(newRule)
1600 { 1615 {
1601 var doesAffectSelectedNode = newRule.matchingSelectors.length > 0; 1616 var doesAffectSelectedNode = newRule.matchingSelectors.length > 0;
1602 if (!doesAffectSelectedNode) { 1617 if (!doesAffectSelectedNode) {
1603 this.noAffect = true; 1618 this.noAffect = true;
(...skipping 16 matching lines...) Expand all
1620 * @this {WebInspector.StylePropertiesSection} 1635 * @this {WebInspector.StylePropertiesSection}
1621 */ 1636 */
1622 function finishOperationAndMoveEditor(direction) 1637 function finishOperationAndMoveEditor(direction)
1623 { 1638 {
1624 delete this._parentPane._userOperation; 1639 delete this._parentPane._userOperation;
1625 this._moveEditorFromSelector(direction); 1640 this._moveEditorFromSelector(direction);
1626 } 1641 }
1627 1642
1628 // This gets deleted in finishOperationAndMoveEditor(), which is called both on success and failure. 1643 // This gets deleted in finishOperationAndMoveEditor(), which is called both on success and failure.
1629 this._parentPane._userOperation = true; 1644 this._parentPane._userOperation = true;
1630 WebInspector.cssModel.setRuleSelector(this.rule.id, selectedNode ? selec tedNode.id : 0, newContent, successCallback.bind(this), finishOperationAndMoveEd itor.bind(this, moveDirection)); 1645 this._parentPane._target.cssModel.setRuleSelector(this.rule.id, selected Node ? selectedNode.id : 0, newContent, successCallback.bind(this), finishOperat ionAndMoveEditor.bind(this, moveDirection));
1631 }, 1646 },
1632 1647
1633 _updateRuleOrigin: function() 1648 _updateRuleOrigin: function()
1634 { 1649 {
1635 this._selectorRefElement.removeChildren(); 1650 this._selectorRefElement.removeChildren();
1636 this._selectorRefElement.appendChild(this._createRuleOriginNode()); 1651 this._selectorRefElement.appendChild(this._createRuleOriginNode());
1637 }, 1652 },
1638 1653
1639 _editingSelectorEnded: function() 1654 _editingSelectorEnded: function()
1640 { 1655 {
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
1859 1874
1860 delete this._parentPane._userOperation; 1875 delete this._parentPane._userOperation;
1861 this._editingSelectorEnded(); 1876 this._editingSelectorEnded();
1862 this._markSelectorMatches(); 1877 this._markSelectorMatches();
1863 } 1878 }
1864 1879
1865 if (newContent) 1880 if (newContent)
1866 newContent = newContent.trim(); 1881 newContent = newContent.trim();
1867 this._parentPane._userOperation = true; 1882 this._parentPane._userOperation = true;
1868 1883
1869 WebInspector.cssModel.requestViaInspectorStylesheet(this.pane.node, viaI nspectorCallback.bind(this)); 1884 var cssModel = this._parentPane._target.cssModel;
1885 cssModel.requestViaInspectorStylesheet(this._parentPane._node, viaInspec torCallback.bind(this));
1870 1886
1871 /** 1887 /**
1872 * @this {WebInspector.BlankStylePropertiesSection} 1888 * @this {WebInspector.BlankStylePropertiesSection}
1873 * @param {?WebInspector.CSSStyleSheetHeader} styleSheetHeader 1889 * @param {?WebInspector.CSSStyleSheetHeader} styleSheetHeader
1874 */ 1890 */
1875 function viaInspectorCallback(styleSheetHeader) 1891 function viaInspectorCallback(styleSheetHeader)
1876 { 1892 {
1877 if (!styleSheetHeader) { 1893 if (!styleSheetHeader) {
1878 this.editingSelectorCancelled(); 1894 this.editingSelectorCancelled();
1879 return; 1895 return;
1880 } 1896 }
1881 WebInspector.cssModel.addRule(styleSheetHeader.id, this.pane.node, n ewContent, successCallback.bind(this), this.editingSelectorCancelled.bind(this)) ; 1897 cssModel.addRule(styleSheetHeader.id, this._parentPane._node, newCon tent, successCallback.bind(this), this.editingSelectorCancelled.bind(this));
1882 } 1898 }
1883 }, 1899 },
1884 1900
1885 editingSelectorCancelled: function() 1901 editingSelectorCancelled: function()
1886 { 1902 {
1887 delete this._parentPane._userOperation; 1903 delete this._parentPane._userOperation;
1888 if (!this.isBlank) { 1904 if (!this.isBlank) {
1889 WebInspector.StylePropertiesSection.prototype.editingSelectorCancell ed.call(this); 1905 WebInspector.StylePropertiesSection.prototype.editingSelectorCancell ed.call(this);
1890 return; 1906 return;
1891 } 1907 }
1892 1908
1893 this._editingSelectorEnded(); 1909 this._editingSelectorEnded();
1894 this.pane.removeSection(this); 1910 this._parentPane.removeSection(this);
1895 }, 1911 },
1896 1912
1897 makeNormal: function(styleRule) 1913 makeNormal: function(styleRule)
1898 { 1914 {
1899 this.element.classList.remove("blank-section"); 1915 this.element.classList.remove("blank-section");
1900 this.styleRule = styleRule; 1916 this.styleRule = styleRule;
1901 this.rule = styleRule.rule; 1917 this.rule = styleRule.rule;
1902 1918
1903 // FIXME: replace this instance by a normal WebInspector.StyleProperties Section. 1919 // FIXME: replace this instance by a normal WebInspector.StyleProperties Section.
1904 this._normal = true; 1920 this._normal = true;
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after
2358 WebInspector.StylePropertyTreeElementBase.call(this, styleRule, style, prope rty, inherited, false, false); 2374 WebInspector.StylePropertyTreeElementBase.call(this, styleRule, style, prope rty, inherited, false, false);
2359 this._stylesPane = stylesPane; 2375 this._stylesPane = stylesPane;
2360 } 2376 }
2361 2377
2362 WebInspector.ComputedStylePropertyTreeElement.prototype = { 2378 WebInspector.ComputedStylePropertyTreeElement.prototype = {
2363 /** 2379 /**
2364 * @return {?WebInspector.DOMNode} 2380 * @return {?WebInspector.DOMNode}
2365 */ 2381 */
2366 node: function() 2382 node: function()
2367 { 2383 {
2368 return this._stylesPane.node; 2384 return this._stylesPane._node;
2369 }, 2385 },
2370 2386
2371 /** 2387 /**
2372 * @return {?WebInspector.StylesSidebarPane} 2388 * @return {?WebInspector.StylesSidebarPane}
2373 */ 2389 */
2374 editablePane: function() 2390 editablePane: function()
2375 { 2391 {
2376 return null; 2392 return null;
2377 }, 2393 },
2378 2394
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2410 this._parentPane = stylesPane; 2426 this._parentPane = stylesPane;
2411 this.isShorthand = isShorthand; 2427 this.isShorthand = isShorthand;
2412 } 2428 }
2413 2429
2414 WebInspector.StylePropertyTreeElement.prototype = { 2430 WebInspector.StylePropertyTreeElement.prototype = {
2415 /** 2431 /**
2416 * @return {?WebInspector.DOMNode} 2432 * @return {?WebInspector.DOMNode}
2417 */ 2433 */
2418 node: function() 2434 node: function()
2419 { 2435 {
2420 return this._parentPane.node; 2436 return this._parentPane._node;
2421 }, 2437 },
2422 2438
2423 /** 2439 /**
2424 * @return {?WebInspector.StylesSidebarPane} 2440 * @return {?WebInspector.StylesSidebarPane}
2425 */ 2441 */
2426 editablePane: function() 2442 editablePane: function()
2427 { 2443 {
2428 return this._parentPane; 2444 return this._parentPane;
2429 }, 2445 },
2430 2446
(...skipping 12 matching lines...) Expand all
2443 { 2459 {
2444 return this.treeOutline && this.treeOutline.section; 2460 return this.treeOutline && this.treeOutline.section;
2445 }, 2461 },
2446 2462
2447 /** 2463 /**
2448 * @param {function()=} userCallback 2464 * @param {function()=} userCallback
2449 */ 2465 */
2450 _updatePane: function(userCallback) 2466 _updatePane: function(userCallback)
2451 { 2467 {
2452 var section = this.section(); 2468 var section = this.section();
2453 if (section && section.pane) 2469 if (section && section._parentPane)
2454 section.pane._refreshUpdate(section, false, userCallback); 2470 section._parentPane._refreshUpdate(section, false, userCallback);
2455 else { 2471 else {
2456 if (userCallback) 2472 if (userCallback)
2457 userCallback(); 2473 userCallback();
2458 } 2474 }
2459 }, 2475 },
2460 2476
2461 /** 2477 /**
2462 * @param {?Event} event 2478 * @param {?Event} event
2463 */ 2479 */
2464 toggleEnabled: function(event) 2480 toggleEnabled: function(event)
2465 { 2481 {
2466 var disabled = !event.target.checked; 2482 var disabled = !event.target.checked;
2467 2483
2468 /** 2484 /**
2469 * @param {?WebInspector.CSSStyleDeclaration} newStyle 2485 * @param {?WebInspector.CSSStyleDeclaration} newStyle
2470 * @this {WebInspector.StylePropertyTreeElement} 2486 * @this {WebInspector.StylePropertyTreeElement}
2471 */ 2487 */
2472 function callback(newStyle) 2488 function callback(newStyle)
2473 { 2489 {
2474 delete this._parentPane._userOperation; 2490 delete this._parentPane._userOperation;
2475 2491
2476 if (!newStyle) 2492 if (!newStyle)
2477 return; 2493 return;
2478 2494
2479 newStyle.parentRule = this.style.parentRule; 2495 newStyle.parentRule = this.style.parentRule;
2480 this.style = newStyle; 2496 this.style = newStyle;
2481 this._styleRule.style = newStyle; 2497 this._styleRule.style = newStyle;
2482 2498
2483 var section = this.section(); 2499 var section = this.section();
2484 if (section && section.pane) 2500 if (section && section._parentPane)
2485 section.pane.dispatchEventToListeners("style property toggled"); 2501 section._parentPane.dispatchEventToListeners("style property tog gled");
2486 2502
2487 this._updatePane(); 2503 this._updatePane();
2488 } 2504 }
2489 2505
2490 this._parentPane._userOperation = true; 2506 this._parentPane._userOperation = true;
2491 this.property.setDisabled(disabled, callback.bind(this)); 2507 this.property.setDisabled(disabled, callback.bind(this));
2492 event.consume(); 2508 event.consume();
2493 }, 2509 },
2494 2510
2495 onpopulate: function() 2511 onpopulate: function()
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
3046 var section = this.section(); 3062 var section = this.section();
3047 styleText = styleText.replace(/\s/g, " ").trim(); // Replace &nbsp; with whitespace. 3063 styleText = styleText.replace(/\s/g, " ").trim(); // Replace &nbsp; with whitespace.
3048 var styleTextLength = styleText.length; 3064 var styleTextLength = styleText.length;
3049 if (!styleTextLength && updateInterface && !isRevert && this._newPropert y && !this._hasBeenModifiedIncrementally()) { 3065 if (!styleTextLength && updateInterface && !isRevert && this._newPropert y && !this._hasBeenModifiedIncrementally()) {
3050 // The user deleted everything and never applied a new property valu e via Up/Down scrolling/live editing, so remove the tree element and update. 3066 // The user deleted everything and never applied a new property valu e via Up/Down scrolling/live editing, so remove the tree element and update.
3051 this.parent.removeChild(this); 3067 this.parent.removeChild(this);
3052 section.afterUpdate(); 3068 section.afterUpdate();
3053 return; 3069 return;
3054 } 3070 }
3055 3071
3056 var currentNode = this._parentPane.node; 3072 var currentNode = this._parentPane._node;
3057 if (updateInterface) 3073 if (updateInterface)
3058 this._parentPane._userOperation = true; 3074 this._parentPane._userOperation = true;
3059 3075
3060 /** 3076 /**
3061 * @param {function()} userCallback 3077 * @param {function()} userCallback
3062 * @param {string} originalPropertyText 3078 * @param {string} originalPropertyText
3063 * @param {?WebInspector.CSSStyleDeclaration} newStyle 3079 * @param {?WebInspector.CSSStyleDeclaration} newStyle
3064 * @this {WebInspector.StylePropertyTreeElement} 3080 * @this {WebInspector.StylePropertyTreeElement}
3065 */ 3081 */
3066 function callback(userCallback, originalPropertyText, newStyle) 3082 function callback(userCallback, originalPropertyText, newStyle)
3067 { 3083 {
3068 if (!newStyle) { 3084 if (!newStyle) {
3069 if (updateInterface) { 3085 if (updateInterface) {
3070 // It did not apply, cancel editing. 3086 // It did not apply, cancel editing.
3071 this._revertStyleUponEditingCanceled(originalPropertyText); 3087 this._revertStyleUponEditingCanceled(originalPropertyText);
3072 } 3088 }
3073 userCallback(); 3089 userCallback();
3074 return; 3090 return;
3075 } 3091 }
3076 3092
3077 if (this._newProperty) 3093 if (this._newProperty)
3078 this._newPropertyInStyle = true; 3094 this._newPropertyInStyle = true;
3079 newStyle.parentRule = this.style.parentRule; 3095 newStyle.parentRule = this.style.parentRule;
3080 this.style = newStyle; 3096 this.style = newStyle;
3081 this.property = newStyle.propertyAt(this.property.index); 3097 this.property = newStyle.propertyAt(this.property.index);
3082 this._styleRule.style = this.style; 3098 this._styleRule.style = this.style;
3083 3099
3084 if (section && section.pane) 3100 if (section && section._parentPane)
3085 section.pane.dispatchEventToListeners("style edited"); 3101 section._parentPane.dispatchEventToListeners("style edited");
3086 3102
3087 if (updateInterface && currentNode === this.node()) { 3103 if (updateInterface && currentNode === this.node()) {
3088 this._updatePane(userCallback); 3104 this._updatePane(userCallback);
3089 return; 3105 return;
3090 } 3106 }
3091 3107
3092 userCallback(); 3108 userCallback();
3093 } 3109 }
3094 3110
3095 // Append a ";" if the new text does not end in ";". 3111 // Append a ";" if the new text does not end in ";".
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
3239 return; 3255 return;
3240 } 3256 }
3241 3257
3242 var results = this._cssCompletions.startsWith(prefix); 3258 var results = this._cssCompletions.startsWith(prefix);
3243 var selectedIndex = this._cssCompletions.mostUsedOf(results); 3259 var selectedIndex = this._cssCompletions.mostUsedOf(results);
3244 completionsReadyCallback(results, selectedIndex); 3260 completionsReadyCallback(results, selectedIndex);
3245 }, 3261 },
3246 3262
3247 __proto__: WebInspector.TextPrompt.prototype 3263 __proto__: WebInspector.TextPrompt.prototype
3248 } 3264 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/PlatformFontsSidebarPane.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698