HTML | Миксин WindowOrWorkerGlobalScope

HTML | Миксин WindowOrWorkerGlobalScope

Миксин 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 | Оглавление

Стандарт HTML — Раздел «The WindowOrWorkerGlobalScope mixin» — https://html.spec.whatwg.org/multipage/webappapis.html#windoworworkerglobalscope-mixin