يمنح الإذن "activeTab" الإضافة إذنًا مؤقتًا بالوصول إلى علامة التبويب النشطة حاليًا عندما يستدعي المستخدم الإضافة، مثلاً من خلال النقر على إجراء الإضافة. يستمر إذن الوصول إلى علامة التبويب طالما أنّ المستخدم متواجد على تلك الصفحة، ويتم إبطاله عندما ينتقل المستخدم إلى صفحة أخرى أو يُغلق علامة التبويب.
على سبيل المثال، إذا استدعى المستخدم الإضافة على https://example.com ثم انتقل إلى https://example.com/foo، ستظل الإضافة قادرة على الوصول إلى الصفحة. إذا انتقل المستخدم إلى https://chromium.org، سيتم إبطال إذن الوصول.
يُستخدَم هذا الخيار كبديل للعديد من استخدامات "<all_urls>"، ولكن لا يعرض رسالة تحذير
أثناء التثبيت:
بدون "activeTab":

مع "activeTab":

لا يتم منح إذن الوصول إلى الصفحات المحظورة، مثل صفحات chrome://.
مثال
إليك نموذج إضافة Page Redder:
manifest.json:
{
"name": "Page Redder",
"version": "2.0",
"permissions": [
"activeTab",
"scripting"
],
"background": {
"service_worker": "service-worker.js"
},
"action": {
"default_title": "Make this page red"
},
"manifest_version": 3
}
service-worker:
function reddenPage() {
document.body.style.backgroundColor = 'red';
}
chrome.action.onClicked.addListener((tab) => {
// If the tab URL is not set, it is a restricted page.
if (tab.url) {
chrome.scripting.executeScript({
target: { tabId: tab.id },
func: reddenPage
});
}
});
الحافز
ننصحك باستخدام إضافة لقص محتوى الويب تتضمّن إجراءً وعنصر قائمة سياقية. قد تحتاج هذه الإضافة إلى الوصول إلى علامات التبويب فقط عند النقر على إجراءاتها أو عند تنفيذ عنصر قائمة السياق الخاص بها.
بدون "activeTab"، ستحتاج هذه الإضافة إلى طلب إذن وصول كامل ودائم إلى كل موقع إلكتروني،
وذلك لكي تتمكّن من تنفيذ عملها إذا طلبها المستخدم. وهذا يمنح هذه الإضافة البسيطة الكثير من السلطة. وفي حال اختراق الإضافة، يمكن للمهاجم الوصول إلى كل البيانات التي كانت الإضافة تتضمّنها.
في المقابل، لا يمكن لإضافة تتضمّن إذن "activeTab" الوصول إلى علامة تبويب إلا استجابةً لإجراء صريح من المستخدم. في حال تعرّض الإضافة للاختراق، على المهاجم الانتظار إلى أن يستدعي المستخدم الإضافة قبل أن يتمكّن من الوصول إليها. ولا تدوم إمكانية الوصول هذه إلا إلى أن يتم الانتقال إلى علامة التبويب أو إغلاقها.
الإجراءات التي يسمح بها الإذن "activeTab"
عندما يكون إذن "activeTab" مفعّلاً لعلامة تبويب، يمكن للإضافة إجراء ما يلي:
- اتّصِل بالرقم
scripting.insertCSS()أوscripting.executeScript()في علامة التبويب هذه إذا تم أيضًا الإفصاح عن"scripting"إذن (كما في المثال أعلاه). - يمكنك الحصول على عنوان URL وعنوان ورمز مفضل لعلامة التبويب هذه من خلال واجهة برمجة تطبيقات تعرض عنصر
tabs.Tab(بشكل أساسي، يمنح"activeTab"إذن المضيف مؤقتًا). - اعتراض طلبات الشبكة في علامة التبويب إلى مصدر الإطار الرئيسي لعلامة التبويب باستخدام واجهة برمجة التطبيقات webRequest تحصل الإضافة مؤقتًا على أذونات المضيف لمصدر الإطار الرئيسي لعلامة التبويب.
استدعاء activeTab
تتيح إيماءات المستخدم التالية إذن "activeTab":
- تنفيذ إجراء
- تنفيذ عنصر في قائمة السياقات
- تنفيذ اختصار لوحة المفاتيح من واجهة برمجة التطبيقات للأوامر
- قبول اقتراح من واجهة برمجة تطبيقات المربّع المتعدد الاستخدامات