ब्यौरा
Google Chrome के टूलबार में एक्सटेंशन के आइकॉन को कंट्रोल करने के लिए, chrome.action API का इस्तेमाल करें.
उपलब्धता
मेनिफ़ेस्ट
chrome.action एपीआई का इस्तेमाल करने के लिए, 3 का "manifest_version" तय करें. साथ ही, अपनी मेनिफ़ेस्ट फ़ाइल में "action" कुंजी शामिल करें.
{
  "name": "Action Extension",
  ...
  "action": {
    "default_icon": {              // optional
      "16": "images/icon16.png",   // optional
      "24": "images/icon24.png",   // optional
      "32": "images/icon32.png"    // optional
    },
    "default_title": "Click Me",   // optional, shown in tooltip
    "default_popup": "popup.html"  // optional
  },
  ...
}
"action" कुंजी (और इसके चाइल्ड) का इस्तेमाल करना ज़रूरी नहीं है. इसे शामिल न करने पर भी, एक्सटेंशन को टूलबार में दिखाया जाता है, ताकि एक्सटेंशन के मेन्यू को ऐक्सेस किया जा सके. इसलिए, हमारा सुझाव है कि आप हमेशा कम से कम "action" और "default_icon" कुंजियां शामिल करें.
कॉन्सेप्ट और इस्तेमाल
यूज़र इंटरफ़ेस (यूआई) के हिस्से
आइकॉन
यह आइकॉन, आपके एक्सटेंशन के टूलबार पर मौजूद मुख्य इमेज होती है. इसे आपके मेनिफ़ेस्ट की "action" कुंजी में मौजूद "default_icon" कुंजी से सेट किया जाता है. आइकॉन की चौड़ाई और लंबाई 16 डिवाइस-इंडिपेंडेंट पिक्सल (डीआईपी) होनी चाहिए.
"default_icon" कुंजी, इमेज पाथ के लिए साइज़ की डिक्शनरी होती है. Chrome इन आइकॉन का इस्तेमाल करके यह तय करता है कि इमेज को किस स्केल पर दिखाना है. अगर एग्ज़ैक्ट मैच नहीं मिलता है, तो Chrome सबसे मिलते-जुलते फ़ॉन्ट को चुनता है और उसे इमेज के हिसाब से स्केल करता है. इससे इमेज की क्वालिटी पर असर पड़ सकता है.
1.5x या 1.2x जैसे कम इस्तेमाल होने वाले स्केल फ़ैक्टर वाले डिवाइसों का इस्तेमाल अब ज़्यादा होने लगा है. इसलिए, हमारा सुझाव है कि आप अपने आइकॉन के लिए कई साइज़ उपलब्ध कराएं. इससे, आइकॉन के डिसप्ले साइज़ में होने वाले संभावित बदलावों के हिसाब से, आपका एक्सटेंशन आने वाले समय में भी काम करता रहेगा. हालांकि, अगर सिर्फ़ एक साइज़ दिया जा रहा है, तो "default_icon" कुंजी को डिक्शनरी के बजाय, एक आइकॉन के पाथ वाली स्ट्रिंग पर भी सेट किया जा सकता है.
एक्सटेंशन के आइकॉन को प्रोग्राम के हिसाब से सेट करने के लिए, action.setIcon() को कॉल किया जा सकता है. इसके लिए, इमेज का कोई दूसरा पाथ तय करें या एचटीएमएल कैनवस एलिमेंट का इस्तेमाल करके, डाइनैमिक तरीके से जनरेट किया गया आइकॉन उपलब्ध कराएं. इसके अलावा, अगर एक्सटेंशन सर्विस वर्कर से आइकॉन सेट किया जा रहा है, तो ऑफ़स्क्रीन कैनवस एपीआई का इस्तेमाल करें.
const canvas = new OffscreenCanvas(16, 16);
const context = canvas.getContext('2d');
context.clearRect(0, 0, 16, 16);
context.fillStyle = '#00FF00';  // Green
context.fillRect(0, 0, 16, 16);
const imageData = context.getImageData(0, 0, 16, 16);
chrome.action.setIcon({imageData: imageData}, () => { /* ... */ });
पैक्ड एक्सटेंशन (जो .crx फ़ाइल से इंस्टॉल किए जाते हैं) के लिए, इमेज ऐसे ज़्यादातर फ़ॉर्मैट में हो सकती हैं जिन्हें Blink रेंडरिंग इंजन दिखा सकता है. इनमें PNG, JPEG, BMP, ICO वगैरह शामिल हैं. SVG फ़ाइल फ़ॉर्मैट का इस्तेमाल नहीं किया जा सकता. अनपैक किए गए एक्सटेंशन में, PNG इमेज का इस्तेमाल करना ज़रूरी है.
टूलटिप (टाइटल)
जब उपयोगकर्ता, टूलबार में एक्सटेंशन के आइकॉन पर माउस पॉइंटर को घुमाता है, तब टूलटिप या टाइटल दिखता है. जब बटन पर फ़ोकस किया जाता है, तब स्क्रीन रीडर इस टेक्स्ट को भी पढ़ता है.
डिफ़ॉल्ट टूलटिप को manifest.json में मौजूद "action" कुंजी के "default_title" फ़ील्ड का इस्तेमाल करके सेट किया जाता है.
action.setTitle() को कॉल करके, इसे प्रोग्राम के हिसाब से भी सेट किया जा सकता है.
बैज
कार्रवाइयों में, "बैज" दिखाने का विकल्प होता है. यह आइकॉन के ऊपर लेयर किया गया थोड़ा सा टेक्स्ट होता है. इसकी मदद से, एक्सटेंशन की स्थिति के बारे में थोड़ी जानकारी दिखाने के लिए, कार्रवाई को अपडेट किया जा सकता है. जैसे, काउंटर. बैज में एक टेक्स्ट कॉम्पोनेंट और बैकग्राउंड का रंग होता है. जगह सीमित होने की वजह से, हमारा सुझाव है कि बैज के टेक्स्ट में चार या इससे कम वर्णों का इस्तेमाल करें.
बैज बनाने के लिए, action.setBadgeBackgroundColor() और action.setBadgeText() को कॉल करके, इसे प्रोग्राम के हिसाब से सेट करें. मेनिफ़ेस्ट में, बैज की डिफ़ॉल्ट सेटिंग मौजूद नहीं है. बैज के रंग की वैल्यू, 0 से 255 के बीच के चार पूर्णांकों का एक ऐसा कलेक्शन हो सकता है जो बैज के आरजीबीए रंग को बनाता है. इसके अलावा, यह सीएसएस रंग की वैल्यू वाली स्ट्रिंग भी हो सकती है.
chrome.action.setBadgeBackgroundColor(
  {color: [0, 255, 0, 0]},  // Green
  () => { /* ... */ },
);
chrome.action.setBadgeBackgroundColor(
  {color: '#00FF00'},  // Also green
  () => { /* ... */ },
);
chrome.action.setBadgeBackgroundColor(
  {color: 'green'},  // Also, also green
  () => { /* ... */ },
);
पॉप-अप
जब उपयोगकर्ता टूलबार में एक्सटेंशन के ऐक्शन बटन पर क्लिक करता है, तब ऐक्शन का पॉप-अप दिखता है. पॉप-अप में आपकी पसंद का कोई भी एचटीएमएल कॉन्टेंट शामिल किया जा सकता है. साथ ही, यह कॉन्टेंट के हिसाब से अपने-आप सेट हो जाएगा. पॉप-अप का साइज़ 25x25 और 800x600 पिक्सल के बीच होना चाहिए.
पॉप-अप को शुरू में, manifest.json फ़ाइल में मौजूद "action" कुंजी में "default_popup" प्रॉपर्टी के ज़रिए सेट किया जाता है. अगर यह प्रॉपर्टी मौजूद है, तो इसे एक्सटेंशन डायरेक्ट्री में मौजूद किसी रिलेटिव पाथ की ओर ले जाना चाहिए. action.setPopup() तरीके का इस्तेमाल करके, इसे डाइनैमिक तौर पर भी अपडेट किया जा सकता है, ताकि यह किसी दूसरे रिलेटिव पाथ की ओर इशारा करे.
उपयोग के उदाहरण
हर टैब की स्थिति
एक्सटेंशन ऐक्शन की स्थिति, हर टैब के लिए अलग-अलग हो सकती है. किसी टैब के लिए वैल्यू सेट करने के लिए, action API के सेटिंग के तरीकों में tabId प्रॉपर्टी का इस्तेमाल करें. उदाहरण के लिए, किसी टैब के लिए बैज का टेक्स्ट सेट करने के लिए, कुछ ऐसा करें:
function getTabId() { /* ... */}
function getTabBadge() { /* ... */}
chrome.action.setBadgeText(
  {
    text: getTabBadge(tabId),
    tabId: getTabId(),
  },
  () => { ... }
);
अगर tabId प्रॉपर्टी को शामिल नहीं किया जाता है, तो सेटिंग को ग्लोबल सेटिंग माना जाता है. टैब के हिसाब से की गई सेटिंग को ग्लोबल सेटिंग के मुकाबले ज़्यादा प्राथमिकता दी जाती है.
चालू की गई स्थिति
डिफ़ॉल्ट रूप से, टूलबार में मौजूद कार्रवाइयां हर टैब पर चालू होती हैं. इसका मतलब है कि उन पर क्लिक किया जा सकता है. मेनिफ़ेस्ट की action कुंजी में default_state प्रॉपर्टी सेट करके, इस डिफ़ॉल्ट सेटिंग को बदला जा सकता है. अगर default_state को "disabled" पर सेट किया जाता है, तो कार्रवाई डिफ़ॉल्ट रूप से बंद हो जाती है. इस पर क्लिक करने की सुविधा को प्रोग्राम के हिसाब से चालू करना होगा. अगर default_state को "enabled" (डिफ़ॉल्ट) पर सेट किया जाता है, तो कार्रवाई डिफ़ॉल्ट रूप से चालू होती है और इस पर क्लिक किया जा सकता है.
action.enable() और action.disable() तरीकों का इस्तेमाल करके, प्रोग्राम के हिसाब से स्थिति को कंट्रोल किया जा सकता है. इससे सिर्फ़ इस बात पर असर पड़ता है कि आपके एक्सटेंशन को पॉप-अप (अगर कोई हो) या action.onClicked इवेंट भेजा जाता है या नहीं. इससे टूलबार में कार्रवाई की मौजूदगी पर कोई असर नहीं पड़ता.
उदाहरण
यहां कुछ सामान्य उदाहरण दिए गए हैं कि एक्सटेंशन में कार्रवाइयों का इस्तेमाल कैसे किया जाता है. इस एपीआई को आज़माने के लिए, chrome-extension-samples रिपॉज़िटरी से Action API का उदाहरण इंस्टॉल करें.
पॉप-अप दिखाना
आम तौर पर, जब उपयोगकर्ता एक्सटेंशन की कार्रवाई पर क्लिक करता है, तो एक्सटेंशन एक पॉप-अप दिखाता है. अपने एक्सटेंशन में इस सुविधा को लागू करने के लिए, manifest.json में पॉप-अप का एलान करें. साथ ही, वह कॉन्टेंट तय करें जिसे Chrome को पॉप-अप में दिखाना चाहिए.
// manifest.json
{
  "name": "Action popup demo",
  "version": "1.0",
  "manifest_version": 3,
  "action": {
    "default_title": "Click to view a popup",
    "default_popup": "popup.html"
  }
}
<!-- popup.html -->
<!DOCTYPE html>
<html>
<head>
  <style>
    html {
      min-height: 5em;
      min-width: 10em;
      background: salmon;
    }
  </style>
