---
title: Feature-Policy
slug: Web/HTTP/Headers/Feature-Policy
tags:
- Autorização
- Experimental
- Feature-Policy
- HTTP
- Permissões
- Política de Funcionalidade
- Referencia
- Segurança
- Web
- cabeçalho
translation_of: Web/HTTP/Headers/Feature-Policy
---
{{HTTPSidebar}}
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 {{HTMLElement("iframe")}} no documento.
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 |
{{Glossary("Response header")}} |
{{Glossary("Forbidden header name")}} |
sim |
Sintaxe
Feature-Policy: <directive> <allowlist>
<directive>
- A diretiva Feature Policy que irá aplicar a
allowlist
. Veja {{anch("Diretivas")}} abaixo para a lista de nomes de diretivas.
<allowlist>
- {{page("Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}
Diretivas
- {{httpheader('Feature-Policy/accelerometer','accelerometer')}}
- Controla se o documento atual é permitido de coletar informação sobre a aceleração do dispositivo através da interface {{DOMxRef("Accelerometer")}}.
- {{httpheader('Feature-Policy/ambient-light-sensor','ambient-light-sensor')}}
- 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 {{DOMxRef("AmbientLightSensor")}}.
- {{httpheader('Feature-Policy/autoplay','autoplay')}}
- Controla se o documento atual é permitido de tocar a mídia requisitada automaticamente através da interface {{domxref("HTMLMediaElement")}}. Quando esta política é desabilitada e não há ação do usuário, o {{domxref("Promise")}} returnado pelo {{domxref("HTMLMediaElement.play()")}} irá rejeitar com uma {{domxref("DOMException")}}. O atributo autoplay em elementos {{HTMLELement("audio")}} e {{HTMLElement("video")}} será ignorado.
- {{httpheader('Feature-Policy/battery','battery')}}
- Controla se o uso da API de Status de Bateria é permitido. Quando esta política está desabilitada, o {{JSxRef("Promise")}} returnado pelo{{DOMxRef("Navigator.getBattery","Navigator.getBattery()")}} irá rejeitar com um {{DOMxRef("NotAllowedError")}} {{DOMxRef("DOMException")}}.
- {{httpheader('Feature-Policy/camera', 'camera')}}
- Controla se o documento atual é permitido de usar entradas de dispositivos de vídeo. Quando esta política está desabilitada, o {{jsxref("Promise")}} returnado pelo {{domxref("MediaDevices.getUserMedia", "getUserMedia()")}} irá rejeitar com um {{DOMxRef("NotAllowedError")}} {{DOMxRef("DOMException")}}.
- {{HTTPHeader('Feature-Policy/display-capture', 'display-capture')}}
- Controla se o documento atual é permitido ou não de usar o método {{domxref("MediaDevices.getDisplayMedia", "getDisplayMedia()")}} para capturar conteúdos de tela. Quando esta política está desabilitada, a {{jsxref("Promise")}} retornada pelo
getDisplayMedia()
irá rejeitar com um NotAllowedError
se a permissão não for obtida para capturar os conteúdos da tela.
- {{httpheader('Feature-Policy/document-domain','document-domain')}}
- Controle se o documento atual é permitido de colocar {{domxref("document.domain")}}. Quando esta política está desabilitada, tentativas em colocar {{domxref("document.domain")}} irão falhar e causar uma {{DOMxRef("SecurityError")}} {{domxref("DOMException")}} a ser jogada.
- {{httpheader('Feature-Policy/encrypted-media', 'encrypted-media')}}
- Controla se o documento atual é permitido de usar a API Extensões de Mídias Encriptadas (Encrypted Media Extensions) (EME). Quando esta política é desabilitada, a {{domxref("Promise")}} returnada pelo {{domxref("Navigator.requestMediaKeySystemAccess()")}} irá rejeitar com um {{domxref("DOMException")}}.
- {{httpheader('Feature-Policy/execution-while-not-rendered', '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
).
- {{httpheader('Feature-Policy/execution-while-out-of-viewport', '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.
- {{httpheader('Feature-Policy/fullscreen','fullscreen')}}
- Controla se o documento atual é permitido de usar {{DOMxRef("Element.requestFullScreen()")}}. Quando esta política está desabilitada, a {{JSxRef("Promise")}} retornada rejeita com um {{JSxRef("TypeError")}} {{DOMxRef("DOMException")}}.
- {{httpheader('Feature-Policy/geolocation','geolocation')}}
- Controla se o documento atual é permitido de usar a interface {{domxref('Geolocation')}}. Quando a política está desabilitada, chamadas para {{domxref('Geolocation.getCurrentPosition','getCurrentPosition()')}} e {{domxref('Geolocation.watchPosition','watchPosition()')}} irão causar aos callbacks da funções serem invocados com um {{domxref('PositionError')}} de
PERMISSION_DENIED
.
- {{httpheader('Feature-Policy/gyroscope','gyroscope')}}
- Controla se o documento atual é permitido de coletar informação sobre a orientação do dispositivo através da interface {{DOMxRef("Gyroscope")}}.
- {{httpheader('Feature-Policy/layout-animations','layout-animations')}}
- Controla se o documento atual é permitido de mostrar animações de layout.
- {{httpheader('Feature-Policy/legacy-image-formats','legacy-image-formats')}}
- Controla se o documento atual é permitido de mostrar imagens em formatos legados.
- {{httpheader('Feature-Policy/magnetometer','magnetometer')}}
- Controla se o documento atual é permitido de coletar informação sobre a orientação do dispositivo através da interface {{DOMxRef("Magnetometer")}}.
- {{httpheader('Feature-Policy/microphone','microphone')}}
- Controla se o documento atual é permitido de usar entradas de dispositivos de áudio. Quando esta política está desabilitada, a {{jsxref("Promise")}} returnada pelo {{domxref("MediaDevices.getUserMedia()")}} irá rejeitar com um
NotAllowedError
.
- {{httpheader('Feature-Policy/midi', 'midi')}}
- Controla se o documento atual é permitido de usar a API Web MIDI. Quando esta política está desabilitada, a {{jsxref("Promise")}} returnada pelo {{domxref("Navigator.requestMIDIAccess()")}} irá rejeitar com um {{domxref("DOMException")}}.
- {{httpheader('Feature-Policy/navigation-override','navigation-override')}}
- 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.
- {{httpheader('Feature-Policy/oversized-images','oversized-images')}}
- Controla se o documento atual é permitido de baixar e mostrar imagens grandes.
- {{httpheader('Feature-Policy/payment', 'payment')}}
- Controla se o documento atual permite o uso da API de Requisição de Pagamento (Payment Request API). Quando esta política está desabilitada, o construtor {{domxref("PaymentRequest","PaymentRequest()")}} irá jogar um
SecurityError
{{domxref("DOMException")}}.
- {{httpheader('Feature-Policy/picture-in-picture', 'picture-in-picture')}}
- Controla se o documento atual permite que um vídeo seja permitido tocar no modo Picture-in-Picture através da API correspondente.
- {{httpheader("Feature-Policy/publickey-credentials-get", "publickey-credentials-get")}}
- Controla se o documento atual é permitido de usar a API de Autenticação Web para resgatar credenciais de chave pública já guardadas, i.e. através do {{domxref("CredentialsContainer.get","navigator.credentials.get({publicKey: ..., ...})")}}.
- {{httpheader('Feature-Policy/sync-xhr', 'sync-xhr')}}
- Controla se o documento atual é permitido de fazer requisições síncronas {{DOMxRef("XMLHttpRequest")}}.
- {{httpheader('Feature-Policy/usb', 'usb')}}
- Controla se o documento atual é permitido de usar a API WebUSB.
- {{httpheader('Feature-Policy/vr', 'vr')}} {{deprecated_inline}}
- Controla se o documento atual é permitido de usar a API WebVR. Quando esta política é desabilitada, o {{jsxref("Promise")}} returnado pelo {{domxref("Navigator.getVRDisplays","Navigator.getVRDisplays()")}} irá rejeitar com um {{domxref("DOMException")}}. Tenha em mente que o padrão WebVR está em processo de ser substituído pelo WebXR.
- {{httpheader('Feature-Policy/wake-lock', 'wake-lock')}}
- 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.
- {{httpheader('Feature-Policy/screen-wake-lock', 'screen-wake-lock')}}
- Controla se o documento atual é permitido de utilizar a API Screen Wake Lock para indicar se o dispositivo deve ou não escurecer a tela.
- {{httpheader("Feature-Policy/xr-spatial-tracking", "xr-spatial-tracking")}}
- Controla se o documento atual é permitido ou não de usar a API WebXR Device 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 |
{{SpecName("Feature Policy","#permissions-policy-http-header-field","Permissions-Policy")}} |
{{Spec2("Feature Policy")}} |
|
Compatibilidade com navegadores
{{Compat("http.headers.Feature-Policy")}}
Veja também