get worker()

in default/cve5/cve.js [240:274]


        get worker() {
            if (this.registration) {
                return Promise.resolve(this.registration.active);
            }

            let serviceUri = this.serviceUri;

            let initWorker = (worker) => {
                let init_msg = { type: 'init',
                                serviceUri };

                this.simpleMessage(worker, init_msg);
            };

            return navigator.serviceWorker.register(this.swPath)
                .then(reg => {
                    this.registration = reg;

                    if (reg.installing != undefined) {
                        return new Promise(resolve => {
                            let worker = reg.installing;

                            worker.addEventListener('statechange', (e) => {
                                if (e.target.state == 'activated') {
                                    initWorker(e.target);
                                    resolve(e.target);
                                }
                            });
                        });
                    } else {
                        initWorker(reg.active);
                        return reg.active;
                    }
                });
        }