gecko-dev/devtools/shared/specs/stylesheets.js

98 строки
2.0 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,
types,
} = require("devtools/shared/protocol");
const mediaRuleSpec = generateActorSpec({
typeName: "mediarule",
events: {
"matches-change": {
type: "matchesChange",
matches: Arg(0, "boolean"),
},
},
});
exports.mediaRuleSpec = mediaRuleSpec;
types.addActorType("stylesheet");
const styleSheetSpec = generateActorSpec({
typeName: "stylesheet",
events: {
"property-change": {
type: "propertyChange",
property: Arg(0, "string"),
value: Arg(1, "json"),
},
"style-applied": {
type: "styleApplied",
kind: Arg(0, "number"),
styleSheet: Arg(1, "stylesheet"),
},
"media-rules-changed": {
type: "mediaRulesChanged",
rules: Arg(0, "array:mediarule"),
},
},
methods: {
toggleDisabled: {
response: { disabled: RetVal("boolean") },
},
getText: {
response: {
text: RetVal("longstring"),
},
},
getMediaRules: {
request: {},
response: {
mediaRules: RetVal("nullable:array:mediarule"),
},
},
update: {
request: {
text: Arg(0, "string"),
transition: Arg(1, "boolean"),
},
},
},
});
exports.styleSheetSpec = styleSheetSpec;
const styleSheetsSpec = generateActorSpec({
typeName: "stylesheets",
events: {
"stylesheet-added": {
type: "stylesheetAdded",
sheet: Arg(0, "stylesheet"),
isNew: Arg(1, "boolean"),
},
},
methods: {
getStyleSheets: {
request: {},
response: { styleSheets: RetVal("array:stylesheet") },
},
addStyleSheet: {
request: { text: Arg(0, "string") },
response: { styleSheet: RetVal("stylesheet") },
},
},
});
exports.styleSheetsSpec = styleSheetsSpec;