2011-12-03 8 views
6

मैंने कभी भी वास्तविक क्रोम एक्सटेंशन कभी नहीं लिखा है। मैंने ऐसा किया जो कुछ समय पहले लिंक की एक ड्रॉपडाउन सूची थी, लेकिन यह वास्तव में गिनती नहीं है। वैसे भी, गोताखोर सिर के बजाय क्रोम एक्सटेंशन लिखने पर ट्यूटोरियल्स के विशाल संग्रह में वापस आ गया, मुझे लगा कि मैं यह सुनिश्चित कर दूंगा कि मेरा विचार पहले संभव था।क्रोम एक्सटेंशन को Chrome की सिस्टम निर्देशिका में फ़ाइल में लिखना संभव है?

मेरी योजना यह है: मैं वर्तमान में पेंडोरा के खिलाड़ी में ट्रैक खेलना चाहता हूं, और ट्रैक जानकारी को ब्राउज़र के बाहर एक स्रोत (मेरे मामले में, एक पायथन लिपि) भेजना चाहता हूं।

जानकारी प्राप्त करना स्वयं को मुश्किल नहीं होना चाहिए; उनका नया एचटीएमएल 5 इंटरफ़ेस उस भाग को सुपर सरल बनाता है। एक बार जब मैं इसे प्राप्त कर लेता हूं तो समस्या उस जानकारी को संप्रेषित कर रही है। मैं डेटा को वेब सर्वर पर अपलोड करने से बचना चाहता हूं और पाइथन इसे वहां से खींचता हूं।

जाहिर है, क्रोम एक्सटेंशन के लिए डीबीयूएस संदेश या कुछ भी भेजने के लिए बहुत आसान नहीं होगा, लेकिन क्या क्रोम की सिस्टम निर्देशिका में कहीं भी फ़ाइल लिखना संभव है, और क्या पाइथन इसे उठा सकता है? क्या मैं इस तरह के एक प्रश्न पूछने में पूरी तरह हास्यास्पद हूं?

संपादित करें: मैंने सोचा कि मैं क्या मैं वास्तव में किसी को भी भविष्य में इस सवाल से होता है के लिए कर समाप्त हो गया पर वापस रिपोर्ट चाहते हैं। चूंकि मुझे केवल एक ही कंप्यूटर (मेरा) पर काम करने के लिए इस एक्सटेंशन की आवश्यकता है, इसलिए मैंने अपाचे के लिए mod_python स्थापित किया था और मेरा एक्सटेंशन स्थानीय डेटा पर प्रतीक्षा कर मेरी पाइथन लिपि पर सीधे डेटा भेजता था। इसका पाइथन से यूआरएल या फाइल को मतदान करने की आवश्यकता नहीं है, क्योंकि मैंने मूल रूप से माना था कि मुझे इसकी आवश्यकता होगी। यह एनपीएपीआई से जुड़े संभावित सुरक्षा जोखिमों को शुरू करने से भी बचाता है।

उत्तर

3

ऐसा करने का एकमात्र तरीका है, जिसे मैं सोच सकता हूं, NPAPI extension के साथ होगा। एनपीएपीआई आपको अपने एक्सटेंशन के साथ मूल बाइनरी शामिल करने देता है जिससे आपकी प्लगइन इसके साथ संवाद करने में सक्षम हो। आप उस बाइनरी में बहुत कुछ भी पसंद कर सकते हैं।

NPAPI एक बहुत बड़ा हथौड़ा है कि केवल जब कोई अन्य दृष्टिकोण काम करेंगे इस्तेमाल किया जाना चाहिए है:

हालांकि, पृष्ठ पर चेतावनी मैं ऊपर से जुड़ा हुआ ध्यान।

कोड एक NPAPI प्लग इन में चल रहे वर्तमान उपयोगकर्ता से भरा अनुमतियों और सैंडबॉक्स या किसी भी तरह से गूगल क्रोम से दुर्भावनापूर्ण इनपुट से परिरक्षित नहीं है। अविश्वसनीय स्रोतों से इनपुट प्रोसेस करते समय आपको विशेष रूप से सावधान रहना चाहिए, जैसे सामग्री स्क्रिप्ट या XMLHttpRequest के साथ काम करते समय।

अतिरिक्त सुरक्षा की वजह से

NPAPI उपयोगकर्ताओं, एक्सटेंशन का उपयोग करने वाले यह Chrome वेब स्टोर में स्वीकार किए जाने से पहले मैन्युअल समीक्षा की आवश्यकता होगी करने के लिए बन गया है जोखिम।

0

यह एक पुरानी सवाल है, लेकिन यहाँ एक और विकल्प है:

आप अपना एक्सटेंशन से localStorage को लिखते हैं, यदि आप Chrome की स्थानीय संग्रह निर्देशिका है, जहां हर साइट तथा एक्सटेंशन आसानी से अपने स्वयं के फ़ाइल दिया जाता है पहुँच सकते हैं। लिनक्स में, निर्देशिका ~/.config/google-chrome/Default/Local Storage में स्थित है, और विंडोज़ में यह %LocalAppData%\Google\Chrome\User Data\Default\Local Storage पर है। मेरे पास जांच करने के लिए मैक नहीं है, लेकिन इसे खोजना मुश्किल नहीं होना चाहिए।

डेटा स्टोर करता है जो SQLite के अंदर JSON होने के लिए एक नज़र में दिखता है। मैंने व्यक्तिगत रूप से कुछ उपयोगी बनाने की कोशिश नहीं की है, लेकिन जानकारी वहां सब कुछ है। मैंने अभी एक त्वरित परीक्षण किया है, और जैसे ही आप localStorage पर लिखते हैं, फ़ाइल को अपडेट किया जा रहा है, ताकि आप उस पर एक फाइल सिस्टम वॉचर डाल सकें और जब भी यह बदल जाए तो अधिसूचना प्राप्त कर सके।

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