在 Chrome OS 应用程序的不同线程上执行后台 js 脚本 运行?

Do background js scripts run on a different thread in Chrome OS apps?

在 Chrome OS 应用的清单中,必须声明后台 js 脚本。

{
  "name": "Hello World!",
  "description": "My first Chrome App.",
  "version": "0.1",
  "manifest_version": 2,
  "app": {
    "background": {
      "scripts": ["background.js"]
    }
  },
  "icons": { "16": "calculator-16.png", "128": "calculator-128.png" }
}

每个 运行 都在各自的线程中吗?

它们是否相互阻塞或应用 windows 上的 JS 线程 运行?

Chrome 应用程序 windows 只是 "views",并不存在于单独的进程中。这就是证据。每个应用程序视图页面都可以 运行 chrome.runtime.getBackgroundPage 直接引用后台页面的 javascript 上下文(所有变量、函数等)。此外,后台页面可以获得对应用 windows 的 javascript 上下文的引用,使用 chrome.app.window.getAll 来引用返回的 appWindow 对象上的 contentWindow

正如另一位评论者所指出的,chrome 扩展的情况有点不同,但由于问题是关于应用程序的,我们只关心它。