summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/markup/test/actor_events_form.js
blob: bd1b1e91aa9b083bd69127a8c81bf7d4d7ca3bd3 (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
59
60
61
62
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

// This test actor is used for testing the addition of custom form data
// on NodeActor. Custom form property is set when 'form' event is sent
// by NodeActor actor (see 'onNodeActorForm' method).

const Events = require("sdk/event/core");
const {ActorClassWithSpec, Actor, FrontClassWithSpec, Front, generateActorSpec} =
  require("devtools/shared/protocol");

const {NodeActor} = require("devtools/server/actors/inspector");

var eventsSpec = generateActorSpec({
  typeName: "eventsFormActor",

  methods: {
    attach: {
      request: {},
      response: {}
    },
    detach: {
      request: {},
      response: {}
    }
  }
});

var EventsFormActor = ActorClassWithSpec(eventsSpec, {
  initialize: function () {
    Actor.prototype.initialize.apply(this, arguments);
  },

  attach: function () {
    Events.on(NodeActor, "form", this.onNodeActorForm);
  },

  detach: function () {
    Events.off(NodeActor, "form", this.onNodeActorForm);
  },

  onNodeActorForm: function (event) {
    let nodeActor = event.target;
    if (nodeActor.rawNode.id == "container") {
      let form = event.data;
      form.setFormProperty("test-property", "test-value");
    }
  }
});

var EventsFormFront = FrontClassWithSpec(eventsSpec, {
  initialize: function (client, form) {
    Front.prototype.initialize.apply(this, arguments);

    this.actorID = form[EventsFormActor.prototype.typeName];
    this.manage(this);
  }
});

exports.EventsFormFront = EventsFormFront;