Dopasowywanie uprawnień hosta i skryptu treści jest oparte na zbiorze adresów URL zdefiniowanych przez dopasowanie
wzorów. Wzorzec dopasowania to zasadniczo adres URL, który rozpoczyna się od dozwolonego schematu (http, https,
file lub ftp, które mogą zawierać „*” znaków. Specjalny wzór <all_urls> pasuje do:
dowolnego adresu URL zaczynającego się od dozwolonego schematu. Każdy wzorzec dopasowania składa się z 3 części:
schemat – np.
http,filelub*Uwaga: dostęp do adresów URLfilenie jest automatyczny. Użytkownik musi wejść na stronę zarządzania rozszerzeniami i włączyć dostęp dofilew przypadku każdego rozszerzenia, które o to poprosi.host – na przykład
www.google.com,*.google.comlub*; jeśli schemat tofile, jest brak części hostścieżka – na przykład
/*,/foo*lub/foo/bar. Ścieżka musi znajdować się w uprawnieniach hosta, ale jest zawsze traktowany jako/*.
Oto podstawowa składnia:
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
Znaczenie elementu „*” zależy od tego, czy znajduje się w części schemat, host czy ścieżka. Jeśli
schemat ma wartość *, to pasuje do http lub https, ale nie file, ftp ani urn. Jeśli
host to po prostu *, to pasuje do dowolnego hosta. Jeśli host to *._hostname_, adres pasuje do parametru
przez określony host lub dowolną z jego subdomen. W sekcji path każdy parametr „*” pasuje do 0 lub większej liczby
znaków. Kilka prawidłowych wzorców znajdziesz w tabeli poniżej.
| Wzór | Zastosowanie | Przykłady pasujących adresów URL |
|---|---|---|
http://*/* | Pasuje do wszystkich adresów URL używających schematu http | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | Pasuje do wszystkich adresów URL używających schematu http na dowolnym hoście, jeśli ścieżka zaczyna się od /foo | http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | Pasuje do wszystkich adresów URL korzystających ze schematu https znajdujących się na hoście google.com (np. www.google.com, docs.google.com lub google.com), o ile ścieżka zaczyna się od /foo i kończy się bar | https://www.google.com/foo/baz/bar https://docs.google.com/foobar |
http://example.org/foo/bar.html | Pasuje do określonego adresu URL | http://example.org/foo/bar.html |
file:///foo* | Pasuje do wszystkich plików lokalnych, których ścieżka zaczyna się od /foo | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | Pasuje do dowolnego adresu URL używającego schematu http na hoście 127.0.0.1 | http://127.0.0.1/ http://127.0.0.1/foo/bar.html |
*://mail.google.com/* | Pasuje do wszystkich adresów URL, które zaczynają się od http://mail.google.com lub https://mail.google.com. | http://mail.google.com/foo/baz/bar https://mail.google.com/foobar |
urn:* | Pasuje do wszystkich adresów URL zaczynających się od urn:. | urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582 urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da |
<all_urls> | Pasuje do wszystkich adresów URL z dozwolonym schematem. (Listę dozwolonych schematów znajdziesz na początku tej sekcji). | http://example.org/foo/bar.html file:///bar/baz.html |
Oto kilka przykładów nieprawidłowych dopasowań:
| Zły wzór | Dlaczego jest zły |
|---|---|
http://www.google.com | Brak ścieżki |
http://*foo/bar | „*” w polu host może znajdować się tylko znak „.” lub „/” |
http://foo.*.bar/baz | Jeśli „*” jest w elemencie host, musi to być pierwszy znak |
http:/bar | Brak separatora schematu („/” powinno być „//”) |
foo://* | Nieprawidłowy schemat |
Niektóre schematy nie są obsługiwane we wszystkich kontekstach.