Greasemonkey

Расширение менеджера пользовательских скриптов для Firefox

Greasemonkey
Оригинальный автор(ы)Аарон Будман
Разработчик(и)Энтони Лиуаллен, Йохан Сундстрем, [1] еще 13 [2]
Первоначальный выпуск28 марта 2005 г. ; 19 лет назад [3] ( 2005-03-28 )
Стабильный релиз
4.13 / 5 августа 2024 г. ; 5 месяцев назад ( 2024-08-05 )
Репозиторий
  • github.com/greasemonkey/greasemonkey
Написано вJavaScript , XUL , CSS
Операционная системаКроссплатформенный
Доступно вАнглийский
ТипРасширение Mozilla
ЛицензияЛицензия Массачусетского технологического института
Веб-сайтwww.greasespot.net

Greasemonkey — это менеджер пользовательских скриптов , доступный как расширение Mozilla Firefox . Он позволяет пользователям устанавливать скрипты , которые вносят изменения в содержимое веб-страницы «на лету» после или до загрузки страницы в браузере (также известный как дополненный просмотр ).

Изменения, вносимые на веб-страницы, выполняются каждый раз при просмотре страницы, что делает их фактически постоянными для пользователя, запустившего скрипт.

Greasemonkey можно использовать для настройки внешнего вида страниц, добавления новых функций на веб-страницы (например, встраивания сравнения цен на сайты покупок), исправления ошибок рендеринга, объединения данных с нескольких веб-страниц и множества других целей.

История

Проект Greasemonkey начался 28 ноября 2004 года, написан Аароном Будманом. [4] [5] [6] Будман был вдохновлен на написание Greasemonkey после того, как посмотрел на расширение Firefox, разработанное для очистки интерфейса AllMusic , [7] написанное Адрианом Головатым , который позже стал разработчиком пользовательских скриптов. К маю 2005 года для Greasemonkey было распространено около 60 общих и 115 специфичных для сайта пользовательских скриптов. [7] В июле 2005 года серьезные уязвимости были обнаружены в Greasemonkey Марком Пилигримом, [8] [9] и исправлены в версии 3.5 Greasemonkey. [10] В это время также был разработан компилятор Greasemonkey для преобразования пользовательского скрипта в автономное расширение Firefox. [11] Первоначально Greasemonkey получил жалобы от издателей за его способность блокировать рекламу. [12] Однако эта критика переключилась на другие дополнения, начиная с выпуска Adblock Plus в 2006 году .

Userscripts.org

Чтобы разместить растущее число скриптов, в конце 2005 года Бритт Селвителл и другие члены сообщества Greasemonkey основали userscripts.org. Userscripts.org был открыт в 2007 году, но позже сайт отошел от этой кодовой базы. [13] Как основной репозиторий скриптов, указанный на официальном сайте Greasemonkey, userscripts.org накапливал тысячи скриптов в год.

В 2010 году последний известный администратор Джесси Эндрюс сообщил, что сайт находится в режиме обслуживания из-за нехватки времени, и попросил нового сопровождающего добровольно. [14] Тем не менее, он оставался единственным администратором сайта, пока 1 апреля 2013 года не началось обсуждение количества установок. [15] До этого многие из «самых популярных скриптов», перечисленных на сайте, имели номинальное количество установок, равное нулю. В течение следующего года спам-скрипты стали более распространенными, время простоя сервера увеличилось, а ошибка количества установок осталась. [16] При отсутствии дальнейших сообщений от Эндрюса, авторы пользовательских скриптов описали сайт как заброшенный, и официальный сайт Greasemonkey удалил ссылку на его главную страницу. [17] [18] В ответ авторы скриптов и другие разработчики начали работать над форком «openuserjs.org», [19] [20] а затем и greasyfork.org, [21] в качестве немедленной замены. [22]

