| Index: third_party/WebKit/Source/devtools/front_end/sdk/CSSStyleModel.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/CSSStyleModel.js b/third_party/WebKit/Source/devtools/front_end/sdk/CSSStyleModel.js
|
| index 32df7ceb69d99e4d6e629d224e1dbb120857af68..d425b5bf77bada9a67b5f1557a0756ed3af9e221 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/sdk/CSSStyleModel.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/sdk/CSSStyleModel.js
|
| @@ -131,10 +131,11 @@ WebInspector.CSSStyleModel.prototype = {
|
| * @param {!Array.<!CSSAgent.RuleMatch>=} matchedPayload
|
| * @param {!Array.<!CSSAgent.PseudoElementMatches>=} pseudoPayload
|
| * @param {!Array.<!CSSAgent.InheritedStyleEntry>=} inheritedPayload
|
| + * @param {!Array.<!CSSAgent.CSSKeyframesRule>=} animationsPayload
|
| * @return {?WebInspector.CSSStyleModel.MatchedStyleResult}
|
| * @this {WebInspector.CSSStyleModel}
|
| */
|
| - function callback(error, inlinePayload, attributesPayload, matchedPayload, pseudoPayload, inheritedPayload)
|
| + function callback(error, inlinePayload, attributesPayload, matchedPayload, pseudoPayload, inheritedPayload, animationsPayload)
|
| {
|
| if (error)
|
| return null;
|
| @@ -143,7 +144,7 @@ WebInspector.CSSStyleModel.prototype = {
|
| if (!node)
|
| return null;
|
|
|
| - return new WebInspector.CSSStyleModel.MatchedStyleResult(this, node, inlinePayload, attributesPayload, matchedPayload, pseudoPayload, inheritedPayload);
|
| + return new WebInspector.CSSStyleModel.MatchedStyleResult(this, node, inlinePayload, attributesPayload, matchedPayload, pseudoPayload, inheritedPayload, animationsPayload);
|
| }
|
|
|
| return this._agent.getMatchedStylesForNode(nodeId, callback.bind(this));
|
| @@ -1034,7 +1035,7 @@ WebInspector.CSSValue.prototype = {
|
| /**
|
| * @constructor
|
| * @param {!WebInspector.CSSStyleModel} cssModel
|
| - * @param {!CSSAgent.CSSRule} payload
|
| + * @param {{style: !CSSAgent.CSSStyle, styleSheetId: (string|undefined), origin: !CSSAgent.StyleSheetOrigin}} payload
|
| */
|
| WebInspector.CSSRule = function(cssModel, payload)
|
| {
|
| @@ -1150,9 +1151,9 @@ WebInspector.CSSStyleRule.prototype = {
|
| /**
|
| * @param {!DOMAgent.NodeId} nodeId
|
| * @param {string} newSelector
|
| - * @param {function(boolean)} userCallback
|
| + * @return {!Promise.<boolean>}
|
| */
|
| - setSelectorText: function(nodeId, newSelector, userCallback)
|
| + setSelectorText: function(nodeId, newSelector)
|
| {
|
| /**
|
| * @param {?Protocol.Error} error
|
| @@ -1175,10 +1176,9 @@ WebInspector.CSSStyleRule.prototype = {
|
| if (!range)
|
| throw "Rule selector is not editable";
|
| WebInspector.userMetrics.actionTaken(WebInspector.UserMetrics.Action.StyleRuleEdited);
|
| - this._cssModel._agent.setRuleSelector(this.styleSheetId, range, newSelector, callback.bind(this))
|
| + return this._cssModel._agent.setRuleSelector(this.styleSheetId, range, newSelector, callback.bind(this))
|
| .then(onNewSelectors.bind(this))
|
| - .catchException(false)
|
| - .then(userCallback);
|
| + .catchException(false);
|
|
|
| /**
|
| * @param {?Array<!WebInspector.CSSValue>} selectors
|
| @@ -1306,6 +1306,105 @@ WebInspector.CSSStyleRule.prototype = {
|
|
|
| /**
|
| * @constructor
|
| + * @param {!WebInspector.CSSStyleModel} cssModel
|
| + * @param {!CSSAgent.CSSKeyframesRule} payload
|
| + */
|
| +WebInspector.CSSKeyframesRule = function(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;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * @constructor
|
| + * @extends {WebInspector.CSSRule}
|
| + * @param {!WebInspector.CSSStyleModel} cssModel
|
| + * @param {!CSSAgent.CSSKeyframeRule} payload
|
| + */
|
| +WebInspector.CSSKeyframeRule = function(cssModel, payload)
|
| +{
|
| + WebInspector.CSSRule.call(this, cssModel, payload);
|
| + this._keyText = new WebInspector.CSSValue(payload.keyText);
|
| +}
|
| +
|
| +WebInspector.CSSKeyframeRule.prototype = {
|
| + /**
|
| + * @return {!WebInspector.CSSValue}
|
| + */
|
| + key: function()
|
| + {
|
| + return this._keyText;
|
| + },
|
| +
|
| + /**
|
| + * @override
|
| + * @param {string} styleSheetId
|
| + * @param {!WebInspector.TextRange} oldRange
|
| + * @param {!WebInspector.TextRange} newRange
|
| + */
|
| + sourceStyleSheetEdited: function(styleSheetId, oldRange, newRange)
|
| + {
|
| + if (this.styleSheetId === styleSheetId)
|
| + this._keyText.sourceStyleRuleEdited(oldRange, newRange);
|
| + WebInspector.CSSRule.prototype.sourceStyleSheetEdited.call(this, styleSheetId, oldRange, newRange);
|
| + },
|
| +
|
| + /**
|
| + * @param {string} newKeyText
|
| + * @return {!Promise.<boolean>}
|
| + */
|
| + setKeyText: function(newKeyText)
|
| + {
|
| + /**
|
| + * @param {?Protocol.Error} error
|
| + * @param {!CSSAgent.Value} payload
|
| + * @return {boolean}
|
| + * @this {WebInspector.CSSKeyframeRule}
|
| + */
|
| + function callback(error, payload)
|
| + {
|
| + if (error || !payload)
|
| + return false;
|
| + this._cssModel._domModel.markUndoableState();
|
| + this._cssModel._fireStyleSheetChanged(/** @type {string} */(this.styleSheetId));
|
| + this._keyText = new WebInspector.CSSValue(payload);
|
| + return true;
|
| + }
|
| +
|
| + if (!this.styleSheetId)
|
| + throw "No rule stylesheet id";
|
| + var range = this._keyText.range;
|
| + if (!range)
|
| + throw "Keyframe key is not editable";
|
| + WebInspector.userMetrics.actionTaken(WebInspector.UserMetrics.Action.StyleRuleEdited);
|
| + return this._cssModel._agent.setKeyframeKey(this.styleSheetId, range, newKeyText, callback.bind(this))
|
| + .catchException(false);
|
| + },
|
| +
|
| + __proto__: WebInspector.CSSRule.prototype
|
| +}
|
| +
|
| +/**
|
| + * @constructor
|
| * @param {!WebInspector.CSSStyleDeclaration} ownerStyle
|
| * @param {number} index
|
| * @param {string} name
|
| @@ -2126,14 +2225,16 @@ WebInspector.CSSStyleModel.fromNode = function(node)
|
| * @param {!Array.<!CSSAgent.RuleMatch>=} matchedPayload
|
| * @param {!Array.<!CSSAgent.PseudoElementMatches>=} pseudoPayload
|
| * @param {!Array.<!CSSAgent.InheritedStyleEntry>=} inheritedPayload
|
| + * @param {!Array.<!CSSAgent.CSSKeyframesRule>=} animationsPayload
|
| */
|
| -WebInspector.CSSStyleModel.MatchedStyleResult = function(cssModel, node, inlinePayload, attributesPayload, matchedPayload, pseudoPayload, inheritedPayload)
|
| +WebInspector.CSSStyleModel.MatchedStyleResult = function(cssModel, node, inlinePayload, attributesPayload, matchedPayload, pseudoPayload, inheritedPayload, animationsPayload)
|
| {
|
| this._cssModel = cssModel;
|
| this._node = node;
|
| this._nodeStyles = [];
|
| this._nodeForStyle = new Map();
|
| this._inheritedStyles = new Set();
|
| + this._keyframes = [];
|
|
|
| /**
|
| * @this {WebInspector.CSSStyleModel.MatchedStyleResult}
|
| @@ -2211,6 +2312,9 @@ WebInspector.CSSStyleModel.MatchedStyleResult = function(cssModel, node, inlineP
|
| }
|
| }
|
|
|
| + if (animationsPayload)
|
| + this._keyframes = animationsPayload.map(rule => new WebInspector.CSSKeyframesRule(cssModel, rule));
|
| +
|
| this.resetActiveProperties();
|
| }
|
|
|
| @@ -2255,6 +2359,14 @@ WebInspector.CSSStyleModel.MatchedStyleResult.prototype = {
|
| },
|
|
|
| /**
|
| + * @return {!Array.<!WebInspector.CSSKeyframesRule>}
|
| + */
|
| + keyframes: function()
|
| + {
|
| + return this._keyframes;
|
| + },
|
| +
|
| + /**
|
| * @return {!Map.<!DOMAgent.PseudoType, !Array<!WebInspector.CSSStyleDeclaration>>}
|
| */
|
| pseudoStyles: function()
|
|
|