2015-06-07 7 views
5

मैं एक विस्तार मेरी पृष्ठभूमि पेज में कोड की इस पंक्ति का उपयोग कर गूगल क्रोम में किए गए डाउनलोड को दूर करने के लिए है:गुप्त मोड में chrome.browsingData.remove() का उपयोग

chrome.browsingData.remove({ "since": 0 }, { "downloads": true }); 

जब एक डाउनलोड सामान्य विंडो में है यह तब काम करता है जब एक गुप्त क्रोम विंडो में डाउनलोड किया गया है, इसे हटाया नहीं गया है। मेरे एक्सटेंशन को गुप्त मोड में सक्रिय है और पृष्ठभूमि पृष्ठ जब गुप्त पेज में एक डाउनलोड का उपयोग कर पूरा हो चुका है पता लगाने में सक्षम है:

chrome.downloads.onChanged.addListener(function(download) { 
    if (download.state && download.state.current == "complete") { 
     // The code here is fired even if the download has been completed in incognito mode 
    } 
} 

वहाँ है एक तरह से एक पृष्ठभूमि पेज से गुप्त विंडो में ब्राउज़िंग डेटा को हटाने के लिए ?

+1

यह आपके एक्सटेंशन के लिए ['spanning' या 'split' गुप्त मोड] (https://developer.chrome.com/extensions/manifest/incognito) का उपयोग कर रहा है या नहीं। मुझे लगता है कि अगर आप 'स्पैनिंग' मोड का उपयोग कर रहे थे, तो गुप्त मोड में प्राप्त एक डाउनलोड घटना को आग लगा देगा, लेकिन डाउनलोड को साफ़ करने के लिए कॉल मुख्य क्रोम प्रोफाइल में आग लगती है - वे अलग-अलग एपीआई हैं। यदि आप पहले से नहीं हैं तो 'विभाजन' मोड आज़माएं! –

+0

इसके बजाय ['chrome.downloads.erase'] (https://developer.chrome.com/extensions/downloads#method-erase) का उपयोग करने का प्रयास करें। केवल एक एपीआई पर निर्भरता होने का मतलब है कि कुछ घटने पर कम परिवर्तन होता है! –

+0

@ जिमओ'ब्रायन आप अपनी पहली टिप्पणी को एक उत्तर में बदल सकते हैं, यह इस समस्या के लिए एकदम सही समाधान और स्पष्टीकरण है! –

उत्तर

4

आपको जिस समस्या का सामना करना पड़ रहा है वह यह है कि आपका एक्सटेंशन spanning incognito mode में चल रहा है। इसका अर्थ यह है कि विस्तार उस प्रोफ़ाइल से जुड़ी एक प्रक्रिया के तहत चलता है जो एक्सटेंशन स्थापित करता है (यानी गुप्त विंडो नहीं)। इस स्थिति में, chrome.downloads एपीआई onChanged घटना दोनों गुप्त और सामान्य प्रोफाइल में डाउनलोड के लिए आग लगती है, लेकिन chrome.browsingData एपीआई केवल सामान्य प्रोफ़ाइल पर लागू होती है।

इसके बजाय, आप split गुप्त मोड का उपयोग करना चाहते हैं। इसका अर्थ यह है कि एक्सटेंशन प्रत्येक प्रोफ़ाइल में अलग-अलग चलता है जो इसका उपयोग करता है (यानी गुप्त विंडो को एक्सटेंशन की अपनी चलती प्रति प्राप्त होती है)। इसका अर्थ यह है कि जब आप chrome.browsingData एपीआई को कॉल करते हैं, तो यह उस विंडो पर लागू होता है जिसने ईवेंट को निकाल दिया था।

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