Modèles de correspondance

La mise en correspondance des autorisations d'hôte et des scripts de contenu s'appuie sur un ensemble d'URL définies par des formats de correspondance. Un format de correspondance est essentiellement une URL qui commence par un schéma autorisé (http, https, file ou ftp) et qui peut contenir les caractères "*". Le format spécial <all_urls> correspond à n'importe quelle URL commençant par un schéma autorisé. Chaque modèle de correspondance se compose de trois parties:

  • schéma, par exemple http, file ou *

    Remarque:L'accès aux URL file n'est pas automatique. L'utilisateur doit consulter la page de gestion des extensions et activer l'accès à file pour chaque extension qui en fait la demande.
  • host (par exemple, www.google.com, *.google.com ou *). Si le schéma est file, il n'existe pas de partie host.

  • chemin d'accès (par exemple, /*, /foo* ou /foo/bar). Le chemin d'accès doit être présent dans une autorisation d'hôte, mais il est toujours traité comme /*.

Voici la syntaxe de base :

&lt;url-pattern&gt; := &lt;scheme&gt;://&lt;host&gt;&lt;path&gt;
&lt;scheme&gt; := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
&lt;host&gt; := '*' | '*.' &lt;any char except '/' and '*'&gt;+
&lt;path&gt; := '/' &lt;any chars&gt;

La signification de "*" varie selon qu'il se trouve dans la partie schéma, hôte ou chemin. Si le schéma est *, il correspond à http ou https, et non à file, ftp ou urn. Si l'hôte n'est que *, il correspond à n'importe quel hôte. Si l'hôte est *._hostname_, il correspond à l'hôte spécifié ou à l'un de ses sous-domaines. Dans la section path, chaque valeur * correspond à zéro ou plusieurs caractères. Le tableau suivant présente quelques formats valides.

SchémaDescriptionExemples d'URL correspondantes
http://*/*Correspond à n'importe quelle URL utilisant le schéma http.http://www.google.com/
http://example.org/foo/bar.html
http://*/foo*Correspond à n'importe quelle URL utilisant le schéma http, sur n'importe quel hôte, à condition que le chemin commence par /foo.http://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barCorrespond à n'importe quelle URL utilisant le schéma https, se trouvant sur un hôte google.com (comme www.google.com, docs.google.com ou google.com), à condition que le chemin commence par /foo et se termine par bar.https://www.google.com/foo/baz/bar
https://docs.google.com/foobar
http://example.org/foo/bar.htmlCorrespond à l'URL spécifiéehttp://example.org/foo/bar.html
file:///foo*Correspond à tout fichier local dont le chemin d'accès commence par /foofile:///foo/bar.html
file:///foo
http://127.0.0.1/*Correspond à n'importe quelle URL utilisant le schéma http et se trouvant sur l'hôte 127.0.0.1http://127.0.0.1/
http://127.0.0.1/foo/bar.html
*://mail.google.com/*Prend en compte toute URL commençant par http://mail.google.com ou https://mail.google.com.http://mail.google.com/foo/baz/bar
https://mail.google.com/foobar
urn:*Prend en compte toute URL commençant par urn:.urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582
urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da
<all_urls>Correspond à n'importe quelle URL utilisant un schéma autorisé. (Consultez la liste des schémas autorisés au début de cette section.)http://example.org/foo/bar.html
file:///bar/baz.html

Voici quelques exemples de correspondances de format non valides:

Schéma incorrectPourquoi elle est mauvaise
http://www.google.comAucun chemin d'accès
http://*foo/barLe caractère "*" présent dans host peut être suivi uniquement d'un trait d'union ." ou '/'
http://foo.*.bar/baz Si "*" se trouve dans host, il doit s'agir du premier caractère
http:/barSéparateur de schéma manquant ("/" doit être "//")
foo://*Schéma non valide

Certains schémas ne sont pas compatibles avec tous les contextes.