Chrome और Firefox के बीच प्रॉक्सी एक्सटेंशन पोर्ट करना
Firefox और Chrome एक जैसे नाम वाले एक्सटेंशन API देते हैं, पर उनके कॉन्फ़िगरेशन मॉडल अलग हैं। सिर्फ़ namespace नहीं, रूटिंग नीति पोर्ट करें।
chrome का नाम browser करना किसी प्रॉक्सी एक्सटेंशन का पूरा पोर्ट नहीं है।
Chrome का फ़िक्स्ड-सर्वर कॉन्फ़िगरेशन mode और rules ऑब्जेक्ट इस्तेमाल करता है। Firefox अपना वैश्विक प्रॉक्सी सेटिंग्स इंटरफ़ेस और हर अनुरोध के लिए proxy.onRequest API देता है। मिलते-जुलते नाम उनके इनपुट ऑब्जेक्ट को एक-दूसरे के बदले इस्तेमाल करने योग्य नहीं बनाते।
उस नीति से शुरू करें जो आप व्यक्त करना चाहते हैं: एक स्थिर एंडपॉइंट, एक PAC कॉन्फ़िगरेशन, या हर अनुरोध के लिए अलग से चुना गया रूट। फिर हर ब्राउज़र के लिए दस्तावेज़ित इंटरफ़ेस इस्तेमाल करें।
Firefox का प्रति-अनुरोध श्रोता एक्सटेंशन कोड से प्रॉक्सी जानकारी लौटा सकता है। इसके लिए प्रॉक्सी अनुमति और रोके गए अनुरोधों के लिए उपयुक्त host एक्सेस चाहिए। यह Chrome के फ़िक्स्ड-सर्वर सेटिंग्स ऑब्जेक्ट को कॉपी करके यह आशा करने से अलग डिज़ाइन है कि ब्राउज़र हर फ़ील्ड पहचान लेगा।
समर्थित Firefox संस्करण और manifest आवश्यकताएँ भी जाँचें। proxy.register() इस्तेमाल करने वाले पुराने उदाहरण पहले की API बताते हैं और किसी मौजूदा एक्सटेंशन का आधार नहीं होने चाहिए।
साझा नीति डेटा को ब्राउज़र-विशिष्ट अनुकूलन से अलग रखें। परीक्षणों और निदान में हर ब्राउज़र में किसी गंतव्य के लिए चुना गया रूट दिखना चाहिए, जिसमें जान-बूझकर किया गया सीधा परिणाम भी शामिल हो। वैध manifest और बिना त्रुटि वाला API कॉल केवल शुरुआत है।