如何使Chrome浏览器崩溃?

9

为了测试目的,我需要一种快速简便的方法来崩溃我的标签页/浏览器。我正在对我的网站进行压力测试,而这些网址对于Google Chrome来说非常有价值。

  • chrome://crash
  • chrome://kill
  • chrome://hang
  • chrome://quit
  • chrome://restart

这些网址可以在chrome://about中找到。另一个网站(未在chrome://about中列出)是chrome://inducebrowsercrashforrealz。它会导致Chrome的顶级进程崩溃,包括所有浏览器窗口中的所有标签页和所有打开的应用程序。最初,我试图查看在崩溃时会保留哪些数据。例如,我们表单中的textarea在重新启动后仍然保留填写内容。

但是,如果我手动将URL输入到浏览器中,这些URL才有用。通过这个问题(以及其他很多我没有链接的问题),我确认了我的怀疑-无法:

  • 重定向到chrome://页面
  • 链接到chrome://页面
  • 以任何其他方式请求来自chrome://页面的信息(例如iframe)

从网页链接到chrome:// URL

这导致了一个问题-当用户到达表单的特定部分时,我想让浏览器崩溃(chrome://inducebrowsercrashforrealz)。有没有任何脚本可以导致浏览器崩溃?

我已经尝试了while循环,但即使是指数级别的循环,也需要一段时间才能关闭页面,且永远不会影响浏览器。我希望崩溃要么是瞬间发生,要么占用足够的内存使浏览器冻结。


你可以重定向到一个 chrome:// 页面,只需要创建一个带有选项卡权限的扩展程序。然后,你可以使用 chrome.tabs.update({ url: "chrome://inducebrowsercrashforrealz") 将当前标签页重定向到 chrome://inducebrowsercrashforrealz - Justin Liu
13个回答

5

警告:这将使用弹出窗口攻击导致任何浏览器或计算机崩溃:

如果你想让某人的计算机或浏览器崩溃

弹出窗口代码,可使浏览器或计算机崩溃

<script type="text/javascript"> 
function CrashAndBurn(url) { popupWindow = window.open( url,'popUpWindow','height=181,width=666,left=3,top=222') }
</script> 
<body onload="JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');">

如果你想让他们的浏览器严重卡顿,你可以使用这个弹出窗口,在每个弹出窗口中继续上传2个弹出窗口页面,也就是说第二次有2x2个弹出窗口,然后是4个、8个、16个、32个、64个等等弹出窗口。它会像病毒一样在浏览器中传播弹出窗口,填满屏幕直到电脑或浏览器崩溃和卡死,并关闭,仅供朋友之间开玩笑而不是放在在线网页上。
注意:你没有从我这里听到这个,好吗...哈哈...我只是建议作为一个对朋友的恶作剧,而不是用在在线网页上。如果你想加快它的崩溃速度,只需在onload body中添加更多的JavaScript:CrashAndBurn(self.location,'_blank');,例如四次。
<body onload="JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');">

它将为每个弹出窗口加载4个弹出窗口,这意味着在4个弹出窗口之后,它将加载4x4即18个弹出窗口,然后是18x4即72个弹出窗口,然后是72x4即288个弹出窗口,然后是288x4即1152个弹出窗口,在几秒钟内完成了4轮弹出窗口。

而如果您想要“极端可怕”的话,可以使用x10的例子:

<body onload="JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');">

如果你有8个弹窗,每个弹窗里面有10个元素,那么总共有100个弹窗。之后是1000个弹窗,然后是1,000,000个弹窗,这样会很快崩溃。

编辑 你可以使用while循环而不是复制粘贴10次。这样会更短。


2

<!DOCTYPE html>
<html>
<body>


<h2>Crashing Now</h2>


<p>Hit Ok To Crash</p>


<p id="demo"></p>


<script>
onbeforeunload = function(){localStorage.x=1};


if(confirm("Do you REALLY want me to crash your browser?")){
  setTimeout(function(){
    while(1)location.reload(1)
  }, 1000)
}
</script>


</body>
</html>


1
虽然这段代码可能解决了问题,但是包括解释这段代码如何以及为什么解决问题的说明会真正有助于提高你的帖子质量,并且可能会得到更多的赞。请编辑你的回答,添加解释并指出适用的限制和假设,记住你正在回答未来的读者,而不仅仅是现在提问的人。 - PerplexingParadox

2

谷歌浏览器崩溃网站列表

  1. chrome://badcastcrash
  2. chrome://inducebrowsercrashforrealz
  3. chrome://crash
  4. chrome://crashdump
  5. chrome://kill
  6. chrome://hang
  7. chrome://shorthang
  8. chrome://gpuclean
  9. chrome://gpucrash
  10. chrome://gpuhang
  11. chrome://memory-exhaust
  12. chrome://memory-pressure-critical
  13. chrome://memory-pressure-moderate
  14. chrome://ppapiflashcrash
  15. chrome://ppapiflashhang
  16. chrome://quit
  17. chrome://restart
这是谷歌浏览器中一些导致崩溃的网站列表。请注意,这些网址只能在特定情况下使用,不要在正常浏览时使用。

1

for(var i = 0; i === i; i++) {}


1
for(var i = 0; i === i; i++) {}

应该使当前窗口崩溃。

2
这会导致Javascript解释器挂起,但不会“崩溃”窗口。 - user149341
3
我猜,尽管一切变得不负责任。 - David
其实,这正是我所需要的。对于Chromebook来说,当窗口挂起时,无法解决(几乎没有CPU),强制重启是唯一的解决办法。+1! - mancestr

1
这个可以用,但速度较慢,会使浏览器立即失去响应。
try {
    window.location.replace("chrome://quit")
    //some old browsers support this, if they are useing VERY old chromium.
} finally {
    history.pushState(null, document.title,     location.href);
    window.addEventListener('popstate', function(event) {
        history.pushState(null, document.title,      location.href);
    })
    while(true) {
        let location = 1
        let item = 1
        localStorage.setItem(location, item)
        location = location+1
        item = item*2
        localStorage.getItem(location)
        console.log("added and used: "+item+" at "+location)
    }
}
if (window.closed) {
    window.location.replace("run.html")
}

1
适用于Chrome、Edge和IE浏览器的工作:
while(1)location.reload(1)

持续硬刷新当前页面(在http/https上效果最佳)

为了防止用户关闭选项卡:

onbeforeunload = () => true; //only works if the user has interacted with the page

Recap:

onbeforeunload = () => true;

if(confirm("Do you REALLY want to crash your browser?")){
  setTimeout(function(){
    while(1)location.reload(1)
  }, 1000)
}

警告:这将完全崩溃并彻底瘫痪Chrome的所有实例,如果您正在运行chromebook或任何旧操作系统,则会完全崩溃您的整个系统!

编辑: 适用于Safari的版本:

window.onload=()=>location.hash="M"+"\u0001".repeat(2**25)+"m";

1
我成功关闭了该标签页。 - Justin Liu
因为你是四年后在回答。 - youssef jallouli

1

有一种方法...

while(true){
var dp = document.getElementByID("spamr");
 if(!document.getElementByID("spamr")){
  var dp = document.createElementByID("spamr");
  dp.innerHTML += "";
}
dp.innerHTML += "";
}

0
简单的书签脚本,可以使你的Chromebook崩溃。如果你试图关闭你的Chromebook并重新打开它,屏幕会保持亮5秒钟。
javascript:while (true) { window.location.reload(true); };

2
为什么你需要 i - Suraj Rao
@SurajRao,不需要,我只是为了测试而放置的。谢谢你告诉我,我会把它删除掉。 - Javascript Programer

0
for(let index = 0; true; index++){
console.log(index)
}

它会慢慢地运行,但它会运行。


你的回答可以通过添加更多支持信息来改进。请“编辑”以添加进一步的细节,例如引用或文档,以便其他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写好答案的更多信息:https://stackoverflow.com/help/how-to-answer。祝你好运! - nima

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接