【发布时间】:2017-03-09 06:06:15
【问题描述】:
问题:
Chrome 扩展页面内的 YouTube 嵌入视频在 Chrome 56 中显示为后矩形。我们该如何解决?
演示扩展:
https://github.com/terales/youtube-not-play-in-extension-in-crome-v56
如何重现:
- 在 chrome://extensions/ 中加载解压的扩展
- 打开新标签
- 视频无法加载,请检查开发者工具中记录的请求
请求在“网络”选项卡中显示为已取消:
但是如果我们用 WebRequest API 看请求是没有问题的:
Code for embedding:
<iframe width="853" height="480"
src="https://www.youtube.com/embed/dm57RF1l0Cs?rel=0&showinfo=0"
frameborder="0" allowfullscreen></iframe>
Manifest:
{
"name": "Youtube won't play embeded videos in crome-extension [Demo]",
"version": "1.0.0",
"manifest_version": 2,
"description": "Demo for encountered problem with cancelled request",
"chrome_url_overrides": {
"newtab": "newtab.html"
},
"permissions": [
"webRequest",
"<all_urls>"
],
"content_security_policy": "default-src 'self' https://s.ytimg.com; frame-src https://www.youtube.com;"
}
已检查:
- 内容安全策略 - 应该没问题,一个月前运行良好
- 禁用所有其他扩展 - 检查空的 chrome v56 配置文件
- 分享网址来自分享 → 嵌入来自 youtube 的文本框
- 视频加载和播放没有任何问题,即使从本地运行 html文件
- 扩展文档没有关于 限制扩展页面内的 iframe
- 协议明确定义,所以它不是error with a protocol-relative URL
- 使用 API 构建 iframe — 结果相同
Chrome 版本:
- 56.0.2924.87(64 位)- 不会播放视频,请求显示为已取消,
- 59.0.3035.0 canary(64 位)- 将播放视频,但请求显示为已取消
铬:
- 59.0.3036.0(开发者内部版本)(32 位)-将播放视频,但请求显示为已取消
【问题讨论】:
标签: google-chrome-extension youtube youtube-api