WorkerGlobalScope: crossOriginIsolated-Eigenschaft
Hinweis: Dieses Feature ist nur verfügbar in Web Workers.
Die nur lesbare crossOriginIsolated
-Eigenschaft des WorkerGlobalScope
-Interfaces gibt einen booleschen Wert zurück, der angibt, ob das Dokument isoliert von anderen Ursprüngen ist.
Ein dokument, das isoliert von anderen Ursprüngen ist, teilt seine browsing context group nur mit gleichartigen Ursprungs-Dokumenten in Popups und Navigationen sowie Ressourcen (sowohl gleicher als auch unterschiedlicher Ursprünge), für die das Dokument die Nutzung über CORS (und COEP für <iframe>
) festgelegt hat.
Die Beziehung zwischen einem Dokument und einem öffnenden Dokument eines anderen Ursprungs oder zu einem beliebigen Popup, das es öffnet, wird getrennt.
Das Dokument kann auch in einem separaten Betriebssystemprozess neben anderen Dokumenten gehostet werden, mit denen es kommunizieren kann, indem es auf gemeinsamen Speicher zugreift.
Dies mindert das Risiko von Seitenkanal- und Cross-Origin-Angriffen, die als XS-Leaks bezeichnet werden.
Dokumente, die von anderen Ursprüngen isoliert sind, operieren mit weniger Einschränkungen, wenn folgende APIs verwendet werden:
SharedArrayBuffer
kann erstellt und über einen Aufruf vonDedicatedWorkerGlobalScope.postMessage()
oderMessagePort.postMessage()
gesendet werden.Performance.now()
bietet eine bessere Präzision.Performance.measureUserAgentSpecificMemory()
kann aufgerufen werden.
Ein Dokument wird isoliert von anderen Ursprüngen sein, wenn es mit einer HTTP-Antwort zurückgegeben wird, die die Header enthält:
Cross-Origin-Opener-Policy
-Header mit der Direktivesame-origin
Cross-Origin-Embedder-Policy
-Header mit der Direktiverequire-corp
odercredentialless
Wert
Ein boolescher Wert.
Beispiele
const myWorker = new Worker("worker.js");
if (self.crossOriginIsolated) {
const buffer = new SharedArrayBuffer(16);
myWorker.postMessage(buffer);
} else {
const buffer = new ArrayBuffer(16);
myWorker.postMessage(buffer);
}
Spezifikationen
Specification |
---|
HTML Standard # dom-crossoriginisolated-dev |
Browser-Kompatibilität
BCD tables only load in the browser