Files
Nicolas Chevobbe f37ae3280a Bug 1994758 - [devtools] Retrieve stylesheet indentation directly from the server. r=devtools-reviewers,devtools-backward-compat-reviewers,ochameau.
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
2025-10-21 13:22:35 +00:00

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;