| 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 06759431f7011749dd740f8179f896fd0e71e48a..cf1ea20ce334cc1526dd74d311496be916a609bb 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/sdk/CSSStyleModel.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/sdk/CSSStyleModel.js
|
| @@ -80,6 +80,48 @@ WebInspector.CSSStyleModel.PseudoStateMarker = "pseudo-state-marker";
|
|
|
| WebInspector.CSSStyleModel.prototype = {
|
| /**
|
| + * @param {!Array<!CSSAgent.StyleSheetId>} styleSheetIds
|
| + * @param {!Array<!WebInspector.TextRange>} ranges
|
| + * @param {!Array<string>} texts
|
| + * @param {boolean} majorChange
|
| + * @return {!Promise<?Array<!CSSAgent.CSSStyle>>}
|
| + */
|
| + setStyleTexts: function(styleSheetIds, ranges, texts, majorChange)
|
| + {
|
| + /**
|
| + * @param {?Protocol.Error} error
|
| + * @param {?Array<!CSSAgent.CSSStyle>} stylePayloads
|
| + * @return {?Array<!CSSAgent.CSSStyle>}
|
| + * @this {WebInspector.CSSStyleModel}
|
| + */
|
| + function parsePayload(error, stylePayloads)
|
| + {
|
| + if (error || !stylePayloads || !stylePayloads.length)
|
| + return null;
|
| +
|
| + if (majorChange)
|
| + this._domModel.markUndoableState();
|
| + var uniqueIDs = new Set(styleSheetIds);
|
| + for (var styleSheetId of uniqueIDs)
|
| + this._fireStyleSheetChanged(styleSheetId);
|
| + return stylePayloads;
|
| + }
|
| +
|
| + console.assert(styleSheetIds.length === ranges.length && ranges.length === texts.length, "Array lengths must be equal");
|
| + var edits = [];
|
| + for (var i = 0; i < styleSheetIds.length; ++i) {
|
| + edits.push({
|
| + styleSheetId: styleSheetIds[i],
|
| + range: ranges[i].serializeToObject(),
|
| + text: texts[i]
|
| + });
|
| + }
|
| +
|
| + return this._agent.setStyleTexts(edits, parsePayload.bind(this))
|
| + .catchException(/** @type {?Array<!CSSAgent.CSSStyle>} */(null));
|
| + },
|
| +
|
| + /**
|
| * @return {!Promise.<!Array.<!WebInspector.CSSMedia>>}
|
| */
|
| mediaQueriesPromise: function()
|
| @@ -946,28 +988,21 @@ WebInspector.CSSStyleDeclaration.prototype = {
|
| */
|
| setText: function(text, majorChange)
|
| {
|
| - if (!this.styleSheetId)
|
| - return Promise.resolve(false);
|
| -
|
| /**
|
| - * @param {?Protocol.Error} error
|
| - * @param {?CSSAgent.CSSStyle} stylePayload
|
| + * @param {?Array<!CSSAgent.CSSStyle>} stylePayloads
|
| * @return {boolean}
|
| * @this {WebInspector.CSSStyleDeclaration}
|
| */
|
| - function parsePayload(error, stylePayload)
|
| + function onPayload(stylePayloads)
|
| {
|
| - if (error || !stylePayload)
|
| + if (!stylePayloads)
|
| return false;
|
| -
|
| - if (majorChange)
|
| - this._cssModel._domModel.markUndoableState();
|
| - this._reinitialize(stylePayload);
|
| - this._cssModel._fireStyleSheetChanged(this.styleSheetId);
|
| + this._reinitialize(stylePayloads[0]);
|
| return true;
|
| }
|
|
|
| - return this._cssModel._agent.setStyleText(this.styleSheetId, this.range.serializeToObject(), text, parsePayload.bind(this))
|
| + return this._cssModel.setStyleTexts([this.styleSheetId], [this.range], [text], majorChange)
|
| + .then(onPayload.bind(this))
|
| .catchException(false);
|
| },
|
|
|
|
|