7

嗨,我正在创建一个 Chrome 扩展程序来故意使 Chrome 选项卡崩溃。我的方法没有按照我想要的方式工作。我在尝试:

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

这些都不起作用。

但是,如果我将 URL 替换为“about:blank”或“http://google.com”之类的内容,它就可以工作!

Chrome 是否有某种安全措施,如果有的话......有什么建议可以解决吗?

如果可能的话,我想避免使用无限循环使内存过载。

4

5 回答 5

7

加载chrome://kill在选项卡上。

例如,要在 chrome 上终止此选项卡,chrome://kill请在 URL 栏中输入并按 Enter。

Chrome 20 的额外乐趣:chrome://favicon/size/1/http://gonna.crash.you/

于 2012-07-20T23:50:59.183 回答
4

使用实验进程 API,您可以结束进程,包括那些属于选项卡的进程。

我想到了完全相同的用例——如果你完成了你的扩展,我想试试!

虽然现在可能一个更好的主意可能是您的背景页面可以将选项卡重定向到基于页面的数据 uri,例如

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

或者可能是基于其查询参数生成页面的扩展页面:

my_extension_page.html?url=http://www.google.com/
于 2012-07-16T03:19:35.417 回答
4

得到这个工作并打包为一个扩展。以下是相关代码:

// 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);
        });
    }
  });
});
于 2012-08-23T18:42:36.327 回答
0

选项卡对象的关闭方法应该以有序的方式执行此操作,文档在这里:http ://code.google.com/chrome/extensions/tabs.html#method-remove

干杯,T。

于 2012-07-15T04:07:10.103 回答
-2

使用以下 FUN FUN LOOP,如此所述!

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>!
于 2012-07-18T15:33:02.050 回答