google-chrome-extension
पोर्टिंग / से फ़ायरफ़ॉक्स
खोज…
टिप्पणियों
यदि आप 48 से पहले एक फ़ायरफ़ॉक्स संस्करण का उपयोग कर रहे हैं, तो आपको
manifest.json
में एक अतिरिक्त कुंजी की आवश्यकता होगी। आवेदन कहा जाता है:
"applications": {
"gecko": {
"id": "[email protected]",
"strict_min_version": "42.0",
"strict_max_version": "50.*",
"update_url": "https://example.com/updates.json"
}
}
ध्यान दें:
फ़ायरफ़ॉक्स 48 की रिलीज़ के साथ, एक्सटेंशन साइनिंग को रिलीज़ में अक्षम नहीं किया जा सकता है और बीटा चैनल एक वरीयता का उपयोग करके बनाता है। जैसा कि विस्तार पर हस्ताक्षर किए जाने की घोषणा की गई थी, हम विशिष्ट बिल्ड प्रकाशित कर रहे हैं जो इस प्राथमिकता का समर्थन करते हैं ताकि डेवलपर्स कोड के खिलाफ परीक्षण करना जारी रख सकें कि बीटा और रिलीज़ बिल्ड से उत्पन्न होते हैं।
WebExtensions
स्थिति:
WebExtensions वर्तमान में एक प्रयोगात्मक अल्फा राज्य में हैं। फ़ायरफ़ॉक्स 46 से, आप किसी भी अन्य ऐड-ऑन की तरह फ़ायरफ़ॉक्स उपयोगकर्ताओं के लिए वेबटेक्शन्स प्रकाशित कर सकते हैं। हम फ़ायरफ़ॉक्स 48 में पहली स्थिर रिलीज़ के लिए लक्ष्य कर रहे हैं।
UPD : फ़ायरफ़ॉक्स 48 02.08.2016 को जारी किया गया।
लिंक:
एपीआई समर्थन की स्थिति - एपीआई की सूची और उनकी स्थिति।
WebExtensions - जावास्क्रिप्ट एपीआई, मैनिफ़ेस्ट की कुंजी। Json , ट्यूटोरियल, आदि।
WebExtensions के माध्यम से पोर्टिंग
फ़ायरफ़ॉक्स एक्सटेंशन को / से पोर्ट करने के बारे में बात करने से पहले, किसी को पता होना चाहिए कि WebExtensions
क्या है।
WebExtensions
- एक प्लेटफ़ॉर्म है जो फ़ायरफ़ॉक्स एक्सटेंशन बनाने के लिए एक एपीआई का प्रतिनिधित्व करता है।
यह क्रोमियम के रूप में विस्तार की समान वास्तुकला का उपयोग करता है, परिणामस्वरूप, यह एपीआई Google क्रोम और ओपेरा (ओपेरा जो क्रोमियम पर आधारित है) में एपीआई के साथ कई मायनों में संगत है। कई मामलों में, इन ब्राउज़रों के लिए विकसित किए गए एक्सटेंशन फ़ायरफ़ॉक्स में कुछ परिवर्तनों के साथ या उनके बिना भी काम करेंगे।
MDN नए एक्सटेंशन के लिए WebExtension
का उपयोग करने की सिफारिश करता है:
भविष्य में, WebExtensions फ़ायरफ़ॉक्स ऐड-ऑन को विकसित करने के लिए अनुशंसित तरीका होगा, और अन्य सिस्टम को हटा दिया जाएगा।
पूर्वगामी को देखते हुए, यदि आप फ़ायरफ़ॉक्स में एक्सटेंशन पोर्ट करना चाहते हैं, तो आपको यह जानना होगा कि एक्सटेंशन कैसे लिखा गया था।
Firefox के लिए एक्सटेंशन के आधार पर किया जा सकता है WebExtension
, Add-on SDK
या XUL
।
वेबटेक्स्टेंशन पर आधारित संगत एक्सटेंशन
WebExtension
का उपयोग करते WebExtension
, किसी को असंगतताओं की सूची को देखना होगा, क्योंकि कुछ कार्यों को पूरी तरह या आंशिक रूप से समर्थित किया जाता है, जो कि दूसरे शब्दों में है, किसी को किसी के manifest.json
की जाँच करनी चाहिए।
यह समान नामस्थान का उपयोग करने में भी सक्षम है:
इस समय, सभी एपीआई क्रोम के माध्यम से सुलभ हैं। * नाम स्थान। जब हम अपने स्वयं के एपीआई को जोड़ना शुरू करते हैं, तो हम उन्हें ब्राउज़र में जोड़ने की उम्मीद करते हैं। * नाम स्थान। डेवलपर्स यह निर्धारित करने के लिए सुविधा का उपयोग करने में सक्षम होंगे कि ब्राउज़र में एपीआई उपलब्ध है या नहीं। *
एक साधारण एक्सटेंशन जो फ़ायरफ़ॉक्स और Google क्रोम में काम कर सकता है
manifest.json
:
{
"manifest_version": 2,
"name": "StackMirror",
"version": "1.0",
"description": "Mirror reflection of StackOverflow sites",
"icons": {
"48": "icon/myIcon-48.png"
},
"page_action": {
"default_icon": "icon/myIcon-48.png"
},
"background": {
"scripts" : ["js/background/script.js"],
"persistent": false
},
"permissions": ["tabs", "*://*.stackoverflow.com/*"]
}
background
स्क्रिप्ट:
function startScript(tabId, changeInfo, tab) {
if (tab.url.indexOf("stackoverflow.com") > -1) {
chrome.tabs.executeScript(tabId,
{code: 'document.body.style.transform = "scaleX(-1)";'}, function () {
if (!chrome.runtime.lastError) {
chrome.pageAction.show(tabId);
}
});
}
}
chrome.tabs.onUpdated.addListener(startScript);
प्रोजेक्ट प्रोजेक्ट को मानक zip
फ़ाइल के रूप में, लेकिन .xpi
एक्सटेंशन के साथ।
फिर, आपको फ़ायरफ़ॉक्स में एक्सटेंशन लोड करना होगा।
इसके about:addons
खोलें about:addons
मेनू> एड-ऑन के माध्यम से एडऑन पृष्ठ, सुलभ।
सभी ऐड-ऑन बटन के टूल पर क्लिक करें।
जब एक्सटेंशन पृष्ठ लोड किया जाता है, तो about:addons
इस तरह दिखाई देगा:
Google Chrome में एक्सटेंशन लोड करने की दिशा अन्य विषय में है - Chrome एक्सटेंशन के साथ आरंभ करना ।
एक्सटेंशन ऑपरेशन का परिणाम दोनों ब्राउज़रों ( फ़ायरफ़ॉक्स / गूगल क्रोम ) में समान होगा:
यदि वर्तमान ऐड-ऑन एसडीके या एक्सयूएल पर आधारित है
जब पोर्ट किए जा रहे विस्तार Add-on SDK
पर आधारित होते हैं, तो Add-on SDK
=> WebExtensions
लिए तुलना तालिका के माध्यम से देखना WebExtensions
, क्योंकि इन तकनीकों में समान विशेषताएं हैं, लेकिन कार्यान्वयन में भिन्न हैं। तालिका का प्रत्येक खंड WebExtension
लिए Add-on SDK
के बराबर का वर्णन करता है।
एक समान दृष्टिकोण और एक्सयूएल एक्सटेंशन के लिए।
XUL / XPCOM एक्सटेंशन के साथ तुलना