2010-10-22 24 views
5

तो मैं एफएफ 4 और गीको 2 के साथ उपयोग के लिए पुराने एक्सटेंशन अपडेट करने पर काम कर रहा हूं लेकिन मुझे कुछ समस्याएं हैं जहां मुझे एक त्रुटि मिल रही है जो क्लास आईडी गुम या घटक के लिए गलत है ....फ़ायरफ़ॉक्स एक्सटेंशन डेवलपमेंट फ़ायरफ़ॉक्स 4

क्या किसी और के पास ऐसा ही कोई मुद्दा था या इस बारे में पता होना चाहिए कि इस बारे में कैसे जाना है?

function jsshellClient() { 
    this.classDescription = "sdConnector JavaScript Shell Service"; 
    this.classID = Components.ID("{54f7f162-35d9-524d-9021-965a3ba86366}"); 
    this.contractID = "@activestate.com/SDService?type=jsshell;1" 
    this._xpcom_categories = [{category: "sd-service", entry: "jsshell"}]; 
    this.name = "jsshell"; 
    this.prefs = Components.classes["@mozilla.org/preferences-service;1"] 
     .getService(Components.interfaces.nsIPrefService) 
     .getBranch("sdconnector.jsshell."); 
    this.enabled = this.prefs.getBoolPref("enabled"); 
    this.port = this.prefs.getIntPref("port"); 
    this.loopbackOnly = this.prefs.getBoolPref("loopbackOnly"); 
    this.backlog = this.prefs.getIntPref("backlog"); 
} 
jsshellClient.prototype = new session(); 
jsshellClient.prototype.constructor = jsshellClient; 

जब इस के लिए प्रोटोटाइप पर generateNSGetFactory बुला यह FF4 करने में त्रुटि कंसोल CLASSID के बारे में शिकायत करने में कोई त्रुटि देता है। मुझे पूरा यकीन है कि एक और GUID का उपयोग नहीं कर रहा है इसलिए मुझे समस्या दिखाई नहीं दे रही है।

+1

कोड क्यों पोस्ट करें जो त्रुटि का कारण बनता है? –

उत्तर

2

Fx4 में जेएस XPCOM घटकों में एक महत्वपूर्ण परिवर्तन यह है कि अब उन्हें chrome.manifest में पंजीकृत होना आवश्यक है, documentation on the changes का यह पृष्ठ देखें।

+0

मुझे पता है कि। मैंने chrome.manifest फ़ाइल में पंजीकृत किया है समस्या यह है कि जब मैं NSGetFactory बनाने की कोशिश करता हूं। –

+0

var NSGetFactory = XPCOMUtils.generateNSGetFactory ([jsshellclient]); इस फैक्ट्री को बनाने की कोशिश करता है और यह सीआईडी ​​गलत होने की शिकायत करता है। –

+0

और आपने chrome.manifest में आवश्यक परिवर्तन किए हैं? और आप सुनिश्चित हैं कि उन परिवर्तनों को सही तरीके से किया गया है? यदि नहीं तो क्या आप कृपया अपने chrome.manifest पोस्ट कर सकते हैं? – erikvold

0

विशेष XPCOMUtils द्वारा प्रयोग किया जाता गुण, CLASSID, contractID, और इतने पर जैसे, Class.prototype पर, निर्माता समारोह में नहीं, परिभाषित किया जाना है के रूप में आप ने क्या किया: https://developer.mozilla.org/en/XPCOMUtils.jsm#Class_declaration

अन्य प्रश्न के लिए के रूप में, आपने एक टिप्पणी में पोस्ट किया है, कृपया इसे आवश्यक कोड के साथ, यदि यह अभी भी प्रासंगिक है, तो इसे एक अलग प्रश्न में पोस्ट करें।

संबंधित मुद्दे