ब्यौरा
सर्विस वर्कर को वापस पाने, मेनिफ़ेस्ट के बारे में जानकारी देने, और एक्सटेंशन के लाइफ़साइकल में इवेंट सुनने और उनका जवाब देने के लिए, chrome.runtime एपीआई का इस्तेमाल करें. इस एपीआई का इस्तेमाल, यूआरएल के रिलेटिव पाथ को पूरी तरह से मान्य यूआरएल में बदलने के लिए भी किया जा सकता है.
खास जानकारी देने वाला बटन
Runtime API, कई तरह की सुविधाओं के लिए तरीके उपलब्ध कराता है. आपके एक्सटेंशन इनका इस्तेमाल कर सकते हैं:
- मैसेज पास करना
- आपका एक्सटेंशन, इन तरीकों और इवेंट का इस्तेमाल करके, अपने एक्सटेंशन के अलग-अलग कॉन्टेक्स्ट के साथ-साथ अन्य एक्सटेंशन के साथ भी कम्यूनिकेट कर सकता है: connect(), onConnect, onConnectExternal, sendMessage(), onMessage और onMessageExternal. इसके अलावा, आपका एक्सटेंशन, उपयोगकर्ता के डिवाइस पर मौजूद नेटिव ऐप्लिकेशन को मैसेज भेज सकता है. इसके लिए, connectNative() और sendNativeMessage() का इस्तेमाल करें.
- एक्सटेंशन और प्लैटफ़ॉर्म के मेटाडेटा को ऐक्सेस करना
- इन तरीकों से, एक्सटेंशन और प्लैटफ़ॉर्म के बारे में मेटाडेटा के कई खास हिस्से वापस पाए जा सकते हैं. इस कैटगरी में ये तरीके शामिल हैं: getManifest() और getPlatformInfo().
- एक्सटेंशन के लाइफ़साइकल और विकल्पों को मैनेज करना
- इन प्रॉपर्टी की मदद से, एक्सटेंशन पर कुछ मेटा-ऑपरेशन किए जा सकते हैं. साथ ही, विकल्प पेज दिखाया जा सकता है. इस कैटगरी में शामिल तरीके और इवेंट ये हैं: onInstalled, onStartup, openOptionsPage(), reload(), requestUpdateCheck(), और setUninstallURL().
- हेल्पर यूटिलिटी
- इन तरीकों से, इंटरनल रिसोर्स के प्रज़ेंटेशन को बाहरी फ़ॉर्मैट में बदलने जैसी सुविधाएं मिलती हैं. इस कैटगरी में शामिल तरीकों में getURL() शामिल है.
- कीऑस्क मोड की सुविधाएं
- ये तरीके सिर्फ़ ChromeOS पर उपलब्ध हैं. इनका इस्तेमाल मुख्य रूप से कीऑस्क मोड को लागू करने के लिए किया जाता है. इस कैटगरी में ये तरीके शामिल हैं: restart और restartAfterDelay.
अनुमतियां
Runtime API के ज़्यादातर तरीकों के लिए, किसी अनुमति की ज़रूरत नहीं होती. हालांकि, sendNativeMessage और connectNative के लिए, nativeMessaging अनुमति की ज़रूरत होती है.
मेनिफ़ेस्ट
यहां दिए गए उदाहरण में, मेनिफ़ेस्ट में nativeMessaging अनुमति को एलान करने का तरीका बताया गया है:
manifest.json:
{
"name": "My extension",
...
"permissions": [
"nativeMessaging"
],
...
}
उपयोग के उदाहरण
किसी वेब पेज में इमेज जोड़ना
अगर किसी वेब पेज को दूसरे डोमेन पर होस्ट की गई ऐसेट को ऐक्सेस करना है, तो उसे संसाधन का पूरा यूआरएल (जैसे, <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);
});
background.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
यह फ़िल्टर, कुछ एक्सटेंशन कॉन्टेक्स्ट से मैच करने के लिए होता है. मिलते-जुलते कॉन्टेक्स्ट, तय किए गए सभी फ़िल्टर से मेल खाने चाहिए. तय नहीं किया गया कोई भी फ़िल्टर, सभी उपलब्ध कॉन्टेक्स्ट से मेल खाता है. इसलिए, `{}` फ़िल्टर, सभी उपलब्ध कॉन्टेक्स्ट से मेल खाएगा.
प्रॉपर्टी
-
contextIds
string[] ज़रूरी नहीं है
-
contextTypes
ContextType[] optional
-
documentIds
string[] ज़रूरी नहीं है
-
documentOrigins
string[] ज़रूरी नहीं है
-
documentUrls
string[] ज़रूरी नहीं है
-
frameIds
number[] ज़रूरी नहीं
-
गुप्त
बूलियन ज़रूरी नहीं है
-
tabIds
number[] ज़रूरी नहीं
-
windowIds
number[] ज़रूरी नहीं
ContextType
Enum
"TAB"
कॉन्टेक्स्ट टाइप को टैब के तौर पर तय करता है
"POPUP"
कॉन्टेक्स्ट टाइप को एक्सटेंशन पॉप-अप विंडो के तौर पर तय करता है
"BACKGROUND"
इससे कॉन्टेक्स्ट टाइप को सर्विस वर्कर के तौर पर सेट किया जाता है.
"OFFSCREEN_DOCUMENT"
कॉन्टेक्स्ट टाइप को ऑफ़स्क्रीन दस्तावेज़ के तौर पर तय करता है.
"SIDE_PANEL"
कॉन्टेक्स्ट टाइप को साइड पैनल के तौर पर तय करता है.
"DEVELOPER_TOOLS"
इससे कॉन्टेक्स्ट टाइप को डेवलपर टूल के तौर पर सेट किया जाता है.
ExtensionContext
एक्सटेंशन के कॉन्टेंट को होस्ट करने वाला कॉन्टेक्स्ट.
प्रॉपर्टी
-
contextId
स्ट्रिंग
इस कॉन्टेक्स्ट के लिए यूनीक आइडेंटिफ़ायर
-
contextType
यह किस तरह के कॉन्टेक्स्ट से जुड़ा है.
-
documentId
string ज़रूरी नहीं है
इस कॉन्टेक्स्ट से जुड़े दस्तावेज़ के लिए यूयूआईडी. अगर यह कॉन्टेक्स्ट किसी दस्तावेज़ में होस्ट नहीं किया गया है, तो यह अपरिभाषित होता है.
-
documentOrigin
string ज़रूरी नहीं है
इस कॉन्टेक्स्ट से जुड़े दस्तावेज़ का ऑरिजिन या अगर कॉन्टेक्स्ट को किसी दस्तावेज़ में होस्ट नहीं किया गया है, तो 'तय नहीं किया गया'.
-
documentUrl
string ज़रूरी नहीं है
इस कॉन्टेक्स्ट से जुड़े दस्तावेज़ का यूआरएल. अगर कॉन्टेक्स्ट को किसी दस्तावेज़ में होस्ट नहीं किया गया है, तो यह undefined होता है.
-
frameId
संख्या
इस कॉन्टेक्स्ट के लिए फ़्रेम का आईडी या -1, अगर यह कॉन्टेक्स्ट किसी फ़्रेम में होस्ट नहीं किया गया है.
-
गुप्त
बूलियन
यह कुकी, यह तय करती है कि कॉन्टेक्स्ट, गुप्त मोड वाली प्रोफ़ाइल से जुड़ा है या नहीं.
-
tabId
संख्या
इस कॉन्टेक्स्ट के लिए टैब का आईडी या -1, अगर इस कॉन्टेक्स्ट को किसी टैब में होस्ट नहीं किया गया है.
-
windowId
संख्या
इस कॉन्टेक्स्ट के लिए विंडो का आईडी या -1, अगर यह कॉन्टेक्स्ट किसी विंडो में होस्ट नहीं किया गया है.
MessageSender
यह ऑब्जेक्ट, स्क्रिप्ट के उस कॉन्टेक्स्ट के बारे में जानकारी देता है जिसने मैसेज या अनुरोध भेजा है.
प्रॉपर्टी
-
documentId
string ज़रूरी नहीं है
Chrome 106 या इसके बाद के वर्शनकनेक्शन खोलने वाले दस्तावेज़ का यूयूआईडी.
-
documentLifecycle
string ज़रूरी नहीं है
Chrome 106 या इसके बाद के वर्शनपोर्ट बनाए जाने के समय, कनेक्शन खोलने वाले दस्तावेज़ का लाइफ़साइकल. ध्यान दें कि पोर्ट बनाने के बाद, दस्तावेज़ के लाइफ़साइकल की स्थिति बदल सकती है.
-
frameId
number optional
कनेक्शन खोलने वाला फ़्रेम. टॉप-लेवल फ़्रेम के लिए 0 और चाइल्ड फ़्रेम के लिए पॉज़िटिव. यह कुकी सिर्फ़ तब सेट की जाएगी, जब
tabसेट किया गया हो. -
आईडी
string ज़रूरी नहीं है
कनेक्शन खोलने वाले एक्सटेंशन का आईडी. अगर कोई एक्सटेंशन नहीं है, तो यह फ़ील्ड मौजूद नहीं होगा.
-
nativeApplication
string ज़रूरी नहीं है
Chrome 74 या इसके बाद का वर्शनअगर कनेक्शन खोलने वाले नेटिव ऐप्लिकेशन का नाम मौजूद है, तो उसे यहां दिखाया जाता है.
-
origin
string ज़रूरी नहीं है
Chrome 80 या इसके बाद का वर्शनकनेक्शन खोलने वाले पेज या फ़्रेम का ऑरिजिन. यह यूआरएल प्रॉपर्टी (जैसे, about:blank) से अलग हो सकता है या अपारदर्शी हो सकता है (जैसे, सैंडबॉक्स किए गए iframe). अगर हम यूआरएल से तुरंत यह पता नहीं लगा पाते हैं कि सोर्स भरोसेमंद है या नहीं, तो यह जानकारी यह पता लगाने में मददगार होती है कि सोर्स भरोसेमंद है या नहीं.
-
टैब
टैब ज़रूरी नहीं है
कनेक्शन खोलने वाला
tabs.Tab, अगर कोई है. यह प्रॉपर्टी सिर्फ़ तब मौजूद होगी, जब कनेक्शन को किसी टैब (इसमें कॉन्टेंट स्क्रिप्ट भी शामिल हैं) से खोला गया हो. साथ ही, यह सिर्फ़ तब मौजूद होगी, जब मैसेज पाने वाला कोई एक्सटेंशन हो, न कि कोई ऐप्लिकेशन. -
tlsChannelId
string ज़रूरी नहीं है
कनेक्शन खोलने वाले पेज या फ़्रेम का टीएलएस चैनल आईडी. यह आईडी तब उपलब्ध होता है, जब एक्सटेंशन ने इसका अनुरोध किया हो.
-
url
string ज़रूरी नहीं है
उस पेज या फ़्रेम का यूआरएल जिसने कनेक्शन खोला है. अगर भेजने वाला iframe में है, तो यह iframe का यूआरएल होगा. यह उस पेज का यूआरएल नहीं होगा जो इसे होस्ट करता है.
OnInstalledReason
इस इवेंट को भेजने की वजह.
Enum
"install"
इससे इवेंट की वजह को इंस्टॉलेशन के तौर पर सेट किया जाता है.
"update"
इससे इवेंट के होने की वजह का पता चलता है. जैसे, एक्सटेंशन अपडेट किया गया.
"chrome_update"
इस इवेंट के होने की वजह, Chrome का अपडेट होना है.
"shared_module_update"
इस इवेंट के होने की वजह यह है कि शेयर किए गए मॉड्यूल को अपडेट किया गया है.
OnRestartRequiredReason
इवेंट को क्यों भेजा जा रहा है. 'app_update' का इस्तेमाल तब किया जाता है, जब ऐप्लिकेशन को नए वर्शन में अपडेट करने की वजह से रीस्टार्ट करने की ज़रूरत होती है. 'os_update' का इस्तेमाल तब किया जाता है, जब ब्राउज़र/ओएस को नए वर्शन में अपडेट करने की वजह से रीस्टार्ट करने की ज़रूरत होती है. 'periodic' का इस्तेमाल तब किया जाता है, जब सिस्टम, एंटरप्राइज़ नीति में सेट किए गए अनुमत अपटाइम से ज़्यादा समय तक चलता है.
Enum
"app_update"
यह इवेंट के होने की वजह को ऐप्लिकेशन के अपडेट के तौर पर दिखाता है.
"os_update"
इससे इवेंट की वजह के तौर पर, ऑपरेटिंग सिस्टम को अपडेट करने के बारे में पता चलता है.
"periodic"
इससे इवेंट की वजह के तौर पर, ऐप्लिकेशन के समय-समय पर रीस्टार्ट होने की जानकारी मिलती है.
PlatformArch
मशीन के प्रोसेसर का आर्किटेक्चर.
Enum
"arm"
प्रोसेसर के आर्किटेक्चर को arm के तौर पर तय करता है.
"arm64"
प्रोसेसर के आर्किटेक्चर को arm64 के तौर पर तय करता है.
"x86-32"
प्रोसेसर के आर्किटेक्चर को x86-32 के तौर पर तय करता है.
"x86-64"
प्रोसेसर के आर्किटेक्चर को x86-64 के तौर पर तय करता है.
"mips"
प्रोसेसर के आर्किटेक्चर को mips के तौर पर तय करता है.
"mips64"
प्रोसेसर के आर्किटेक्चर को mips64 के तौर पर तय करता है.
"riscv64"
प्रोसेसर के आर्किटेक्चर को riscv64 के तौर पर तय करता है.
PlatformInfo
मौजूदा प्लैटफ़ॉर्म के बारे में जानकारी देने वाला ऑब्जेक्ट.
प्रॉपर्टी
-
आर्क
मशीन के प्रोसेसर का आर्किटेक्चर.
-
nacl_arch
PlatformNaclArch optional
Chrome 149 से बंद कर दिया गया हैनेटिव क्लाइंट को पूरी तरह से हटाने के बाद, इस एट्रिब्यूट का इस्तेमाल नहीं किया जा सकता.
नेटिव क्लाइंट आर्किटेक्चर. यह कुछ प्लैटफ़ॉर्म पर आर्च से अलग हो सकता है.
-
os
Chrome जिस ऑपरेटिंग सिस्टम पर चल रहा है.
PlatformNaclArch
नेटिव क्लाइंट को पूरी तरह से हटाने के बाद, इस enum को बंद कर दिया गया है.
नेटिव क्लाइंट आर्किटेक्चर. यह कुछ प्लैटफ़ॉर्म पर आर्च से अलग हो सकता है.
Enum
"arm"
यह नेटिव क्लाइंट के आर्किटेक्चर को arm के तौर पर तय करता है.
"x86-32"
यह नेटिव क्लाइंट आर्किटेक्चर को x86-32 के तौर पर तय करता है.
"x86-64"
यह नेटिव क्लाइंट आर्किटेक्चर को x86-64 के तौर पर तय करता है.
"mips"
यह नेटिव क्लाइंट आर्किटेक्चर को mips के तौर पर तय करता है.
"mips64"
यह नेटिव क्लाइंट आर्किटेक्चर को mips64 के तौर पर तय करता है.
PlatformOs
यह कुकी, उस ऑपरेटिंग सिस्टम के बारे में जानकारी सेव करती है जिस पर Chrome चल रहा है.
Enum
"mac"
यह MacOS ऑपरेटिंग सिस्टम के बारे में बताता है.
"win"
यह Windows ऑपरेटिंग सिस्टम के बारे में बताता है.
"android"
Android ऑपरेटिंग सिस्टम के बारे में बताता है.
"cros"
Chrome ऑपरेटिंग सिस्टम के बारे में बताता है.
"linux"
यह Linux ऑपरेटिंग सिस्टम के बारे में बताता है.
"openbsd"
यह OpenBSD ऑपरेटिंग सिस्टम के बारे में बताता है.
Port
यह एक ऐसा ऑब्जेक्ट है जो अन्य पेजों के साथ दोनों तरह से कम्यूनिकेट करने की अनुमति देता है. ज़्यादा जानकारी के लिए, लंबे समय तक बने रहने वाले कनेक्शन देखें.
प्रॉपर्टी
-
नाम
स्ट्रिंग
पोर्ट का नाम, जैसा कि
runtime.connectको किए गए कॉल में बताया गया है. -
onDisconnect
Event<functionvoidvoid>
जब पोर्ट को दूसरे एंड से डिसकनेक्ट किया जाता है, तब यह इवेंट ट्रिगर होता है. अगर पोर्ट को किसी गड़बड़ी की वजह से डिसकनेक्ट कर दिया गया है, तो
runtime.lastErrorसेट किया जा सकता है. अगर disconnect के ज़रिए पोर्ट बंद किया जाता है, तो यह इवेंट सिर्फ़ दूसरे एंड पर ट्रिगर होता है. यह इवेंट ज़्यादा से ज़्यादा एक बार ट्रिगर होता है. पोर्ट का लाइफ़टाइम भी देखें.onDisconnect.addListenerफ़ंक्शन इस तरह दिखता है:(callback: function) => {...}
-
onMessage
Event<functionvoidvoid>
यह इवेंट तब ट्रिगर होता है, जब पोर्ट के दूसरे छोर से postMessage को कॉल किया जाता है.
onMessage.addListenerफ़ंक्शन इस तरह दिखता है:(callback: function) => {...}
-
भेजने वाला
MessageSender optional
यह प्रॉपर्टी, onConnect / onConnectExternal / onConnectNative लिसनर को पास किए गए पोर्ट पर सिर्फ़ तब मौजूद होगी, जब पोर्ट को कनेक्ट किया गया हो.
-
डिसकनेक्ट करें
अमान्य
पोर्टिंग की प्रोसेस को तुरंत बंद कर दें. पहले से डिसकनेक्ट किए गए पोर्ट पर
disconnect()को कॉल करने से कोई असर नहीं पड़ता. पोर्ट के डिसकनेक्ट होने पर, इस पोर्ट पर कोई नया इवेंट नहीं भेजा जाएगा.disconnectफ़ंक्शन इस तरह दिखता है:() => {...} -
postMessage
अमान्य
पोर्ट के दूसरे डिवाइस पर कोई मैसेज भेजें. अगर पोर्ट डिसकनेक्ट हो जाता है, तो गड़बड़ी का मैसेज दिखता है.
postMessageफ़ंक्शन इस तरह दिखता है:(message: any) => {...}
-
मैसेज
कोई
Chrome 52 या इसके बाद का वर्शनभेजा जाने वाला मैसेज. इस ऑब्जेक्ट को JSON में बदला जा सकता है.
-
RequestUpdateCheckStatus
अपडेट की जांच का नतीजा.
Enum
"throttled"
इससे पता चलता है कि स्टेटस की जांच को थ्रॉटल किया गया है. ऐसा कम समय में बार-बार जांच करने पर हो सकता है.
"no_update"
इससे पता चलता है कि इंस्टॉल करने के लिए कोई अपडेट उपलब्ध नहीं है.
"update_available"
इससे पता चलता है कि इंस्टॉल करने के लिए कोई अपडेट उपलब्ध है.
प्रॉपर्टी
id
एक्सटेंशन/ऐप्लिकेशन का आईडी.
टाइप
स्ट्रिंग
lastError
अगर एपीआई फ़ंक्शन को कॉल करने में गड़बड़ी होती है, तो इसमें गड़बड़ी का मैसेज दिखता है. ऐसा न होने पर, यह तय नहीं होता. इसे सिर्फ़ उस फ़ंक्शन के कॉलबैक के स्कोप में तय किया जाता है. अगर कोई गड़बड़ी होती है, लेकिन कॉलबैक के अंदर runtime.lastError को ऐक्सेस नहीं किया जाता है, तो कंसोल में एक मैसेज लॉग किया जाता है. इसमें गड़बड़ी करने वाले एपीआई फ़ंक्शन की सूची होती है. प्रॉमिस देने वाले एपीआई फ़ंक्शन, इस प्रॉपर्टी को सेट नहीं करते.
टाइप
ऑब्जेक्ट
प्रॉपर्टी
-
मैसेज
string ज़रूरी नहीं है
जिस गड़बड़ी का सामना करना पड़ा उसके बारे में जानकारी.
तरीके
connect()
chrome.runtime.connect(
extensionId?: string,
connectInfo?: object,
): Port
यह कुकी, किसी एक्सटेंशन (जैसे कि बैकग्राउंड पेज) या अन्य एक्सटेंशन/ऐप्लिकेशन में मौजूद लिसनर को कनेक्ट करने की कोशिश करती है. यह एक्सटेंशन की प्रोसेस से कनेक्ट होने वाली कॉन्टेंट स्क्रिप्ट, ऐप्लिकेशन/एक्सटेंशन के बीच कम्यूनिकेशन, और वेब मैसेजिंग के लिए फ़ायदेमंद है. ध्यान दें कि यह कॉन्टेंट स्क्रिप्ट में मौजूद किसी भी लिसनर से कनेक्ट नहीं होता है. एक्सटेंशन, tabs.connect के ज़रिए टैब में एम्बेड की गई कॉन्टेंट स्क्रिप्ट से कनेक्ट हो सकते हैं.
पैरामीटर
-
extensionId
string ज़रूरी नहीं है
उस एक्सटेंशन का आईडी जिससे कनेक्ट करना है. अगर इसे शामिल नहीं किया जाता है, तो आपके एक्सटेंशन से कनेक्ट करने की कोशिश की जाएगी. अगर वेब मैसेजिंग के लिए, किसी वेब पेज से मैसेज भेजे जा रहे हैं, तो यह कुकी ज़रूरी है.
-
connectInfo
ऑब्जेक्ट ज़रूरी नहीं
-
includeTlsChannelId
बूलियन ज़रूरी नहीं है
क्या टीएलएस चैनल आईडी को onConnectExternal में पास किया जाएगा. ऐसा उन प्रोसेस के लिए किया जाएगा जो कनेक्शन इवेंट को सुन रही हैं.
-
नाम
string ज़रूरी नहीं है
इसे onConnect में पास किया जाएगा. ऐसा उन प्रोसेस के लिए किया जाएगा जो कनेक्शन इवेंट को सुन रही हैं.
-
रिटर्न
-
वह पोर्ट जिसके ज़रिए मैसेज भेजे और पाए जा सकते हैं. अगर एक्सटेंशन मौजूद नहीं है, तो पोर्ट का onDisconnect इवेंट ट्रिगर होता है.
connectNative()
chrome.runtime.connectNative(
application: string,
): Port
यह होस्ट मशीन में मौजूद नेटिव ऐप्लिकेशन से कनेक्ट होता है. इस तरीके के लिए, "nativeMessaging" अनुमति ज़रूरी है. ज़्यादा जानकारी के लिए, नेटिव मैसेजिंग देखें.
पैरामीटर
-
ऐप्लिकेशन
स्ट्रिंग
कनेक्ट करने के लिए, रजिस्टर किए गए ऐप्लिकेशन का नाम.
रिटर्न
-
पोर्ट, जिसके ज़रिए ऐप्लिकेशन से मैसेज भेजे और पाए जा सकते हैं
getBackgroundPage()
chrome.runtime.getBackgroundPage(
callback?: function,
): Promise<Window | undefined>
MV3 एक्सटेंशन में बैकग्राउंड पेज नहीं होते हैं.
यह फ़ंक्शन, मौजूदा एक्सटेंशन/ऐप्लिकेशन में चल रहे बैकग्राउंड पेज के लिए JavaScript 'window' ऑब्जेक्ट को वापस लाता है. अगर बैकग्राउंड पेज कोई इवेंट पेज है, तो सिस्टम यह पक्का करेगा कि कॉलबैक को कॉल करने से पहले, उसे लोड किया गया हो. अगर कोई बैकग्राउंड पेज नहीं है, तो गड़बड़ी सेट हो जाती है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callbackपैरामीटर ऐसा दिखता है:(backgroundPage?: Window) => void
-
backgroundPage
विंडो ज़रूरी नहीं है
बैकग्राउंड पेज के लिए JavaScript 'window' ऑब्जेक्ट.
-
रिटर्न
-
Promise<Window | undefined>
Chrome 99 या इसके बाद का वर्शनप्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
getManifest()
chrome.runtime.getManifest(): object
यह फ़ंक्शन, मेनिफ़ेस्ट से ऐप्लिकेशन या एक्सटेंशन के बारे में जानकारी दिखाता है. जवाब के तौर पर मिला ऑब्जेक्ट, पूरी मेनिफ़ेस्ट फ़ाइल का सीरियलाइज़ेशन होता है.
रिटर्न
-
ऑब्जेक्ट
मेनिफ़ेस्ट की जानकारी.
getPackageDirectoryEntry()
chrome.runtime.getPackageDirectoryEntry(
callback?: function,
): Promise<DirectoryEntry>
यह पैकेज डायरेक्ट्री के लिए DirectoryEntry दिखाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callbackपैरामीटर ऐसा दिखता है:(directoryEntry: DirectoryEntry) => void
-
directoryEntry
DirectoryEntry
-
रिटर्न
-
Promise<DirectoryEntry>
Chrome 122 या इसके बाद के वर्शनप्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
getPlatformInfo()
chrome.runtime.getPlatformInfo(
callback?: function,
): Promise<PlatformInfo>
यह मौजूदा प्लैटफ़ॉर्म के बारे में जानकारी दिखाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callbackपैरामीटर ऐसा दिखता है:(platformInfo: PlatformInfo) => void
-
platformInfo
-
रिटर्न
-
Promise<PlatformInfo>
Chrome 99 या इसके बाद का वर्शनयह प्रॉमिस, मौजूदा प्लैटफ़ॉर्म के बारे में जानकारी के साथ पूरा होता है.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
getURL()
chrome.runtime.getURL(
path: string,
): string
यह फ़ंक्शन, ऐप्लिकेशन/एक्सटेंशन इंस्टॉल डायरेक्ट्री में मौजूद रिलेटिव पाथ को पूरी तरह से मान्य यूआरएल में बदलता है.
पैरामीटर
-
पाथ
स्ट्रिंग
किसी ऐप्लिकेशन/एक्सटेंशन में मौजूद संसाधन का पाथ, जिसे उसकी इंस्टॉल डायरेक्ट्री के हिसाब से दिखाया जाता है.
रिटर्न
-
स्ट्रिंग
संसाधन का पूरी तरह से मान्य यूआरएल.
getVersion()
chrome.runtime.getVersion(): string
यह फ़ंक्शन, मेनिफ़ेस्ट में बताए गए एक्सटेंशन के वर्शन को दिखाता है.
रिटर्न
-
स्ट्रिंग
एक्सटेंशन का वर्शन.
openOptionsPage()
chrome.runtime.openOptionsPage(
callback?: function,
): Promise<void>
अगर हो सके, तो अपने एक्सटेंशन का विकल्प पेज खोलें.
हालांकि, यह आपके मेनिफ़ेस्ट की options_ui या options_page कुंजी पर निर्भर करता है. इसके अलावा, यह इस बात पर भी निर्भर करता है कि Chrome उस समय किस सुविधा के साथ काम करता है. उदाहरण के लिए, पेज को नए टैब में, chrome://extensions में, किसी ऐप्लिकेशन में खोला जा सकता है. इसके अलावा, यह खुले हुए विकल्प वाले पेज पर फ़ोकस भी कर सकता है. इससे कॉलर पेज कभी भी फिर से लोड नहीं होगा.
अगर आपका एक्सटेंशन, विकल्प वाला पेज नहीं दिखाता है या Chrome किसी अन्य वजह से विकल्प वाला पेज नहीं बना सका, तो कॉलबैक lastError सेट करेगा.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callbackपैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
Promise<void>
Chrome 99 या इसके बाद का वर्शनप्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
reload()
chrome.runtime.reload(): void
इससे ऐप्लिकेशन या एक्सटेंशन फिर से लोड होता है. यह तरीका, किऑस्क मोड में काम नहीं करता. कीऑस्क मोड के लिए, chrome.runtime.restart() तरीके का इस्तेमाल करें.
requestUpdateCheck()
chrome.runtime.requestUpdateCheck(
callback?: function,
): Promise<object>
इस ऐप्लिकेशन/एक्सटेंशन के लिए, तुरंत अपडेट की जांच करने का अनुरोध करता है.
अहम जानकारी: ज़्यादातर एक्सटेंशन/ऐप्लिकेशन को इस तरीके का इस्तेमाल नहीं करना चाहिए. ऐसा इसलिए, क्योंकि Chrome हर कुछ घंटों में अपने-आप जांच करता है. साथ ही, requestUpdateCheck को कॉल किए बिना, runtime.onUpdateAvailable इवेंट को सुना जा सकता है.
इस तरीके का इस्तेमाल सिर्फ़ कुछ खास मामलों में किया जाना चाहिए. जैसे, अगर आपका एक्सटेंशन किसी बैकएंड सेवा से कम्यूनिकेट करता है और बैकएंड सेवा ने यह तय किया है कि क्लाइंट एक्सटेंशन का वर्शन बहुत पुराना है और आपको किसी उपयोगकर्ता को अपडेट करने के लिए सूचना देनी है. requestUpdateCheck का इस्तेमाल, कई अन्य तरीकों से भी किया जा सकता है. जैसे, बार-बार चलने वाले टाइमर के आधार पर बिना शर्त इसे कॉल करना. हालांकि, इससे क्लाइंट, नेटवर्क, और सर्वर के संसाधनों की बर्बादी होती है.
ध्यान दें: कॉलबैक के साथ कॉल किए जाने पर, यह फ़ंक्शन ऑब्जेक्ट को वापस भेजने के बजाय, कॉलबैक को पास किए गए अलग-अलग आर्ग्युमेंट के तौर पर दो प्रॉपर्टी वापस भेजेगा.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callbackपैरामीटर ऐसा दिखता है:(result: object) => void
-
नतीजा
ऑब्जेक्ट
Chrome 109 और इसके बाद के वर्शनRequestUpdateCheckResult ऑब्जेक्ट, अपडेट की जांच की स्थिति और अपडेट उपलब्ध होने पर नतीजे की कोई भी जानकारी सेव करता है
-
स्थिति
अपडेट की जांच का नतीजा.
-
वर्शन
string ज़रूरी नहीं है
अगर कोई अपडेट उपलब्ध है, तो इसमें उपलब्ध अपडेट का वर्शन होता है.
-
-
रिटर्न
-
Promise<object>
Chrome 109 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
restart()
chrome.runtime.restart(): void
ऐप्लिकेशन के कीऑस्क मोड में चलने पर, ChromeOS डिवाइस को रीस्टार्ट करें. ऐसा न होने पर, कोई कार्रवाई नहीं की जाएगी.
restartAfterDelay()
chrome.runtime.restartAfterDelay(
seconds: number,
callback?: function,
): Promise<void>
इस विकल्प से यह तय होता है कि कीऑस्क मोड में ऐप्लिकेशन चलने के बाद, ChromeOS डिवाइस को कितने सेकंड बाद रीस्टार्ट किया जाएगा. अगर इस समय से पहले इसे फिर से कॉल किया जाता है, तो रीबूट होने में देरी होगी. अगर इसे -1 वैल्यू के साथ कॉल किया जाता है, तो रीबूट करने की प्रोसेस रद्द हो जाएगी. यह नॉन-कीऑस्क मोड में काम नहीं करता. इस एपीआई को बार-बार कॉल करने की अनुमति सिर्फ़ उस एक्सटेंशन को होती है जिसने इसे पहली बार शुरू किया था.
पैरामीटर
-
सेकंड
संख्या
डिवाइस को रीबूट करने से पहले इंतज़ार करने का समय, सेकंड में. अगर रीबूट करने का शेड्यूल रद्द करना है, तो -1 डालें.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callbackपैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
Promise<void>
Chrome 99 या इसके बाद का वर्शनयह प्रॉमिस तब रिज़ॉल्व होता है, जब रीस्टार्ट करने के अनुरोध को फिर से शेड्यूल कर दिया जाता है.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
sendMessage()
chrome.runtime.sendMessage(
extensionId?: string,
message: any,
options?: object,
callback?: function,
): Promise<any>
यह आपके एक्सटेंशन या किसी अन्य एक्सटेंशन/ऐप्लिकेशन में मौजूद इवेंट लिसनर को एक मैसेज भेजता है. यह runtime.connect की तरह ही होता है, लेकिन यह सिर्फ़ एक मैसेज भेजता है. इसमें जवाब देना ज़रूरी नहीं होता. अगर मैसेज को एक्सटेंशन पर भेजा जा रहा है, तो runtime.onMessage इवेंट, एक्सटेंशन के हर फ़्रेम में ट्रिगर होगा. हालांकि, यह इवेंट भेजने वाले के फ़्रेम में ट्रिगर नहीं होगा. अगर मैसेज को किसी दूसरे एक्सटेंशन पर भेजा जा रहा है, तो runtime.onMessageExternal इवेंट ट्रिगर होगा. ध्यान दें कि एक्सटेंशन, इस तरीके का इस्तेमाल करके कॉन्टेंट स्क्रिप्ट को मैसेज नहीं भेज सकते. कॉन्टेंट स्क्रिप्ट को मैसेज भेजने के लिए, tabs.sendMessage का इस्तेमाल करें.
पैरामीटर
-
extensionId
string ज़रूरी नहीं है
उस एक्सटेंशन का आईडी जिस पर मैसेज भेजना है. अगर इसे शामिल नहीं किया जाता है, तो मैसेज आपके एक्सटेंशन/ऐप्लिकेशन को भेजा जाएगा. अगर वेब मैसेजिंग के लिए, किसी वेब पेज से मैसेज भेजे जा रहे हैं, तो यह पैरामीटर ज़रूरी है.
-
मैसेज
कोई
भेजा जाने वाला मैसेज. यह मैसेज, JSON ऑब्जेक्ट होना चाहिए.
-
विकल्प
ऑब्जेक्ट ज़रूरी नहीं
-
includeTlsChannelId
बूलियन ज़रूरी नहीं है
क्या टीएलएस चैनल आईडी को onMessageExternal में पास किया जाएगा. ऐसा उन प्रोसेस के लिए किया जाएगा जो कनेक्शन इवेंट को सुन रही हैं.
-
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
Chrome 99 या इसके बाद का वर्शनcallbackपैरामीटर ऐसा दिखता है:(response: any) => void
-
जवाब
कोई
मैसेज के हैंडलर से भेजा गया JSON रिस्पॉन्स ऑब्जेक्ट. अगर एक्सटेंशन से कनेक्ट करते समय कोई गड़बड़ी होती है, तो कॉलबैक को बिना किसी आर्ग्युमेंट के कॉल किया जाएगा. साथ ही,
runtime.lastErrorको गड़बड़ी के मैसेज पर सेट किया जाएगा.
-
रिटर्न
-
Promise<any>
Chrome 99 या इसके बाद का वर्शनChrome 99 में, एक्सटेंशन के कॉन्टेक्स्ट के लिए Promise की सुविधा जोड़ी गई थी. किसी वेब पेज से एक्सटेंशन को कम्यूनिकेट करते समय, Chrome 118 से प्रॉमिस उपलब्ध हैं.
प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
callback?: function,
): Promise<any>
किसी नेटिव ऐप्लिकेशन को एक मैसेज भेजें. इस तरीके के लिए, "nativeMessaging" अनुमति ज़रूरी है.
पैरामीटर
-
ऐप्लिकेशन
स्ट्रिंग
नेटिव मैसेजिंग होस्ट का नाम या टारगेट की जानकारी.
-
मैसेज
ऑब्जेक्ट
यह वह मैसेज है जिसे नेटिव मैसेजिंग होस्ट को भेजा जाएगा.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
Chrome 99 या इसके बाद का वर्शनcallbackपैरामीटर ऐसा दिखता है:(response: any) => void
-
जवाब
कोई
नेटिव मैसेजिंग होस्ट से भेजा गया जवाब. अगर नेटिव मैसेजिंग होस्ट से कनेक्ट करते समय कोई गड़बड़ी होती है, तो कॉलबैक को बिना किसी आर्ग्युमेंट के कॉल किया जाएगा. साथ ही,
runtime.lastErrorको गड़बड़ी के मैसेज पर सेट किया जाएगा.
-
रिटर्न
-
Promise<any>
Chrome 99 या इसके बाद का वर्शनप्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
setUninstallURL()
chrome.runtime.setUninstallURL(
url: string,
callback?: function,
): Promise<void>
इस कुकी का इस्तेमाल, अनइंस्टॉल करने के बाद विज़िट किए जाने वाले यूआरएल को सेट करने के लिए किया जाता है. इसका इस्तेमाल, सर्वर-साइड डेटा को साफ़ करने, आंकड़ों का विश्लेषण करने, और सर्वे लागू करने के लिए किया जा सकता है. ज़्यादा से ज़्यादा 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 के ज़रिए) से कनेक्शन बनाया जाता है.
onConnectExternal
chrome.runtime.onConnectExternal.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब किसी दूसरे एक्सटेंशन (runtime.connect के ज़रिए) या बाहरी तौर पर कनेक्ट की जा सकने वाली वेबसाइट से कनेक्शन बनाया जाता है.
onConnectNative
chrome.runtime.onConnectNative.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब किसी नेटिव ऐप्लिकेशन से कनेक्शन बनाया जाता है. इस इवेंट के लिए, "nativeMessaging" अनुमति ज़रूरी है. यह सुविधा सिर्फ़ Chrome OS पर काम करती है.
onEnabled
chrome.runtime.onEnabled.addListener(
callback: function,
)
इस इवेंट को तब ट्रिगर किया जाता है, जब कोई एक्सटेंशन बंद से चालू स्थिति में बदलता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:() => void
onInstalled
chrome.runtime.onInstalled.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब एक्सटेंशन पहली बार इंस्टॉल किया जाता है, जब एक्सटेंशन को नए वर्शन में अपडेट किया जाता है, और जब Chrome को नए वर्शन में अपडेट किया जाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(details: object) => void
-
विवरण
ऑब्जेक्ट
-
आईडी
string ज़रूरी नहीं है
इससे, इंपोर्ट किए गए शेयर किए गए मॉड्यूल एक्सटेंशन का आईडी पता चलता है. यह सिर्फ़ तब मौजूद होता है, जब 'reason' की वैल्यू 'shared_module_update' हो.
-
previousVersion
string ज़रूरी नहीं है
यह एक्सटेंशन के उस पिछले वर्शन को दिखाता है जिसे अभी-अभी अपडेट किया गया है. यह सिर्फ़ तब मौजूद होता है, जब 'reason' की वैल्यू 'update' हो.
-
इस इवेंट को भेजने की वजह.
-
-
onMessage
chrome.runtime.onMessage.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब runtime.sendMessage या tabs.sendMessage से कोई मैसेज भेजा जाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined
-
मैसेज
कोई
-
भेजने वाला
-
sendResponse
फ़ंक्शन
sendResponseपैरामीटर ऐसा दिखता है:(response?: any) => void
-
जवाब
कोई भी ज़रूरी नहीं
मैसेज भेजने वाले को वापस भेजने के लिए जवाब.
-
-
returns
boolean | Promise<any> | undefined
-
onMessageExternal
chrome.runtime.onMessageExternal.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब किसी दूसरे एक्सटेंशन से मैसेज भेजा जाता है (runtime.sendMessage के ज़रिए). इसका इस्तेमाल कॉन्टेंट स्क्रिप्ट में नहीं किया जा सकता.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined
-
मैसेज
कोई
-
भेजने वाला
-
sendResponse
फ़ंक्शन
sendResponseपैरामीटर ऐसा दिखता है:(response?: any) => void
-
जवाब
कोई भी ज़रूरी नहीं
मैसेज भेजने वाले को वापस भेजने के लिए जवाब.
-
-
returns
boolean | Promise<any> | undefined
-
onRestartRequired
chrome.runtime.onRestartRequired.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब किसी ऐप्लिकेशन या उसे चलाने वाले डिवाइस को फिर से चालू करने की ज़रूरत होती है. ऐप्लिकेशन को अपनी सभी विंडो बंद कर देनी चाहिए, ताकि उसे रीस्टार्ट किया जा सके. अगर ऐप्लिकेशन कुछ नहीं करता है, तो 24 घंटे का ग्रेस पीरियड खत्म होने के बाद, उसे रीस्टार्ट कर दिया जाएगा. फ़िलहाल, यह इवेंट सिर्फ़ ChromeOS कीऑस्क ऐप्लिकेशन के लिए ट्रिगर होता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(reason: OnRestartRequiredReason) => void
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
-
विवरण
ऑब्जेक्ट
-
वर्शन
स्ट्रिंग
उपलब्ध अपडेट का वर्शन नंबर.
-
-