Миксин 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