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 URLfile
n'est pas automatique. L'utilisateur doit accéder à la page de gestion des extensions et activer l'accèsfile
pour chaque extension qui le demande.host (par exemple,
www.google.com
,*.google.com
ou*
) ; si le schéma estfile
, il n'y a pas de partie hostchemin 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 :
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
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èle | Description | Exemples 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*bar | Correspond à 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.html | Correspond à l'URL spécifiée | http://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èle | Pourquoi cette pratique est-elle mauvaise ? |
---|---|
http://www.google.com | Aucun chemin d'accès |
http://*foo/bar | Si * 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:/bar | Absence 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.