Modèles de correspondance

La mise en correspondance des autorisations d'hôte et du script de contenu repose 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 modèle spécial <all_urls> correspond à toute URL commençant par un schéma autorisé. Chaque format de correspondance se compose de trois parties:

  • scheme (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.
  • host (par exemple, www.google.com, *.google.com ou *) ; si le schéma est file, il n'y a 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 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 (le schéma, l'hôte ou le chemin). Si le schéma est *, il correspond à http ou https, et pas à file, ftp ou 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 section path, chaque * correspond à 0 caractère ou plus. Le tableau suivant présente quelques formats valides.

ModèleDescriptionExemples 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 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 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 à tous les fichiers locaux dont le chemin d'accès commence par /foo.file:///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.1.http://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é. (Pour connaître la liste des schémas autorisés, consultez le début de cette section.)http://example.org/foo/bar.html
file:///bar/baz.html

Voici quelques exemples de correspondances de formats non valides:

Mauvais modèlePourquoi cette pratique est-elle mauvaise ?
http://www.google.comAucun chemin d'accès
http://*foo/barSi * se trouve dans l'hôte, il ne peut être suivi que par un "." ou "/".
http://foo.*.bar/baz Si l'astérisque * se trouve dans l'hôte, il doit s'agir du premier caractère.
http:/barAbsence de séparateur de schéma ("/" doit être "//")
foo://*Schéma non valide

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