Pola pencocokan

Pencocokan izin host dan skrip konten didasarkan pada kumpulan URL yang ditentukan oleh pola pencocokan. Pola pencocokan pada dasarnya adalah URL yang diawali dengan skema yang diizinkan (http, https, file, atau ftp, dan yang dapat berisi karakter '*'. Pola khusus <all_urls> cocok dengan URL apa pun yang dimulai dengan skema yang diizinkan. Setiap pola pencocokan memiliki 3 bagian:

  • skema—misalnya, http atau file atau *

    Catatan: Akses ke URL file tidak otomatis. Pengguna harus membuka halaman pengelolaan ekstensi dan mengaktifkan akses file untuk setiap ekstensi yang memintanya.
  • host—misalnya, www.google.com atau *.google.com atau *; jika skema adalah file, tidak ada bagian host

  • path—misalnya, /*, /foo*, atau /foo/bar. Jalur harus ada dalam izin host, tetapi selalu diperlakukan sebagai /*.

Berikut adalah sintaksis dasarnya:

&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;

Arti '*' bergantung pada apakah * berada di bagian skema, host, atau jalur. Jika skema adalah *, skema tersebut akan cocok dengan http atau https, dan bukan file, ftp, atau urn. Jika host hanya *, host tersebut akan cocok dengan host mana pun. Jika host adalah *._hostname_, host tersebut akan cocok dengan host yang ditentukan atau subdomainnya. Di bagian path, setiap '*' cocok dengan 0 karakter atau lebih. Tabel berikut menunjukkan beberapa pola yang valid.

PolaFungsinyaContoh URL yang cocok
http://*/*Mencocokkan URL apa pun yang menggunakan skema httphttp://www.google.com/
http://example.org/foo/bar.html
http://*/foo*Mencocokkan URL apa pun yang menggunakan skema http, di host mana pun, selama jalurnya diawali dengan /foohttp://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barMencocokkan URL apa pun yang menggunakan skema https, berada di host google.com (seperti www.google.com, docs.google.com, atau google.com), selama jalurnya diawali dengan /foo dan diakhiri dengan barhttps://www.google.com/foo/baz/bar
https://docs.google.com/foobar
http://example.org/foo/bar.htmlCocok dengan URL yang ditentukanhttp://example.org/foo/bar.html
file:///foo*Cocok dengan file lokal apa pun yang jalurnya dimulai dengan /foofile:///foo/bar.html
file:///foo
http://127.0.0.1/*Mencocokkan URL apa pun yang menggunakan skema http dan berada di host 127.0.0.1http://127.0.0.1/
http://127.0.0.1/foo/bar.html
*://mail.google.com/*Cocok dengan URL apa pun yang diawali dengan http://mail.google.com atau https://mail.google.com.http://mail.google.com/foo/baz/bar
https://mail.google.com/foobar
urn:*Cocok dengan URL apa pun yang diawali dengan urn:.urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582
urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da
<all_urls>Mencocokkan URL apa pun yang menggunakan skema yang diizinkan. (Lihat awal bagian ini untuk mengetahui daftar skema yang diizinkan.)http://example.org/foo/bar.html
file:///bar/baz.html

Berikut adalah beberapa contoh kecocokan pola yang tidak valid:

Pola burukAlasan hal ini buruk
http://www.google.comTidak ada jalur
http://*foo/bar'*' di host hanya dapat diikuti dengan '.' atau '/'
http://foo.*.bar/baz Jika '*' ada di host, karakter tersebut harus menjadi karakter pertama
http:/barPemisah skema tidak ada ("/" harus "//")
foo://*Skema tidak valid

Beberapa skema tidak didukung di semua konteks.