进程管理

通过特权插件的 chrovia.process.exit 请求正常退出整个浏览器实例。

能力:processManagementAPI:chrovia.process.exit()。不需要 EP 开关,通常从 Provision Service Worker 调用。

根据明确命令退出

function exitBrowser() {
  const processApi = globalThis.chrovia?.process;
  if (!processApi) {
    throw new Error('processManagement is required');
  }
  processApi.exit();
}

将函数接到插件自己的、经过验证的命令处理器上。示例刻意不在 Worker 加载时自动调用。popup 应向 Worker 发送具体命令,而不是直接访问 API。

exit() 返回 undefined,不是 Promise 或退出码。它请求 Chromium 正常退出流程,不会同步终止进程,也不保证进程消失的准确时刻。退出前完成必要应用工作;需要确认实际终止时,由外部启动器观察。

范围

退出影响整个浏览器实例及其窗口,不只是一个标签页或插件。API 没有启动其他进程、指定退出码或结束无关进程的方法。

需要在启动器退出或 presence 文件消失时自动关闭浏览器,应使用独立的 supervisorProcess 能力。授予 processManagement 不会启动监督监视器,监督方结束时的自动退出也不需要调用此 JS 方法。

验证

在可丢弃且没有未保存工作的实例中测试。域缺失时检查 License 和 Service Worker 上下文。页面调用还需要 unrestrictedApi,它扩大开放范围,不只是开放一个退出按钮,建议优先使用插件消息路径。