2012-07-14 19 views
7

के लिए प्रयोजन क्रैश क्रोम टैब हाय मैं जानबूझकर क्रोम टैब को क्रैश करने के लिए क्रोम एक्सटेंशन बना रहा हूं। मेरी विधियां जिस तरह से मैं चाहूंगा काम नहीं कर रही हैं। मैं कोशिश कर रहा हूं:क्रोम एक्सटेंशन

chrome.tabs.update({url: "about:crash"}); 
chrome.tabs.update({url: "chrome://crash"}); 
window.location = 'about:crash'; 
window.location = 'chrome://crash'; 

इनमें से कोई भी काम नहीं।

हालांकि अगर मैं यूआरएल को 'about: blank' या 'http://google.com' जैसा कुछ बदलता हूं, तो यह काम करता है!

क्या क्रोम के पास कुछ प्रकार की सुरक्षा उपाय है, यदि ऐसा है ... आसपास के काम के लिए कोई सुझाव?

यदि संभव हो तो मैं अनंत लूप के साथ मेमोरी को अधिभारित करना चाहता हूं।

+1

मैं उत्सुक हूँ क्यों आप क्या करना चाहते हैं, उस पर के रूप में इस :) – Utkanos

+2

अपने (पृष्ठभूमि) पेज में सांत्वना की जाँच करें। निम्न त्रुटि संदेश प्रकट होता है: '" tabs.update के दौरान त्रुटि: मुझे खेद है। मुझे डर है कि मैं ऐसा नहीं कर सकता। " –

+1

हाँ मुझे "स्थानीय संसाधन लोड करने की अनुमति नहीं है: क्रोम: // क्रैश /" और "tabs.update के दौरान त्रुटि: मुझे खेद है। मुझे डर है कि मैं ऐसा नहीं कर सकता।"। इस एक्सटेंशन को बनाने का कारण यह है कि मैं अप्रयुक्त स्मृति को मुक्त करने के लिए सभी टैब को बंद करना चाहता हूं। मुझे इस समय क्रोम टास्क मैनेजर के भीतर मैन्युअल रूप से बंद करने के लिए मजबूर होना पड़ रहा है। – Andy

उत्तर

4

इस काम कर रहे समझे और एक extension के रूप में पैक किया। यहाँ प्रासंगिक कोड है:

// Called when the user clicks on the browser action. 
chrome.browserAction.onClicked.addListener(function(tab) { 
  queryInfo = new Object(); 
  chrome.tabs.query(queryInfo, function(result) { 
    var i; 
    for (i=0; i < result.length; i += 1) { 
     chrome.experimental.processes.getProcessIdForTab(result[i].id, function(processId) { 
      chrome.experimental.processes.terminate(processId); 
     }); 
    } 
  }); 
}); 
+1

बढ़िया! प्लगइन काम करता है। क्या आप जानते हैं कि जब क्रोम शुरू होता है, तो सभी नए टैब को मारने के लिए मैं इसे कैसे चला सकता हूं? मेरा उद्देश्य है कि मेरे कई टैब क्रोम शुरू होने पर मेरे सभी सिस्टम संसाधनों को चकित करने से रोकें, ताकि उन्हें बाद में लोड किया जा सके। – Eliot

+0

@Eliot मैं वास्तव में प्रतिक्रिया की सराहना करता हूं, धन्यवाद। क्रोम स्टार्ट के लिए खोजे जाने पर क्रोम एक्सटेंशन रन के लिए खोजा गया लेकिन बहुत अधिक नहीं मिला। जब मैं इसका बहुत उपयोग कर रहा था तो मैं आमतौर पर स्टार्टअप के दौरान इसे बार-बार क्लिक करता। – funroll

+0

