browser.runtime

ब्यौरा

सर्विस वर्कर को वापस पाने, मेनिफ़ेस्ट के बारे में जानकारी देने, और एक्सटेंशन के लाइफ़साइकल में इवेंट सुनने और उनका जवाब देने के लिए, chrome.runtime एपीआई का इस्तेमाल करें. इस एपीआई का इस्तेमाल, यूआरएल के रिलेटिव पाथ को पूरी तरह से मान्य यूआरएल में बदलने के लिए भी किया जा सकता है.

इस एपीआई के ज़्यादातर सदस्यों को किसी भी अनुमति की ज़रूरत नहीं होती. यह अनुमति, connectNative(), sendNativeMessage(), और onNativeConnect के लिए ज़रूरी है.

यहां दिए गए उदाहरण में, मेनिफ़ेस्ट में "nativeMessaging" अनुमति को एलान करने का तरीका बताया गया है:

manifest.json:

{
  "name": "My extension",
  ...
  "permissions": [
    "nativeMessaging"
  ],
  ...
}

कॉन्सेप्ट और इस्तेमाल करने का तरीका

Runtime API, कई ऐसे तरीके उपलब्ध कराता है जिनका इस्तेमाल आपके एक्सटेंशन कर सकते हैं:

मैसेज पास करना
आपका एक्सटेंशन, इन तरीकों और इवेंट का इस्तेमाल करके, अपने एक्सटेंशन के अलग-अलग कॉन्टेक्स्ट के साथ-साथ अन्य एक्सटेंशन से भी कम्यूनिकेट कर सकता है: connect(), onConnect, onConnectExternal, sendMessage(), onMessage और onMessageExternal. इसके अलावा, आपका एक्सटेंशन, उपयोगकर्ता के डिवाइस पर मौजूद नेटिव ऐप्लिकेशन को मैसेज भेज सकता है. इसके लिए, connectNative() और sendNativeMessage() का इस्तेमाल किया जा सकता है.
एक्सटेंशन और प्लैटफ़ॉर्म के मेटाडेटा को ऐक्सेस करना
इन तरीकों से, एक्सटेंशन और प्लैटफ़ॉर्म के बारे में मेटाडेटा के कई खास हिस्से वापस पाए जा सकते हैं. इस कैटगरी में ये तरीके शामिल हैं: getManifest() और getPlatformInfo().
एक्सटेंशन के लाइफ़साइकल और विकल्पों को मैनेज करना
इन प्रॉपर्टी की मदद से, एक्सटेंशन पर कुछ मेटा-ऑपरेशन किए जा सकते हैं. साथ ही, विकल्प पेज दिखाया जा सकता है. इस कैटगरी में ये तरीके और इवेंट शामिल हैं: onInstalled, onStartup, openOptionsPage(), reload(), requestUpdateCheck(), और setUninstallURL().
हेल्पर यूटिलिटी
इन तरीकों से, इंटरनल रिसोर्स के प्रज़ेंटेशन को बाहरी फ़ॉर्मैट में बदलने जैसी सुविधाएं मिलती हैं. इस कैटगरी में शामिल तरीकों में getURL() शामिल है.
कीऑस्क मोड की सुविधाएं
ये तरीके सिर्फ़ ChromeOS पर उपलब्ध हैं. इनका इस्तेमाल मुख्य रूप से कीऑस्क मोड को लागू करने के लिए किया जाता है. इस कैटगरी में शामिल तरीकों में restart() और restartAfterDelay()` शामिल हैं.

अनपैक किए गए एक्सटेंशन का व्यवहार

जब किसी अनपैक किए गए एक्सटेंशन को फिर से लोड किया जाता है, तो इसे अपडेट माना जाता है. इसका मतलब है कि browser.runtime.onInstalled इवेंट, "update" वजह से ट्रिगर होगा. इसमें browser.runtime.reload() की मदद से एक्सटेंशन को फिर से लोड करना भी शामिल है.

उपयोग के उदाहरण

किसी वेब पेज में इमेज जोड़ना

अगर किसी वेब पेज को दूसरे डोमेन पर होस्ट की गई ऐसेट को ऐक्सेस करना है, तो उसे संसाधन का पूरा यूआरएल (जैसे, <img src="https://example.com/logo.png">) देना होगा. किसी वेब पेज पर एक्सटेंशन ऐसेट को शामिल करने के लिए भी यही तरीका अपनाया जाता है. इन दोनों में दो अंतर हैं. पहला, एक्सटेंशन की ऐसेट को वेब पर ऐक्सेस किए जा सकने वाले रिसॉर्स के तौर पर दिखाना होगा. दूसरा, आम तौर पर कॉन्टेंट स्क्रिप्ट, एक्सटेंशन ऐसेट को इंजेक्ट करने के लिए ज़िम्मेदार होती हैं.

इस उदाहरण में, एक्सटेंशन उस पेज में logo.png जोड़ेगा जिसमें कॉन्टेंट स्क्रिप्ट को इंजेक्ट किया जा रहा है. इसके लिए, runtime.getURL() का इस्तेमाल करके पूरी तरह से क्वालिफ़ाइड यूआरएल बनाया जाएगा. हालांकि, इससे पहले ऐसेट को मेनिफ़ेस्ट में, वेब पर ऐक्सेस की जा सकने वाली ऐसेट के तौर पर घोषित करना होगा.

manifest.json:

{
  ...
  "web_accessible_resources": [
    {
      "resources": [ "logo.png" ],
      "matches": [ "https://*/*" ]
    }
  ],
  ...
}

content.js:

{ // Block used to avoid setting global variables
  const img = document.createElement('img');
  img.src = browser.runtime.getURL('logo.png');
  document.body.append(img);
}

कॉन्टेंट स्क्रिप्ट से सर्विस वर्कर को डेटा भेजना

आम तौर पर, एक्सटेंशन की कॉन्टेंट स्क्रिप्ट को एक्सटेंशन के किसी दूसरे हिस्से से मैनेज किए गए डेटा की ज़रूरत होती है. जैसे, सर्विस वर्कर. जिस तरह एक ही वेब पेज के लिए दो ब्राउज़र विंडो खोली जाती हैं उसी तरह ये दोनों कॉन्टेक्स्ट, एक-दूसरे की वैल्यू को सीधे तौर पर ऐक्सेस नहीं कर सकते. इसके बजाय, एक्सटेंशन इन अलग-अलग कॉन्टेक्स्ट में तालमेल बिठाने के लिए, मैसेज पास करने की सुविधा का इस्तेमाल कर सकता है.

इस उदाहरण में, कॉन्टेंट स्क्रिप्ट को एक्सटेंशन के सर्विस वर्कर से कुछ डेटा चाहिए, ताकि वह अपने यूज़र इंटरफ़ेस (यूआई) को शुरू कर सके. यह डेटा पाने के लिए, यह डेवलपर की ओर से तय किया गया get-user-data मैसेज को सर्विस वर्कर को भेजता है. इसके बाद, सर्विस वर्कर उपयोगकर्ता की जानकारी की कॉपी भेजता है.

content.js:

// 1. Send a message to the service worker requesting the user's data
browser.runtime.sendMessage('get-user-data', (response) => {
  // 3. Got an asynchronous response with the data from the service worker
  console.log('received user data', response);
  initializeUI(response);
});

service-worker.js:

// Example of a simple user data object
const user = {
  username: 'demo-user'
};

browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
  // 2. A page requested user data, respond with a copy of `user`
  if (message === 'get-user-data') {
    sendResponse(user);
  }
});

अनइंस्टॉल करने के बारे में सुझाव/राय पाना या शिकायत करना

कई एक्सटेंशन, अनइंस्टॉल करने के बाद सर्वे का इस्तेमाल करते हैं. इससे उन्हें यह समझने में मदद मिलती है कि एक्सटेंशन अपने उपयोगकर्ताओं को बेहतर सेवाएं कैसे दे सकता है और उन्हें लंबे समय तक अपने साथ कैसे जोड़े रख सकता है. नीचे दिए गए उदाहरण में, इस सुविधा को जोड़ने का तरीका बताया गया है.

background.js:

browser.runtime.onInstalled.addListener(details => {
  if (details.reason === browser.runtime.OnInstalledReason.INSTALL) {
    browser.runtime.setUninstallURL('https://example.com/extension-survey');
  }
});

उदाहरण

Runtime API के ज़्यादा उदाहरणों के लिए, Manifest V3 - Web Accessible Resources का डेमो देखें.

टाइप

ContextFilter

Chrome 114 या इसके बाद का वर्शन

यह फ़िल्टर, कुछ एक्सटेंशन कॉन्टेक्स्ट से मैच करने के लिए होता है. मिलते-जुलते कॉन्टेक्स्ट, तय किए गए सभी फ़िल्टर से मेल खाने चाहिए. तय नहीं किया गया कोई भी फ़िल्टर, सभी उपलब्ध कॉन्टेक्स्ट से मेल खाता है. इसलिए, `{}` फ़िल्टर, सभी उपलब्ध कॉन्टेक्स्ट से मेल खाएगा.

प्रॉपर्टी

  • contextIds

    string[] ज़रूरी नहीं है

  • contextTypes

    ContextType[] optional

  • documentIds

    string[] ज़रूरी नहीं है

  • documentOrigins

    string[] ज़रूरी नहीं है

  • documentUrls

    string[] ज़रूरी नहीं है

  • frameIds

    number[] ज़रूरी नहीं

  • गुप्त

    बूलियन ज़रूरी नहीं है

  • tabIds

    number[] ज़रूरी नहीं

  • windowIds

    number[] ज़रूरी नहीं

ContextType

Chrome 114 या इसके बाद का वर्शन

Enum

"TAB"
कॉन्टेक्स्ट टाइप को टैब के तौर पर तय करता है

"POPUP"
कॉन्टेक्स्ट टाइप को एक्सटेंशन पॉप-अप विंडो के तौर पर तय करता है

"BACKGROUND"
इससे कॉन्टेक्स्ट टाइप को सर्विस वर्कर के तौर पर सेट किया जाता है.

"OFFSCREEN_DOCUMENT"
कॉन्टेक्स्ट टाइप को ऑफ़स्क्रीन दस्तावेज़ के तौर पर तय करता है.

"SIDE_PANEL"
कॉन्टेक्स्ट टाइप को साइड पैनल के तौर पर तय करता है.

"DEVELOPER_TOOLS"
इससे कॉन्टेक्स्ट टाइप को डेवलपर टूल के तौर पर सेट किया जाता है.

ExtensionContext

Chrome 114 या इसके बाद का वर्शन

एक्सटेंशन के कॉन्टेंट को होस्ट करने वाला कॉन्टेक्स्ट.

प्रॉपर्टी

  • contextId

    स्ट्रिंग

    इस कॉन्टेक्स्ट के लिए यूनीक आइडेंटिफ़ायर

  • contextType

    यह किस तरह के कॉन्टेक्स्ट से जुड़ा है.

  • documentId

    string ज़रूरी नहीं है

    इस कॉन्टेक्स्ट से जुड़े दस्तावेज़ के लिए यूयूआईडी. अगर यह कॉन्टेक्स्ट किसी दस्तावेज़ में होस्ट नहीं किया गया है, तो यह अपरिभाषित होता है.

  • documentOrigin

    string ज़रूरी नहीं है

    इस कॉन्टेक्स्ट से जुड़े दस्तावेज़ का ऑरिजिन या अगर कॉन्टेक्स्ट को किसी दस्तावेज़ में होस्ट नहीं किया गया है, तो 'तय नहीं किया गया'.

  • documentUrl

    string ज़रूरी नहीं है

    इस कॉन्टेक्स्ट से जुड़े दस्तावेज़ का यूआरएल. अगर कॉन्टेक्स्ट को किसी दस्तावेज़ में होस्ट नहीं किया गया है, तो यह undefined होता है.

  • frameId

    संख्या

    इस कॉन्टेक्स्ट के फ़्रेम का आईडी या -1, अगर यह कॉन्टेक्स्ट किसी फ़्रेम में होस्ट नहीं किया गया है.

  • गुप्त

    बूलियन

    यह कुकी यह तय करती है कि कॉन्टेक्स्ट, गुप्त मोड वाली प्रोफ़ाइल से जुड़ा है या नहीं.

  • tabId

    संख्या

    इस कॉन्टेक्स्ट के लिए टैब का आईडी या -1, अगर इस कॉन्टेक्स्ट को किसी टैब में होस्ट नहीं किया गया है.

  • windowId

    संख्या

    इस कॉन्टेक्स्ट के लिए विंडो का आईडी या -1, अगर यह कॉन्टेक्स्ट किसी विंडो में होस्ट नहीं किया गया है.

MessageSender

यह ऑब्जेक्ट, स्क्रिप्ट के उस कॉन्टेक्स्ट के बारे में जानकारी देता है जिसने मैसेज या अनुरोध भेजा है.

प्रॉपर्टी

  • documentId

    string ज़रूरी नहीं है

    Chrome 106 या इसके बाद के वर्शन

    कनेक्शन खोलने वाले दस्तावेज़ का यूयूआईडी.

  • documentLifecycle

    string ज़रूरी नहीं है

    Chrome 106 या इसके बाद के वर्शन

    पोर्ट बनाए जाने के समय, कनेक्शन खोलने वाले दस्तावेज़ का लाइफ़साइकल. ध्यान दें कि पोर्ट बनाने के बाद, दस्तावेज़ की लाइफ़साइकल स्थिति बदल सकती है.

  • frameId

    number optional

    कनेक्शन खोलने वाला फ़्रेम. टॉप-लेवल फ़्रेम के लिए 0 और चाइल्ड फ़्रेम के लिए पॉज़िटिव. यह कुकी सिर्फ़ तब सेट की जाएगी, जब tab सेट किया गया हो.

  • आईडी

    string ज़रूरी नहीं है

    कनेक्शन खोलने वाले एक्सटेंशन का आईडी. अगर कोई एक्सटेंशन नहीं है, तो यह फ़ील्ड मौजूद नहीं होगा.

  • nativeApplication

    string ज़रूरी नहीं है

    Chrome 74 या इसके बाद का वर्शन

    अगर कनेक्शन खोलने वाले नेटिव ऐप्लिकेशन का नाम मौजूद है, तो उसे यहां दिखाया जाता है.

  • origin

    string ज़रूरी नहीं है

    Chrome 80 या इसके बाद का वर्शन

    कनेक्शन खोलने वाले पेज या फ़्रेम का ऑरिजिन. यह यूआरएल प्रॉपर्टी (जैसे, about:blank) से अलग हो सकता है या अपारदर्शी हो सकता है (जैसे, सैंडबॉक्स किए गए iframe). अगर हम यूआरएल से तुरंत यह पता नहीं लगा पाते कि सोर्स पर भरोसा किया जा सकता है या नहीं, तो यह जानकारी यह पता लगाने में मददगार होती है.

  • टैब

    टैब ज़रूरी नहीं है

    कनेक्शन खोलने वाला tabs.Tab, अगर कोई है. यह प्रॉपर्टी सिर्फ़ तब मौजूद होगी, जब कनेक्शन को किसी टैब (इसमें कॉन्टेंट स्क्रिप्ट भी शामिल हैं) से खोला गया हो. साथ ही, यह सिर्फ़ तब मौजूद होगी, जब मैसेज पाने वाला कोई एक्सटेंशन हो, न कि कोई ऐप्लिकेशन.

  • tlsChannelId

    string ज़रूरी नहीं है

    कनेक्शन खोलने वाले पेज या फ़्रेम का टीएलएस चैनल आईडी. यह आईडी तब उपलब्ध होता है, जब एक्सटेंशन ने इसका अनुरोध किया हो.

  • url

    string ज़रूरी नहीं है

    उस पेज या फ़्रेम का यूआरएल जिसने कनेक्शन खोला है. अगर भेजने वाला iframe में है, तो यह iframe का यूआरएल होगा. यह उस पेज का यूआरएल नहीं होगा जो इसे होस्ट करता है.

OnInstalledReason

Chrome 44 या इसके बाद का वर्शन

इस इवेंट को भेजने की वजह.

Enum

"install"
इससे इवेंट की वजह को इंस्टॉलेशन के तौर पर सेट किया जाता है.

"update"
इससे इवेंट के होने की वजह का पता चलता है. जैसे, एक्सटेंशन अपडेट किया गया.

"chrome_update"
इस इवेंट के होने की वजह, Chrome का अपडेट होना है.

"shared_module_update"
इस इवेंट के होने की वजह यह है कि शेयर किए गए मॉड्यूल को अपडेट किया गया है.

OnRestartRequiredReason

Chrome 44 या इसके बाद का वर्शन

इवेंट को क्यों भेजा जा रहा है. 'app_update' का इस्तेमाल तब किया जाता है, जब ऐप्लिकेशन को नए वर्शन में अपडेट करने की वजह से रीस्टार्ट करने की ज़रूरत होती है. 'os_update' का इस्तेमाल तब किया जाता है, जब ब्राउज़र/ओएस को नए वर्शन में अपडेट करने की वजह से रीस्टार्ट करने की ज़रूरत होती है. 'periodic' का इस्तेमाल तब किया जाता है, जब सिस्टम, एंटरप्राइज़ नीति में सेट किए गए अनुमत अपटाइम से ज़्यादा समय तक चलता है.

Enum

"app_update"
यह इवेंट के होने की वजह को ऐप्लिकेशन के अपडेट के तौर पर दिखाता है.

"os_update"
इससे इवेंट की वजह के तौर पर, ऑपरेटिंग सिस्टम को अपडेट करने के बारे में पता चलता है.

"periodic"
इससे इवेंट की वजह के तौर पर, ऐप्लिकेशन के समय-समय पर रीस्टार्ट होने की जानकारी मिलती है.

PlatformArch

Chrome 44 या इसके बाद का वर्शन

मशीन के प्रोसेसर का आर्किटेक्चर.

Enum

"arm"
प्रोसेसर के आर्किटेक्चर को arm के तौर पर तय करता है.

"arm64"
प्रोसेसर के आर्किटेक्चर को arm64 के तौर पर तय करता है.

"x86-32"
प्रोसेसर के आर्किटेक्चर को x86-32 के तौर पर तय करता है.

"x86-64"
प्रोसेसर के आर्किटेक्चर को x86-64 के तौर पर तय करता है.

"mips"
प्रोसेसर के आर्किटेक्चर को mips के तौर पर तय करता है.

"mips64"
प्रोसेसर के आर्किटेक्चर को mips64 के तौर पर तय करता है.

"riscv64"
प्रोसेसर के आर्किटेक्चर को riscv64 के तौर पर तय करता है.

PlatformInfo

मौजूदा प्लैटफ़ॉर्म के बारे में जानकारी देने वाला ऑब्जेक्ट.

प्रॉपर्टी

  • आर्क

    मशीन के प्रोसेसर का आर्किटेक्चर.

  • nacl_arch
    Chrome 149 से बंद कर दिया गया है

    नेटिव क्लाइंट को पूरी तरह से हटाने के बाद, इस एट्रिब्यूट का इस्तेमाल नहीं किया जा सकता.

    नेटिव क्लाइंट आर्किटेक्चर. यह कुछ प्लैटफ़ॉर्म पर आर्च से अलग हो सकता है.

  • यह कुकी, उस ऑपरेटिंग सिस्टम के बारे में जानकारी सेव करती है जिस पर Chrome चल रहा है.

PlatformNaclArch

Chrome 44 या इसके बाद के वर्शन Chrome 149 के बाद से काम नहीं करता

नेटिव क्लाइंट को पूरी तरह से हटाने के बाद, इस enum को बंद कर दिया गया है.

नेटिव क्लाइंट आर्किटेक्चर. यह कुछ प्लैटफ़ॉर्म पर आर्च से अलग हो सकता है.

Enum

"arm"
यह नेटिव क्लाइंट के आर्किटेक्चर को arm के तौर पर तय करता है.

"x86-32"
यह नेटिव क्लाइंट आर्किटेक्चर को x86-32 के तौर पर तय करता है.

"x86-64"
यह नेटिव क्लाइंट आर्किटेक्चर को x86-64 के तौर पर तय करता है.

"mips"
यह नेटिव क्लाइंट आर्किटेक्चर को mips के तौर पर तय करता है.

"mips64"
यह नेटिव क्लाइंट आर्किटेक्चर को mips64 के तौर पर तय करता है.

PlatformOs

Chrome 44 या इसके बाद का वर्शन

यह कुकी, उस ऑपरेटिंग सिस्टम के बारे में जानकारी सेव करती है जिस पर Chrome चल रहा है.

Enum

"mac"
यह MacOS ऑपरेटिंग सिस्टम के बारे में बताता है.

"win"
यह Windows ऑपरेटिंग सिस्टम के बारे में बताता है.

"android"
Android ऑपरेटिंग सिस्टम के बारे में बताता है.

"cros"
Chrome ऑपरेटिंग सिस्टम के बारे में बताता है.

"linux"
यह Linux ऑपरेटिंग सिस्टम के बारे में बताता है.

"openbsd"
यह OpenBSD ऑपरेटिंग सिस्टम के बारे में बताता है.

Port

यह एक ऐसा ऑब्जेक्ट है जो अन्य पेजों के साथ दोनों तरह से कम्यूनिकेट करने की अनुमति देता है. ज़्यादा जानकारी के लिए, लंबे समय तक बने रहने वाले कनेक्शन देखें.

प्रॉपर्टी

  • नाम

    स्ट्रिंग

    पोर्ट का नाम, जैसा कि runtime.connect को किए गए कॉल में बताया गया है.

  • onDisconnect

    Event<functionvoidvoid>

    जब पोर्ट को दूसरे एंड से डिसकनेक्ट किया जाता है, तब यह इवेंट ट्रिगर होता है. अगर पोर्ट को किसी गड़बड़ी की वजह से डिसकनेक्ट कर दिया गया है, तो runtime.lastError सेट किया जा सकता है. अगर disconnect के ज़रिए पोर्ट बंद किया जाता है, तो यह इवेंट सिर्फ़ दूसरे एंड पर ट्रिगर होता है. यह इवेंट ज़्यादा से ज़्यादा एक बार ट्रिगर होता है. पोर्ट का लाइफ़टाइम भी देखें.

    onDisconnect.addListener फ़ंक्शन इस तरह दिखता है:

    (callback: function) => {...}

    • कॉलबैक

      फ़ंक्शन

      callback पैरामीटर ऐसा दिखता है:

      (port: Port) => void

  • onMessage

    Event<functionvoidvoid>

    यह इवेंट तब ट्रिगर होता है, जब पोर्ट के दूसरे छोर से postMessage को कॉल किया जाता है.

    onMessage.addListener फ़ंक्शन इस तरह दिखता है:

    (callback: function) => {...}

    • कॉलबैक

      फ़ंक्शन

      callback पैरामीटर ऐसा दिखता है:

      (message: any, port: Port) => void

  • भेजने वाला

    MessageSender optional

    यह प्रॉपर्टी, onConnect / onConnectExternal / onConnectNative लिसनर को पास किए गए पोर्ट पर सिर्फ़ तब मौजूद होगी, जब पोर्ट को कनेक्ट किया गया हो.

  • डिसकनेक्ट करें

    अमान्य

    पोर्टिंग की प्रोसेस को तुरंत बंद कर दें. पहले से डिसकनेक्ट किए गए पोर्ट पर disconnect() को कॉल करने से कोई असर नहीं पड़ता. पोर्ट के डिसकनेक्ट होने पर, इस पोर्ट पर कोई नया इवेंट नहीं भेजा जाएगा.

    disconnect फ़ंक्शन इस तरह दिखता है:

    () => {...}

  • postMessage

    अमान्य

    पोर्ट के दूसरे डिवाइस पर कोई मैसेज भेजें. अगर पोर्ट डिसकनेक्ट हो जाता है, तो गड़बड़ी का मैसेज दिखता है.

    postMessage फ़ंक्शन इस तरह दिखता है:

    (message: any) => {...}

    • मैसेज

      कोई

      Chrome 52 या इसके बाद का वर्शन

      भेजा जाने वाला मैसेज. इस ऑब्जेक्ट को JSON में बदला जा सकता है.

RequestUpdateCheckStatus

Chrome 44 या इसके बाद का वर्शन

अपडेट की जांच का नतीजा.

Enum

"throttled"
इससे पता चलता है कि स्टेटस की जांच को थ्रॉटल किया गया है. ऐसा कम समय में बार-बार जांच करने पर हो सकता है.

"no_update"
इससे पता चलता है कि इंस्टॉल करने के लिए कोई अपडेट उपलब्ध नहीं है.

"update_available"
इससे पता चलता है कि इंस्टॉल करने के लिए कोई अपडेट उपलब्ध है.

प्रॉपर्टी

id

एक्सटेंशन/ऐप्लिकेशन का आईडी.

टाइप

स्ट्रिंग

lastError

अगर एपीआई फ़ंक्शन को कॉल करने में गड़बड़ी होती है, तो इसमें गड़बड़ी का मैसेज दिखता है. ऐसा न होने पर, यह तय नहीं होता. इसे सिर्फ़ उस फ़ंक्शन के कॉलबैक के स्कोप में तय किया जाता है. अगर कोई गड़बड़ी होती है, लेकिन कॉलबैक के अंदर runtime.lastError को ऐक्सेस नहीं किया जाता है, तो कंसोल में एक मैसेज लॉग किया जाता है. इसमें गड़बड़ी करने वाले एपीआई फ़ंक्शन की सूची होती है. प्रॉमिस देने वाले एपीआई फ़ंक्शन, इस प्रॉपर्टी को सेट नहीं करते.

टाइप

ऑब्जेक्ट

प्रॉपर्टी

  • मैसेज

    string ज़रूरी नहीं है

    जिस गड़बड़ी का सामना करना पड़ा उसके बारे में जानकारी.

तरीके

connect()

chrome.runtime.connect(
  extensionId?: string,
  connectInfo?: object,
)
: Port

यह कुकी, किसी एक्सटेंशन (जैसे कि बैकग्राउंड पेज) या अन्य एक्सटेंशन/ऐप्लिकेशन में मौजूद लिसनर को कनेक्ट करने की कोशिश करती है. यह एक्सटेंशन प्रोसेस से कनेक्ट होने वाली कॉन्टेंट स्क्रिप्ट, ऐप्लिकेशन/एक्सटेंशन के बीच कम्यूनिकेशन, और वेब मैसेजिंग के लिए फ़ायदेमंद है. ध्यान दें कि यह कॉन्टेंट स्क्रिप्ट में मौजूद किसी भी लिसनर से कनेक्ट नहीं होता है. एक्सटेंशन, tabs.connect के ज़रिए टैब में एम्बेड की गई कॉन्टेंट स्क्रिप्ट से कनेक्ट हो सकते हैं.

पैरामीटर

  • extensionId

    string ज़रूरी नहीं है

    उस एक्सटेंशन का आईडी जिससे कनेक्ट करना है. अगर इसे शामिल नहीं किया जाता है, तो आपके एक्सटेंशन से कनेक्ट करने की कोशिश की जाएगी. अगर वेब मैसेजिंग के लिए, किसी वेब पेज से मैसेज भेजे जा रहे हैं, तो यह कुकी ज़रूरी है.

  • connectInfo

    ऑब्जेक्ट ज़रूरी नहीं

    • includeTlsChannelId

      बूलियन ज़रूरी नहीं है

      क्या टीएलएस चैनल आईडी को onConnectExternal में पास किया जाएगा. ऐसा उन प्रोसेस के लिए किया जाएगा जो कनेक्शन इवेंट को सुन रही हैं.

    • नाम

      string ज़रूरी नहीं है

      इसे onConnect में पास किया जाएगा. ऐसा उन प्रोसेस के लिए किया जाएगा जो कनेक्शन इवेंट को सुन रही हैं.

रिटर्न

  • वह पोर्ट जिसके ज़रिए मैसेज भेजे और पाए जा सकते हैं. अगर एक्सटेंशन मौजूद नहीं है, तो पोर्ट का onDisconnect इवेंट ट्रिगर होता है.

connectNative()

chrome.runtime.connectNative(
  application: string,
)
: Port

यह होस्ट मशीन में मौजूद नेटिव ऐप्लिकेशन से कनेक्ट होता है. इस तरीके के लिए, "nativeMessaging" अनुमति ज़रूरी है. ज़्यादा जानकारी के लिए, नेटिव मैसेजिंग देखें.

पैरामीटर

  • ऐप्लिकेशन

    स्ट्रिंग

    कनेक्ट करने के लिए, रजिस्टर किए गए ऐप्लिकेशन का नाम.

रिटर्न

  • वह पोर्ट जिसके ज़रिए ऐप्लिकेशन से मैसेज भेजे और पाए जा सकते हैं

getBackgroundPage()

सिर्फ़ फ़ोरग्राउंड में Chrome 133 से बंद कर दिया गया है
chrome.runtime.getBackgroundPage(): Promise<Window | undefined>

MV3 एक्सटेंशन में बैकग्राउंड पेज नहीं होते हैं.

यह फ़ंक्शन, मौजूदा एक्सटेंशन/ऐप्लिकेशन में चल रहे बैकग्राउंड पेज के लिए JavaScript 'window' ऑब्जेक्ट को वापस लाता है. अगर बैकग्राउंड पेज कोई इवेंट पेज है, तो सिस्टम यह पक्का करेगा कि कॉलबैक को कॉल करने से पहले, उसे लोड किया गया हो. अगर कोई बैकग्राउंड पेज नहीं है, तो गड़बड़ी सेट हो जाती है.

रिटर्न

  • Promise<Window | undefined>

    Chrome 99 या इसके बाद का वर्शन

getContexts()

Chrome 116+ MV3+
chrome.runtime.getContexts(
  filter: ContextFilter,
)
: Promise<ExtensionContext[]>

यह एक्सटेंशन से जुड़े चालू कॉन्टेक्स्ट के बारे में जानकारी फ़ेच करता है

पैरामीटर

  • फ़िल्टर

    मिलते-जुलते कॉन्टेक्स्ट ढूंढने के लिए फ़िल्टर. कोई कॉन्टेक्स्ट तब मैच करता है, जब वह फ़िल्टर में बताए गए सभी फ़ील्ड से मैच करता हो. फ़िल्टर में मौजूद कोई भी ऐसा फ़ील्ड जिसके लिए कोई वैल्यू तय नहीं की गई है वह सभी कॉन्टेक्स्ट से मेल खाता है.

रिटर्न

  • Promise<ExtensionContext[]>

    अगर कोई मैचिंग कॉन्टेक्स्ट मौजूद है, तो यह प्रॉमिस उसे हल करता है.

getManifest()

chrome.runtime.getManifest(): object

यह फ़ंक्शन, मेनिफ़ेस्ट से ऐप्लिकेशन या एक्सटेंशन के बारे में जानकारी दिखाता है. जवाब के तौर पर मिला ऑब्जेक्ट, पूरी मेनिफ़ेस्ट फ़ाइल का सीरियलाइज़ेशन होता है.

रिटर्न

  • ऑब्जेक्ट

    मेनिफ़ेस्ट की जानकारी.

getPackageDirectoryEntry()

सिर्फ़ फ़ोरग्राउंड
chrome.runtime.getPackageDirectoryEntry(): Promise<DirectoryEntry>

यह पैकेज डायरेक्ट्री के लिए DirectoryEntry दिखाता है.

रिटर्न

  • Promise<DirectoryEntry>

    Chrome 122 या इसके बाद के वर्शन

getPlatformInfo()

chrome.runtime.getPlatformInfo(): Promise<PlatformInfo>

यह मौजूदा प्लैटफ़ॉर्म के बारे में जानकारी दिखाता है.

रिटर्न

  • Promise<PlatformInfo>

    Chrome 99 या इसके बाद का वर्शन

    यह प्रॉमिस, मौजूदा प्लैटफ़ॉर्म के बारे में जानकारी के साथ पूरा होता है.

getURL()

chrome.runtime.getURL(
  path: string,
)
: string

यह फ़ंक्शन, ऐप्लिकेशन/एक्सटेंशन इंस्टॉल डायरेक्ट्री में मौजूद रिलेटिव पाथ को पूरी तरह से मान्य यूआरएल में बदलता है.

पैरामीटर

  • पाथ

    स्ट्रिंग

    किसी ऐप्लिकेशन/एक्सटेंशन में मौजूद संसाधन का पाथ, जिसे उसकी इंस्टॉल डायरेक्ट्री के हिसाब से दिखाया जाता है.

रिटर्न

  • स्ट्रिंग

    संसाधन का पूरी तरह से मान्य यूआरएल.

getVersion()

Chrome 143 और इसके बाद के वर्शन
chrome.runtime.getVersion(): string

यह फ़ंक्शन, मेनिफ़ेस्ट में बताए गए एक्सटेंशन के वर्शन को दिखाता है.

रिटर्न

  • स्ट्रिंग

    एक्सटेंशन का वर्शन.

openOptionsPage()

chrome.runtime.openOptionsPage(): Promise<void>

अगर हो सके, तो अपने एक्सटेंशन का विकल्प पेज खोलें.

यह व्यवहार, आपके मेनिफ़ेस्ट की options_ui या options_page कुंजी पर निर्भर कर सकता है. इसके अलावा, यह इस बात पर भी निर्भर कर सकता है कि Chrome उस समय किस सुविधा के साथ काम करता है. उदाहरण के लिए, पेज को नए टैब में, chrome://extensions में, किसी ऐप्लिकेशन में खोला जा सकता है. इसके अलावा, यह खुले हुए विकल्प वाले पेज पर फ़ोकस भी कर सकता है. इससे कॉलर पेज कभी भी फिर से लोड नहीं होगा.

अगर आपका एक्सटेंशन, विकल्प वाला पेज नहीं दिखाता है या Chrome किसी अन्य वजह से विकल्प वाला पेज नहीं बना सका, तो कॉलबैक lastError सेट करेगा.

रिटर्न

  • Promise<void>

    Chrome 99 या इसके बाद का वर्शन

reload()

chrome.runtime.reload(): void

इससे ऐप्लिकेशन या एक्सटेंशन फिर से लोड होता है. यह तरीका, किऑस्क मोड में काम नहीं करता. कीऑस्क मोड के लिए, chrome.runtime.restart() तरीके का इस्तेमाल करें.

requestUpdateCheck()

chrome.runtime.requestUpdateCheck(): Promise<object>

इस ऐप्लिकेशन/एक्सटेंशन के लिए, तुरंत अपडेट की जांच करने का अनुरोध करता है.

अहम जानकारी: ज़्यादातर एक्सटेंशन/ऐप्लिकेशन को इस तरीके का इस्तेमाल नहीं करना चाहिए. ऐसा इसलिए, क्योंकि Chrome हर कुछ घंटों में अपने-आप जांच करता है. साथ ही, requestUpdateCheck को कॉल किए बिना, runtime.onUpdateAvailable इवेंट के बारे में सुना जा सकता है.

इस तरीके का इस्तेमाल सिर्फ़ कुछ खास मामलों में किया जाना चाहिए. जैसे, अगर आपका एक्सटेंशन किसी बैकएंड सेवा से कम्यूनिकेट करता है और बैकएंड सेवा ने यह तय किया है कि क्लाइंट एक्सटेंशन का वर्शन बहुत पुराना है और आपको किसी उपयोगकर्ता को अपडेट करने के लिए सूचना देनी है. requestUpdateCheck का इस्तेमाल, कई अन्य तरीकों से भी किया जा सकता है. जैसे, बार-बार चलने वाले टाइमर के आधार पर बिना शर्त इसे कॉल करना. हालांकि, इससे क्लाइंट, नेटवर्क, और सर्वर के संसाधनों की बर्बादी होती है.

ध्यान दें: कॉलबैक के साथ कॉल किए जाने पर, यह फ़ंक्शन ऑब्जेक्ट के बजाय दो प्रॉपर्टी को कॉलबैक में पास किए गए अलग-अलग आर्ग्युमेंट के तौर पर दिखाता है.

रिटर्न

  • Promise<object>

    Chrome 109 और इसके बाद के वर्शन

restart()

chrome.runtime.restart(): void

ऐप्लिकेशन के कीऑस्क मोड में चलने पर, ChromeOS डिवाइस को फिर से चालू करें. ऐसा न होने पर, कोई कार्रवाई नहीं की जाती है.

restartAfterDelay()

Chrome 53 या इसके बाद का वर्शन
chrome.runtime.restartAfterDelay(
  seconds: number,
)
: Promise<void>

इस विकल्प से यह तय होता है कि कीऑस्क मोड में ऐप्लिकेशन चलने के बाद, ChromeOS डिवाइस को कितने सेकंड बाद रीस्टार्ट किया जाएगा. अगर इस समय से पहले इसे फिर से कॉल किया जाता है, तो रीबूट होने में देरी होगी. अगर इसे -1 वैल्यू के साथ कॉल किया जाता है, तो रीबूट करने की प्रोसेस रद्द हो जाएगी. यह नॉन-कीऑस्क मोड में काम नहीं करता. इस एपीआई को शुरू करने के लिए, इसे सिर्फ़ पहले एक्सटेंशन से बार-बार कॉल किया जा सकता है.

पैरामीटर

  • सेकंड

    संख्या

    डिवाइस को रीबूट करने से पहले इंतज़ार करने का समय, सेकंड में. अगर रीबूट करने का शेड्यूल रद्द करना है, तो -1 डालें.

रिटर्न

  • Promise<void>

    Chrome 99 या इसके बाद का वर्शन

    यह प्रॉमिस तब रिज़ॉल्व होता है, जब रीस्टार्ट करने के अनुरोध को फिर से शेड्यूल कर दिया जाता है.

sendMessage()

chrome.runtime.sendMessage(
  extensionId?: string,
  message: any,
  options?: object,
)
: Promise<any>

यह आपके एक्सटेंशन या किसी अन्य एक्सटेंशन/ऐप्लिकेशन में मौजूद इवेंट लिसनर को एक मैसेज भेजता है. यह runtime.connect की तरह ही होता है, लेकिन यह सिर्फ़ एक मैसेज भेजता है. इसमें जवाब देना ज़रूरी नहीं होता. अगर एक्सटेंशन को मैसेज भेजा जा रहा है, तो runtime.onMessage इवेंट, एक्सटेंशन के हर फ़्रेम में ट्रिगर होगा. हालांकि, यह इवेंट मैसेज भेजने वाले एक्सटेंशन के फ़्रेम में ट्रिगर नहीं होगा. अगर किसी दूसरे एक्सटेंशन को मैसेज भेजा जा रहा है, तो runtime.onMessageExternal इवेंट ट्रिगर होगा. ध्यान दें कि एक्सटेंशन, इस तरीके का इस्तेमाल करके कॉन्टेंट स्क्रिप्ट को मैसेज नहीं भेज सकते. कॉन्टेंट स्क्रिप्ट को मैसेज भेजने के लिए, tabs.sendMessage का इस्तेमाल करें.

पैरामीटर

  • extensionId

    string ज़रूरी नहीं है

    उस एक्सटेंशन का आईडी जिस पर मैसेज भेजना है. अगर इसे शामिल नहीं किया जाता है, तो मैसेज आपके एक्सटेंशन/ऐप्लिकेशन को भेजा जाएगा. अगर वेब मैसेजिंग के लिए, किसी वेब पेज से मैसेज भेजे जा रहे हैं, तो यह पैरामीटर ज़रूरी है.

  • मैसेज

    कोई

    भेजा जाने वाला मैसेज. यह मैसेज, JSON ऑब्जेक्ट होना चाहिए.

  • विकल्प

    ऑब्जेक्ट ज़रूरी नहीं

    • includeTlsChannelId

      बूलियन ज़रूरी नहीं है

      क्या टीएलएस चैनल आईडी को onMessageExternal में पास किया जाएगा. ऐसा उन प्रोसेस के लिए किया जाएगा जो कनेक्शन इवेंट को सुन रही हैं.

रिटर्न

  • Promise<any>

    Chrome 99 या इसके बाद का वर्शन

    Chrome 99 में, एक्सटेंशन के कॉन्टेक्स्ट के लिए Promise की सुविधा जोड़ी गई थी. किसी वेब पेज से एक्सटेंशन को कम्यूनिकेट करते समय, Chrome 118 से प्रॉमिस उपलब्ध हैं.

sendNativeMessage()

chrome.runtime.sendNativeMessage(
  application: string,
  message: object,
)
: Promise<any>

किसी नेटिव ऐप्लिकेशन को एक मैसेज भेजें. इस तरीके के लिए, "nativeMessaging" अनुमति ज़रूरी है.

पैरामीटर

  • ऐप्लिकेशन

    स्ट्रिंग

    नेटिव मैसेजिंग होस्ट का नाम या टारगेट की जानकारी.

  • मैसेज

    ऑब्जेक्ट

    यह वह मैसेज है जिसे नेटिव मैसेजिंग होस्ट को भेजा जाएगा.

रिटर्न

  • Promise<any>

    Chrome 99 या इसके बाद का वर्शन

setUninstallURL()

chrome.runtime.setUninstallURL(
  url: string,
)
: Promise<void>

इस कुकी का इस्तेमाल, अनइंस्टॉल करने के बाद विज़िट किए जाने वाले यूआरएल को सेट करने के लिए किया जाता है. इसका इस्तेमाल, सर्वर-साइड डेटा को साफ़ करने, आंकड़ों का विश्लेषण करने, और सर्वे लागू करने के लिए किया जा सकता है. ज़्यादा से ज़्यादा 1023 वर्ण.

पैरामीटर

  • url

    स्ट्रिंग

    एक्सटेंशन को अनइंस्टॉल करने के बाद, यह यूआरएल खुलेगा. इस यूआरएल में http: या https: स्कीम होनी चाहिए. अनइंस्टॉल करने पर नया टैब न खोलने के लिए, खाली स्ट्रिंग सेट करें.

रिटर्न

  • Promise<void>

    Chrome 99 या इसके बाद का वर्शन

    यह प्रॉमिस तब पूरा होता है, जब अनइंस्टॉल करने का यूआरएल सेट हो जाता है. अगर दिया गया यूआरएल अमान्य है, तो प्रॉमिस अस्वीकार कर दिया जाएगा.

इवेंट

onBrowserUpdateAvailable

अब काम नहीं करता
chrome.runtime.onBrowserUpdateAvailable.addListener(
  callback: function,
)

कृपया runtime.onRestartRequired का इस्तेमाल करें.

यह इवेंट तब ट्रिगर होता है, जब Chrome का कोई अपडेट उपलब्ध होता है. हालांकि, ब्राउज़र को रीस्टार्ट करने की ज़रूरत होने की वजह से, इसे तुरंत इंस्टॉल नहीं किया जाता.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    () => void

onConnect

chrome.runtime.onConnect.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब एक्सटेंशन प्रोसेस या कॉन्टेंट स्क्रिप्ट (runtime.connect के ज़रिए) से कनेक्शन बनाया जाता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (port: Port) => void

onConnectExternal

chrome.runtime.onConnectExternal.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब किसी दूसरे एक्सटेंशन (runtime.connect के ज़रिए) या बाहरी तौर पर कनेक्ट की जा सकने वाली वेबसाइट से कनेक्शन बनाया जाता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (port: Port) => void

onConnectNative

Chrome 76 या इसके बाद के वर्शन
chrome.runtime.onConnectNative.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब किसी नेटिव ऐप्लिकेशन से कनेक्शन बनाया जाता है. इस इवेंट के लिए, "nativeMessaging" अनुमति ज़रूरी है. यह सुविधा सिर्फ़ Chrome OS पर काम करती है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (port: Port) => void

onEnabled

Chrome 155 या इसके बाद के वर्शन
chrome.runtime.onEnabled.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब कोई एक्सटेंशन बंद से चालू स्थिति में जाता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    () => void

onInstalled

chrome.runtime.onInstalled.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब एक्सटेंशन पहली बार इंस्टॉल किया जाता है, जब एक्सटेंशन को नए वर्शन में अपडेट किया जाता है, और जब Chrome को नए वर्शन में अपडेट किया जाता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • आईडी

        string ज़रूरी नहीं है

        इससे, इंपोर्ट किए गए शेयर किए गए मॉड्यूल एक्सटेंशन का आईडी पता चलता है. यह सिर्फ़ तब मौजूद होता है, जब 'reason' की वैल्यू 'shared_module_update' हो.

      • previousVersion

        string ज़रूरी नहीं है

        यह एक्सटेंशन के उस पिछले वर्शन को दिखाता है जिसे अभी-अभी अपडेट किया गया है. यह सिर्फ़ तब मौजूद होता है, जब 'reason' की वैल्यू 'update' हो.

      • वजह

        इस इवेंट को भेजने की वजह.

onMessage

chrome.runtime.onMessage.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब runtime.sendMessage या tabs.sendMessage से कोई मैसेज भेजा जाता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined

    • मैसेज

      कोई

    • भेजने वाला
    • sendResponse

      फ़ंक्शन

      sendResponse पैरामीटर ऐसा दिखता है:

      (response?: any) => void

      • जवाब

        कोई भी ज़रूरी नहीं

        मैसेज भेजने वाले को वापस भेजने के लिए जवाब.

    • returns

      boolean | Promise<any> | undefined

onMessageExternal

chrome.runtime.onMessageExternal.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब किसी दूसरे एक्सटेंशन से मैसेज भेजा जाता है (runtime.sendMessage के ज़रिए). इसका इस्तेमाल कॉन्टेंट स्क्रिप्ट में नहीं किया जा सकता.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined

    • मैसेज

      कोई

    • भेजने वाला
    • sendResponse

      फ़ंक्शन

      sendResponse पैरामीटर ऐसा दिखता है:

      (response?: any) => void

      • जवाब

        कोई भी ज़रूरी नहीं

        मैसेज भेजने वाले को वापस भेजने के लिए जवाब.

    • returns

      boolean | Promise<any> | undefined

onRestartRequired

chrome.runtime.onRestartRequired.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब किसी ऐप्लिकेशन या उसे चलाने वाले डिवाइस को फिर से चालू करने की ज़रूरत होती है. ऐप्लिकेशन को अपनी सभी विंडो बंद कर देनी चाहिए, ताकि उसे रीस्टार्ट किया जा सके. अगर ऐप्लिकेशन कुछ नहीं करता है, तो 24 घंटे का ग्रेस पीरियड खत्म होने के बाद, उसे रीस्टार्ट कर दिया जाएगा. फ़िलहाल, यह इवेंट सिर्फ़ ChromeOS कीऑस्क ऐप्लिकेशन के लिए ट्रिगर होता है.

पैरामीटर

onStartup

chrome.runtime.onStartup.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब इस एक्सटेंशन को इंस्टॉल करने वाली कोई प्रोफ़ाइल पहली बार शुरू होती है. गुप्त प्रोफ़ाइल शुरू होने पर, यह इवेंट ट्रिगर नहीं होता. भले ही, यह एक्सटेंशन 'स्प्लिट' गुप्त मोड में काम कर रहा हो.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    () => void

onSuspend

chrome.runtime.onSuspend.addListener(
  callback: function,
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    () => void

onSuspendCanceled

chrome.runtime.onSuspendCanceled.addListener(
  callback: function,
)

onSuspend के बाद भेजा जाता है. इससे पता चलता है कि ऐप्लिकेशन को अनलोड नहीं किया जाएगा.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    () => void

onUpdateAvailable

chrome.runtime.onUpdateAvailable.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब कोई अपडेट उपलब्ध होता है, लेकिन उसे तुरंत इंस्टॉल नहीं किया जाता, क्योंकि ऐप्लिकेशन अभी चल रहा होता है. अगर आपने कुछ नहीं किया, तो अगली बार बैकग्राउंड पेज के अनलोड होने पर अपडेट इंस्टॉल हो जाएगा. अगर आपको इसे तुरंत इंस्टॉल करना है, तो chrome.runtime.reload() को साफ़ तौर पर कॉल करें. अगर आपका एक्सटेंशन, लगातार काम करने वाले बैकग्राउंड पेज का इस्तेमाल कर रहा है, तो बैकग्राउंड पेज कभी अनलोड नहीं होता. इसलिए, जब तक आप इस इवेंट के जवाब में chrome.runtime.reload() को मैन्युअल तरीके से कॉल नहीं करते, तब तक अपडेट इंस्टॉल नहीं होगा. यह तब तक इंस्टॉल नहीं होगा, जब तक Chrome खुद रीस्टार्ट नहीं हो जाता. अगर कोई हैंडलर इस इवेंट को नहीं सुन रहा है और आपके एक्सटेंशन में हमेशा चालू रहने वाला बैकग्राउंड पेज है, तो यह इस तरह काम करता है जैसे इस इवेंट के जवाब में chrome.runtime.reload() को कॉल किया गया हो.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • वर्शन

        स्ट्रिंग

        उपलब्ध अपडेट का वर्शन नंबर.

onUserScriptConnect

Chrome 115+ MV3+
chrome.runtime.onUserScriptConnect.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब इस एक्सटेंशन से उपयोगकर्ता की स्क्रिप्ट कनेक्ट की जाती है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (port: Port) => void

onUserScriptMessage

Chrome 115+ MV3+
chrome.runtime.onUserScriptMessage.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब एक ही एक्सटेंशन से जुड़ी उपयोगकर्ता स्क्रिप्ट से कोई मैसेज भेजा जाता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (message: any, sender: MessageSender, sendResponse: function) => boolean | undefined

    • मैसेज

      कोई

    • भेजने वाला
    • sendResponse

      फ़ंक्शन

      sendResponse पैरामीटर ऐसा दिखता है:

      (response?: any) => void

      • जवाब

        कोई भी ज़रूरी नहीं

        मैसेज भेजने वाले को वापस भेजने के लिए जवाब.

    • returns

      boolean | undefined