Feature-Policy

O cabeçalho HTTP Feature-Policy provém um mecanismo para permitir ou proibir o uso de funcionalidades do navegador no seu próprio enquadramento, e o conteúdo dentro de quaisquer elementos <iframe> no documento.

Nota: Este cabeçalho ainda está em estado experimental, e é sujeito a mudança a qualquer momento. Tenha cautela quando implementando isso no seu site. O cabeçalho agora foi renomeado para Permissions-Policy na especificação, e este artigo irá eventualmente ser atualizado para refletir estas atualizações.

Para mais informação, veja o artigo principal Policy Feature.

Tipo de cabeçalho Response header (en-US)
Forbidden header name sim

Sintaxe

Feature-Policy: <directive> <allowlist>
<directive>

A diretiva Feature Policy que irá aplicar a allowlist. Veja Diretivas abaixo para a lista de nomes de diretivas.

<allowlist>
{{page("Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}

Diretivas

accelerometer (en-US)

Controla se o documento atual é permitido de coletar informação sobre a aceleração do dispositivo através da interface Accelerometer (en-US).

ambient-light-sensor (en-US)

Controla se o documento atual é permitido de coletar informação sobre a quantidade de luz no ambiente ao redor do dispositivo através da interface AmbientLightSensor (en-US).

autoplay (en-US)

Controla se o documento atual é permitido de tocar a mídia requisitada automaticamente através da interface HTMLMediaElement (en-US). Quando esta política é desabilitada e não há ação do usuário, o Promise (en-US) retornado pelo HTMLMediaElement.play() (en-US) irá rejeitar com uma DOMException. O atributo autoplay em elementos <audio> e <video> será ignorado.

battery (en-US)

Controla se o uso da API de Status de Bateria é permitido. Quando esta política está desabilitada, o Promise retornado peloNavigator.getBattery() irá rejeitar com um NotAllowedError DOMException.

camera (en-US)

Controla se o documento atual é permitido de usar entradas de dispositivos de vídeo. Quando esta política está desabilitada, o Promise retornado pelo getUserMedia() (en-US) irá rejeitar com um NotAllowedError DOMException.

display-capture (en-US)

Controla se o documento atual é permitido ou não de usar o método getDisplayMedia() (en-US) para capturar conteúdos de tela. Quando esta política está desabilitada, a Promise retornada pelo getDisplayMedia() irá rejeitar com um NotAllowedError se a permissão não for obtida para capturar os conteúdos da tela.

document-domain (en-US)

Controle se o documento atual é permitido de colocar document.domain (en-US). Quando esta política está desabilitada, tentativas em colocar document.domain (en-US) irão falhar e causar uma SecurityError DOMException a ser jogada.

encrypted-media (en-US)

Controla se o documento atual é permitido de usar a API Extensões de Mídias Encriptadas (Encrypted Media Extensions) (en-US) (EME). Quando esta política é desabilitada, a Promise (en-US) retornada pelo Navigator.requestMediaKeySystemAccess() (en-US) irá rejeitar com um DOMException.

execution-while-not-rendered

Controla se as tarefas devem ser executadas em enquadramentos enquanto não são renderizados (e.g. se um enquadramento é hidden ou display: none).

execution-while-out-of-viewport

Controla se as tarefas devem ser executadas em enquadramentos enquanto eles estão fora da janela de visualização visível.

fullscreen (en-US)

Controla se o documento atual é permitido de usar Element.requestFullScreen() (en-US). Quando esta política está desabilitada, a Promise retornada rejeita com um TypeError DOMException.

geolocation (en-US)

Controla se o documento atual é permitido de usar a interface Geolocation. Quando a política está desabilitada, chamadas para getCurrentPosition() e watchPosition() irão causar aos callbacks da funções serem invocados com um PositionError de PERMISSION_DENIED.

gyroscope (en-US)

Controla se o documento atual é permitido de coletar informação sobre a orientação do dispositivo através da interface Gyroscope (en-US).

layout-animations (en-US)

Controla se o documento atual é permitido de mostrar animações de layout.

legacy-image-formats (en-US)

Controla se o documento atual é permitido de mostrar imagens em formatos legados.

magnetometer (en-US)

Controla se o documento atual é permitido de coletar informação sobre a orientação do dispositivo através da interface Magnetometer (en-US).

microphone (en-US)

Controla se o documento atual é permitido de usar entradas de dispositivos de áudio. Quando esta política está desabilitada, a Promise retornada pelo MediaDevices.getUserMedia() (en-US) irá rejeitar com um NotAllowedError.

midi (en-US)

Controla se o documento atual é permitido de usar a API Web MIDI (en-US). Quando esta política está desabilitada, a Promise retornada pelo Navigator.requestMIDIAccess() (en-US) irá rejeitar com um DOMException.

Controla a disponibilidade de mecanismos que habilitam o autor da página a tomar controle sobre o comportamento da navegação espacial (spatial navigation), ou cancelar completamente.

oversized-images (en-US)

Controla se o documento atual é permitido de baixar e mostrar imagens grandes.

payment (en-US)

Controla se o documento atual permite o uso da API de Requisição de Pagamento (Payment Request API) (en-US). Quando esta política está desabilitada, o construtor PaymentRequest() (en-US) irá jogar um SecurityError DOMException.

picture-in-picture (en-US)

Controla se o documento atual permite que um vídeo seja permitido tocar no modo Picture-in-Picture através da API correspondente.

publickey-credentials-get (en-US)

Controla se o documento atual é permitido de usar a API de Autenticação Web (en-US) para resgatar credenciais de chave pública já guardadas, i.e. através do navigator.credentials.get({publicKey: ..., ...}) (en-US).

sync-xhr (en-US)

Controla se o documento atual é permitido de fazer requisições síncronas XMLHttpRequest.

usb (en-US)

Controla se o documento atual é permitido de usar a API WebUSB.

vr (en-US) Deprecated

Controla se o documento atual é permitido de usar a API WebVR. Quando esta política é desabilitada, o Promise retornado pelo Navigator.getVRDisplays() (en-US) irá rejeitar com um DOMException. Tenha em mente que o padrão WebVR está em processo de ser substituído pelo WebXR (en-US).

wake-lock (en-US)

Controla se o documento atual é permitido de usar a API Wake Lock para indicar que o dispositivo não deve entrar em modo de economia de energia.

screen-wake-lock (en-US)

Controla se o documento atual é permitido de utilizar a API Screen Wake Lock (en-US) para indicar se o dispositivo deve ou não escurecer a tela.

xr-spatial-tracking (en-US)

Controla se o documento atual é permitido ou não de usar a API WebXR Device (en-US) para intergir com a sessão WebXR.

Exemplos

SecureCorp Inc. quer desabilitar o Microfone e as APIs de Geolocalização em sua aplicação. Isso pode ser feito entregando o seguinte cabeçalho de resposta HTTP para definir a política de funcionalidade:

Feature-Policy: microphone 'none'; geolocation 'none'

Especificando a palavra-chave 'none' para a lista de origem, as funcionalidades especificadas serão desabilitadas para todos os contextos de navegaçnao (incluindo todos os iframes), independente da origem.

Especificações

Especificação Status Comentário
Permissions Policy
The definition of 'Permissions-Policy' in that specification.
Rascunho editorial

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também