</head>
<body>
  <p>Hello, world!</p>
</body>
</html>
क्लिक करने पर कॉन्टेंट स्क्रिप्ट डालना
एक्सटेंशन के लिए, एक्सटेंशन की कार्रवाई का इस्तेमाल करके अपनी मुख्य सुविधा को दिखाना एक सामान्य पैटर्न है. इस उदाहरण में, इस पैटर्न के बारे में बताया गया है. जब उपयोगकर्ता इस कार्रवाई पर क्लिक करता है, तो एक्सटेंशन मौजूदा पेज में कॉन्टेंट स्क्रिप्ट इंजेक्ट करता है. इसके बाद, कॉन्टेंट स्क्रिप्ट एक सूचना दिखाती है. इससे यह पुष्टि की जाती है कि सब कुछ ठीक से काम कर रहा है.
// manifest.json
{
  "name": "Action script injection demo",
  "version": "1.0",
  "manifest_version": 3,
  "action": {
    "default_title": "Click to show an alert"
  },
  "permissions": ["activeTab", "scripting"],
  "background": {
    "service_worker": "background.js"
  }
}
// background.js
chrome.action.onClicked.addListener((tab) => {
  chrome.scripting.executeScript({
    target: {tabId: tab.id},
    files: ['content.js']
  });
});
// content.js
alert('Hello, world!');
declarativeContent की मदद से कार्रवाइयों को दोहराना
इस उदाहरण में दिखाया गया है कि एक्सटेंशन का बैकग्राउंड लॉजिक, (a) डिफ़ॉल्ट रूप से किसी कार्रवाई को कैसे बंद कर सकता है और (b) चुनिंदा साइटों पर कार्रवाई चालू करने के लिए, declarativeContent का इस्तेमाल कैसे कर सकता है.
// service-worker.js
// Wrap in an onInstalled callback to avoid unnecessary work
// every time the service worker is run
chrome.runtime.onInstalled.addListener(() => {
  // Page actions are disabled by default and enabled on select tabs
  chrome.action.disable();
  // Clear all rules to ensure only our expected rules are set
  chrome.declarativeContent.onPageChanged.removeRules(undefined, () => {
    // Declare a rule to enable the action on example.com pages
    let exampleRule = {
      conditions: [
        new chrome.declarativeContent.PageStateMatcher({
          pageUrl: {hostSuffix: '.example.com'},
        })
      ],
      actions: [new chrome.declarativeContent.ShowAction()],
    };
    // Finally, apply our new array of rules
    let rules = [exampleRule];
    chrome.declarativeContent.onPageChanged.addRules(rules);
  });
});
टाइप
OpenPopupOptions
प्रॉपर्टी
- 
    windowIdnumber ज़रूरी नहीं कार्रवाई वाला पॉपअप खोलने के लिए, विंडो का आईडी. अगर कोई विंडो तय नहीं की गई है, तो डिफ़ॉल्ट रूप से, चालू विंडो पर सेट होता है. 