В мае 2014 года userscripts.org стал недоступен на порту 80, что побудило пользователей вместо этого заходить на порт 8080. [16] В августе 2014 года сайт был полностью закрыт. Большинство его скриптов были скопированы на статическое зеркало userscripts-mirror.org, где их теперь можно найти. [16]

Технические подробности

Пользовательские скрипты Greasemonkey написаны на JavaScript и управляют содержимым веб-страницы с помощью интерфейса Document Object Model . Скрипты обычно пишутся либо как специфичные для страницы, либо как специфичные для домена (применяемые ко всем страницам в домене), но также могут быть помечены для применения ко всем доменам для глобальных улучшений браузера. Пользователи Greasemonkey могут писать или загружать скрипты и сохранять их в своей личной библиотеке. Когда пользователи посещают веб-сайт, соответствующий скрипту в их личной библиотеке скриптов, Greasemonkey вызывает соответствующие скрипты.

Скрипты Greasemonkey могут изменять веб-страницу любым способом, который позволяет JavaScript, с определенными ограничениями безопасности Greasemonkey. Скрипты также могут получать доступ к другим веб-страницам и веб-сервисам через не ограниченный доменом XMLHTTP- запрос, позволяя объединять внешний контент с исходным контентом страницы.

Скрипты называются somename .user.js, и Greasemonkey предлагает установить любой такой скрипт, когда запрашивается URL, заканчивающийся на этот суффикс. Скрипты Greasemonkey содержат метаданные , которые определяют имя скрипта, описание, ресурсы, требуемые скриптом, URL пространства имен , используемый для различения скриптов с одинаковыми именами, и шаблоны URL, для которых скрипт должен вызываться или нет.

Написание скрипта Greasemonkey похоже на написание JavaScript для веб-страницы с некоторыми дополнительными возможностями, такими как межсайтовые XMLHttpRequests . По сравнению с написанием полноценного расширения Firefox, написание пользовательских скриптов — это очень скромный шаг по сложности от базового веб-программирования. Однако скрипты Greasemonkey ограничены из-за ограничений безопасности, налагаемых XPCNativeWrappers от Mozilla [23]. Например, скрипты Greasemonkey не имеют доступа ко многим компонентам Firefox, таким как менеджер загрузок, процессы ввода-вывода или его основные панели инструментов. Кроме того, скрипты Greasemonkey запускаются для каждого экземпляра соответствующей веб-страницы. Из-за этого сложно управлять списками элементов на глобальном уровне. Однако авторы скриптов используют файлы cookie, и Greasemonkey даже предлагает API, такие как GM_getValue и GM_setValue, чтобы преодолеть это.

Пользовательские скрипты

Файловые хостинговые серверы для Greasemonkey требуют, чтобы URL-адреса для скриптов заканчивались на .user.js, а не на тип MIME, например text/html. Поддержка HTTPS будет соответствовать [ необходимо разъяснение ] встроенной проверке обновлений Greasemonkey. По состоянию на июль 2019 года проект Greasemonkey перечисляет три рекомендуемых хостинга пользовательских скриптов: [24]

Совместимость

Greasemonkey доступен для Firefox , Flock и GNOME Web (ранее называвшегося Epiphany). Расширение Greasemonkey для Web является частью пакета расширений Web . Однако это расширение не полностью совместимо с версией 2.15.1, поскольку некоторые функции API Greasemonkey (например, GM_getValue ) не поддерживаются. Существуют также пользовательские версии для SeaMonkey , [25] [26] Songbird , [27] Pale Moon , [28] qutebrowser , [29] и браузера Falkon .

Смотрите также

