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');
  }
});

उदाहरण

रनटाइम एपीआई के ज़्यादा उदाहरणों के लिए, मेनिफ़ेस्ट V3 - वेब से ऐक्सेस किए जा सकने वाले संसाधनों का डेमो देखें.

टाइप

ContextFilter

Chrome 114 और उसके बाद के वर्शन

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

प्रॉपर्टी

  • contextIds

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

  • contextTypes

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

  • 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

    स्ट्रिंग ज़रूरी नहीं है

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

  • documentOrigin

    स्ट्रिंग ज़रूरी नहीं है

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

  • documentUrl

    स्ट्रिंग ज़रूरी नहीं है

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

  • frameId

    संख्या

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

  • गुप्त मोड

    बूलियन

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

  • tabId

    संख्या

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

  • windowId

    संख्या

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

MessageSender

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

प्रॉपर्टी

  • documentId

    स्ट्रिंग ज़रूरी नहीं है

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

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

  • documentLifecycle

    स्ट्रिंग ज़रूरी नहीं है

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

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

  • frameId

    number ज़रूरी नहीं

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

  • आईडी

    स्ट्रिंग ज़रूरी नहीं है

    अगर कोई एक्सटेंशन कनेक्शन खोलता है, तो उसका आईडी.

  • nativeApplication

    स्ट्रिंग ज़रूरी नहीं है

    Chrome 74 और उसके बाद के वर्शन

    अगर कोई नेटिव ऐप्लिकेशन कनेक्शन खोलता है, तो उसका नाम.

  • origin

    स्ट्रिंग ज़रूरी नहीं है

    Chrome 80 और उसके बाद के वर्शन

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

  • टैब

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

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

  • tlsChannelId

    स्ट्रिंग ज़रूरी नहीं है

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

  • url

    स्ट्रिंग ज़रूरी नहीं है

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

OnInstalledReason

Chrome 44 और उसके बाद के वर्शन

इस इवेंट को डिस्पैच करने की वजह.

Enum

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

"update"
एक्सटेंशन अपडेट के तौर पर, इवेंट की वजह बताता है.

"chrome_update"
इवेंट की वजह को Chrome अपडेट के तौर पर बताता है.

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

OnRestartRequiredReason

Chrome 44 और उसके बाद के वर्शन

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

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 के तौर पर बताता है.

PlatformInfo

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

प्रॉपर्टी

  • आर्क

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

  • nacl_arch

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

  • Chrome जिस ऑपरेटिंग सिस्टम पर चल रहा है.

PlatformNaclArch

Chrome 44 और उसके बाद के वर्शन

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

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 ऑपरेटिंग सिस्टम के बारे में बताता है.

"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

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

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

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

प्रॉपर्टी

id

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

टाइप

स्ट्रिंग

lastError

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

टाइप

ऑब्जेक्ट

प्रॉपर्टी

  • मैसेज

    स्ट्रिंग ज़रूरी नहीं है

    हुई गड़बड़ी के बारे में जानकारी.

तरीके

connect()

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

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

पैरामीटर

  • extensionId

    स्ट्रिंग ज़रूरी नहीं है

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

  • connectInfo

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

    • includeTlsChannelId

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

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

    • नाम

      स्ट्रिंग ज़रूरी नहीं है

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

रिटर्न

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

connectNative()

chrome.runtime.connectNative(
  application: string,
)

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

पैरामीटर

  • ऐप्लिकेशन

    स्ट्रिंग

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

रिटर्न

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

getBackgroundPage()

वादा करना सिर्फ़ फ़ोरग्राउंड में
chrome.runtime.getBackgroundPage(
  callback?: function,
)

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

पैरामीटर

  • कॉलबैक

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

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

    (backgroundPage?: Window) => void

    • backgroundPage

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

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

रिटर्न

  • Promise<Window | undefined>

    Chrome 99 और उसके बाद के वर्शन

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

getContexts()

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

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

पैरामीटर

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

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

  • कॉलबैक

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

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

    (contexts: ExtensionContext[]) => void

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

      मैच होने वाले कॉन्टेक्स्ट, अगर कोई है.

रिटर्न

  • Promise<ExtensionContext[]>

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

getManifest()

chrome.runtime.getManifest()

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

रिटर्न

  • ऑब्जेक्ट

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

getPackageDirectoryEntry()

वादा करना सिर्फ़ फ़ोरग्राउंड में
chrome.runtime.getPackageDirectoryEntry(
  callback?: function,
)

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

पैरामीटर

  • कॉलबैक

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

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

    (directoryEntry: DirectoryEntry) => void

    • directoryEntry

      DirectoryEntry

रिटर्न

  • Promise<DirectoryEntry>

    Chrome 122 और उसके बाद के वर्शन

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

getPlatformInfo()

वादा करना
chrome.runtime.getPlatformInfo(
  callback?: function,
)

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

पैरामीटर

  • कॉलबैक

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

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

    (platformInfo: PlatformInfo) => void

रिटर्न

  • Promise<PlatformInfo>

    Chrome 99 और उसके बाद के वर्शन

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

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 और उसके बाद के वर्शन

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

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 ऑब्जेक्ट, अपडेट की जांच की स्थिति और अपडेट उपलब्ध होने पर, नतीजे की जानकारी दिखाता है

      • स्थिति

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

      • वर्शन

        स्ट्रिंग ज़रूरी नहीं है

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

रिटर्न

  • Promise<object>

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

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

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 और उसके बाद के वर्शन

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

sendMessage()

वादा करना
chrome.runtime.sendMessage(
  extensionId?: string,
  message: any,
  options?: object,
  callback?: function,
)

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

पैरामीटर

  • extensionId

    स्ट्रिंग ज़रूरी नहीं है

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

  • मैसेज

    कोई

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

  • विकल्प

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

    • includeTlsChannelId

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

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

  • कॉलबैक

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

    Chrome 99 और उसके बाद के वर्शन

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

    (response: any) => void

    • जवाब

      कोई

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

रिटर्न

  • Promise<any>

    Chrome 99 और उसके बाद के वर्शन

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

sendNativeMessage()

वादा करना
chrome.runtime.sendNativeMessage(
  application: string,
  message: object,
  callback?: function,
)

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

पैरामीटर

  • ऐप्लिकेशन

    स्ट्रिंग

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

  • मैसेज

    ऑब्जेक्ट

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

  • कॉलबैक

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

    Chrome 99 और उसके बाद के वर्शन

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

    (response: any) => void

    • जवाब

      कोई

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

रिटर्न

  • Promise<any>

    Chrome 99 और उसके बाद के वर्शन

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

setUninstallURL()

वादा करना
chrome.runtime.setUninstallURL(
  url: string,
  callback?: function,
)

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

पैरामीटर

  • url

    स्ट्रिंग

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

  • कॉलबैक

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

    Chrome 45 और उसके बाद के वर्शन

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

    () => void

रिटर्न

  • 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

onInstalled

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • आईडी

        स्ट्रिंग ज़रूरी नहीं है

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

      • previousVersion

        स्ट्रिंग ज़रूरी नहीं है

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

      • वजह

        इस इवेंट को डिस्पैच करने की वजह.

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