【问题标题】:YouTube embedded video inside Chrome extension page appears as back rectangle in Chrome 56Chrome 扩展页面内的 YouTube 嵌入视频在 Chrome 56 中显示为后矩形
【发布时间】:2017-03-09 06:06:15
【问题描述】:

问题:

Chrome 扩展页面内的 YouTube 嵌入视频在 Chrome 56 中显示为后矩形。我们该如何解决?

演示扩展:

https://github.com/terales/youtube-not-play-in-extension-in-crome-v56

如何重现:

  1. 在 chrome://extensions/ 中加载解压的扩展
  2. 打开新标签
  3. 视频无法加载,请检查开发者工具中记录的请求

请求在“网络”选项卡中显示为已取消:

但是如果我们用 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


    【解决方案1】:

    Update from Chromium Dev:

    这可能不是我们会进行稳定推送的修复,因此您必须等到 57 稳定(应该很快)。

    错误来源

    发现网络内部错误:

    error_204
    Unknown error
    Error: Failed to construct 'IntersectionObserver': Unable to get root node in main frame to track.
        at new AZ (https://www.youtube.com/yts/jsbin/player-en_US-vflg9Wu9U/base.js:3691:122)
        at new V1 (https://www.youtube.com/yts/jsbin/player-en_US-vflg9Wu9U/base.js:3972:112)
        at V1.create (https://www.youtube.com/yts/jsbin/player-en_US-vflg9Wu9U/base.js:6964:333)
        at Bh.<anonymous> (https://www.youtube.com/yts/jsbin/www-embed-player-vflzkmSYc/www-embed-player.js:431:269)
        at Bh.k.mb (https://www.youtube.com/yts/jsbin/www-embed-player-vflzkmSYc/www-embed-player.js:431:308)
        at Fh (https://www.youtube.com/yts/jsbin/www-embed-player-vflzkmSYc/www-embed-player.js:429:143)
        at Bh.k.qa (https://www.youtube.com/yts/jsbin/www-embed-player-vflzkmSYc/www-embed-player.js:422:176)
        at https://www.youtube.com/yts/jsbin/www-embed-player-vflzkmSYc/www-embed-player.js:464:420
        at https://www.youtube.com/yts/jsbin/www-embed-player-vflzkmSYc/www-embed-player.js:69:63
    line=Not available
    level=ERROR
    

    关于此错误的问题已经结束: IntersectionObserver Error when embedding a YouTube video in an iframe

    有一个问题提交给 Chrome 团队: https://bugs.chromium.org/p/chromium/issues/detail?id=698545

    我们现在什么都做不了,等待回复。

    【讨论】:

      猜你喜欢
      • 2016-09-05
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      • 2018-06-08
      • 1970-01-01
      相关资源
      最近更新 更多