aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/http/headers/feature-policy/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/web/http/headers/feature-policy/index.md')
-rw-r--r--files/fr/web/http/headers/feature-policy/index.md161
1 files changed, 161 insertions, 0 deletions
diff --git a/files/fr/web/http/headers/feature-policy/index.md b/files/fr/web/http/headers/feature-policy/index.md
new file mode 100644
index 0000000000..355056996d
--- /dev/null
+++ b/files/fr/web/http/headers/feature-policy/index.md
@@ -0,0 +1,161 @@
+---
+title: Feature-Policy
+slug: Web/HTTP/Headers/Feature-Policy
+tags:
+ - Authorization
+ - Experimental
+ - Feature Policy
+ - Feature-Policy
+ - HTTP
+ - Permissions
+ - Reference
+ - Security
+ - Web
+ - header
+translation_of: Web/HTTP/Headers/Feature-Policy
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>L'en-tête HTTP <strong><code>Feature-Policy</code></strong> est un mécanisme permettant de permettre ou d'interdire l'utilisation de fonctionnalités du navigateur dans son propre cadre et dans ceux de tous les éléments {{HTMLElement("iframe")}} que le document contient.</p>
+
+<div class="note">
+<p><strong>Note :</strong> Cet en-tête est toujours au stade expérimental, et est sujet à être modifié à tout moment. Méfiez-vous en si vous souhaitez l'implanter sur vos sites. Il a maintenant été renommé <code>Permissions-Policy</code> dans la spécification, et cet article sera mis à jour pour refléter ce changement.</p>
+</div>
+
+<p>Pour plus d'informations, vour l'article principal sur <a href="/docs/Web/HTTP/Feature_Policy">Feature Policy</a>.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Type d'en-tête</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>oui</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox">Feature-Policy: &lt;directive&gt; &lt;allowlist&gt;</pre>
+
+<dl>
+ <dt><code>&lt;directive&gt;</code></dt>
+ <dd>La directive de Feature Policy sur laquelle appliquer la liste de permissions <code>allowlist</code>. Voir {{anch("Directives")}} ci-dessous pour une liste des noms de directives autorisés.</dd>
+ <dt><code>&lt;allowlist&gt;</code></dt>
+ <dd>{{page("Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}</dd>
+</dl>
+
+<h2 id="Directives">Directives</h2>
+
+<dl>
+ <dt>{{httpheader('Feature-Policy/accelerometer','accelerometer')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à recueillir des informations à propos de l'accélération de l'appareil au moyen de l'interface {{DOMxRef("Accelerometer")}}.</dd>
+ <dt>{{httpheader('Feature-Policy/ambient-light-sensor','ambient-light-sensor')}}</dt>
+ <dd>Contrôle si le le document courant est autorisé à recueillir des informations à propos de la luminosité ambiante de l'appareil au moyen de l'interface {{DOMxRef("AmbientLightSensor")}}.</dd>
+ <dt>{{httpheader('Feature-Policy/autoplay','autoplay')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à jouer automatiquement des médias chargés au moyen de l'interface {{domxref("HTMLMediaElement")}}. Quand cette fonctionnalité est désactivée et qu'il n'y a pas eu d'action de la part de l'utilisateur, la promesse ({{jsxref("Promise")}}) retournée par {{domxref("HTMLMediaElement.play()")}} sera rejetée avec une exception {{domxref("DOMException")}}. L'attribut <code>autoplay</code> sur les éléments {{HTMLELement("audio")}} et {{HTMLElement("video")}} sera ignoré.</dd>
+ <dt>{{httpheader('Feature-Policy/battery','battery')}}</dt>
+ <dd>Contrôle si l'utilisation de l'<a href="/docs/Web/API/Battery_Status_API">API Battery Status</a> est autorisé. Quand cette fonctionnalité est désactivée, la promesse retournée par {{DOMxRef("Navigator.getBattery","Navigator.getBattery()")}} sera rejetée avec une {{DOMxRef("DOMException")}} {{Exception("NotAllowedError")}}.</dd>
+ <dt>{{httpheader('Feature-Policy/camera', 'camera')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à utiliser l'appareil photographique du système. Quand cette fonctionnalité est désactivée, la promesse retournée par {{domxref("MediaDevices.getUserMedia", "getUserMedia()")}} sera rejetée avec une {{DOMxRef("DOMException")}} {{Exception("NotAllowedError")}}.</dd>
+ <dt>{{HTTPHeader('Feature-Policy/display-capture', 'display-capture')}}</dt>
+ <dd>Contrôle si le document courant est autorisé ou non à utiliser la méthode {{domxref("MediaDevices.getDisplayMedia", "getDisplayMedia()")}} pour effectuer une capture d'écran. Quand cette fonctionnalité est désactivée, la promesse retounrée par <code>getDisplayMedia()</code> sera rejetée avec une exception {{Exception("NotAllowedError")}} si la permission de prendre une capture d'écran n'est pas obtenue.</dd>
+ <dt>{{httpheader('Feature-Policy/document-domain','document-domain')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à définir la propriété {{domxref("document.domain")}}. Quand cette directive est désactivée, tenter de modifier {{domxref("document.domain")}} échouera et lèvera une {{domxref("DOMException")}} {{Exception("SecurityError")}}.</dd>
+ <dt>{{httpheader('Feature-Policy/encrypted-media', 'encrypted-media')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à utiliser l'API <a href="/en-US/docs/Web/API/Encrypted_Media_Extensions_API">Encrypted Media Extensions</a> (EME). Quand cette directive est désactivée, la promesse retournée par {{domxref("Navigator.requestMediaKeySystemAccess()")}} sera rejecté avec une {{domxref("DOMException")}}.</dd>
+ <dt>{{httpheader('Feature-Policy/execution-while-not-rendered', 'execution-while-not-rendered')}}</dt>
+ <dd>Contrôle si les tâches des cadres doivent être exécutées s'ils ne seront pas rendus à l'écran (par exemple si un <code>&lt;iframe&gt;</code> est <code><a href="/en-US/docs/Web/HTML/Global_attributes/hidden">hidden</a></code> ou <code>display: none</code>).</dd>
+ <dt>{{httpheader('Feature-Policy/execution-while-out-of-viewport', 'execution-while-out-of-viewport')}}</dt>
+ <dd>Contrôle si les tâches des cadres doivent être exécutées quand ils sont en dehors du cadre visible.</dd>
+</dl>
+
+<dl>
+ <dt>{{httpheader('Feature-Policy/fullscreen','fullscreen')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à utiliser {{DOMxRef("Element.requestFullScreen()")}}. Quand cette directive est désactivée, la promesse retournée sera rejetée avec une exception {{JSxRef("TypeError")}}.</dd>
+ <dt>{{httpheader('Feature-Policy/geolocation','geolocation')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à utiliser l'interface {{domxref('Geolocation')}}. Quand cette directive est désactivée, les appels à {{domxref('Geolocation.getCurrentPosition','getCurrentPosition()')}} et {{domxref('Geolocation.watchPosition','watchPosition()')}} causeront un appel de leurs fonctions de rappel avec une exception {{domxref('PositionError')}} dont le code est <code>PERMISSION_DENIED</code>.</dd>
+ <dt>{{httpheader('Feature-Policy/gyroscope','gyroscope')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à recueillir des informations à propos de l'orientation de l'appareil au moyen de l'interface {{DOMxRef("Gyroscope")}}.</dd>
+ <dt>{{httpheader('Feature-Policy/layout-animations','layout-animations')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à afficher des animations de mise en page.</dd>
+</dl>
+
+<dl>
+ <dt>{{httpheader('Feature-Policy/legacy-image-formats','legacy-image-formats')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à afficher des images dans des formats du passé.</dd>
+</dl>
+
+<dl>
+ <dt>{{httpheader('Feature-Policy/magnetometer','magnetometer')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à recueillir des informations à propos de l'orientation au moyen de l'interface {{DOMxRef("Magnetometer")}}.</dd>
+ <dt>{{httpheader('Feature-Policy/microphone','microphone')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à utiliser le microphone de l'appareil. Quand cette fonctionnalité est désactivée, la promesse retournée par {{domxref("MediaDevices.getUserMedia()")}} sera rejetée avec une exception {{Exception("NotAllowedError")}}.</dd>
+ <dt>{{httpheader('Feature-Policy/midi', 'midi')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à utiliser l'<a href="/en-US/docs/Web/API/Web_MIDI_API">API Web MIDI</a>. Quand cette fonctionnalité est désactivée, la promesse retournée par {{domxref("Navigator.requestMIDIAccess()")}} sera rejetée avec une exception {{domxref("DOMException")}}.</dd>
+ <dt>{{httpheader('Feature-Policy/navigation-override','navigation-override')}}</dt>
+ <dd>Contrôle la disponibilité des mécanismes qui permettent à l'auteur de la page de prendre le contrôle sur le comportment de la <a href="https://www.w3.org/TR/css-nav/">navigation spatiale</a>, ou de l'annuler complètement.</dd>
+ <dt>{{httpheader('Feature-Policy/oversized-images','oversized-images')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à télécharger et afficher des images lourdes.</dd>
+ <dt>{{httpheader('Feature-Policy/payment', 'payment')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à utiliser l'<a href="/en-US/docs/Web/API/Payment_Request_API">API Payment Request</a>. Quand cette directive est désactivée, le constructeur {{domxref("PaymentRequest","PaymentRequest()")}} lèvera une {{domxref("DOMException")}} {{Exception("SecurityError")}}.</dd>
+ <dt>{{httpheader('Feature-Policy/picture-in-picture', 'picture-in-picture')}}</dt>
+ <dd>Controls whether the current document is allowed to play a video in a Picture-in-Picture mode via the corresponding API.</dd>
+ <dt>{{httpheader("Feature-Policy/publickey-credentials-get", "publickey-credentials-get")}}</dt>
+ <dd>Contrôle si le document courant est autorisé à use the <a href="/en-US/docs/Web/API/Web_Authentication_API">Web Authentication API</a> to retreive already stored public-key credentials, i.e. via {{domxref("CredentialsContainer.get","navigator.credentials.get({publicKey: ..., ...})")}}.</dd>
+ <dt>{{httpheader('Feature-Policy/sync-xhr', 'sync-xhr')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à make synchronous {{DOMxRef("XMLHttpRequest")}} requests.</dd>
+ <dt>{{httpheader('Feature-Policy/usb', 'usb')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à use the <a href="https://wicg.github.io/webusb/">WebUSB API</a>.</dd>
+ <dt>{{httpheader('Feature-Policy/vr', 'vr')}} {{deprecated_inline}}</dt>
+ <dd>Contrôle si le document courant est autorisé à use the <a href="/en-US/docs/Web/API/WebVR_API">WebVR API</a>. Quand cette directive est désactivée, la promesse retournée par {{domxref("Navigator.getVRDisplays","Navigator.getVRDisplays()")}} sera rejetée avec une {{domxref("DOMException")}}. Gardez en tête que la norme WebVR est en cours de remplacement au profit de <a href="/en-US/docs/Web/API/WebXR_Device_API">WebXR</a>.</dd>
+ <dt>{{httpheader('Feature-Policy/wake-lock', 'wake-lock')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à utiliser l'<a href="https://www.w3.org/TR/wake-lock/">API Wake Lock</a> pour indiquer que l'appareil ne devrait se mettre en veille.</dd>
+ <dt>{{httpheader('Feature-Policy/screen-wake-lock', 'screen-wake-lock')}}</dt>
+ <dd>Contrôle si le document courant est autorisé à utiliser l'<a href="/en-US/docs/Web/API/Screen_Wake_Lock_API">API Screen Wake Lock</a> pour indiquer que l'appareil ne devrait pas assombrir ou éteindre l'écran.</dd>
+ <dt>{{httpheader("Feature-Policy/web-share", "web-share")}}</dt>
+ <dd>Contrôle si le document courant est autorisé à utiliser la méthode {{domxref("Navigator.share","Navigator.share()")}} de l'API Web Share pour partager du texte, des liens, des images et d'autres contenus à des destinations arbitraires sur le choix de l'utilisateur, par exemple à des applications mobiles.</dd>
+ <dt>{{httpheader("Feature-Policy/xr-spatial-tracking", "xr-spatial-tracking")}}</dt>
+ <dd>Contrôle si le document courant est autorisé à utiliser l'<a href="/en-US/docs/Web/API/WebXR_Device_API">API WebXR Device</a> pour interagir avec une WebXR.</dd>
+</dl>
+
+<h2 id="Exemple">Exemple</h2>
+
+<p>SecureCorp Inc. souhaite désactiver les API du microphone et de géolocalisation dans son application. Elle peut le faire en délivrant l'en-tête de réponse HTTP suivant pour définir une réglementation des fonctionnalités :</p>
+
+<pre>Feature-Policy: microphone 'none'; geolocation 'none'</pre>
+
+<p>En spécifiant la valeur <code>'none'</code> pour liste des origines, les fonctionnalités auquel la valeur est appliquée seront désactivées pour tous les contextes de navigation (incluant tout les cadres <code>&lt;iframe&gt;</code>), quelle que soit leur origine.</p>
+
+<h2 id="Spécifications">Spécifications</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Spécification</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a href="https://w3c.github.io/webappsec-permissions-policy/#permissions-policy-http-header-field">Permissions Policy</a></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
+
+<p>{{Compat("http.headers.Feature-Policy")}}</p>
+
+<h2 id="Voir_aussi">Voir aussi</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/Feature_Policy">Feature Policy</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">Utiliser Feature Policy</a></li>
+ <li>{{DOMxRef("Document.featurePolicy")}} and {{DOMxRef("FeaturePolicy")}}</li>
+ <li><a class="external external-icon" href="https://chrome.google.com/webstore/detail/feature-policy-tester-dev/pchamnkhkeokbpahnocjaeednpbpacop" rel="noopener">Feature-Policy Tester (Chrome Developer Tools extension)</a></li>
+ <li>{{HTTPHeader("Content-Security-Policy")}}</li>
+ <li>{{HTTPHeader("Referrer-Policy")}}</li>
+</ul>