البيان: الموارد التي يمكن الوصول إليها على الويب

الموارد التي يمكن الوصول إليها على الويب هي ملفات داخل إضافة يمكن الوصول إليها من خلال صفحات الويب أو الإضافات الأخرى. تستخدم الإضافات عادةً هذه الميزة لعرض الصور أو مواد العرض الأخرى التي يجب تحميلها على صفحات الويب، ولكن يمكن إتاحة الوصول إلى أي مادة عرض مضمَّنة في حِزمة الإضافة على الويب.

بشكل تلقائي، لا يمكن الوصول إلى أي موارد على الويب، لأنّ ذلك يسمح للمواقع الإلكترونية الضارة ببصمة الإصبع للإضافات التي ثبّتها المستخدم أو استغلال الثغرات الأمنية (مثل أخطاء XSS) في الإضافات المثبّتة. يمكن فقط للصفحات أو النصوص البرمجية التي تم تحميلها من أصل الإضافة الوصول إلى موارد تلك الإضافة.

بيان البيان

يمكنك استخدام سمة البيان web_accessible_resources للإعلان عن الموارد المعروضة والمصادر المتاحة. هذه السمة هي مصفوفة من العناصر التي تعلن عن قواعد الوصول إلى الموارد. ويربط كل كائن مصفوفة من موارد الإضافات بمجموعة من عناوين URL و/أو معرِّفات الإضافات التي يمكنها الوصول إلى هذه الموارد.

{
  ...
  "web_accessible_resources": [
    {
      "resources": [ "test1.png", "test2.png" ],
      "matches": [ "https://web-accessible-resources-1.glitch.me/*" ]
    }, {
      "resources": [ "test3.png", "test4.png" ],
      "matches": [ "https://web-accessible-resources-2.glitch.me/*" ],
      "use_dynamic_url": true
    }
  ],
  ...
}

يحتوي كل كائن في الصفيفة على العناصر التالية:

"resources"
مصفوفة من السلاسل تحتوي كل منها على مسار نسبي إلى مورد معيّن من الدليل الجذر للإضافة. قد تحتوي الموارد على علامات نجمية (*) لمطابقات أحرف البدل. على سبيل المثال، يعرض "/images/*" كل ملفات دليل images/ الخاص بالإضافة بشكل متكرر، بينما يعرض "*.png" جميع ملفات PNG.
"matches"
مصفوفة من السلاسل تحتوي كل منها على نمط مطابقة يحدد المواقع الإلكترونية التي يمكنها الوصول إلى هذه المجموعة من الموارد. ويتم استخدام المصدر فقط لمطابقة عناوين URL. وتتضمّن المصادر مطابقة النطاق الفرعي. يصدر Google Chrome الخطأ "نمط مطابقة غير صالح" إذا كان النمط يحتوي على مسار بخلاف "/*".
"extension_ids"
مصفوفة من السلاسل، تحتوي كل منها على رقم تعريف إحدى الإضافات التي يمكنها الوصول إلى الموارد
"use_dynamic_url"
في حال اختيار "صحيح"، يجب السماح بالوصول إلى الموارد فقط من خلال رقم تعريف ديناميكي. يتم إنشاء رقم تعريف ديناميكي لكل جلسة. وهذا يعني أنه تتم إعادة إنشائه عند إعادة تشغيل المتصفح أو عند إعادة تحميل الإضافة.

ويجب أن يشتمل كل عنصر على عنصر "resources" وعنصر "matches" أو "extension_ids". يؤدي ذلك إلى إنشاء عملية ربط تكشف الموارد المحدَّدة إما لصفحات الويب التي تتطابق مع النمط أو للإضافات ذات أرقام التعريف المطابقة. العنصر "use_dynamic_url" اختياري

تتوفّر الموارد في صفحة ويب من خلال عنوان URL chrome-extension://[PACKAGE ID]/[PATH] الذي يمكن إنشاؤه باستخدام الطريقة runtime.getURL(). يتم عرض الموارد باستخدام عناوين CORS المناسبة، بحيث تكون متاحة عبر fetch().

يتم حظر الانتقال من مصدر ويب إلى مورد إضافة ما لم يتم إدراج المورد على أنّه يمكن الوصول إليه على الويب. لاحظ الحالات التالية في الزاوية:

  • عندما تستخدم إحدى الإضافات واجهة برمجة التطبيقات webRequest لإعادة توجيه طلب مورد عام إلى مورد لا يمكن الوصول إليه عبر الويب، يتم أيضًا حظر هذا الطلب.
  • ينطبق ما سبق حتى إذا كان المورد الذي يتعذّر الوصول إليه على الويب مملوكًا لإضافة إعادة التوجيه.
  • يتم حظر التنقّل في "وضع التصفّح المتخفي" ما لم يتم ضبط قيمة الحقل "incognito" على "split".

ولا يلزم السماح باستخدام النصوص البرمجية للمحتوى نفسها.

مثال

يوضّح مثال موارد الوصول إلى الويب استخدام هذا العنصر في إضافة عاملة.