การจับคู่สิทธิ์ของโฮสต์และสคริปต์เนื้อหาจะอิงตามชุด URL ที่กําหนดโดยรูปแบบการจับคู่ รูปแบบการจับคู่คือ URL ที่ขึ้นต้นด้วยรูปแบบที่อนุญาต (http
, https
,
file
หรือ ftp
และอาจมีอักขระ '*
' รูปแบบพิเศษ <all_urls>
จะจับคู่กับ URL ใดก็ได้ที่ขึ้นต้นด้วยรูปแบบที่อนุญาต รูปแบบการทำงานของคีย์เวิร์ดแต่ละรายการมี 3 ส่วนดังนี้
scheme เช่น
http
หรือfile
หรือ*
หมายเหตุ: การเข้าถึง URLfile
จะไม่ทำงานโดยอัตโนมัติ ผู้ใช้ต้องไปที่หน้าการจัดการส่วนขยายและเลือกใช้สิทธิ์เข้าถึงfile
สําหรับส่วนขยายแต่ละรายการที่ขอสิทธิ์host เช่น
www.google.com
หรือ*.google.com
หรือ*
หากรูปแบบเป็นfile
จะไม่มีส่วน hostpath เช่น
/*
,/foo*
หรือ/foo/bar
เส้นทางต้องอยู่ในสิทธิ์ของโฮสต์ แต่ระบบจะถือว่า/*
เสมอ
ไวยากรณ์พื้นฐานมีดังนี้
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
ความหมายของ "*
" จะขึ้นอยู่กับว่าอยู่ในส่วนของรูปแบบ โฮสต์ หรือเส้นทาง หากรูปแบบคือ *
รูปแบบจะจับคู่กับ http
หรือ https
และไม่จับคู่กับ file
, ftp
หรือ urn
หาก host เป็นเพียง *
รายการดังกล่าวจะจับคู่กับโฮสต์ใดก็ได้ หาก host คือ *._hostname_
แสดงว่ารายการดังกล่าวจะจับคู่กับโฮสต์ที่ระบุหรือโดเมนย่อยของโฮสต์นั้น ในส่วน path แต่ละ "*
" จะจับคู่กับอักขระตั้งแต่ 0 ตัวขึ้นไป ตารางต่อไปนี้แสดงรูปแบบที่ถูกต้องบางส่วน
รูปแบบ | การทำงาน | ตัวอย่าง URL ที่ตรงกัน |
---|---|---|
http://*/* | จับคู่กับ URL ที่ใช้รูปแบบ http | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | จับคู่ URL ที่ใช้รูปแบบ http ในโฮสต์ใดก็ได้ ตราบใดที่เส้นทางขึ้นต้นด้วย /foo | http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | จับคู่กับ URL ที่ใช้รูปแบบ https อยู่ในโฮสต์ google.com (เช่น www.google.com, docs.google.com หรือ google.com) ตราบใดที่เส้นทางขึ้นต้นด้วย /foo และลงท้ายด้วย bar | https://www.google.com/foo/baz/bar https://docs.google.com/foobar |
http://example.org/foo/bar.html | ตรงกับ URL ที่ระบุ | http://example.org/foo/bar.html |
file:///foo* | จับคู่ไฟล์ในเครื่องที่มีเส้นทางขึ้นต้นด้วย /foo | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | จับคู่กับ URL ที่ใช้รูปแบบ http และอยู่ในโฮสต์ 127.0.0.1 | http://127.0.0.1/ http://127.0.0.1/foo/bar.html |
*://mail.google.com/* | จับคู่ URL ใดก็ตามที่ขึ้นต้นด้วย http://mail.google.com หรือ https://mail.google.com | http://mail.google.com/foo/baz/bar https://mail.google.com/foobar |
urn:* | จับคู่ URL ใดก็ตามที่ขึ้นต้นด้วย urn: | urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582 urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da |
<all_urls> | จับคู่กับ URL ที่ใช้รูปแบบที่อนุญาต (ดูรายการรูปแบบที่อนุญาตได้ที่ส่วนต้นของส่วนนี้) | http://example.org/foo/bar.html file:///bar/baz.html |
ตัวอย่างการจับคู่รูปแบบที่ไม่ถูกต้องมีดังนี้
รูปแบบไม่ถูกต้อง | เหตุผลที่ไม่ดี |
---|---|
http://www.google.com | ไม่มีเส้นทาง |
http://*foo/bar | '*' ในโฮสต์ต้องตามด้วย "." หรือ "/" เท่านั้น |
http://foo.*.bar/baz | หาก "*" อยู่ใน host ต้องเป็นอักขระแรก |
http:/bar | ไม่มีตัวคั่นรูปแบบ ("/" ควรเป็น "//") |
foo://* | สคีมาไม่ถูกต้อง |
รูปแบบบางอย่างไม่รองรับในบางบริบท