我正在使用 Dart 编程语言构建一个带有 webview 的 Google Chrome 应用程序。该应用程序通过 postMessage 与 webview 内容进行通信。如果我从 DartEditor 运行应用程序(作为 Chrome 应用程序运行)postMessage 工作正常。但是在构建(dart2js)并使用“加载未打包的扩展...”加载到浏览器之后 - 应用程序无法获取 webview contentWindow 并在其上执行 postMessage。
来自 chrome 开发控制台的错误:未捕获的 SecurityError:阻止了来源为“chrome-extension://bpddihniogcgmnlaghkacfagkecgnljo”的框架访问来源为“swappedout://”的框架。请求访问的帧具有“chrome-extension”协议,被访问的帧具有“交换”协议。协议必须匹配。
Google Chrome 版本 36.0.1951.5 dev Dart 版本 SDK 1.4.2,版本 1.5.0-dev.4.2 - 给出相同的错误。
这是演示问题的最小工作示例 - https://github.com/Dumbris/dart_chrome_app_webview_security_error