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

Unified Diff: Source/devtools/front_end/sdk/CSSStyleModel.js

Issue 474433004: DevTools: [SSP] show source location for the newly inserted style rules. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: type safety via WebInspector.CSSRuleSelector Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/devtools/front_end/elements/StylesSidebarPane.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/devtools/front_end/sdk/CSSStyleModel.js
diff --git a/Source/devtools/front_end/sdk/CSSStyleModel.js b/Source/devtools/front_end/sdk/CSSStyleModel.js
index febf7efcb6fd2d7ea00dcc260ea6ee6a6d4c1a20..fc457b4f8912a8b1ec4121596cd6c08f46d43e88 100644
--- a/Source/devtools/front_end/sdk/CSSStyleModel.js
+++ b/Source/devtools/front_end/sdk/CSSStyleModel.js
@@ -891,6 +891,39 @@ WebInspector.CSSStyleDeclaration.prototype = {
/**
* @constructor
+ * @param {!CSSAgent.Selector} payload
+ */
+WebInspector.CSSRuleSelector = function(payload)
+{
+ this.value = payload.value;
+ if (payload.range)
+ this.range = WebInspector.TextRange.fromObject(payload.range);
+}
+
+/**
+ * @param {!CSSAgent.Selector} payload
+ * @return {!WebInspector.CSSRuleSelector}
+ */
+WebInspector.CSSRuleSelector.parsePayload = function(payload)
+{
+ return new WebInspector.CSSRuleSelector(payload)
+}
+
+WebInspector.CSSRuleSelector.prototype = {
+ /**
+ * @param {!WebInspector.TextRange} oldRange
+ * @param {!WebInspector.TextRange} newRange
+ */
+ sourceStyleRuleEdited: function(oldRange, newRange)
+ {
+ if (!this.range)
+ return;
+ this.range = this.range.rebaseAfterTextEdit(oldRange, newRange);
+ }
+}
+
+/**
+ * @constructor
* @param {!WebInspector.CSSStyleModel} cssModel
* @param {!CSSAgent.CSSRule} payload
* @param {!Array.<number>=} matchingSelectors
@@ -901,11 +934,12 @@ WebInspector.CSSRule = function(cssModel, payload, matchingSelectors)
this.styleSheetId = payload.styleSheetId;
if (matchingSelectors)
this.matchingSelectors = matchingSelectors;
- this.selectors = payload.selectorList.selectors;
- for (var i = 0; i < this.selectors.length; ++i) {
- var selector = this.selectors[i];
- if (selector.range)
- selector.range = WebInspector.TextRange.fromObject(selector.range);
+
+ /** @type {!Array.<!WebInspector.CSSRuleSelector>} */
+ this.selectors = [];
+ for (var i = 0; i < payload.selectorList.selectors.length; ++i) {
+ var selectorPayload = payload.selectorList.selectors[i];
+ this.selectors.push(WebInspector.CSSRuleSelector.parsePayload(selectorPayload));
}
this.selectorText = this.selectors.select("value").join(", ");
@@ -948,11 +982,8 @@ WebInspector.CSSRule.prototype = {
if (this.styleSheetId === styleSheetId) {
if (this.selectorRange)
this.selectorRange = this.selectorRange.rebaseAfterTextEdit(oldRange, newRange);
- for (var i = 0; i < this.selectors.length; ++i) {
- var selector = this.selectors[i];
- if (selector.range)
- selector.range = selector.range.rebaseAfterTextEdit(oldRange, newRange);
- }
+ for (var i = 0; i < this.selectors.length; ++i)
+ this.selectors[i].sourceStyleRuleEdited(oldRange, newRange);
}
if (this.media) {
for (var i = 0; i < this.media.length; ++i)
« no previous file with comments | « Source/devtools/front_end/elements/StylesSidebarPane.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698