2013-04-28 2 views
2

프로세스 충돌을 감지하는 Chrome 확장 프로그램을 작성하려고합니다.chrome.experimental.processes.onExited.addListener not working

먼저 크롬의 about:flags 페이지로 이동하여 '실험용 확장 프로그램 API'를 사용하도록 설정했습니다.

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 페이지를 방문

이 내가 쓴 확장이다. 그러나 onExited 수신기가 실행되지 않습니다. manifest.json 또는 background.js에 잘못 입력 한 적이 있습니까?

답변

1

코드에 몇 가지 오류가 있습니다. 먼저 당신이로 변경, 함수 선언의 매개 변수의 유형이있다 :

function(processId, exitType, integerexitCode){ 

둘째, };) 대신 });을 넣어. 구문 오류를 보려면 inspecting the background page을 시도하십시오.


좋아,이 특정 API에 익숙했다으로 주변에 일부 재생 후, 나는 onUpdated에 대한 처리기를 포함하지 않은 경우 이벤트 중 누구도 해고 것을 발견했다. 나는 이것이 의도 된 행동 인 것을 정말로 의심하고 그것에 대한 버그 리포트가 있는지를 점검 할 것이다. 지금은 단지 같은 것을 할 것이 작업하세요 : 나는 이전으로 chrome.tabs.query에 대한 귀하의 getCurrent에서 스왑을했다

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"}); 
    }); 
}); 

주의가 당신에게 오류를 준 것이다. 탭을 닫으면 다음 탭이 리디렉션됩니다. 아마도 exitType으로 필터링하려고 시도 할 수 있으며 정상 종료를 포함하지 않을 수도 있습니다.

+0

감사합니다. background.js의 오류를 수정했습니다. 그러나 여전히 on exit 리스너는 실행되지 않습니다. –

+0

@chamaldesilva 나는 당신의 문제에 대한 해결책이라고 생각하는 것으로 나의 대답을 업데이트했다. – BeardFist