chrome.runtime

ब्यौरा

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

इस एपीआई के ज़्यादातर सदस्यों को किसी अनुमति की ज़रूरत नहीं है. 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

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

  • contextTypes

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

  • documentIds

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

  • documentOrigins

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

  • documentUrls

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

  • frameIds

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

  • गुप्त मोड

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

  • tabIds

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

  • windowIds

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

ContextType

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

Enum

"Tab"
संदर्भ टाइप को टैब के तौर पर बताता है

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

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

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

"SIDE_DIMENSION"
संदर्भ टाइप को साइड पैनल के तौर पर दिखाता है.

ExtensionContext

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

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

प्रॉपर्टी

  • contextId

    स्ट्रिंग

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

  • contextType

    इससे पता चलता है कि यह किस तरह का संदर्भ है.

  • documentId

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

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

  • documentOrigin

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

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

  • documentUrl

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

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

  • frameId

    नंबर

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

  • गुप्त मोड

    boolean

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

  • tabId

    नंबर

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

  • windowId

    नंबर

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

MessageSender

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

प्रॉपर्टी

  • documentId

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

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

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

  • documentLifecycle

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

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

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

  • frameId

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

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

  • id

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

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

  • nativeApplication

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

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

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

  • origin

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

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

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

  • टैब से

    Tab ज़रूरी नहीं

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

  • tlsChannelId

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

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

  • यूआरएल

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

    कनेक्शन खोलने वाले पेज या फ़्रेम का यूआरएल. अगर भेजने वाला व्यक्ति किसी 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"
ऑपरेटिंग सिस्टम के अपडेट के तौर पर, इवेंट की वजह की जानकारी देता है.

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

PlatformArch

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

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

Enum

"आर्म"
प्रोसेसर आर्किटेक्चर को ग्रुप के रूप में तय करता है.

"arm64"
प्रोसेसर आर्किटेक्चर को Arm64 के रूप में बताता है.

"x86-32"
प्रोसेसर आर्किटेक्चर को x86-32 के रूप में बताता है.

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

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

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

PlatformInfo

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

प्रॉपर्टी

  • आर्क

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

  • nacl_arch

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

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

PlatformNaclArch

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

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

Enum

"आर्म"
हथियार के रूप में नेटिव क्लाइंट आर्किटेक्चर की जानकारी देता है.

"x86-32"
यह नेटिव क्लाइंट आर्किटेक्चर के बारे में बताता है, जैसे कि x86-32.

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

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

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

PlatformOs

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

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

Enum

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

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

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

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

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

"openbsd"
OpenBSD ऑपरेटिंग सिस्टम की जानकारी देता है.

"फ़्यूशा"
फ़्यूशा ऑपरेटिंग सिस्टम के बारे में बताता है.

Port

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

प्रॉपर्टी

  • नाम

    स्ट्रिंग

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

  • onDisconnect

    इवेंट<Functionvoidvoid>

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

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

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

    • कॉलबैक

      फ़ंक्शन

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

      (port: Port)=>void

  • onMessage

    इवेंट<Functionvoidvoid>

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

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

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

    • कॉलबैक

      फ़ंक्शन

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

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

      • ग्राहक का मैसेज

        कोई भी

      • पोर्ट
  • भेजने वाला

    MessageSender ज़रूरी नहीं

    यह प्रॉपर्टी सिर्फ़ उन पोर्ट में उपलब्ध होगी जो onConnect / onConnectExternal / onConnectNative लिसनर को पास किए गए हैं.

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

    void

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

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

    ()=> {...}

  • postMessage

    void

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

    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' ऑब्जेक्ट.

रिटर्न

  • वादा<Window|undefined>

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

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

getContexts()

प्रॉमिस Chrome 116+ MV3+
chrome.runtime.getContexts(
  filter: ContextFilter,
  callback?: function,
)

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

पैरामीटर

  • फ़िल्‍टर

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

  • कॉलबैक

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

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

    (contexts: ExtensionContext[])=>void

    • संदर्भ

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

रिटर्न

  • Promise<ExtensionContext[]>

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

getManifest()

chrome.runtime.getManifest()

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

रिटर्न

  • ऑब्जेक्ट

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

getPackageDirectoryEntry()

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

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

