Bug 1796551 [wpt PR 36570] - WebKit export of https://bugs.webkit.org/show_bug.cgi...
[gecko.git] / toolkit / actors / TestWindowParent.sys.mjs
blobd7d0c2b547f43525e7347fcfdd63d1b5856bf8ee
1 /* vim: set ts=2 sw=2 sts=2 et tw=80: */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 export class TestWindowParent extends JSWindowActorParent {
7   constructor() {
8     super();
9     this.wrappedJSObject = this;
10     this.sawActorCreated = false;
11   }
13   actorCreated() {
14     this.sawActorCreated = true;
15   }
17   receiveMessage(aMessage) {
18     switch (aMessage.name) {
19       case "init":
20         aMessage.data.initial = true;
21         this.sendAsyncMessage("toChild", aMessage.data);
22         break;
23       case "toParent":
24         aMessage.data.toParent = true;
25         this.sendAsyncMessage("done", aMessage.data);
26         break;
27       case "asyncMul":
28         let { a, b } = aMessage.data;
29         return { result: a * b };
31       case "event":
32         Services.obs.notifyObservers(
33           this,
34           "test-js-window-actor-parent-event",
35           aMessage.data.type
36         );
37         break;
38     }
40     return undefined;
41   }
43   show() {
44     return "TestWindowParent";
45   }