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
पर कॉल करें. tabs.Tab
ऑब्जेक्ट दिखाने वाले एपीआई की मदद से, उस टैब के लिए यूआरएल, टाइटल, और फ़ेविकॉन पाएं (मुख्य तौर पर,activeTab
tabs
को कुछ समय के लिए अनुमति देता है).- webRequest का इस्तेमाल करके, टैब में मौजूद नेटवर्क अनुरोधों को टैब के मुख्य फ़्रेम ऑरिजिन पर जाने से रोकें एपीआई. एक्सटेंशन को टैब के मुख्य फ़्रेम ऑरिजिन के लिए, कुछ समय के लिए होस्ट की अनुमतियां मिलती हैं.
ActiveTab शुरू करना
उपयोगकर्ता के इन जेस्चर से, activeTab
चालू होता है:
- ब्राउज़र से जुड़ी कार्रवाई की जा रही है
- पेज पर कार्रवाई की जा रही है
- संदर्भ मेन्यू आइटम एक्ज़ीक्यूट करना
- commands API से कीबोर्ड शॉर्टकट एक्ज़ीक्यूट करना
- खोज वाली पट्टी API से किसी सुझाव को स्वीकार करना