Спецификация Service Workers расширяется за счет других спецификаций.
7.1. Определите API, привязанный к регистрации Service Worker
Спецификации могут определять API, привязанный к регистрации работника службы, используя определение частичного интерфейса для интерфейса ServiceWorkerRegistration, где он может определять специфические для спецификации атрибуты и методы:
ПРИМЕР 5
partial interface ServiceWorkerRegistration { // например определить пространство имен API readonly attribute APISpaceType APISpace; // например определить метод Promise<T> methodName(/* list of arguments */); };
7.2. Определить функциональное событие
Спецификации могут определять функциональное событие путем расширения интерфейса ExtendableEvent:
ПРИМЕР 6
// например определить интерфейс FunctionalEvent interface FunctionalEvent : ExtendableEvent { // добавить собственные атрибуты и методы функционального события };
7.3. Определить обработчик событий
Спецификации могут определять атрибут обработчика событий для соответствующего функционального события, используя определение частичного интерфейса для интерфейса ServiceWorkerGlobalScope:
ПРИМЕР 7
partial interface ServiceWorkerGlobalScope { attribute EventHandler onfunctionalevent; };
7.4. Запуск функциональных событий
Чтобы запросить отправку функционального события активному работнику из регистрации работника службы, спецификации должны вызывать Функциональное Событие Пожара.
Информационные ссылки
Стандарт Service Workers Nightly — https://w3c.github.io/ServiceWorker/#extensibility