Pola pencocokan

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

  • scheme—misalnya, http atau file atau *

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

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

Berikut 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 karakter tersebut berada di bagian scheme, host, atau path. Jika skema adalah *, maka skema tersebut cocok dengan http atau https, dan bukan file, ftp, atau urn. Jika host hanya *, maka host tersebut cocok dengan host apa pun. Jika host adalah *._hostname_, maka host tersebut 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://*/*Cocok dengan URL apa pun yang menggunakan skema httphttp://www.google.com/
http://example.org/foo/bar.html
http://*/foo*Cocok dengan URL apa pun yang menggunakan skema http, di host mana pun, selama jalur dimulai dengan /foohttp://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barCocok dengan URL apa pun yang menggunakan skema https, berada di host google.com (seperti www.google.com, docs.google.com, atau google.com), selama jalur dimulai 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/*Cocok dengan 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 dimulai 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 dimulai dengan urn:.urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582
urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da
<all_urls>Cocok dengan URL apa pun yang menggunakan skema yang diizinkan. (Lihat bagian awal bagian ini untuk mengetahui daftar skema yang diizinkan.)http://example.org/foo/bar.html
file:///bar/baz.html

Berikut beberapa contoh pencocokan pola tidak valid:

Pola burukAlasan pola buruk
http://www.google.comTidak ada path
http://*foo/bar'*' di host hanya dapat diikuti oleh '.' atau '/'
http://foo.*.bar/baz Jika '*' berada di host, karakter tersebut harus menjadi karakter pertama
http:/barPemisah scheme tidak ada ("/" seharusnya "//")
foo://*scheme tidak valid

Beberapa skema tidak didukung di semua konteks.