สิทธิ์ของโฮสต์และการจับคู่Content Script จะอิงตามชุด URL ที่กำหนดโดยรูปแบบการจับคู่ รูปแบบการจับคู่คือ URL ที่ขึ้นต้นด้วยรูปแบบที่อนุญาต (http, https, file หรือ ftp) และมีอักขระ '*' ได้ รูปแบบพิเศษ <all_urls> จะตรงกับ
URL ใดก็ตามที่เริ่มต้นด้วย Scheme ที่ได้รับอนุญาต รูปแบบการจับคู่แต่ละรายการมี 3 ส่วน ดังนี้
scheme เช่น
httpหรือfileหรือ*หมายเหตุ: การเข้าถึง URL ของfileไม่ได้เกิดขึ้นโดยอัตโนมัติ ผู้ใช้ต้องไปที่หน้าการจัดการส่วนขยายและเลือกใช้สิทธิ์เข้าถึงfileสำหรับส่วนขยายแต่ละรายการที่ขอสิทธิ์โฮสต์ เช่น
www.google.comหรือ*.google.comหรือ*หากรูปแบบเป็นfileจะไม่มีส่วนโฮสต์เส้นทาง เช่น
/*,/foo*หรือ/foo/barเส้นทางต้องอยู่ในสิทธิ์ของโฮสต์ แต่จะถือว่าเป็น/*เสมอ
ไวยากรณ์พื้นฐานมีดังนี้
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
ความหมายของ '*' จะขึ้นอยู่กับว่าอยู่ในส่วนรูปแบบ โฮสต์ หรือเส้นทาง หาก scheme เป็น * แสดงว่าจะตรงกับ http หรือ https และไม่ใช่ file, ftp หรือ urn หากโฮสต์เป็นเพียง * ระบบจะจับคู่กับโฮสต์ใดก็ได้ หากโฮสต์เป็น *._hostname_ แสดงว่าตรงกับ
โฮสต์ที่ระบุหรือโดเมนย่อยใดๆ ของโฮสต์นั้น ในส่วนเส้นทาง '*' แต่ละรายการจะตรงกับอักขระตั้งแต่ 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 | หากมี "*" ในโฮสต์ จะต้องเป็นอักขระตัวแรก |
http:/bar | ไม่มีตัวคั่นรูปแบบ ("/" ควรเป็น "//") |
foo://* | รูปแบบไม่ถูกต้อง |
บางรูปแบบอาจไม่รองรับในบางบริบท