TabDetails
प्रॉपर्टी
- 
    tabIdnumber ज़रूरी नहीं उस टैब का आईडी जिसके लिए क्वेरी की स्थिति जाननी है. अगर कोई टैब नहीं चुना गया है, तो टैब से जुड़ी नहीं, बल्कि सामान्य स्थिति की जानकारी मिलती है. 
UserSettings
एक्सटेंशन की कार्रवाई से जुड़ी, उपयोगकर्ता की ओर से तय की गई सेटिंग का कलेक्शन.
प्रॉपर्टी
- 
    isOnToolbarबूलियन इससे पता चलता है कि एक्सटेंशन का ऐक्शन आइकॉन, ब्राउज़र विंडो के टॉप-लेवल टूलबार पर दिखता है या नहीं. इसका मतलब यह है कि उपयोगकर्ता ने एक्सटेंशन को 'पिन किया है' या नहीं. 
UserSettingsChange
प्रॉपर्टी
- 
    isOnToolbarबूलियन ज़रूरी नहीं है इससे पता चलता है कि एक्सटेंशन का ऐक्शन आइकॉन, ब्राउज़र विंडो के टॉप-लेवल टूलबार पर दिखता है या नहीं. इसका मतलब यह है कि उपयोगकर्ता ने एक्सटेंशन को 'पिन किया है' या नहीं. 
