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

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

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

بيان البيان

استخدِم خاصية البيان web_accessible_resources للإعلان عن الموارد المعروضة ومعرفة المصادر. هذه السمة هي مصفوفة من العناصر التي تعلن عن قواعد الوصول إلى الموارد. يدرج كل عنصر عددًا من موارد الإضافة ويجب أن يوفّر قيمة لمفتاح واحد على الأقل من مفاتيح matches أو extension_ids للإشارة إلى المصادر التي يمكنها الوصول إلى هذه الموارد.

{
  ...
  "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/*" ]
    }
  ],
  ...
}

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

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

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

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

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

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

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

مثال

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