chrome.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()`.

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

जब किसी अनपैक किए गए एक्सटेंशन को फिर से लोड किया जाता है, तो इसे अपडेट माना जाता है. इसका मतलब है कि chrome.runtime.onInstalled इवेंट, "update" वजह से ट्रिगर होगा. इसमें chrome.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 = chrome.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
chrome.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'
};

chrome.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:

chrome.runtime.onInstalled.addListener(details => {
  if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
    chrome.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 ज़रूरी नहीं है

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

  • documentUrl

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

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

  • frameId

    संख्या

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

  • गुप्त

    बूलियन

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

  • tabId

    संख्या

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

  • windowId

    संख्या

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

MessageSender

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

प्रॉपर्टी

  • documentId

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

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

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

  • documentLifecycle

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

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

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

  • frameId

    number ज़रूरी नहीं

    कनेक्शन खोलने वाला फ़्रेम. टॉप-लेवल फ़्रेम के लिए 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 चल रहा है.

PlatformNaclArch

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

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

Enum

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

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

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

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

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

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

PlatformOs

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

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

Enum

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

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

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

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

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

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

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

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 ज़रूरी नहीं है

    यह प्रॉपर्टी, 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,
)

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

पैरामीटर

  • extensionId

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

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

  • connectInfo

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

    • includeTlsChannelId

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

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

    • नाम

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

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

रिटर्न

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

connectNative()

chrome.runtime.connectNative(
  application: string,
)

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

पैरामीटर

  • ऐप्लिकेशन

    स्ट्रिंग

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

रिटर्न

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

getBackgroundPage()

Promise Foreground only Deprecated since Chrome 133
chrome.runtime.getBackgroundPage(
  callback?: function,
)

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

    (backgroundPage?: Window) => void

    • backgroundPage

      विंडो ज़रूरी नहीं है

      बैकग्राउंड पेज के लिए JavaScript 'window' ऑब्जेक्ट.

रिटर्न

  • Promise<Window | undefined>

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

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

getContexts()

Promise Chrome 116 या इसके बाद के वर्शन MV3 या इसके बाद के वर्शन
chrome.runtime.getContexts(
  filter: ContextFilter,
  callback?: function,
)

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

पैरामीटर

  • फ़िल्टर करें

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

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

    (contexts: ExtensionContext[]) => void

    • कॉन्टेक्स्ट

      मिलते-जुलते कॉन्टेक्स्ट, अगर कोई है तो.

रिटर्न

  • Promise<ExtensionContext[]>

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

getManifest()

chrome.runtime.getManifest()

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

रिटर्न

  • ऑब्जेक्ट

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

getPackageDirectoryEntry()

Promise Foreground only
chrome.runtime.getPackageDirectoryEntry(
  callback?: function,
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

    (directoryEntry: DirectoryEntry) => void

    • directoryEntry

      DirectoryEntry

रिटर्न

  • Promise<DirectoryEntry>

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

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

getPlatformInfo()

प्रॉमिस
chrome.runtime.getPlatformInfo(
  callback?: function,
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

    (platformInfo: PlatformInfo) => void

रिटर्न

  • Promise<PlatformInfo>

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

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

getURL()

chrome.runtime.getURL(
  path: string,
)

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

पैरामीटर

  • पाथ

    स्ट्रिंग

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

रिटर्न

  • स्ट्रिंग

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

openOptionsPage()

प्रॉमिस
chrome.runtime.openOptionsPage(
  callback?: function,
)

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

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

    () => void

रिटर्न

  • Promise<void>

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

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

reload()

chrome.runtime.reload()

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

requestUpdateCheck()

प्रॉमिस
chrome.runtime.requestUpdateCheck(
  callback?: function,
)

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

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

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

    (result: object) => void

    • नतीजा

      ऑब्जेक्ट

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

      RequestUpdateCheckResult ऑब्जेक्ट, अपडेट की जांच की स्थिति और अपडेट उपलब्ध होने पर नतीजे की कोई भी जानकारी सेव करता है

      • स्थिति

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

      • वर्शन

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

        अगर कोई अपडेट उपलब्ध है, तो इसमें उपलब्ध अपडेट का वर्शन होता है.

रिटर्न

  • Promise<object>

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

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

restart()

chrome.runtime.restart()

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

restartAfterDelay()

Promise Chrome 53 और इसके बाद के वर्शन
chrome.runtime.restartAfterDelay(
  seconds: number,
  callback?: function,
)

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

पैरामीटर

  • सेकंड

    संख्या

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

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

    () => void

रिटर्न

  • Promise<void>

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

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

sendMessage()

प्रॉमिस
chrome.runtime.sendMessage(
  extensionId?: string,
  message: any,
  options?: object,
  callback?: function,
)

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

पैरामीटर

  • extensionId

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

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

  • मैसेज

    कोई

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

  • विकल्प

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

    • includeTlsChannelId

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

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

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

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

    (response: any) => void

    • जवाब

      कोई

      मैसेज के हैंडलर से भेजा गया JSON रिस्पॉन्स ऑब्जेक्ट. अगर एक्सटेंशन से कनेक्ट करते समय कोई गड़बड़ी होती है, तो बिना किसी आर्ग्युमेंट के कॉलबैक को कॉल किया जाएगा. साथ ही, runtime.lastError को गड़बड़ी के मैसेज पर सेट किया जाएगा.

रिटर्न

  • Promise<any>

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

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

sendNativeMessage()

प्रॉमिस
chrome.runtime.sendNativeMessage(
  application: string,
  message: object,
  callback?: function,
)

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

पैरामीटर

  • ऐप्लिकेशन

    स्ट्रिंग

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

  • मैसेज

    ऑब्जेक्ट

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

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

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

    (response: any) => void

    • जवाब

      कोई

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

रिटर्न

  • Promise<any>

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

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

setUninstallURL()

प्रॉमिस
chrome.runtime.setUninstallURL(
  url: string,
  callback?: function,
)

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

पैरामीटर

  • url

    स्ट्रिंग

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

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

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

    () => void

रिटर्न

  • Promise<void>

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

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

इवेंट

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

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 | undefined

    • मैसेज

      कोई

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

      फ़ंक्शन

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

      () => void

    • returns

      boolean | undefined

onMessageExternal

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

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

    • मैसेज

      कोई

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

      फ़ंक्शन

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

      () => void

    • returns

      boolean | undefined

onRestartRequired

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

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

पैरामीटर

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 पैरामीटर ऐसा दिखता है:

      () => void

    • returns

      boolean | undefined