तरीके
disable()
chrome.action.disable(
tabId?: number,
): Promise<void>
इससे किसी टैब के लिए कार्रवाई बंद हो जाती है.
पैरामीटर
- 
    tabIdnumber ज़रूरी नहीं उस टैब का आईडी जिसके लिए आपको कार्रवाई में बदलाव करना है. 
रिटर्न
- 
            Promise<void> 
enable()
chrome.action.enable(
tabId?: number,
): Promise<void>
यह कुकी, किसी टैब के लिए कार्रवाई करने की सुविधा चालू करती है. कार्रवाइयां करने की सुविधा डिफ़ॉल्ट रूप से चालू होती है.
पैरामीटर
- 
    tabIdnumber ज़रूरी नहीं उस टैब का आईडी जिसके लिए आपको कार्रवाई में बदलाव करना है. 
रिटर्न
- 
            Promise<void> 
getBadgeBackgroundColor()
chrome.action.getBadgeBackgroundColor(
details: TabDetails,
): Promise<extensionTypes.ColorArray>
कार्रवाई के बैकग्राउंड का रंग मिलता है.
पैरामीटर
- 
    विवरण
रिटर्न
- 
            Promise<extensionTypes.ColorArray> 
getBadgeText()
chrome.action.getBadgeText(
details: TabDetails,
): Promise<string>
कार्रवाई के बैज का टेक्स्ट मिलता है. अगर कोई टैब नहीं चुना जाता है, तो टैब के हिसाब से नहीं, बल्कि सामान्य बैज टेक्स्ट दिखता है. अगर displayActionCountAsBadgeText चालू है, तो प्लेसहोल्डर टेक्स्ट तब तक दिखेगा, जब तक declarativeNetRequestFeedback की अनुमति नहीं दी जाती या टैब के हिसाब से बैज टेक्स्ट नहीं दिया जाता.
पैरामीटर
- 
    विवरण