@ उल्लिखित विस्तार का पालन करें मेरे लिए काम नहीं करता है। क्रोम देव संस्करण 36.0.1941.0 dev-m पर कोशिश की। क्या यह आपके लिए क्रोम देव या कैनरी बिल्ड पर काम करता है? (कैनरी आज़माएं, क्योंकि यह एक अलग प्रोफाइल बनाएगा, इसलिए यह मौजूदा प्रोफाइल में हस्तक्षेप नहीं करेगा) –

0

टैब वस्तु करना चाहिए कि एक व्यवस्थित रूप में की समाप्ति के तरीकों, प्रलेखन यहाँ है: experimental processes API साथ http://code.google.com/chrome/extensions/tabs.html#method-remove

चीयर्स, टी

+1

क्षमा करें नहीं, यह वह नहीं है जिसे मैं ढूंढ रहा हूं। वह टैब को पूरी तरह बंद कर देता है। मैं टैब को दुर्घटनाग्रस्त करने का एक तरीका चाहता हूं। – Andy

+0

यह आप क्यों चाहते थे के अनुसार अप्रयुक्त स्मृति को मुक्त और मुक्त कर देगा? – tomdemuyt

+7

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

4

, आप प्रक्रियाओं को समाप्त कर सकते हैं उन है कि संबंधित सहित, टैब के लिए।

मैंने उस सटीक उपयोग के मामले के बारे में सोचा है - यदि आपने कभी अपना एक्सटेंशन पूरा किया है तो मैं इसे आजमा देना चाहता हूं!

हालांकि शायद हो सकता है अब के लिए अपनी पृष्ठभूमि पेज पृष्ठ पर आधारित एक डेटा uri के लिए टैब अनुप्रेषित सकता है के लिए हो सकता है एक बेहतर विचार है, जैसे

data:text/html,<a href="http://www.google.com/">click here to restore</a> 

या एक विस्तार पेज कि अपनी क्वेरी के आधार पर पृष्ठों को उत्पन्न करता है पैरामीटर:

my_extension_page.html?url=http://www.google.com/ 
+0

मुझे लगता है कि यह सबसे अच्छा जवाब है। यद्यपि क्रोम की सार्वजनिक स्थिर रिलीज इस एपीआई के साथ नहीं आती है, लेकिन शायद यह देखने के लिए कुछ है कि प्रक्रिया एपीआई स्थिर रिलीज के लिए रास्ता बनाती है या नहीं। – Andy

-1

here वर्णित अनुसार निम्न फन फन लूप का उपयोग करें!

txt = "a"; 
while(1) 
{ 
    txt = txt += "a"; //add as much as the browser can handle 
} 
//<i>[evil laugh]</i> BOOM! All memory used up, and it is now <b>CRASHED</b>! 
+1

"यदि संभव हो तो मैं अनंत लूप के साथ मेमोरी को अधिभारित करना चाहता हूं।" – gengkev

+1

यह इस उत्तर की एक प्रति है: http://stackoverflow.com/a/10966152/1785437 – Jakob

6

टैब पर chrome://kill लोड करें।

उदाहरण के लिए, क्रोम पर इस टैब को मारने के लिए, URL बार में chrome://kill दर्ज करें और एंटर दबाएं। क्रोम 20 के रूप में

अतिरिक्त मज़ा: chrome://favicon/size/1/http://gonna.crash.you/

+0

केवल क्रैश को मारता है और टैब को फिर से लोड करता है – Andy

+0

@ एंडी मेरे मामले में यह नियमित रूप से "यह मर चुका है, जिम" (या कुछ ऐसा वह) संदेश और यह तब तक रहता है जब तक आप इसे मैन्युअल रूप से पुनः लोड नहीं करते। विंडोज और लिनक्स पर क्रोम 20 पर परीक्षण किया गया। –

+0

यह मेरे लिए बहुत अच्छा काम करता है। किसी भी विचार को इसे 'क्रोम: // kill' पृष्ठ पर "कीस्ट्रोक के साथ" कैसे "बनाना है? हाथ से इसे लिखना मेरे लिए पर्याप्त तेज़ नहीं है। –

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