是否可以从Chrome打包应用程序onSpendpend或onClose终止进程?

时间:2015-11-06 15:55:25

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

我正在尝试调试基于Chrome App Sample WebSocket Server的打包应用。我第一次使用Chrome应用程序时要善待。

当我从Google Dev Editor运行应用程序时,我可以随意打开和关闭应用程序。但是,从Chrome App Store安装时,重新打开应用程序会导致Chromebook =屏幕崩溃几秒钟,然后关闭所有程序。

我不确定从哪里开始调试这个,因为我的扩展程序几乎都是从应用程序示例中复制的,它也可能是一个错误。我确实发现,如果我手动终止仍在shift + esc任务管理器中的进程,我可以重新启动应用程序而不会崩溃。

我看了一下在关闭应用程序时运行的方法。我想我不能用:

chrome.runtime.onSuspend.addListener(function() {
  // kill process here
});

但也许:

chrome.app.window.onClosed.addListener(function (){
  // kill process here
});
只要我有权访问进程并知道进程ID,

就可以使用。我确实在这个主题上找到了这个blog postgist,建议可以这样做:

var tab_id;
var processes = (chrome.processes !== undefined) ? chrome.processes :   chrome.experimental.processes;

chrome.browserAction.onClicked.addListener(function (tab) {
    tab_id = tab.id;
    processes.getProcessIdForTab(tab.id, function (processId) {
        if (!isNaN(parseFloat(processId)) && isFinite(processId)) {
            processes.terminate(processId);
        }
    });
});

processes.onExited.addListener(function (id, exitType, exitCode) {
    if (exitType == 2 && exitCode == 15) {
        chrome.tabs.reload(tab_id);
    }
});

但是我无法访问代码中显示的进程(猜测它太旧了)。

问题:
是否可以访问从Chrome应用程序运行的进程来尝试终止进程?如果不是最好解决这个问题呢?

谢谢!

0 个答案:

没有答案