पैरामीटर

  • कॉलबैक

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

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

    (directoryEntry: DirectoryEntry)=>void

    • directoryEntry

      DirectoryEntry

रिटर्न

  • Promise<DirectoryEntry>

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

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

getPlatformInfo()

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

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

पैरामीटर

  • कॉलबैक

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

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

    (platformInfo: PlatformInfo)=>void

रिटर्न

  • Promise<PlatformInfo>

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

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

getURL()

chrome.runtime.getURL(
  path: string,
)

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

पैरामीटर

  • पाथ

    स्ट्रिंग

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

रिटर्न

  • स्ट्रिंग

    संसाधन के लिए पूरी तरह क्वालिफ़ाइड यूआरएल.

openOptionsPage()

वादा
chrome.runtime.openOptionsPage(
  callback?: function,
)

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

सही कार्रवाई, आपके मेनिफ़ेस्ट के [options_ui](https://developer.chrome.com/docs/extensions/develop/ui/options-page#embedded_options) या [options_page](https://developer.chrome.com/docs/extensions/develop/ui/options-page#full_page) बटन पर निर्भर करती है. इसके अलावा, यह इस बात पर भी निर्भर करती है कि उस समय Chrome पर किस तरह की कार्रवाई काम करती है. उदाहरण के लिए, हो सकता है कि पेज को किसी नए टैब में, chrome://extensions में या किसी ऐप्लिकेशन में खोला गया हो. इसके अलावा, हो सकता है कि वह पेज खुले हुए विकल्प वाले पेज पर फ़ोकस करता हो. इससे कॉलर पेज कभी भी फिर से लोड नहीं होगा.

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

पैरामीटर

  • कॉलबैक

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

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

    ()=>void

रिटर्न

  • Promise<void>

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

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

reload()

chrome.runtime.reload()

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

requestUpdateCheck()

वादा
chrome.runtime.requestUpdateCheck(
  callback?: function,
)

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

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

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

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

पैरामीटर

  • कॉलबैक

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

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

    (result: object)=>void

    • नतीजा

      ऑब्जेक्ट

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

      requestUpdateCheckresults ऑब्जेक्ट में अपडेट की जांच का स्टेटस होता है. साथ ही, अपडेट उपलब्ध होने पर नतीजे से जुड़ी जानकारी होती है

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

      • वर्शन

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

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

रिटर्न

  • Promise<object>

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

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

restart()

chrome.runtime.restart()

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

restartAfterDelay()

प्रॉमिस Chrome 53+
chrome.runtime.restartAfterDelay(
  seconds: number,
  callback?: function,
)

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

पैरामीटर

  • सेकंड

    नंबर

    डिवाइस को फिर से चालू करने से पहले कुछ सेकंड तक इंतज़ार करें या शेड्यूल किए गए रीबूट को रद्द करने के लिए -1.

  • कॉलबैक

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

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

    ()=>void

रिटर्न

  • Promise<void>

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

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

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 को गड़बड़ी के मैसेज पर सेट कर दिया जाएगा.

रिटर्न

  • वादा<any>

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

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

sendNativeMessage()

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

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

पैरामीटर

  • ऐप्लिकेशन

    स्ट्रिंग

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

  • ग्राहक का मैसेज

    ऑब्जेक्ट

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

  • कॉलबैक

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

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

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

    (response: any)=>void

    • जवाब

      कोई भी

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

रिटर्न

  • वादा<any>

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

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

setUninstallURL()

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

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

पैरामीटर

  • यूआरएल

    स्ट्रिंग

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

  • कॉलबैक

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

    Chrome 45+

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

    ()=>void

रिटर्न

  • Promise<void>

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

    प्रॉमिस, मेनिफ़ेस्ट 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

    • विवरण

      ऑब्जेक्ट

      • id

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

        अपडेट किए गए इंपोर्ट किए गए शेयर किए गए मॉड्यूल एक्सटेंशन का आईडी दिखाता है. यह सिर्फ़ तब दिखता है, जब 'वजह' '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,
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    ()=>void

onSuspendCanceled

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

इसे Onनिलंबित के बाद भेजा जाएगा, ताकि यह बताया जा सके कि ऐप्लिकेशन को पूरी तरह से अनलोड नहीं किया जाएगा.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    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