[SecureContext, Exposed=(Window,Worker)] interface NavigationPreloadManager { Promise<undefined> enable(); Promise<undefined> disable(); Promise<undefined> setHeaderValue(ByteString value); Promise<NavigationPreloadState> getState(); }; dictionary NavigationPreloadState { boolean enabled = false; ByteString headerValue; };
3.6.1 Метод enable()
Шаги метода enable():
1. Пусть обещание promise станет новым обещанием. 2. Параллельно выполните следующие шаги: 3. Пусть регистрация registration будет связанной регистрацией работника службы этого this. 4. Если активный работник регистрации registration равен null, отклоните обещание promise с помощью исключения "InvalidStateError" DOMException и прервите эти шаги. 5. Установите флаг включения предварительной загрузки навигации registration. 6. Разрешить обещание promise с undefined. 7. Вернуть promise.
3.6.2 Метод disable()
Шаги метода disable():
1. Пусть обещание promise станет новым обещанием. 2. Параллельно выполните следующие шаги: 3. Пусть регистрация registration будет связанной регистрацией работника службы этого this. 4. Если активный работник регистрации registration равен null, отклоните обещание promise с помощью исключения "InvalidStateError" DOMException и прервите эти шаги. 5. Снимите флаг включения предварительной загрузки навигации registration. 6. Разрешить обещание promise с undefined. 7. Вернуть promise.
3.6.3 Метод setHeaderValue(value)
Шаги метода setHeaderValue(value):
1. Пусть обещание promise станет новым обещанием. 2. Параллельно выполните следующие шаги: 3. Пусть регистрация registration будет связанной регистрацией работника службы этого this. 4. Если активный работник регистрации registration равен null, отклоните обещание promise с помощью исключения "InvalidStateError" DOMException и прервите эти шаги. 5. Установите значение заголовка предварительной загрузки навигации регистрации registration в значение value. 6. Разрешить обещание promise с undefined. 7. Вернуть promise.
3.6.4 Метод getState()
Шаги метода getState():
1. Пусть обещание promise станет новым обещанием. 2. Параллельно выполните следующие шаги: 3. Пусть регистрация registration будет связанной регистрацией работника службы этого this. 4. Пусть состояние state будет новым словарем NavigationPreloadState. 5. Если установлен флаг включения предварительной загрузки навигации registration, установите для state["enabled"] значение true. 6. Задайте для state["headerValue"] значение заголовка предварительной загрузки навигации registration. 7. Выполните обещание promise с state. 8. Вернуть promise.
Информационные ссылки
Стандарт Service Workers Nightly — https://w3c.github.io/ServiceWorker/#navigation-preload-manager