diff options
Diffstat (limited to '')
-rw-r--r-- | devtools/shared/specs/style-rule.js | 73 | ||||
-rw-r--r-- | devtools/shared/specs/style-sheets.js | 49 | ||||
-rw-r--r-- | devtools/shared/specs/style/moz.build | 9 | ||||
-rw-r--r-- | devtools/shared/specs/style/style-types.js | 73 |
4 files changed, 204 insertions, 0 deletions
diff --git a/devtools/shared/specs/style-rule.js b/devtools/shared/specs/style-rule.js new file mode 100644 index 0000000000..cb06a578b9 --- /dev/null +++ b/devtools/shared/specs/style-rule.js @@ -0,0 +1,73 @@ +/* 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("resource://devtools/shared/protocol.js"); + +// Load the shared types for style actors +require("resource://devtools/shared/specs/style/style-types.js"); + +types.addDictType("domstylerule.queryContainerForNodeReturn", { + node: "nullable:domnode", + containerType: "nullable:string", + blockSize: "nullable:string", + inlineSize: "nullable:string", +}); + +const styleRuleSpec = generateActorSpec({ + typeName: "domstylerule", + + events: { + "location-changed": { + type: "locationChanged", + line: Arg(0, "number"), + column: Arg(1, "number"), + }, + "rule-updated": { + type: "ruleUpdated", + rule: Arg(0, "domstylerule"), + }, + }, + + methods: { + getRuleText: { + response: { + text: RetVal("string"), + }, + }, + setRuleText: { + request: { + newText: Arg(0, "string"), + modifications: Arg(1, "array:json"), + }, + response: { rule: RetVal("domstylerule") }, + }, + modifyProperties: { + request: { modifications: Arg(0, "array:json") }, + response: { rule: RetVal("domstylerule") }, + }, + modifySelector: { + request: { + node: Arg(0, "domnode"), + value: Arg(1, "string"), + editAuthored: Arg(2, "boolean"), + }, + response: RetVal("modifiedStylesReturn"), + }, + getQueryContainerForNode: { + request: { + ancestorRuleIndex: Arg(0, "number"), + node: Arg(1, "domnode"), + }, + response: RetVal("domstylerule.queryContainerForNodeReturn"), + }, + }, +}); + +exports.styleRuleSpec = styleRuleSpec; diff --git a/devtools/shared/specs/style-sheets.js b/devtools/shared/specs/style-sheets.js new file mode 100644 index 0000000000..94d3e72f5f --- /dev/null +++ b/devtools/shared/specs/style-sheets.js @@ -0,0 +1,49 @@ +/* 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") }, + }, + update: { + request: { + resourceId: Arg(0, "string"), + text: Arg(1, "string"), + transition: Arg(2, "boolean"), + cause: Arg(3, "nullable:string"), + }, + response: {}, + }, + }, +}); + +exports.styleSheetsSpec = styleSheetsSpec; diff --git a/devtools/shared/specs/style/moz.build b/devtools/shared/specs/style/moz.build new file mode 100644 index 0000000000..56883cc51a --- /dev/null +++ b/devtools/shared/specs/style/moz.build @@ -0,0 +1,9 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# 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/. + +DevToolsModules( + "style-types.js", +) diff --git a/devtools/shared/specs/style/style-types.js b/devtools/shared/specs/style/style-types.js new file mode 100644 index 0000000000..b752073b43 --- /dev/null +++ b/devtools/shared/specs/style/style-types.js @@ -0,0 +1,73 @@ +/* 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 { RetVal, types } = require("resource://devtools/shared/protocol.js"); + +// Predeclare the domstylerule actor type +types.addActorType("domstylerule"); + +/** + * When asking for the styles applied to a node, we return a list of + * appliedstyle json objects that lists the rules that apply to the node + * and which element they were inherited from (if any). + */ +types.addDictType("appliedstyle", { + rule: "domstylerule", + inherited: "nullable:domnode#actorid", + keyframes: "nullable:domstylerule", +}); + +types.addDictType("matchedselector", { + rule: "domstylerule#actorid", + selector: "string", + value: "string", + status: "number", +}); + +types.addDictType("appliedStylesReturn", { + entries: "array:appliedstyle", +}); + +types.addDictType("modifiedStylesReturn", { + isMatching: RetVal("boolean"), + ruleProps: RetVal("nullable:appliedStylesReturn"), +}); + +types.addDictType("fontpreview", { + data: "nullable:longstring", + size: "json", +}); + +types.addDictType("fontvariationaxis", { + tag: "string", + name: "string", + minValue: "number", + maxValue: "number", + defaultValue: "number", +}); + +types.addDictType("fontvariationinstancevalue", { + axis: "string", + value: "number", +}); + +types.addDictType("fontvariationinstance", { + name: "string", + values: "array:fontvariationinstancevalue", +}); + +types.addDictType("fontface", { + name: "string", + CSSFamilyName: "string", + rule: "nullable:domstylerule", + srcIndex: "number", + URI: "string", + format: "string", + preview: "nullable:fontpreview", + localName: "string", + metadata: "string", + variationAxes: "array:fontvariationaxis", + variationInstances: "array:fontvariationinstance", +}); |