2

プロセスのクラッシュを検出する Chrome 拡張機能を作成しようとしています。

まずabout:flags、Chrome のページに移動し、「Experimental Extension APIs」を有効にしました。

これは私が書いた拡張機能です:

manifest.json:

{
  "manifest_version": 2,
  "name": "CrashDetect",
  "description": "Detects crashes in processes.",
  "version": "1.0",
  "permissions": [
    "experimental","tabs"
  ],
  "background": {
    "scripts": ["background.js"]
  }
}

backround.js:

chrome.experimental.processes.onExited.addListener(function(integer processId, integer  exitType, integerexitCode) {
  chrome.tabs.getCurrent(function(Tab tab) {
    chrome.tabs.update(tab.id, {url:"http:\\127.0.0.1\""});
  };)
});

次にabout://crash、Chromeのページにアクセスしました。ただし、onExitedリスナーは実行されません。またはで何か間違ったことをしましたmanifest.jsonbackground.js?

4

1 に答える 1

1

コードにいくつかのエラーがあります。まず、関数宣言でパラメーターの型を取得し、次のように変更します。

function(processId, exitType, integerexitCode){

};)次に、の代わりに入れます});バックグラウンド ページを調べて、構文エラーを確認してください。


この特定の API に慣れていなかったので、いくつか試してみたところ、onUpdated. これが意図された動作であるかどうかは本当に疑わしいので、バグレポートがあるかどうかを確認します. 今のところ、次のようにして機能させます。

chrome.experimental.processes.onUpdated.addListener(function(process){});

chrome.experimental.processes.onExited.addListener(function(processId, exitType, integerexitCode){
    chrome.tabs.query({active:true, currentWindow:true},function(tabs){
      chrome.tabs.update(tabs[0].id, {url:"http:\\127.0.0.1"});
    });
});

前者ではエラーが発生したgetCurrentため、 aを交換したことに注意してください。chrome.tabs.queryこれにより、タブを閉じると次のタブがリダイレクトされるという動作が発生します。exitTypeおそらく、通常の出口を除外して含めないようにすることができます。

于 2013-04-28T03:54:08.357 に答える