Gmail 无法在 Google Chrome 91.0.4472.77(64 位)上播放 mp3
Gmail not playing mp3s on Google Chrome 91.0.4472.77 (64 bit)
我们在 Gmail 中接收 mp3 语音邮件。从今天开始,所有使用 Google Chrome 的计算机都无法播放 Gmail 中的 mp3。这不会影响其他托管 mp3 的站点。
进一步检查后,控制台报告:
Refused to load media from 'https://mail.google.com/mail/u/...' because it violates the following Content Security Policy directive: "media-src https://*.googlevideo.com/videoplayback/".
Gmail 是否没有遵循其新的 CSP 政策?除了简单地下载和播放文件之外,还有其他解决方法吗?
使用内容安全策略指令 media-src https://*.googlevideo.com/videoplayback/
,来自不同于 https://*.googlevideo.com/videoplayback/
来源的媒体文件无法在嵌入页面的 <video>
/<audio>
标签中播放.
即使您通过 ajax 加载媒体并使用 blob:-Url 创建 <audio>
标签,它也会 be blocked 上面的 CSP。
它不依赖于浏览器,这就是 CSP 的工作方式。
根据当前的 CSP 限制,媒体文件只能在独立的浏览上下文中播放,例如 <iframe>
/<object>
/<embed>
.
我不知道 GMail 是有意还是偶尔这样做,但只有使用嵌套浏览上下文的浏览器扩展才能在这种情况下播放媒体。
最后,我创建了一个带有 XMLHTTPRequest
的 Chrome 扩展来绕过 CSP 并在不直接下载的情况下播放 mp3。
我发布了一个名为 GPlayer 的 Chrome 扩展。正在等待 Google 批准。我相信未来 link 是 https://chrome.google.com/webstore/detail/obdmmgdlafadeehmbmcmoggnaokehnaj
Github link - https://github.com/TriStarGod/GPlayer
我们在 Gmail 中接收 mp3 语音邮件。从今天开始,所有使用 Google Chrome 的计算机都无法播放 Gmail 中的 mp3。这不会影响其他托管 mp3 的站点。
进一步检查后,控制台报告:
Refused to load media from 'https://mail.google.com/mail/u/...' because it violates the following Content Security Policy directive: "media-src https://*.googlevideo.com/videoplayback/".
Gmail 是否没有遵循其新的 CSP 政策?除了简单地下载和播放文件之外,还有其他解决方法吗?
使用内容安全策略指令 media-src https://*.googlevideo.com/videoplayback/
,来自不同于 https://*.googlevideo.com/videoplayback/
来源的媒体文件无法在嵌入页面的 <video>
/<audio>
标签中播放.
即使您通过 ajax 加载媒体并使用 blob:-Url 创建 <audio>
标签,它也会 be blocked 上面的 CSP。
它不依赖于浏览器,这就是 CSP 的工作方式。
根据当前的 CSP 限制,媒体文件只能在独立的浏览上下文中播放,例如 <iframe>
/<object>
/<embed>
.
我不知道 GMail 是有意还是偶尔这样做,但只有使用嵌套浏览上下文的浏览器扩展才能在这种情况下播放媒体。
最后,我创建了一个带有 XMLHTTPRequest
的 Chrome 扩展来绕过 CSP 并在不直接下载的情况下播放 mp3。
我发布了一个名为 GPlayer 的 Chrome 扩展。正在等待 Google 批准。我相信未来 link 是 https://chrome.google.com/webstore/detail/obdmmgdlafadeehmbmcmoggnaokehnaj
Github link - https://github.com/TriStarGod/GPlayer