تستند مطابقة أذونات المضيف وبرامج النصوص الخاصة بالمحتوى إلى مجموعة من عناوين URL المحدّدة بواسطة أنماط المطابقة. نمط المطابقة هو في الأساس عنوان URL يبدأ بمخطط مسموح به (http أو https أو file أو ftp)، ويمكن أن يحتوي على أحرف *. يتطابق النمط الخاص <all_urls> مع أي عنوان URL يبدأ بنظام مسموح به. يتضمّن كل نمط مطابقة 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>
يختلف معنى "*" حسب ما إذا كان في جزء المخطط أو المضيف أو المسار. إذا كان المخطط هو *، سيتطابق مع 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://* | المخطط غير صالح |
لا تتوفّر بعض المخططات في جميع السياقات.