रिटर्न
- 
            Promise<string> 
getBadgeTextColor()
chrome.action.getBadgeTextColor(
details: TabDetails,
): Promise<extensionTypes.ColorArray>
इससे कार्रवाई के टेक्स्ट का रंग मिलता है.
पैरामीटर
- 
    विवरण
रिटर्न
- 
            Promise<extensionTypes.ColorArray> 
getPopup()
chrome.action.getPopup(
details: TabDetails,
): Promise<string>
इस कार्रवाई के लिए, पॉप-अप के तौर पर सेट किए गए एचटीएमएल दस्तावेज़ को दिखाता है.
पैरामीटर
- 
    विवरण
रिटर्न
- 
            Promise<string> 
getTitle()
chrome.action.getTitle(
details: TabDetails,
): Promise<string>
कार्रवाई का टाइटल मिलता है.
पैरामीटर
- 
    विवरण
रिटर्न
- 
            Promise<string> 
getUserSettings()
chrome.action.getUserSettings(): Promise<UserSettings>
यह एक्सटेंशन की कार्रवाई से जुड़ी, उपयोगकर्ता की तय की गई सेटिंग दिखाता है.
रिटर्न
- 
            Promise<UserSettings> 
isEnabled()
chrome.action.isEnabled(
tabId?: number,
): Promise<boolean>
इससे पता चलता है कि किसी टैब के लिए एक्सटेंशन ऐक्शन चालू है या नहीं. अगर कोई tabId नहीं दिया गया है, तो इससे पता चलता है कि एक्सटेंशन ऐक्शन, ग्लोबल लेवल पर चालू है या नहीं. सिर्फ़ declarativeContent का इस्तेमाल करके चालू की गई कार्रवाइयां हमेशा गलत जवाब देती हैं.
पैरामीटर
- 
    tabIdnumber ज़रूरी नहीं उस टैब का आईडी जिसके लिए आपको चालू होने की स्थिति की जांच करनी है. 
रिटर्न
- 
            Promise<boolean> 
openPopup()
chrome.action.openPopup(
options?: OpenPopupOptions,
): Promise<void>
इससे एक्सटेंशन का पॉप-अप खुलता है. Chrome 118 और Chrome 126 के बीच, यह सुविधा सिर्फ़ उन एक्सटेंशन के लिए उपलब्ध है जिन्हें नीति के तहत इंस्टॉल किया गया है.
पैरामीटर
- 
    विकल्पOpenPopupOptions ज़रूरी नहीं है इससे पॉप-अप खोलने के विकल्प तय किए जाते हैं. 
रिटर्न
- 
            Promise<void> 
setBadgeBackgroundColor()
chrome.action.setBadgeBackgroundColor(
details: object,
): Promise<void>
इस विकल्प से, बैज के बैकग्राउंड का रंग सेट किया जाता है.
पैरामीटर
- 
    विवरणऑब्जेक्ट - 
    रंगstring | ColorArray यह [0,255] रेंज में मौजूद चार पूर्णांकों का एक कलेक्शन होता है. इससे बैज का आरजीबीए रंग बनता है. उदाहरण के लिए, गहरा लाल रंग [255, 0, 0, 255]है. यह CSS वैल्यू वाली स्ट्रिंग भी हो सकती है. इसमें अपारदर्शी लाल रंग के लिए#FF0000या#F00का इस्तेमाल किया जाता है.
