Возможно ли внедрение JS через расширение, если на странице обновлена ​​политика безопасности контента, требующая довереJavascript

Форум по Javascript
Ответить
Anonymous
 Возможно ли внедрение JS через расширение, если на странице обновлена ​​политика безопасности контента, требующая довере

Сообщение Anonymous »

Пару лет назад я написал расширение (Firefox), чтобы добавить несколько горячих клавиш на Youtube, чтобы регулировать скорость и громкость воспроизведения, чтобы я мог использовать дополнительную клавиатуру в качестве своего рода пульта дистанционного управления (через настольное приложение, фиксирующее нажатия клавиш и отправляющее их в браузер); однако несколько часов назад (после сброса обновления ОС, хотя я думаю, что это случайно) эта функция перестала работать. В консоли появляется следующая ошибка при попытке выполнить внедренный JavaScript:

Код: Выделить всё

Content-Security-Policy: The page’s settings blocked assigning to an injection sink because it violates the following directive: “require-trusted-types-for ’script’
.
Расширение работало следующим образом: при загрузке страницы оно создавало функцию, которая принимала функцию в качестве параметра, создавала элемент сценария и записывала функцию как его текстовое содержимое, а затем добавляла ее в тело документа, чтобы сделать его исполняемым. Затем в документ был добавлен сценарий «настройки», который делал доступными различные функции, предназначенные для запуска при нажатии клавиши, и, наконец, в документ был добавлен прослушиватель событий для запуска нужных функций при нужном нажатии клавиши или сценарий настройки, если он еще не инициализирован.
Если я правильно помню, шаг внедрения был необходим, потому что прослушиватель событий запускался в отдельном контексте от контекста расширения, поэтому функции не были бы виден прослушивателю событий, если не добавлен к телу документа. Однако именно этот шаг, по-видимому, и вызывает ошибку в CSP (который, как я предполагаю, был недавно обновлен, поскольку до сих пор все работало нормально).
Есть ли способ обойти CSP для расширения или способ реализовать эту функциональность в расширении без необходимости внедрения JavaScript в элемент, например, какой-то способ напрямую взаимодействовать между внешним приложением и расширением (или между page-javascript и контекстом расширения)? (Очень хакерский обходной путь размещения нужных функций в букмарклетах и ​​доступа к ним через браузер через alt-b-etc работает, хотя он не очень надежен и не очень хорошо работает при полноэкранном просмотре, и я не смог найти никаких упоминаний о возможности запуска букмарклетов напрямую через расширение)

Подробнее здесь: https://stackoverflow.com/questions/797 ... ted-the-co
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»