Wzorce dopasowania

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, file lub *

    Uwaga: dostęp do adresów URL file nie jest automatyczny. Użytkownik musi wejść na stronę zarządzania rozszerzeniami i włączyć dostęp do file w przypadku każdego rozszerzenia, które o to poprosi.
  • host – na przykład www.google.com, *.google.com lub *; jeśli schemat to file, 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:

&lt;url-pattern&gt; := &lt;scheme&gt;://&lt;host&gt;&lt;path&gt;
&lt;scheme&gt; := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
&lt;host&gt; := '*' | '*.' &lt;any char except '/' and '*'&gt;+
&lt;path&gt; := '/' &lt;any chars&gt;

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órZastosowaniePrzykłady pasujących adresów URL
http://*/*Pasuje do wszystkich adresów URL używających schematu httphttp://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 /foohttp://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barPasuje 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ę barhttps://www.google.com/foo/baz/bar
https://docs.google.com/foobar
http://example.org/foo/bar.htmlPasuje do określonego adresu URLhttp://example.org/foo/bar.html
file:///foo*Pasuje do wszystkich plików lokalnych, których ścieżka zaczyna się od /foofile:///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.1http://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órDlaczego jest zły
http://www.google.comBrak ś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:/barBrak separatora schematu („/” powinno być „//”)
foo://*Nieprawidłowy schemat

Niektóre schematy nie są obsługiwane we wszystkich kontekstach.