- 
    tabIdnumber ज़रूरी नहीं इससे बदलाव सिर्फ़ तब लागू होता है, जब कोई टैब चुना जाता है. टैब बंद होने पर, यह कुकी अपने-आप रीसेट हो जाती है. 
 
- 
    
रिटर्न
- 
            Promise<void> 
setBadgeText()
chrome.action.setBadgeText(
details: object,
): Promise<void>
इस विकल्प से, कार्रवाई के लिए बैज का टेक्स्ट सेट किया जाता है. बैज, आइकॉन के ऊपर दिखता है.
पैरामीटर
- 
    विवरणऑब्जेक्ट - 
    tabIdnumber ज़रूरी नहीं इससे बदलाव सिर्फ़ तब लागू होता है, जब कोई टैब चुना जाता है. टैब बंद होने पर, यह कुकी अपने-आप रीसेट हो जाती है. 
- 
    टेक्स्टstring ज़रूरी नहीं है इसमें कितने भी वर्ण पास किए जा सकते हैं. हालांकि, इसमें सिर्फ़ चार वर्ण दिखते हैं. अगर कोई खाली स्ट्रिंग ( '') पास की जाती है, तो बैज का टेक्स्ट मिट जाता है. अगरtabIdतय किया गया है औरtextशून्य है, तो तय किए गए टैब का टेक्स्ट मिटा दिया जाता है. साथ ही, डिफ़ॉल्ट रूप से ग्लोबल बैज का टेक्स्ट सेट हो जाता है.
 
- 
    
रिटर्न
- 
            Promise<void> 
setBadgeTextColor()
chrome.action.setBadgeTextColor(
details: object,
): Promise<void>
इस विकल्प से, बैज के टेक्स्ट का रंग सेट किया जाता है.
पैरामीटर
- 
    विवरणऑब्जेक्ट - 
    रंगstring | ColorArray यह [0,255] रेंज में मौजूद चार पूर्णांकों का एक कलेक्शन होता है. इससे बैज का आरजीबीए रंग बनता है. उदाहरण के लिए, गहरा लाल रंग [255, 0, 0, 255]है. यह CSS वैल्यू वाली स्ट्रिंग भी हो सकती है. इसमें अपारदर्शी लाल रंग के लिए#FF0000या#F00का इस्तेमाल किया जाता है. इस वैल्यू को सेट न करने पर, बैज के बैकग्राउंड के रंग से अलग रंग अपने-आप चुना जाएगा, ताकि टेक्स्ट दिखे. जिन रंगों की ऐल्फ़ा वैल्यू 0 के बराबर होगी उन्हें सेट नहीं किया जाएगा. साथ ही, एक गड़बड़ी दिखेगी.
- 
    tabIdnumber ज़रूरी नहीं इससे बदलाव सिर्फ़ तब लागू होता है, जब कोई टैब चुना जाता है. टैब बंद होने पर, यह कुकी अपने-आप रीसेट हो जाती है. 
 
- 
    
रिटर्न
- 
            Promise<void> 
setIcon()
chrome.action.setIcon(
details: object,
): Promise<void>
कार्रवाई के लिए आइकॉन सेट करता है. आइकॉन को इमेज फ़ाइल के पाथ या कैनवस एलिमेंट से पिक्सल डेटा के तौर पर तय किया जा सकता है. इसके अलावा, इसे इनमें से किसी एक के डिक्शनरी के तौर पर भी तय किया जा सकता है. पाथ या imageData प्रॉपर्टी में से किसी एक को तय करना ज़रूरी है.
पैरामीटर
- 
    विवरणऑब्जेक्ट - 
    imageDataImageData | object वैकल्पिक ImageData ऑब्जेक्ट या डिक्शनरी {size -> ImageData} में से कोई एक. यह डिक्शनरी, सेट किए जाने वाले आइकॉन को दिखाती है. अगर आइकॉन को डिक्शनरी के तौर पर तय किया जाता है, तो इस्तेमाल की जाने वाली असली इमेज को स्क्रीन की पिक्सल डेंसिटी के हिसाब से चुना जाता है. अगर स्क्रीन स्पेस की एक यूनिट में फ़िट होने वाले इमेज पिक्सल की संख्या scaleके बराबर है, तोscale* n साइज़ वाली इमेज चुनी जाएगी. यहां n, यूज़र इंटरफ़ेस (यूआई) में आइकॉन का साइज़ है. कम से कम एक इमेज के बारे में बताना ज़रूरी है. ध्यान दें कि 'details.imageData = foo', 'details.imageData = {'16': foo}' के बराबर है
