Расширение GPlayer chrome — добавление воспроизведения видео

#javascript #google-chrome #google-chrome-extension #xmlhttprequest #media-source

Вопрос:

Как некоторые могли заметить, GMail CSP больше не позволяет воспроизводить аудио-или видеофайлы. Сначала это повлияло на браузеры Chromium, но даже firefox больше не позволяет этого. Поэтому я создал расширение Google Chrome для воспроизведения mp3 и wav (мой основной вариант использования). Кто-то попросил добавить воспроизведение видео, но я не могу обойти ограничения CSP.

Я пытался XMLHttpRequest's arrayBuffer

 const request = new XMLHttpRequest();
request.open('GET', url, true);
request.responseType = 'arraybuffer';
...
request.onload = () => {
  const { readyState, status, response } = request;
  const videoHtml = location.appendChild(document.createElement("video"));
  videoHtml.classList.add("videoPlayer");
  const mediaSource = new MediaSource();
  videoHtml.src = URL.createObjectURL(mediaSource);
  mediaSource.addEventListener("sourceopen", (e) => {
    URL.revokeObjectURL(videoHtml.src);
    const sourceBuffer = mediaSource.addSourceBuffer("video/mp4");
    console.log("appending Buffer to sourceBuffer");
    sourceBuffer.addEventListener("updateend", (e) => {
      if (!sourceBuffer.updating amp;amp; mediaSource.readyState === "open") mediaSource.endOfStream();
    });
    sourceBuffer.appendBuffer(response);
  });
request.send();
 

Я тоже пытался XMLHttpRequest's blob

 const request = new XMLHttpRequest();
request.open('GET', url, true);
request.responseType = 'blob';
...
request.onload = () => {
  const { readyState, status, response } = request;
  const videoHtml = location.appendChild(document.createElement("video"));
  videoHtml.classList.add("videoPlayer");
  videoHtml.src = URL.createObjectURL(response);
request.send();
 

Оба потерпели неудачу с Refused to load media from ...because it violates the following Content Security Policy directive: "media-src https://*.googlevideo.com/videoplayback/"

Как бы я мог обойти неправильный CSP GMail для воспроизведения видео?

Расширение Chrome — https://chrome.google.com/webstore/detail/gplayer/obdmmgdlafadeehmbmcmoggnaokehnaj

Ссылка на Github — https://github.com/TriStarGod/GPlayer