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

タブ オブジェクトの close メソッドは、整然とした方法でそれを行う必要があります。ドキュメントは次のとおりです。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 に答える