- 
    पाथstring | object ज़रूरी नहीं सेट किए जाने वाले आइकॉन की ओर ले जाने वाला, इमेज का मिलता-जुलता पाथ या {size -> relative image path} डिक्शनरी. अगर आइकॉन को डिक्शनरी के तौर पर तय किया जाता है, तो इस्तेमाल की जाने वाली असली इमेज को स्क्रीन की पिक्सल डेंसिटी के हिसाब से चुना जाता है. अगर स्क्रीन स्पेस की एक यूनिट में फ़िट होने वाले इमेज पिक्सल की संख्या scaleके बराबर है, तोscale* n साइज़ वाली इमेज चुनी जाएगी. यहां n, यूज़र इंटरफ़ेस (यूआई) में आइकॉन का साइज़ है. कम से कम एक इमेज के बारे में बताना ज़रूरी है. ध्यान दें कि 'details.path = foo' का मतलब 'details.path = {'16': foo}' है
- 
    tabIdnumber ज़रूरी नहीं इससे बदलाव सिर्फ़ तब लागू होता है, जब कोई टैब चुना जाता है. टैब बंद होने पर, यह कुकी अपने-आप रीसेट हो जाती है. 
 
- 
    
रिटर्न
- 
            Promise<void> Chrome 96 और इसके बाद के वर्शन
setPopup()
chrome.action.setPopup(
details: object,
): Promise<void>
इस विकल्प का इस्तेमाल करके, एचटीएमएल दस्तावेज़ को सेट किया जाता है. इससे उपयोगकर्ता के कार्रवाई वाले आइकॉन पर क्लिक करने पर, एचटीएमएल दस्तावेज़ पॉप-अप के तौर पर खुलता है.
पैरामीटर
- 
    विवरणऑब्जेक्ट - 
    पॉप-अपस्ट्रिंग पॉप-अप में दिखाने के लिए, एचटीएमएल फ़ाइल का रिलेटिव पाथ. अगर इसे खाली स्ट्रिंग ( '') पर सेट किया जाता है, तो कोई पॉप-अप नहीं दिखता है.
- 
    tabIdnumber ज़रूरी नहीं इससे बदलाव सिर्फ़ तब लागू होता है, जब कोई टैब चुना जाता है. टैब बंद होने पर, यह कुकी अपने-आप रीसेट हो जाती है. 
 
- 
    
रिटर्न
- 
            Promise<void> 
setTitle()
chrome.action.setTitle(
details: object,
): Promise<void>
इससे कार्रवाई का टाइटल सेट किया जाता है. यह टूलटिप में दिखता है.
पैरामीटर
- 
    विवरणऑब्जेक्ट - 
    tabIdnumber ज़रूरी नहीं इससे बदलाव सिर्फ़ तब लागू होता है, जब कोई टैब चुना जाता है. टैब बंद होने पर, यह कुकी अपने-आप रीसेट हो जाती है. 
- 
    titleस्ट्रिंग माउस घुमाने पर, कार्रवाई के लिए दिखने वाली स्ट्रिंग. 
 
- 
    
रिटर्न
- 
            Promise<void> 
इवेंट
onClicked
chrome.action.onClicked.addListener(
callback: function,
)
कार्रवाई वाले आइकॉन पर क्लिक करने पर ट्रिगर होता है. अगर कार्रवाई में पॉप-अप है, तो यह इवेंट ट्रिगर नहीं होगा.
onUserSettingsChanged
chrome.action.onUserSettingsChanged.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब उपयोगकर्ता की ओर से तय की गई एक्सटेंशन की सेटिंग में बदलाव होता है.
पैरामीटर
- 
    कॉलबैकफ़ंक्शन callbackपैरामीटर ऐसा दिखता है:(change: UserSettingsChange) => void - 
    बदलें
 
-