2011-04-17 3 views
8

मैं अपने एप्लेट में Network Security Services for Java (JSS) by Mozilla का उपयोग कर रहा हूं ताकि मेरे (हस्ताक्षरित) जावा ऐप्पल और मोज़िला फ़ायरफ़ॉक्स के बीच कुछ निम्न-स्तर की बातचीत की अनुमति मिल सके।मेरे एप्लेट के भीतर से वर्तमान फ़ायरफ़ॉक्स प्रोफ़ाइल पथ कैसे प्राप्त करें?

मुझे पहली समस्या का सामना करना पड़ रहा है कि वर्तमान फ़ायरफ़ॉक्स प्रोफाइल पथ कैसे ढूंढें। मुझे इसकी आवश्यकता है क्योंकि मुझे CryptoManager की initialize(String configDir) विधि को कॉल करना है, और तथाकथित configDir को फ़ायरफ़ॉक्स प्रोफ़ाइल की निर्देशिका होना है।

मैं वर्तमान फ़ायरफ़ॉक्स प्रोफाइल का पूरा पथ कैसे प्राप्त कर सकता हूं? क्या कोई साफ तरीका है या मुझे {$ APPDATA}/फ़ायरफ़ॉक्स में profiles.ini पढ़ना है, इसे पार्स करें और फिर एक यादृच्छिक प्रोफ़ाइल चुनें (उम्मीद है कि यह केवल एक है, या मुझे जो मिल रहा है वह सही है)?

अग्रिम धन्यवाद

+0

यह वास्तव में profiles.ini पढ़ने के बिना फ़ायरफ़ॉक्स शुरू करने के लिए है, ताकि विश्वसनीय नहीं है संभव है। मुझे पता है कि एकमात्र विश्वसनीय तरीका XPCOM निर्देशिका सेवा शामिल है, लेकिन मुझे नहीं पता कि आपके पास इसका उपयोग है या नहीं। – Neil

+0

मेरे पास जावा प्रोग्राम तक पहुंचने वाली सभी चीज़ों तक पहुंच है, यहां तक ​​कि जेएनआई भी। (यह एक हस्ताक्षरित एप्लेट है) – gd1

+0

तो क्या आप एक जेएनआई कक्षा लिख ​​सकते हैं जो एक एक्सपीकॉम बाइनरी एक्सटेंशन भी है? – Neil

उत्तर

5

जावास्क्रिप्ट में आप प्रोफाइल और निष्पादन निर्देशिका प्राप्त कर सकते हैं:

netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); 

var profile = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path 

var CurProcD = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("CurProcD", Components.interfaces.nsIFile).path 
+0

मैं इसे – gd1

+0

परफेक्ट देख सकता हूं, लेकिन मैं प्रोफाइल को एप्लेट के पैरामीटर के रूप में कैसे पास कर सकता हूं? –

+0

अब, मैं इस वाक्य को जावा ऐप्पल 'कंपोनेंट्स.क्लास ["@ mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces से कैसे कॉल कर सकता हूं .nsIFile) .path' –

1

में आप खंड 1.3.2 यहाँ पर देख रहे हैं की कोशिश कर सकते:

http://kb.mozillazine.org/Profile_folder_-_Firefox#Using_the_JavaScript_or_Error_Console

आशा है कि मदद करता है।

+1

चालें फ़ायरफ़ॉक्स कंसोल के भीतर से काम करती हैं, लेकिन मानक जावास्क्रिप्ट के रूप में नहीं (यह सुरक्षा समस्याओं को उत्पन्न करेगी)। मैं अपने एप्लेट में किसी तरह से इसे कैसे नियोजित कर सकता हूं? – gd1

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