ActiveTab की अनुमति

activeTab की अनुमति, किसी एक्सटेंशन को कुछ समय के लिए मौजूदा टैब का ऐक्सेस देती है. ऐसा तब होता है, जब उपयोगकर्ता, एक्सटेंशन को शुरू करता है - उदाहरण के लिए, उसकी ब्राउज़र कार्रवाई पर क्लिक करके. टैब का ऐक्सेस तब तक रहता है, जब तक उपयोगकर्ता उस पेज पर रहता है. साथ ही, जब उपयोगकर्ता उस टैब को बंद करता है या नेविगेट करता है, तो उसे रद्द कर दिया जाता है.

यह <all_urls> के कई इस्तेमाल के लिए एक विकल्प के तौर पर काम करता है, लेकिन चेतावनी का कोई मैसेज नहीं दिखाता है इंस्टॉलेशन के दौरान:

ध्यान दें: M72 और उसके बाद के वर्शन में, activeTab की अनुमति तब तक दी जाएगी, जब तक उपयोगकर्ता अलग-अलग ऑरिजिन के लिए लागू होता है. इसका मतलब है कि अगर उपयोगकर्ता https://example.com पर एक्सटेंशन शुरू करता है और इसके बाद https://example.com/foo पर ले जाता है, तो एक्सटेंशन के पास पेज का ऐक्सेस बना रहेगा. अगर जब कोई उपयोगकर्ता https://chromium.org पर जाता है, तो ऐक्सेस रद्द कर दिया जाता है.

activeTab के बिना:

ActiveTab के बिना

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 चालू होता है: