2014-07-04 10 views
7

मैं फेसबुक के उपयोग लॉगिंग के लिए एक एक्सटेंशन लिख रहा हूं। मैंने पाया कि भले ही फेसबुक टैब ने टाइमर को क्रैश कर दिया हो, फिर भी इसे ठीक करने की कोशिश कर रहा है। the doc के अनुसार, ऐसी कोई घटना नहीं दिखती है।क्रोम टैब क्रैश होने पर कैसे पता लगाया जाए

क्या यह पता लगाने के लिए एपीआई है कि टैब क्रैश हो गया है या क्रैश ईवेंट है?

उत्तर

4

chrome.processes.onExited ईवेंट तब ट्रिगर होता है जब एक रेंडरर क्रैश होता है (जो एक प्रक्रिया है जो एक या अधिक टैब होस्ट करती है)।

यह एपीआई केवल developer channel पर उपयोगकर्ताओं के लिए उपलब्ध है, इसलिए यदि आप विस्तार को सभी के लिए व्यापक रूप से उपलब्ध करना चाहते हैं, तो आपको वैकल्पिक विधि का उपयोग करने की आवश्यकता है। आप एक सामग्री स्क्रिप्ट बना सकते हैं जो chrome.runtime.connect के माध्यम से एक संदेश पोर्ट बनाता है, और onDisconnect ईवेंट chrome.tabs.sendMessage या chrome.tabs.executeScript का उपयोग यह जांचने के लिए करें कि टैब अभी भी जिंदा है या नहीं: यदि टैब अब अस्तित्व में नहीं है, तो chrome.runtime.lastError सेट किया जाएगा और एक संचार इंगित करेगा त्रुटि।

+1

मेरे प्रयोगों में, chrome.runtime.lastError कॉल के बाद सेट नहीं किया गया है यदि टैब क्रैश हो गया है। और कॉलबैक भी नहीं कहा जाता है। यदि टैब आईडी वास्तव में मौजूद नहीं है तो chrome.runtime.lastError को कॉलबैक में सेट किया जाता है जिसे कॉल किया जाता है। तो दुर्घटनाग्रस्त टैब का पता लगाने के लिए एकमात्र (लेकिन संभावित रूप से गलत) तरीका एक टाइमर सेट करने लगता है और कॉलबैक नहीं कहा जाता है जब एक टाइमआउट के लिए प्रतीक्षा करें। –

+1

@ रोलैंड पिहलाकास मैंने एक टिकट खोला है: https://crbug.com/439780 –

+0

ओह, धन्यवाद, अच्छा विचार! यह एक आदत बननी चाहिए ... –

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