Uprawnienia hosta i skrypt treści dopasowywania są oparte na zbiorze adresów URL zdefiniowanych przez wzorce
dopasowania. Wzorzec dopasowania to zasadniczo adres URL, który zaczyna się od dozwolonego schematu (http, https, file, lub ftp) i może zawierać znaki '*'. Specjalny wzorzec <all_urls> pasuje do
każdego adresu URL, który zaczyna się od dozwolonego schematu. Każdy wzorzec dopasowania składa się z 3 części:
schemat – np.
httplubfilelub*Uwaga: dostęp do adresów URLfilenie jest automatyczny. Użytkownik musi otworzyć stronę zarządzania rozszerzeniami i wyrazić zgodę na dostęp dofilew przypadku każdego rozszerzenia, które o to poprosi.host – np.
www.google.com,*.google.comlub*; jeśli schemat tofile, nie ma części hostścieżka – np.
/*,/foo*lub/foo/bar. Ścieżka musi być obecna w uprawnieniu hosta, ale zawsze jest traktowana 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 znaku „*” zależy od tego, czy znajduje się on w części schemat, host czy ścieżka. Jeśli
schemat to *, pasuje on do http lub https, ale nie do file, ftp ani urn. Jeśli host to tylko *, pasuje on do dowolnego hosta. Jeśli host to *._hostname_, pasuje on do
określonego hosta lub dowolnej jego subdomeny. W sekcji ścieżka każdy znak „*” pasuje do 0 lub większej liczby znaków. W tabeli poniżej znajdziesz kilka prawidłowych wzorców.
| Wzór | Działanie | Przykłady pasujących adresów URL |
|---|---|---|
http://*/* | Pasuje do każdego adresu URL, który używa schematu http | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | Pasuje do każdego adresu URL, który używa schematu http, na dowolnym hoście, o ile ścieżka zaczyna się od /foo | http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | Pasuje do każdego adresu URL, który używa schematu https, znajduje 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 każdego pliku lokalnego, którego ścieżka zaczyna się od /foo | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | Pasuje do każdego adresu URL, który używa schematu http i znajduje się 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 każdego adresu URL, który zaczyna 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 każdego adresu URL, który zaczyna się od urn:. | urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582 urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da |
<all_urls> | Pasuje do każdego adresu URL, który używa dozwolonego schematu. (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ń wzorców:
| Nieprawidłowy wzór | Dlaczego jest nieprawidłowy |
|---|---|
http://www.google.com | Brak ścieżki |
http://*foo/bar | Po znaku „*” w hoście może występować tylko „.” lub „/” |
http://foo.*.bar/baz | Jeśli znak „*” znajduje się w hoście, musi być pierwszym znakiem |
http:/bar | Brak separatora schematu („/” powinno być „//”) |
foo://* | Nieprawidłowy schemat |
Niektóre schematy nie są obsługiwane we wszystkich kontekstach.