Миксин WindowOrWorkerGlobalScope предназначен для использования API, которые должны быть представлены в объектах Window и WorkerGlobalScope.
Другие стандарты поощряются к его дальнейшему расширению с использованием «частичного микса интерфейса» partial interface mixin WindowOrWorkerGlobalScope {…}; вместе с соответствующей справкой.
typedef (DOMString or Function) TimerHandler;
interface mixin WindowOrWorkerGlobalScope {
[Replaceable] readonly attribute USVString origin;
readonly attribute boolean isSecureContext;
readonly attribute boolean crossOriginIsolated;
undefined reportError(any e);
// base64 utility methods
DOMString btoa(DOMString data);
ByteString atob(DOMString data);
// timers
long setTimeout(TimerHandler handler, optional long timeout = 0, any... arguments);
undefined clearTimeout(optional long id = 0);
long setInterval(TimerHandler handler, optional long timeout = 0, any... arguments);
undefined clearInterval(optional long id = 0);
// microtask queuing
undefined queueMicrotask(VoidFunction callback);
// ImageBitmap
Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, optional ImageBitmapOptions options = {});
Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh, optional ImageBitmapOptions options = {});
// structured cloning
any structuredClone(any value, optional StructuredSerializeOptions options = {});
};
Window includes WindowOrWorkerGlobalScope;
WorkerGlobalScope includes WindowOrWorkerGlobalScope;
self.isSecureContext
Возвращает значение, указывающее, представляет ли этот глобальный объект безопасный контекст. [SECURE-CONTEXTS]
self.origin
Возвращает источник глобального объекта, сериализованный как строка.
self.crossOriginIsolated
Возвращает, разрешено ли сценариям, работающим в этом глобальном, использовать API, требующие изоляции между источниками. Это зависит от заголовков ответа HTTP «Cross-Origin-Opener-Policy» и «Cross-Origin-Embedder-Policy», а также от функции cross-origin-isolated (изолирования между источниками).
Разработчикам настоятельно рекомендуется использовать self.origin вместо location.origin. Первый возвращает источник origin среды, второй — URL-адрес среды. Представьте, что следующий скрипт выполняется в документе на https://stargate.example/:
var frame = document.createElement("iframe") frame.onload = function() { var frameWin = frame.contentWindow console.log(frameWin.location.origin) // "null" console.log(frameWin.origin) // "https://stargate.example" } document.body.appendChild(frame)
self.origin — более надёжный индикатор безопасности.
Шаги получателя isSecureContext должны возвращать true, если соответствующий объект настроек объекта контекста this является безопасным контекстом, или false в противном случае.
Шаги получателя источника origin должны возвращать источник соответствующий объект настроек объекта контекста this, сериализованный.
Шаги получателя crossOriginIsolated заключаются в том, чтобы вернуть возможность изоляции между источниками соответствующего объекта настроек объекта контекста this.
Информационные ссылки
Стандарт HTML — Раздел «The WindowOrWorkerGlobalScope mixin» — https://html.spec.whatwg.org/multipage/webappapis.html#windoworworkerglobalscope-mixin