Modèles de correspondance

Les autorisations d'hôte et la mise en correspondance des scripts de contenu reposent 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 des caractères '*'. Le format spécial <all_urls> correspond à n'importe quelle URL commençant par un schéma autorisé. Chaque format de correspondance comporte trois parties :

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

    Remarque : L'accès aux URL file n'est pas automatique. L'utilisateur doit accéder à la page de gestion des extensions et activer l'accès file pour chaque extension qui le demande.
  • hôte : par exemple, www.google.com, *.google.com ou *. Si le schéma est file, il n'y a pas de partie hôte.

  • chemin : par exemple, /*, /foo* ou /foo/bar. Le chemin 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 '*' dépend de la partie où il se trouve (schéma, hôte ou chemin). Si le schéma est *, il correspond à http ou https, et pas à file, ftp ni urn. Si l'hôte ne contient 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 partie chemin, chaque * correspond à 0 ou plusieurs caractères. Le tableau suivant montre quelques formats valides.

MotifDescriptionExemples d'URL correspondantes
http://*/*Correspond à n'importe quelle URL utilisant le schéma httphttp://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 /foohttp://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barCorrespond à n'importe quelle URL utilisant le schéma https sur un hôte google.com (tel que www.google.com, docs.google.com ou google.com), à condition que le chemin commence par /foo et se termine par barhttps://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 à n'importe quel fichier local dont le chemin commence par /foofile:///foo/bar.html
file:///foo
http://127.0.0.1/*Correspond à n'importe quelle URL utilisant le schéma http sur l'hôte 127.0.0.1http://127.0.0.1/
http://127.0.0.1/foo/bar.html
*://mail.google.com/*Correspond à n'importe quelle 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:*Correspond à n'importe quelle 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 le début de cette section pour obtenir la liste des schémas autorisés.)http://example.org/foo/bar.html
file:///bar/baz.html

Voici quelques exemples de formats non valides :

Schéma incorrectPourquoi est-il incorrect ?
http://www.google.comAbsence de chemin
http://*foo/barSi '*' se trouve dans l'hôte , il ne peut être suivi que par '.' ou '/'
http://foo.*.bar/baz Si '*' se trouve dans l'hôte, il doit s'agir du premier caractère
http:/barAbsence d'un séparateur de schéma ("/" devrait être "//")
foo://*Schéma non valide

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