Разрешения хоста и сопоставление сценариев содержимого основаны на наборе URL-адресов, определенных шаблонами сопоставления. Шаблон соответствия — это, по сути, URL-адрес, который начинается с разрешенной схемы ( http , https , file или ftp ) и может содержать символы « * ». Специальный шаблон <all_urls> соответствует любому URL-адресу, который начинается с разрешенной схемы. Каждое совпадение Выкройка состоит из 3 частей:
- схема — например, - httpили- fileили- *Примечание. Доступ к URL-адресам- fileне осуществляется автоматически. Пользователь должен посетить страницу управления расширениями и дать согласие на доступ к- fileдля каждого расширения, которое его запрашивает.
- хост — например, - www.google.comили- *.google.comили- *; если схема- file, хост- части нет
- путь — например, - /*,- /foo*или- /foo/bar. Путь должен присутствовать в разрешении хоста, но всегда рассматривается как- /*.
Вот основной синтаксис:
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
 Значение ' * ' зависит от того, находится ли он в схеме , хосте или части пути . Если схема * , то она соответствует http или https , а не file , ftp или urn . Если хост просто * , он соответствует любому хосту. Если хост — *._hostname_ , то он соответствует указанному хосту или любому из его поддоменов. В разделе пути каждый символ ' * ' соответствует 0 или более символам. В следующей таблице показаны некоторые допустимые шаблоны.
| Шаблон | Что он делает | Примеры совпадающих URL-адресов | 
|---|---|---|
| http://*/* | Соответствует любому URL-адресу, использующему схему http | http://www.google.com/ http://example.org/foo/bar.html | 
| http://*/foo* | Соответствует любому URL-адресу, использующему схему http, на любом хосте, если путь начинается с/foo | http://example.com/foo/bar.html http://www.google.com/foo | 
| https://*.google.com/foo*bar | Соответствует любому URL-адресу, использующему схему https, расположенному на хосте google.com (например, www.google.com, docs.google.com или google.com), если путь начинается с/fooи заканчиваетсяbar. | https://www.google.com/foo/baz/bar https://docs.google.com/foobar | 
| http://example.org/foo/bar.html | Соответствует указанному URL | http://example.org/foo/bar.html | 
| file:///foo* | Соответствует любому локальному файлу, путь которого начинается с /foo | файл:///foo/bar.html файл:///фу | 
| http://127.0.0.1/* | Соответствует любому URL-адресу, использующему схему httpи расположенному на хосте 127.0.0.1. | http://127.0.0.1/ http://127.0.0.1/foo/bar.html | 
| *://mail.google.com/* | Соответствует любому URL-адресу, который начинается с http://mail.google.comилиhttps://mail.google.com. | http://mail.google.com/foo/baz/bar https://mail.google.com/foobar | 
| urn:* | Соответствует любому URL-адресу, начинающемуся с urn:. | урна:uuid:54723bea-c94e-480e-80c8-a69846c3f582 урна:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da | 
| <all_urls> | Соответствует любому URL-адресу, использующему разрешенную схему. (Список разрешенных схем см. в начале этого раздела.) | http://example.org/foo/bar.html файл:///bar/baz.html | 
Вот несколько примеров недопустимых совпадений с шаблоном:
| Плохой шаблон | Почему это плохо | 
|---|---|
| http://www.google.com | Нет пути | 
| http://*foo/bar | За '*' в хосте может следовать только '.' или '/' | 
| http://foo.*.bar/baz | Если в хосте есть '*', это должен быть первый символ. | 
| http:/bar | Отсутствует разделитель схемы («/» должно быть «//») | 
| foo://* | Неверная схема | 
Некоторые схемы поддерживаются не во всех контекстах.