【问题标题】:How do you force Chrome pages/tabs to crash using JavaScript?您如何使用 JavaScript 强制 Chrome 页面/标签崩溃?
【发布时间】:2012-06-13 12:35:42
【问题描述】:

尝试设置window.location 或使用window.navigate() 使浏览器转到about:crashchrome://crash 不起作用。有办法吗?

【问题讨论】:

  • 这有什么意义吗?我的意思是我其实不知道。但是有吗?
  • 创建一个无限循环然后坐下来。
  • 出于安全原因,浏览器可能不允许手动指向这些页面。我认为你可以杀死 Chrome 的一些子进程来模拟崩溃。
  • @karim79 重点在于崩溃处理。我需要让我的 Chrome 扩展程序崩溃才能知道如何从崩溃中恢复...我有多个扩展程序作为一个扩展程序一起通信。当主控制器扩展检测到其中一个被操纵的扩展已经崩溃时,它需要知道它处于什么状态以及如何恢复它(并避免再次崩溃)。

标签: javascript google-chrome google-chrome-extension


【解决方案1】:

有趣的循环:

txt = "一个"; 而(1){ txt = txt += "一个"; //添加尽可能多的浏览器可以处理 } //[邪恶的笑声] BOOM!所有内存都用完了,现在CRASHED

http://jsfiddle.net/DerekL/M45Cn/1/

对不起中文字符...


额外

Fun Fun Loop 也适用于 Firefox!

我必须给 Safari 鼓掌,因为它会自动在页面即将崩溃时重新加载! Webkit 开发人员干得好!

哦,是的……

警告:不要在 Internet Explorer 中尝试...因为它崩溃的不是我的浏览器,而是我的 Windows 7... 是的。在那之后我必须重新启动计算机。

【讨论】:

  • @Pumbaa80 - 嗯,它是一部手机,我确实预计它会崩溃。 :P
  • 所以...在 IE/win7 中实际上是堆栈溢出?非常好。
  • 在 Firefox 中似乎不起作用,至少现在不再起作用,因为它会警告“无响应脚本”并让您终止它。如果这是基于时间的,您可能可以在适当的时候创造性地使用 setTimeout 来解决它。
  • a='5';while(true)a=a+a+a+a+a+a+a; 更快(指数)
  • @DDS: a='5';while(a=a+a); 就是你所需要的。它仍然是指数级的,因此它将在大约 30 次迭代中填充内存。 :)
【解决方案2】:

简单在chrome地址栏输入下面一行代码就可以看到一个Chrome标签崩溃模拟:

chrome://crash

【讨论】:

  • 甜蜜。感谢您加入只是为了发布这个。
  • 实际上,chrome://crashes 是您查看已记录的崩溃列表的地方。 chrome://crash 是您故意使渲染器进程(选项卡)崩溃的方式,而 chrome://crashes 是您之后查看崩溃的方式。
【解决方案3】:

我知道这个问题已经有一年多了,但是apparently 你可以使用chrome://inducebrowsercrashforrealz

这里是额外的调试chrome:// URL 列表,取自chrome://about

chrome://crash
chrome://kill
chrome://hang
chrome://shorthang
chrome://gpuclean
chrome://gpucrash
chrome://gpuhang
chrome://ppapiflashcrash
chrome://ppapiflashhang
chrome://restart

【讨论】:

  • 重要提示:chrome://inducebrowsercrashforrealz 将崩溃 Chrome 的顶级进程,包括所有浏览器窗口和所有打开的应用程序中的所有标签, 而不仅仅是当前标签为 @ 987654327@ 或 chrome://kill 将。
  • 谁会给如此致命的武器起这么可爱的名字?
【解决方案4】:

这是迄今为止最简单的方法。为数组创建一个尽可能多的数组。这不会占用计算机的内存,但会在几秒钟内使页面崩溃。

[...Array(2**32-1)]

假设您的计算机可以处理这个问题(它不应该)。试试这个给你的电脑更多的压力:

[...Array(2**32-1)].map(_=>Math.ceil(Math.random()*111))

这些可以通过地址栏调用:

javascript:[...Array(2**32-1)]

javascript:[...Array(2**32-1)].map(_=>Math.ceil(Math.random()*111))

【讨论】:

  • 当我运行它时,我的电脑非常好,我得到[30, 46, 79, 57, 97, 5, 18, 34, 86, 39, 108, 34, 30, 102, 98, 109, 84, 100, 25, 6, 5, 111, 39, 103, 45, 18, 93, 16, 57, 38, 8, 54, 84, 86, 17, 104, 12, 65, 7, 18, 74, 37, 39, 76, 66, 80, 88, 78, 21, 55, 89, 65, 22, 3, 81, 55, 106, 29, 6, 15, 24, 31, 48, 46, 82, 78, 4, 105, 21, 18, 7, 73, 73, 28, 9, 82, 48, 93, 57, 3, 86, 82, 2, 86, 9, 110, 64, 10, 74, 62, 11, 95, 25, 47, 3, 38, 42, 84, 84, 20, …]
  • @Max 你一定有一台好电脑?或者一个很棒的浏览器;)
猜你喜欢
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
  • 2013-10-10
  • 2014-04-18
  • 2011-05-16
相关资源
最近更新 更多