Dopasowanie uprawnień hosta i skryptów treści opiera się na zbiorze adresów URL zdefiniowanych za pomocą wzorców 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, na przykład
http
,file
lub*
Uwaga: dostęp do adresów URLfile
nie jest automatyczny. Użytkownik musi otworzyć stronę zarządzania rozszerzeniami i przyznać mu dostęp dofile
w przypadku każdego rozszerzenia, które poprosi o dostęp.host – na przykład
www.google.com
,*.google.com
lub*
. Jeśli schemat tofile
, nie ma części hostpath, na przykład
/*
,/foo*
lub/foo/bar
. Ścieżka musi występować w uprawnieniu hosta, ale jest zawsze 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 elementu „*
” zależy od tego, czy znajduje się w części schematu, hosta czy ścieżki. Jeśli schemat to *
, odpowiada on http
lub https
, ale nie file
, ftp
ani urn
. Jeśli host to tylko *
, pasuje on do dowolnego hosta. Jeśli host to *._hostname_
, jest on zgodny z określonym hostem lub dowolną jego subdomeną. W sekcji path każdy ciąg „*
” pasuje do 0 lub większej liczby znaków. Poniższa tabela zawiera kilka prawidłowych wzorców.
Wzór | Zastosowanie | Przykłady pasujących URL-i |
---|---|---|
http://*/* | Pasuje do każdego adresu URL, który korzysta ze schematu http | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | Pasuje do każdego adresu URL korzystającego ze 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 | Dopasowuje każdy adres URL, który korzysta ze 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 na 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 dowolnego pliku lokalnego, którego ścieżka rozpoczyna się od /foo | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | Pasuje do każdego adresu URL, który korzysta ze 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/* | Dopasowuje wszystkie adresy URL rozpoczynające się od http://mail.google.com lub https://mail.google.com . | http://mail.google.com/foo/baz/bar https://mail.google.com/foobar |
urn:* | Dopasowuje wszystkie adresy URL rozpoczynające 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 korzysta z 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ń do wzorca:
Nieprawidłowy wzór | Dlaczego jest zła |
---|---|
http://www.google.com | Brak ścieżki |
http://*foo/bar | Po znaku „*” w polu host może występować tylko znak „.” lub „/” |
http://foo.*.bar/baz | Jeśli „*” znajduje się w polu host, musi to być pierwszy znak |
http:/bar | Brak separatora schematu („/” zamiast „//”) |
foo://* | Nieprawidłowy schemat |
Niektóre schematy nie są obsługiwane we wszystkich kontekstach.