summaryrefslogtreecommitdiffstats
path: root/devtools/shared/specs/style-sheet.js
blob: 327d2b8ec4444f4b5220bac57de9a2e56eac8856 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* 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");

// Load the "mediarule" type used in this file.
require("devtools/shared/specs/media-rule");

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"),
      cause: Arg(2, "nullable:string"),
    },
    "media-rules-changed": {
      type: "mediaRulesChanged",
      rules: Arg(0, "array:mediarule"),
    },
  },

  methods: {
    // This is only called from StyleSheetFront#guessIndentation, which is only called
    // from RuleRewriter#getDefaultIndentation when the rule's parent stylesheet isn't
    // a resource. Once we support StyleSheet resource everywhere, this method can be
    // removed (See Bug 1672090 for more information).
    getText: {
      response: {
        text: RetVal("longstring"),
      },
    },
    getMediaRules: {
      request: {},
      response: {
        mediaRules: RetVal("nullable:array:mediarule"),
      },
    },
  },
});

exports.styleSheetSpec = styleSheetSpec;