Ссылки

  1. ^ boots (23 августа 2009 г.). "Greasespot: Outie". Greasespot .
  2. ^ "Граф сети Greasemonkey". GitHub .
  3. ^ "История версий – GreaseSpot Wiki". wiki.greasespot.net .
  4. ^ "Greasemonkey Project Info". Архивировано из оригинала 25 марта 2012 года . Получено 31 августа 2011 года .
  5. ^ Пилигрим, Марк (2005). Greasemonkey Hacks. O'Reilly. ISBN 978-0-596-55357-9.
  6. ^ Будман, Аарон (1 февраля 2010 г.). «Еще 40 000 расширений!». Блог Chromium . Получено 5 марта 2023 г.
  7. ^ ab Singel, Ryan (17 мая 2005 г.). «Пользователи Firefox балуются с Интернетом?». Журнал Wired.
  8. ^ "[Greasemonkey] Greasemonkey для защищенных данных в незащищенных сетях / Сайты". Архивировано из оригинала 3 марта 2020 г. Получено 24 февраля 2021 г.
  9. ^ «Безопасность [LWN.net]».
  10. ^ "mozdev.org – : /pipermail/greasemonkey/2005-July/004379". mozdev.org . Архивировано из оригинала 29 июля 2005 г.
  11. Nivi (8 мая 2005 г.). «Greasemonkey взорвет бизнес-модели (а также ваш разум)». Архивировано из оригинала 3 июня 2006 г. Получено 22 июля 2010 г.
  12. ^ Феста, Пол (24 марта 2005 г.). «Дополнение Firefox позволяет серферам настраивать сайты, но безопасно ли это?». CNET.
  13. ^ Selvitelle, Britt (3 января 2007 г.). "Userscripts.org... Opensource!". Архивировано из оригинала 17 января 2007 г. Получено 21 мая 2014 г.
  14. ^ "Передача факела на userscripts.org". Hacker News . 2010. Получено 24 октября 2014 .
  15. ^ "Fixing Install Counts". 1 апреля 2013 г. Архивировано из оригинала 3 ноября 2013 г. Получено 21 мая 2014 г.
  16. ^ abc Brinkmann, Martin (9 мая 2014 г.). "Userscripts.org закрыт навсегда? Вот альтернативы" . Получено 21 мая 2014 г.
  17. ^ "Хостинг пользовательских скриптов". 16 мая 2014 г. Получено 21 мая 2014 г.
  18. ^ "Пожалуйста, измените официальный сайт userscript". greasemonkey-dev (список рассылки). 21 апреля 2014 г. Получено 21 мая 2014 г.
  19. ^ ab "OpenUserJS". openuserjs.org .
  20. ^ ab "Fixing Install Counts – Page 6". 1 апреля 2013 г. Архивировано из оригинала 3 ноября 2013 г. Получено 5 ноября 2015 г.
  21. ^ ab "Жирная вилка". greasyfork.org .
  22. ^ Barnabe, Jason (19 февраля 2014 г.). «Представляем Greasy Fork – сайт пользовательских скриптов» . Получено 5 ноября 2015 г.
  23. ^ "XPCNativeWrapper – MDC Docs". Архивировано из оригинала 28 июня 2011 г. Получено 16 марта 2011 г.
  24. ^ "Хостинг пользовательских скриптов – GreaseSpot Wiki". wiki.greasespot.net . Получено 22 июля 2019 г. .
  25. ^ "Greasemonkey". mozdev.org . mozdev . Архивировано из оригинала 23 апреля 2015 г. Получено 5 мая 2009 г.
  26. ^ "Порт Greasemonkey для SeaMonkey – О проекте – OpenUserJS". openuserjs.org .
  27. ^ ianloic. "Greasemonkey". Songbird . Архивировано из оригинала 2 июня 2008 года . Получено 5 мая 2009 года .
  28. ^ "janekptacijarabaci/greasemonkey" . Гитхаб . Проверено 23 марта 2020 г.
  29. ^ "Улучшения поддержки GreaseMonkey · Проблема № 3238 · qutebrowser/qutebrowser". GitHub . Получено 19 мая 2020 г. .

Медиа, связанные с Greasemonkey на Wikimedia Commons

  • Официальный сайт
Взято с "https://en.wikipedia.org/w/index.php?title=Greasemonkey&oldid=1244878496"