geolocation
Permissions-Policy Device

개요

geolocation 지시어는 navigator.geolocation의 getCurrentPosition()·watchPosition()으로 사용자 위치에 접근할 수 있는지를 제어합니다. 기본 허용 목록은 self로, 같은 오리진만 기본 접근이 가능하고 교차 오리진 프레임은 위임이 필요합니다.

자세히

`geolocation=*`는 모든 오리진, `geolocation=(self)`는 자기 오리진, `geolocation=()`는 전면 차단, `geolocation=(self "https://maps.example.com")`는 자기 오리진과 지정 오리진에만 허용합니다. 지도 위젯 iframe에 위치를 위임하려면 부모 허용 목록에 그 오리진이 있고 `<iframe src="https://maps.example.com" allow="geolocation">`로 위임해야 합니다.

정책이 거부하면 getCurrentPosition()의 에러 콜백이 GeolocationPositionError.PERMISSION_DENIED(코드 1)로 호출되며, 사용자 권한 프롬프트조차 뜨지 않습니다. Permissions-Policy는 사용자 권한보다 앞단에서 접근 가능 오리진을 정하고, 실제 위치 사용은 그 위에서 사용자 권한(허용/거부)으로 결정됩니다. 보안 컨텍스트(HTTPS)에서만 동작하며 구형 Feature-Policy의 geolocation을 대체합니다.

문법

Permissions-Policy: geolocation=(self "https://maps.example.com")

실무 참고

관련 지시어