รูปแบบการจับคู่

สิทธิ์ของโฮสต์และการจับคู่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 เส้นทางต้องอยู่ในสิทธิ์ของโฮสต์ แต่จะถือว่าเป็น /* เสมอ

ไวยากรณ์พื้นฐานมีดังนี้

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

ความหมายของ '*' จะขึ้นอยู่กับว่าอยู่ในส่วนรูปแบบ โฮสต์ หรือเส้นทาง หาก scheme เป็น * แสดงว่าจะตรงกับ http หรือ https และไม่ใช่ file, ftp หรือ urn หากโฮสต์เป็นเพียง * ระบบจะจับคู่กับโฮสต์ใดก็ได้ หากโฮสต์เป็น *._hostname_ แสดงว่าตรงกับ โฮสต์ที่ระบุหรือโดเมนย่อยใดๆ ของโฮสต์นั้น ในส่วนเส้นทาง '*' แต่ละรายการจะตรงกับอักขระตั้งแต่ 0 ตัวขึ้นไป ตารางต่อไปนี้แสดงรูปแบบที่ถูกต้องบางส่วน

รูปแบบการทำงานตัวอย่าง URL ที่ตรงกัน
http://*/*จับคู่ URL ที่ใช้รูปแบบ httphttp://www.google.com/
http://example.org/foo/bar.html
http://*/foo*จับคู่ URL ใดก็ตามที่ใช้รูปแบบ http ในโฮสต์ใดก็ได้ ตราบใดที่เส้นทางขึ้นต้นด้วย /foohttp://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 และลงท้ายด้วย barhttps://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*จับคู่ไฟล์ในเครื่องที่มีเส้นทางขึ้นต้นด้วย /foofile:///foo/bar.html
file:///foo
http://127.0.0.1/*จับคู่ URL ใดก็ตามที่ใช้รูปแบบ http และอยู่ในโฮสต์ 127.0.0.1http://127.0.0.1/
http://127.0.0.1/foo/bar.html
*://mail.google.com/*จับคู่ URL ใดก็ตามที่ขึ้นต้นด้วย http://mail.google.com หรือ https://mail.google.comhttp://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://*รูปแบบไม่ถูกต้อง

บางรูปแบบอาจไม่รองรับในบางบริบท