cross-origin-isolatedcross-origin-isolated 지시어는 문서가 교차 오리진 격리(cross-origin isolated) 상태로 들어갈 수 있는지를 제어하는 특수 지시어입니다. 이 상태는 SharedArrayBuffer, 고정밀 performance.now(), performance.measureUserAgentSpecificMemory() 같은 강력 기능을 여는 전제 조건입니다.
교차 오리진 격리는 응답 헤더 Cross-Origin-Opener-Policy: same-origin(COOP)과 Cross-Origin-Embedder-Policy: require-corp 또는 credentialless(COEP)를 함께 보내야 활성화되며, 그러면 self.crossOriginIsolated가 true가 됩니다. cross-origin-isolated 지시어는 그 위에서, 이 격리 능력을 어떤 프레임까지 전파할지를 통제합니다. 기본 허용 목록은 self이며, `cross-origin-isolated=(self)`는 자기 오리진, `cross-origin-isolated=()`는 하위 프레임의 격리 상속을 막습니다.
격리가 성립하지 않으면 SharedArrayBuffer 생성자는 접근이 차단되고, 타이머 해상도가 의도적으로 낮아지는 등 스펙터(Spectre) 부류 사이드채널 완화가 적용됩니다. 즉 COOP+COEP로 격리를 만든 다음, 이 지시어로 그 능력을 프레임에 위임할지 결정하는 이중 구조입니다. 다른 대부분의 지시어처럼 기능 API를 여닫는 것이 아니라, 격리 능력의 전파를 조율한다는 점이 특징입니다.
Permissions-Policy: cross-origin-isolated=(self)