To detect the indentation of a given stylesheet when adding a property to an empty rule, we would retrieve the whole stylesheet text on the client and then run some heuristics. This is quite costly, stylesheet can be quite large and sending all that text from the server to the client isn't ideal. This patch adds a `getStyleSheetIndentation` RDP method to the `StyleSheetsActor`, so we're only getting what we want. We also fix the backward compat case when adding property to an empty rule in a large stylesheet, by taking the initial text from the long string front we get in such case. Differential Revision: https://phabricator.services.mozilla.com/D269349
54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
"use strict";
|
|
|
|
const {
|
|
Arg,
|
|
RetVal,
|
|
generateActorSpec,
|
|
} = require("resource://devtools/shared/protocol.js");
|
|
|
|
const styleSheetsSpec = generateActorSpec({
|
|
typeName: "stylesheets",
|
|
|
|
events: {},
|
|
|
|
methods: {
|
|
getTraits: {
|
|
request: {},
|
|
response: { traits: RetVal("json") },
|
|
},
|
|
addStyleSheet: {
|
|
request: {
|
|
text: Arg(0, "string"),
|
|
fileName: Arg(1, "nullable:string"),
|
|
},
|
|
response: {},
|
|
},
|
|
toggleDisabled: {
|
|
request: { resourceId: Arg(0, "string") },
|
|
response: { disabled: RetVal("boolean") },
|
|
},
|
|
getText: {
|
|
request: { resourceId: Arg(0, "string") },
|
|
response: { text: RetVal("longstring") },
|
|
},
|
|
getStyleSheetIndentation: {
|
|
request: { resourceId: Arg(0, "string") },
|
|
response: { indentation: RetVal("string") },
|
|
},
|
|
update: {
|
|
request: {
|
|
resourceId: Arg(0, "string"),
|
|
text: Arg(1, "string"),
|
|
transition: Arg(2, "boolean"),
|
|
cause: Arg(3, "nullable:string"),
|
|
},
|
|
response: {},
|
|
},
|
|
},
|
|
});
|
|
|
|
exports.styleSheetsSpec = styleSheetsSpec;
|