Mypal/devtools/shared/specs/worker.js

79 lines
1.6 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} = require("devtools/shared/protocol");
const workerSpec = generateActorSpec({
typeName: "worker",
methods: {
attach: {
request: {},
response: RetVal("json")
},
detach: {
request: {},
response: RetVal("json")
},
connect: {
request: {
options: Arg(0, "json"),
},
response: RetVal("json")
},
push: {
request: {},
response: RetVal("json")
},
},
});
exports.workerSpec = workerSpec;
const pushSubscriptionSpec = generateActorSpec({
typeName: "pushSubscription",
});
exports.pushSubscriptionSpec = pushSubscriptionSpec;
const serviceWorkerRegistrationSpec = generateActorSpec({
typeName: "serviceWorkerRegistration",
events: {
"push-subscription-modified": {
type: "push-subscription-modified"
},
"registration-changed": {
type: "registration-changed"
}
},
methods: {
start: {
request: {},
response: RetVal("json")
},
unregister: {
request: {},
response: RetVal("json")
},
getPushSubscription: {
request: {},
response: {
subscription: RetVal("nullable:pushSubscription")
}
},
},
});
exports.serviceWorkerRegistrationSpec = serviceWorkerRegistrationSpec;
const serviceWorkerSpec = generateActorSpec({
typeName: "serviceWorker",
});
exports.serviceWorkerSpec = serviceWorkerSpec;