Pull to refresh

Comments 15

Тема не раскрыта. Раньше доступ к скриптам страницы из контекста расширения был через использование небольшого костыля, но недавно эту уязвимость исправили.
Ну. Этот механизм не использует никакие уязвимости, всё законно. Правда, не удивлюсь, если в очередном обновлении Chrome запретит создавать элемент «script».
Это понятно, но по заголовку ожидал увидеть именно механизм прямого обращения расширения к JS сайта. Но похоже всё таки придётся переделывать своё расширение на общение через евенты.
UFO just landed and posted this here
Да, я упомянул о том, что можно избавиться от промежуточных элементов, используя события. И, наверное, всегда лучше использовать этот механизм, но не обязательно же)
К сожалению, этот способ больше не работает.
UFO just landed and posted this here
Возможно я что-то делаю не совсем так, ибо подобных примеров не встречал в документации, а делал велосипед самостоятельно. Но суть в том, что раньше легко удавалось пробросить объект window из расширения на страницу сайта, и обратно, а сейчас, при попытке сделать тоже самое, возвращается свой window, а не чужой.
UFO just landed and posted this here
И в чем новизна вашего решения? Вы из таких скриптов всё равно не получите доступа к скриптам расширения.
Решение известное и для опытных разработчиков очевидное, но, например, просто взять и найти его в гугле было нельзя. Почему бы его не задокументировать?
Работает ли способ в последней версии Chrome?
Да, должен работать везде и всегда. Проверял на последнем хроме под win и os x.
Хм. Занятно. Я когда была была необходимость пропатчить из плагина процедуру на странице навелосипедил другой вариант:
В плагине весь патчер сворачивался в одну длинну-предлинную строку, в которой ссылка на оригинальный метод сохранялась в переменную, объявлялся прокси-метод с именем подменяемого, вызывающий как оригнальную процедуру так и «стучащий» об этом плагину через window.postMessage. А потом плагин успешно скармливал патчер странице заставив ее перейти по адресу «javascript:(function(){а_тут_идет_код_патчера_;})();». Слегка гемморойно сворачивать патчер в одну строчку, но зато обходило все ограничения по доступу без проблем.
Собственно к чему это я… А, вспомнил! По каким-то причинам из плагина создать элемент script не удавалось, уже и не вспомню по каким. А через location работало «на ура».
Sign up to leave a comment.

Articles

Change theme settings