Chrome 扩展和 Jenkins URL 的
Chrome Extension and Jenkins URL's
我目前正在尝试开发一个 chrome 扩展,它应该显示来自不同 Jenkins 服务器的数据。用户正在向 jenkins 服务器输入 url。
所以基本上我需要的是能够访问任何类型的 jenkins url。
我的问题是 Chrome 的 Content Security Policy
只允许您访问您在 manifest.json 中注册的域,如下所示:
"content_security_policy": "script-src 'self' http://localhost:8080/; object-src 'self'"
.
但由于不同的用户将输入不同的 url,我需要能够动态更改此策略,但我真的不知道该怎么做。
安装扩展后,您将无法动态更改清单。每 Google https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing-remote-script :
Generic wildcards such as https:, https://* and https://.com are not allowed; subdomain wildcards such as https://.example.com are allowed.
如果您可以确保 CI 台机器都在同一个域中,那么它就可以工作。
您似乎对向随机域发送请求需要什么有误解。
CSP 指令 script-src
指示您可以 从 执行代码的位置,特别是 <script src="https://some.domain/script.js">
。那确实是您不能列入白名单的东西。
要发送 GET/POST 跨站点请求,您需要 host permission,而不是 CSP 修改。
有两种可能的方法:
- 给自己广泛的权限,例如
"*://*/*"
或 "<all_urls>"
。这将允许您以安装时警告为代价查询任何内容 "can read and modify data on all websites".
使用optional permissions API。这样,您可以在配置扩展时避免安装时警告和提升权限提示。如果不需要经常进行此配置,这将很有意义。
额外注意:截至 2016 年 10 月 4 日,permissions
API 未在 Firefox WebExtensions / Edge Extensions 中实现,因此如果考虑到可移植性,最好避免用于新项目现在。
我目前正在尝试开发一个 chrome 扩展,它应该显示来自不同 Jenkins 服务器的数据。用户正在向 jenkins 服务器输入 url。
所以基本上我需要的是能够访问任何类型的 jenkins url。
我的问题是 Chrome 的 Content Security Policy 只允许您访问您在 manifest.json 中注册的域,如下所示:
"content_security_policy": "script-src 'self' http://localhost:8080/; object-src 'self'"
.
但由于不同的用户将输入不同的 url,我需要能够动态更改此策略,但我真的不知道该怎么做。
安装扩展后,您将无法动态更改清单。每 Google https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing-remote-script :
Generic wildcards such as https:, https://* and https://.com are not allowed; subdomain wildcards such as https://.example.com are allowed.
如果您可以确保 CI 台机器都在同一个域中,那么它就可以工作。
您似乎对向随机域发送请求需要什么有误解。
CSP 指令 script-src
指示您可以 从 执行代码的位置,特别是 <script src="https://some.domain/script.js">
。那确实是您不能列入白名单的东西。
要发送 GET/POST 跨站点请求,您需要 host permission,而不是 CSP 修改。
有两种可能的方法:
- 给自己广泛的权限,例如
"*://*/*"
或"<all_urls>"
。这将允许您以安装时警告为代价查询任何内容 "can read and modify data on all websites". 使用optional permissions API。这样,您可以在配置扩展时避免安装时警告和提升权限提示。如果不需要经常进行此配置,这将很有意义。
额外注意:截至 2016 年 10 月 4 日,
permissions
API 未在 Firefox WebExtensions / Edge Extensions 中实现,因此如果考虑到可移植性,最好避免用于新项目现在。