สิทธิ์ 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 อนุญาต
เมื่อเปิดใช้สิทธิ์ activeTab
ของแท็บ ส่วนขยายจะทำสิ่งต่อไปนี้ได้
- โทรหา
tabs.executeScript
หรือtabs.insertCSS
ในแท็บนั้น - รับ URL, ชื่อ และไอคอน Fav ของแท็บดังกล่าวผ่าน API ที่แสดงผลออบเจ็กต์
tabs.Tab
(activeTab
จะให้สิทธิ์tabs
ชั่วคราว) - สกัดกั้นคำขอของเครือข่ายในแท็บไปยังต้นทางเฟรมหลักของแท็บโดยใช้ webRequest API ส่วนขยายจะได้รับสิทธิ์ของโฮสต์ชั่วคราวสําหรับต้นทางเฟรมหลักของแท็บ
กำลังเรียกใช้ ActiveTab
ท่าทางสัมผัสของผู้ใช้ต่อไปนี้เปิดใช้ activeTab
:
- การใช้การทำงานของเบราว์เซอร์
- การใช้การทำงานของหน้าเว็บ
- การดำเนินการรายการเมนูตามบริบท
- การใช้แป้นพิมพ์ลัดจาก commands API
- การยอมรับคำแนะนำจาก แถบอเนกประสงค์ API