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

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

لا يمكن الوصول إلى أي موارد على الويب بشكل تلقائي، لأنّ هذا يسمح للمواقع الإلكترونية الضارّة بإضافة بصمة الإصبع للإضافات التي ثبَّتها المستخدم. أو استغلال الثغرات الأمنية (مثل أخطاء 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".

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

مثال

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