Index: third_party/WebKit/Source/devtools/front_end/sdk/CSSRule.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/CSSRule.js b/third_party/WebKit/Source/devtools/front_end/sdk/CSSRule.js |
index 8829065024bc0c7d0c6e5dfded2ece27ca452104..0e0bd395b599d2150a9ca1a2e26038e3b17d3ed3 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/sdk/CSSRule.js |
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/CSSRule.js |
@@ -1,324 +1,300 @@ |
// Copyright 2016 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
- |
/** |
- * @constructor |
- * @param {!CSSAgent.Value} payload |
+ * @unrestricted |
*/ |
-WebInspector.CSSValue = function(payload) |
-{ |
+WebInspector.CSSValue = class { |
+ /** |
+ * @param {!CSSAgent.Value} payload |
+ */ |
+ constructor(payload) { |
this.text = payload.text; |
if (payload.range) |
- this.range = WebInspector.TextRange.fromObject(payload.range); |
-}; |
- |
-WebInspector.CSSValue.prototype = { |
- /** |
- * @param {!WebInspector.CSSModel.Edit} edit |
- */ |
- rebase: function(edit) |
- { |
- if (!this.range) |
- return; |
- this.range = this.range.rebaseAfterTextEdit(edit.oldRange, edit.newRange); |
- } |
+ this.range = WebInspector.TextRange.fromObject(payload.range); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.CSSModel.Edit} edit |
+ */ |
+ rebase(edit) { |
+ if (!this.range) |
+ return; |
+ this.range = this.range.rebaseAfterTextEdit(edit.oldRange, edit.newRange); |
+ } |
}; |
/** |
- * @constructor |
- * @param {!WebInspector.CSSModel} cssModel |
- * @param {{style: !CSSAgent.CSSStyle, styleSheetId: (string|undefined), origin: !CSSAgent.StyleSheetOrigin}} payload |
+ * @unrestricted |
*/ |
-WebInspector.CSSRule = function(cssModel, payload) |
-{ |
+WebInspector.CSSRule = class { |
+ /** |
+ * @param {!WebInspector.CSSModel} cssModel |
+ * @param {{style: !CSSAgent.CSSStyle, styleSheetId: (string|undefined), origin: !CSSAgent.StyleSheetOrigin}} payload |
+ */ |
+ constructor(cssModel, payload) { |
this._cssModel = cssModel; |
this.styleSheetId = payload.styleSheetId; |
if (this.styleSheetId) { |
- var styleSheetHeader = cssModel.styleSheetHeaderForId(this.styleSheetId); |
- this.sourceURL = styleSheetHeader.sourceURL; |
+ var styleSheetHeader = cssModel.styleSheetHeaderForId(this.styleSheetId); |
+ this.sourceURL = styleSheetHeader.sourceURL; |
} |
this.origin = payload.origin; |
- this.style = new WebInspector.CSSStyleDeclaration(this._cssModel, this, payload.style, WebInspector.CSSStyleDeclaration.Type.Regular); |
-}; |
- |
-WebInspector.CSSRule.prototype = { |
- /** |
- * @param {!WebInspector.CSSModel.Edit} edit |
- */ |
- rebase: function(edit) |
- { |
- if (this.styleSheetId !== edit.styleSheetId) |
- return; |
- this.style.rebase(edit); |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- resourceURL: function() |
- { |
- if (!this.styleSheetId) |
- return ""; |
- var styleSheetHeader = this._cssModel.styleSheetHeaderForId(this.styleSheetId); |
- return styleSheetHeader.resourceURL(); |
- }, |
- |
- /** |
- * @return {boolean} |
- */ |
- isUserAgent: function() |
- { |
- return this.origin === CSSAgent.StyleSheetOrigin.UserAgent; |
- }, |
- |
- /** |
- * @return {boolean} |
- */ |
- isInjected: function() |
- { |
- return this.origin === CSSAgent.StyleSheetOrigin.Injected; |
- }, |
- |
- /** |
- * @return {boolean} |
- */ |
- isViaInspector: function() |
- { |
- return this.origin === CSSAgent.StyleSheetOrigin.Inspector; |
- }, |
- |
- /** |
- * @return {boolean} |
- */ |
- isRegular: function() |
- { |
- return this.origin === CSSAgent.StyleSheetOrigin.Regular; |
- } |
+ this.style = new WebInspector.CSSStyleDeclaration( |
+ this._cssModel, this, payload.style, WebInspector.CSSStyleDeclaration.Type.Regular); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.CSSModel.Edit} edit |
+ */ |
+ rebase(edit) { |
+ if (this.styleSheetId !== edit.styleSheetId) |
+ return; |
+ this.style.rebase(edit); |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ resourceURL() { |
+ if (!this.styleSheetId) |
+ return ''; |
+ var styleSheetHeader = this._cssModel.styleSheetHeaderForId(this.styleSheetId); |
+ return styleSheetHeader.resourceURL(); |
+ } |
+ |
+ /** |
+ * @return {boolean} |
+ */ |
+ isUserAgent() { |
+ return this.origin === CSSAgent.StyleSheetOrigin.UserAgent; |
+ } |
+ |
+ /** |
+ * @return {boolean} |
+ */ |
+ isInjected() { |
+ return this.origin === CSSAgent.StyleSheetOrigin.Injected; |
+ } |
+ |
+ /** |
+ * @return {boolean} |
+ */ |
+ isViaInspector() { |
+ return this.origin === CSSAgent.StyleSheetOrigin.Inspector; |
+ } |
+ |
+ /** |
+ * @return {boolean} |
+ */ |
+ isRegular() { |
+ return this.origin === CSSAgent.StyleSheetOrigin.Regular; |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.CSSRule} |
- * @param {!WebInspector.CSSModel} cssModel |
- * @param {!CSSAgent.CSSRule} payload |
+ * @unrestricted |
*/ |
-WebInspector.CSSStyleRule = function(cssModel, payload) |
-{ |
- WebInspector.CSSRule.call(this, cssModel, payload); |
+WebInspector.CSSStyleRule = class extends WebInspector.CSSRule { |
+ /** |
+ * @param {!WebInspector.CSSModel} cssModel |
+ * @param {!CSSAgent.CSSRule} payload |
+ */ |
+ constructor(cssModel, payload) { |
+ super(cssModel, payload); |
this._reinitializeSelectors(payload.selectorList); |
this.media = payload.media ? WebInspector.CSSMedia.parseMediaArrayPayload(cssModel, payload.media) : []; |
-}; |
- |
-/** |
- * @param {!WebInspector.CSSModel} cssModel |
- * @param {string} selectorText |
- * @return {!WebInspector.CSSStyleRule} |
- */ |
-WebInspector.CSSStyleRule.createDummyRule = function(cssModel, selectorText) |
-{ |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.CSSModel} cssModel |
+ * @param {string} selectorText |
+ * @return {!WebInspector.CSSStyleRule} |
+ */ |
+ static createDummyRule(cssModel, selectorText) { |
var dummyPayload = { |
- selectorList: { |
- selectors: [{ text: selectorText}], |
- }, |
- style: { |
- styleSheetId: "0", |
- range: new WebInspector.TextRange(0, 0, 0, 0), |
- shorthandEntries: [], |
- cssProperties: [] |
- } |
+ selectorList: { |
+ selectors: [{text: selectorText}], |
+ }, |
+ style: |
+ {styleSheetId: '0', range: new WebInspector.TextRange(0, 0, 0, 0), shorthandEntries: [], cssProperties: []} |
}; |
- return new WebInspector.CSSStyleRule(cssModel, /** @type {!CSSAgent.CSSRule} */(dummyPayload)); |
-}; |
- |
-WebInspector.CSSStyleRule.prototype = { |
- /** |
- * @param {!CSSAgent.SelectorList} selectorList |
- */ |
- _reinitializeSelectors: function(selectorList) |
- { |
- /** @type {!Array.<!WebInspector.CSSValue>} */ |
- this.selectors = []; |
- for (var i = 0; i < selectorList.selectors.length; ++i) |
- this.selectors.push(new WebInspector.CSSValue(selectorList.selectors[i])); |
- }, |
- |
- /** |
- * @param {string} newSelector |
- * @return {!Promise.<boolean>} |
- */ |
- setSelectorText: function(newSelector) |
- { |
- var styleSheetId = this.styleSheetId; |
- if (!styleSheetId) |
- throw "No rule stylesheet id"; |
- var range = this.selectorRange(); |
- if (!range) |
- throw "Rule selector is not editable"; |
- return this._cssModel.setSelectorText(styleSheetId, range, newSelector); |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- selectorText: function() |
- { |
- return this.selectors.select("text").join(", "); |
- }, |
- |
- /** |
- * @return {?WebInspector.TextRange} |
- */ |
- selectorRange: function() |
- { |
- var firstRange = this.selectors[0].range; |
- if (!firstRange) |
- return null; |
- var lastRange = this.selectors.peekLast().range; |
- return new WebInspector.TextRange(firstRange.startLine, firstRange.startColumn, lastRange.endLine, lastRange.endColumn); |
- }, |
- |
- /** |
- * @param {number} selectorIndex |
- * @return {number} |
- */ |
- lineNumberInSource: function(selectorIndex) |
- { |
- var selector = this.selectors[selectorIndex]; |
- if (!selector || !selector.range || !this.styleSheetId) |
- return 0; |
- var styleSheetHeader = this._cssModel.styleSheetHeaderForId(this.styleSheetId); |
- return styleSheetHeader.lineNumberInSource(selector.range.startLine); |
- }, |
- |
- /** |
- * @param {number} selectorIndex |
- * @return {number|undefined} |
- */ |
- columnNumberInSource: function(selectorIndex) |
- { |
- var selector = this.selectors[selectorIndex]; |
- if (!selector || !selector.range || !this.styleSheetId) |
- return undefined; |
- var styleSheetHeader = this._cssModel.styleSheetHeaderForId(this.styleSheetId); |
- console.assert(styleSheetHeader); |
- return styleSheetHeader.columnNumberInSource(selector.range.startLine, selector.range.startColumn); |
- }, |
- |
- /** |
- * @override |
- * @param {!WebInspector.CSSModel.Edit} edit |
- */ |
- rebase: function(edit) |
- { |
- if (this.styleSheetId !== edit.styleSheetId) |
- return; |
- if (this.selectorRange().equal(edit.oldRange)) { |
- this._reinitializeSelectors(/** @type {!CSSAgent.SelectorList} */(edit.payload)); |
- } else { |
- for (var i = 0; i < this.selectors.length; ++i) |
- this.selectors[i].rebase(edit); |
- } |
- for (var media of this.media) |
- media.rebase(edit); |
- |
- WebInspector.CSSRule.prototype.rebase.call(this, edit); |
- }, |
+ return new WebInspector.CSSStyleRule(cssModel, /** @type {!CSSAgent.CSSRule} */ (dummyPayload)); |
+ } |
+ |
+ /** |
+ * @param {!CSSAgent.SelectorList} selectorList |
+ */ |
+ _reinitializeSelectors(selectorList) { |
+ /** @type {!Array.<!WebInspector.CSSValue>} */ |
+ this.selectors = []; |
+ for (var i = 0; i < selectorList.selectors.length; ++i) |
+ this.selectors.push(new WebInspector.CSSValue(selectorList.selectors[i])); |
+ } |
+ |
+ /** |
+ * @param {string} newSelector |
+ * @return {!Promise.<boolean>} |
+ */ |
+ setSelectorText(newSelector) { |
+ var styleSheetId = this.styleSheetId; |
+ if (!styleSheetId) |
+ throw 'No rule stylesheet id'; |
+ var range = this.selectorRange(); |
+ if (!range) |
+ throw 'Rule selector is not editable'; |
+ return this._cssModel.setSelectorText(styleSheetId, range, newSelector); |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ selectorText() { |
+ return this.selectors.select('text').join(', '); |
+ } |
+ |
+ /** |
+ * @return {?WebInspector.TextRange} |
+ */ |
+ selectorRange() { |
+ var firstRange = this.selectors[0].range; |
+ if (!firstRange) |
+ return null; |
+ var lastRange = this.selectors.peekLast().range; |
+ return new WebInspector.TextRange( |
+ firstRange.startLine, firstRange.startColumn, lastRange.endLine, lastRange.endColumn); |
+ } |
+ |
+ /** |
+ * @param {number} selectorIndex |
+ * @return {number} |
+ */ |
+ lineNumberInSource(selectorIndex) { |
+ var selector = this.selectors[selectorIndex]; |
+ if (!selector || !selector.range || !this.styleSheetId) |
+ return 0; |
+ var styleSheetHeader = this._cssModel.styleSheetHeaderForId(this.styleSheetId); |
+ return styleSheetHeader.lineNumberInSource(selector.range.startLine); |
+ } |
+ |
+ /** |
+ * @param {number} selectorIndex |
+ * @return {number|undefined} |
+ */ |
+ columnNumberInSource(selectorIndex) { |
+ var selector = this.selectors[selectorIndex]; |
+ if (!selector || !selector.range || !this.styleSheetId) |
+ return undefined; |
+ var styleSheetHeader = this._cssModel.styleSheetHeaderForId(this.styleSheetId); |
+ console.assert(styleSheetHeader); |
+ return styleSheetHeader.columnNumberInSource(selector.range.startLine, selector.range.startColumn); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!WebInspector.CSSModel.Edit} edit |
+ */ |
+ rebase(edit) { |
+ if (this.styleSheetId !== edit.styleSheetId) |
+ return; |
+ if (this.selectorRange().equal(edit.oldRange)) { |
+ this._reinitializeSelectors(/** @type {!CSSAgent.SelectorList} */ (edit.payload)); |
+ } else { |
+ for (var i = 0; i < this.selectors.length; ++i) |
+ this.selectors[i].rebase(edit); |
+ } |
+ for (var media of this.media) |
+ media.rebase(edit); |
- __proto__: WebInspector.CSSRule.prototype |
+ super.rebase(edit); |
+ } |
}; |
+ |
/** |
- * @constructor |
- * @param {!WebInspector.CSSModel} cssModel |
- * @param {!CSSAgent.CSSKeyframesRule} payload |
+ * @unrestricted |
*/ |
-WebInspector.CSSKeyframesRule = function(cssModel, payload) |
-{ |
+WebInspector.CSSKeyframesRule = class { |
+ /** |
+ * @param {!WebInspector.CSSModel} cssModel |
+ * @param {!CSSAgent.CSSKeyframesRule} payload |
+ */ |
+ constructor(cssModel, payload) { |
this._cssModel = cssModel; |
this._animationName = new WebInspector.CSSValue(payload.animationName); |
this._keyframes = payload.keyframes.map(keyframeRule => new WebInspector.CSSKeyframeRule(cssModel, keyframeRule)); |
-}; |
- |
-WebInspector.CSSKeyframesRule.prototype = { |
- /** |
- * @return {!WebInspector.CSSValue} |
- */ |
- name: function() |
- { |
- return this._animationName; |
- }, |
- |
- /** |
- * @return {!Array.<!WebInspector.CSSKeyframeRule>} |
- */ |
- keyframes: function() |
- { |
- return this._keyframes; |
- } |
+ } |
+ |
+ /** |
+ * @return {!WebInspector.CSSValue} |
+ */ |
+ name() { |
+ return this._animationName; |
+ } |
+ |
+ /** |
+ * @return {!Array.<!WebInspector.CSSKeyframeRule>} |
+ */ |
+ keyframes() { |
+ return this._keyframes; |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.CSSRule} |
- * @param {!WebInspector.CSSModel} cssModel |
- * @param {!CSSAgent.CSSKeyframeRule} payload |
+ * @unrestricted |
*/ |
-WebInspector.CSSKeyframeRule = function(cssModel, payload) |
-{ |
- WebInspector.CSSRule.call(this, cssModel, payload); |
+WebInspector.CSSKeyframeRule = class extends WebInspector.CSSRule { |
+ /** |
+ * @param {!WebInspector.CSSModel} cssModel |
+ * @param {!CSSAgent.CSSKeyframeRule} payload |
+ */ |
+ constructor(cssModel, payload) { |
+ super(cssModel, payload); |
this._reinitializeKey(payload.keyText); |
-}; |
- |
-WebInspector.CSSKeyframeRule.prototype = { |
- /** |
- * @return {!WebInspector.CSSValue} |
- */ |
- key: function() |
- { |
- return this._keyText; |
- }, |
- |
- /** |
- * @param {!CSSAgent.Value} payload |
- */ |
- _reinitializeKey: function(payload) |
- { |
- this._keyText = new WebInspector.CSSValue(payload); |
- }, |
- |
- /** |
- * @override |
- * @param {!WebInspector.CSSModel.Edit} edit |
- */ |
- rebase: function(edit) |
- { |
- if (this.styleSheetId !== edit.styleSheetId || !this._keyText.range) |
- return; |
- if (edit.oldRange.equal(this._keyText.range)) |
- this._reinitializeKey(/** @type {!CSSAgent.Value} */(edit.payload)); |
- else |
- this._keyText.rebase(edit); |
- |
- WebInspector.CSSRule.prototype.rebase.call(this, edit); |
- }, |
- |
- /** |
- * @param {string} newKeyText |
- * @return {!Promise.<boolean>} |
- */ |
- setKeyText: function(newKeyText) |
- { |
- var styleSheetId = this.styleSheetId; |
- if (!styleSheetId) |
- throw "No rule stylesheet id"; |
- var range = this._keyText.range; |
- if (!range) |
- throw "Keyframe key is not editable"; |
- return this._cssModel.setKeyframeKey(styleSheetId, range, newKeyText); |
- }, |
- |
- __proto__: WebInspector.CSSRule.prototype |
+ } |
+ |
+ /** |
+ * @return {!WebInspector.CSSValue} |
+ */ |
+ key() { |
+ return this._keyText; |
+ } |
+ |
+ /** |
+ * @param {!CSSAgent.Value} payload |
+ */ |
+ _reinitializeKey(payload) { |
+ this._keyText = new WebInspector.CSSValue(payload); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!WebInspector.CSSModel.Edit} edit |
+ */ |
+ rebase(edit) { |
+ if (this.styleSheetId !== edit.styleSheetId || !this._keyText.range) |
+ return; |
+ if (edit.oldRange.equal(this._keyText.range)) |
+ this._reinitializeKey(/** @type {!CSSAgent.Value} */ (edit.payload)); |
+ else |
+ this._keyText.rebase(edit); |
+ |
+ super.rebase(edit); |
+ } |
+ |
+ /** |
+ * @param {string} newKeyText |
+ * @return {!Promise.<boolean>} |
+ */ |
+ setKeyText(newKeyText) { |
+ var styleSheetId = this.styleSheetId; |
+ if (!styleSheetId) |
+ throw 'No rule stylesheet id'; |
+ var range = this._keyText.range; |
+ if (!range) |
+ throw 'Keyframe key is not editable'; |
+ return this._cssModel.setKeyframeKey(styleSheetId, range, newKeyText); |
+ } |
}; |