Как встроить страницу из домена с ограничением CSP в расширение? - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь разработать простое расширение для Chrome для отображения страницы из домена Google с ограничением CSP, во всплывающем окне, открываемом при нажатии.Какой самый простой способ встроить страницу?

На странице, которую я пытаюсь внедрить, есть Политика безопасности контента (CSP), которая запрещает frame-ancestors, поэтому <iframe> страницы не будет работать.В частности, страница представляет собой боковую панель задач Google: https://tasks.google.com/embed/?origin=https://mail.google.com&fullWidth=1

Базовая версия расширения будет выглядеть следующим образом:

manifest.json

{
  "manifest_version": 2,
  "name": "Google Tasks",
  "version": "1.0",
  "description": "",
  "browser_action": {
    "default_icon": "images/tasks-19x19.png",
    "default_title": "Google Tasks",
    "default_popup": "popup.html"
  },
"permissions": [
    "contextMenus",
    "notifications",
    "tabs",
    "http://tasks.google.com/",
    "http://mail.google.com/"
  ]
}

всплывающее окно.html

<!DOCTYPE html>
<html>
  <body>   
      <iframe src="https://tasks.google.com/embed/?origin=https://mail.google.com&fullWidth=1"></iframe> 
  </body>
</html>

Этот пример приводит к этой ошибке в консоли (из-за CSP)

Refused to display 'https://tasks.google.com/embed/?origin=https://mail.google.com&fullWidth=1' in a frame because an ancestor violates the following Content Security Policy directive: "frame-ancestors https://mail.google.com".

Я понимаю, что мог перехватить CSP ( как указано )и перезаписать свойство frame-ancestors, но мне интересно, есть ли лучший способ встроить эту страницу, которую я пытаюсь вставить?

...