service-worker-registration.js (1738B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 "use strict"; 5 6 const { 7 serviceWorkerRegistrationSpec, 8 } = require("resource://devtools/shared/specs/worker/service-worker-registration.js"); 9 const { 10 FrontClassWithSpec, 11 registerFront, 12 types, 13 } = require("resource://devtools/shared/protocol.js"); 14 15 class ServiceWorkerRegistrationFront extends FrontClassWithSpec( 16 serviceWorkerRegistrationSpec 17 ) { 18 get active() { 19 return this._form.active; 20 } 21 22 get fetch() { 23 return this._form.fetch; 24 } 25 26 get id() { 27 return this.url; 28 } 29 30 get lastUpdateTime() { 31 return this._form.lastUpdateTime; 32 } 33 34 get scope() { 35 return this._form.scope; 36 } 37 38 get type() { 39 return this._form.type; 40 } 41 42 get url() { 43 return this._form.url; 44 } 45 46 get origin() { 47 return this._form.origin; 48 } 49 50 get evaluatingWorker() { 51 return this._getServiceWorker("evaluatingWorker"); 52 } 53 54 get activeWorker() { 55 return this._getServiceWorker("activeWorker"); 56 } 57 58 get installingWorker() { 59 return this._getServiceWorker("installingWorker"); 60 } 61 62 get waitingWorker() { 63 return this._getServiceWorker("waitingWorker"); 64 } 65 66 _getServiceWorker(type) { 67 const workerForm = this._form[type]; 68 if (!workerForm) { 69 return null; 70 } 71 return types.getType("serviceWorker").read(workerForm, this); 72 } 73 74 form(form) { 75 this.actorID = form.actor; 76 this._form = form; 77 // @backward-compat { version 70 } ServiceWorkerRegistration actor now exposes traits 78 this.traits = form.traits || {}; 79 } 80 } 81 82 registerFront(ServiceWorkerRegistrationFront);