إذن ActiveTab

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

يعمل هذا الإجراء كبديل للعديد من استخدامات <all_urls>، ولكنّه لا يعرض أي رسالة تحذير أثناء التثبيت:

ملاحظة: بدءًا من الإصدار M72 فصاعدًا، سيتم منح إذن activeTab إلى أن ينتقل المستخدم إلى مصدر مختلف. ويعني ذلك أنّه إذا استدعى المستخدم الإضافة على https://example.com ثم انتقل إلى https://example.com/foo، سيظل بإمكان الإضافة الوصول إلى الصفحة. في حال انتقال المستخدم إلى https://chromium.org، سيتم إبطال إمكانية الوصول.

بدون activeTab:

بدون علامة التبويب النشطة

مع "activeTab":

مع علامة تبويب نشطة

مثال

اطّلع على نموذج إضافة Page Redder:

{
  "name": "Page Redder",
  "version": "2.0",
  "permissions": [
    "activeTab"
  ],
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "browser_action": {
    "default_title": "Make this page red"
  },
  "manifest_version": 2
}
// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
  // No tabs or host permissions needed!
  console.log('Turning ' + tab.url + ' red!');
  chrome.tabs.executeScript({
    code: 'document.body.style.backgroundColor="red"'
  });
});

الحافز

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

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

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

ما تسمح به علامة التبويب النشِطة

عندما يكون إذن "activeTab" مفعَّلاً لإحدى علامات التبويب، يمكن للإضافة إجراء ما يلي:

  • يمكنك الاتصال بـ tabs.executeScript أو tabs.insertCSS على علامة التبويب هذه.
  • احصل على عنوان URL والعنوان والرمز المفضّل لعلامة التبويب هذه من خلال واجهة برمجة تطبيقات تعرض عنصر tabs.Tab (بشكل أساسي، يمنح activeTab الإذن tabs مؤقتًا).
  • يمكنك اعتراض طلبات الشبكة في علامة التبويب للوصول إلى أصل الإطار الرئيسي لعلامة التبويب باستخدام واجهة برمجة التطبيقات webRequest. تحصل الإضافة مؤقتًا على أذونات المضيف لأصل الإطار الرئيسي لعلامة التبويب.

استدعاء علامة التبويب النشطة

تعمل إيماءات المستخدم التالية على تفعيل activeTab: