Feature-Policy
O cabeçalho HTTP Feature-Policy
provê 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, oPromise
(en-US) retornado peloHTMLMediaElement.play()
(en-US) irá rejeitar com umaDOMException
(en-US). 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 umNotAllowedError
DOMException
(en-US). 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 pelogetUserMedia()
(en-US) irá rejeitar com umNotAllowedError
DOMException
(en-US). 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, aPromise
retornada pelogetDisplayMedia()
irá rejeitar com umNotAllowedError
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 colocardocument.domain
(en-US) irão falhar e causar umaSecurityError
DOMException
(en-US) 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 peloNavigator.requestMediaKeySystemAccess()
(en-US) irá rejeitar com umDOMException
(en-US). 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
oudisplay: 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, aPromise
retornada rejeita com umTypeError
DOMException
(en-US). geolocation
(en-US)-
Controla se o documento atual é permitido de usar a interface
Geolocation
. Quando a política está desabilitada, chamadas paragetCurrentPosition()
ewatchPosition()
irão causar aos callbacks da funções serem invocados com umPositionError
dePERMISSION_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 peloMediaDevices.getUserMedia()
(en-US) irá rejeitar com umNotAllowedError
. 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 peloNavigator.requestMIDIAccess()
(en-US) irá rejeitar com umDOMException
(en-US). -
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 umSecurityError
DOMException
(en-US). 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 peloNavigator.getVRDisplays()
(en-US) irá rejeitar com umDOMException
(en-US). 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