Вопрос или проблема
Я искал расширение, которое позволяло бы мне изменить все шрифты на странице на один шрифт по моему выбору. Я нашел одно такое расширение, но у него есть только встроенный список собственных шрифтов, и он не позволяет его настроить. Поэтому я распаковал его XPI, нашел список шрифтов, изменил его, и теперь хочу сделать это собственное расширение только для себя. Но оно не работает, потому что новый хеш файла не совпадает со старым хешем в манифесте.
Раньше можно было отключить проверку подписей расширений, но теперь это обязательно.
Похоже, что единственный способ установить его – это загрузить его на AMO (addons.mozilla.org) и забрать после подписания. Но что, если я не хочу этого делать?
- Я не хочу подписывать расширение, которому доверяю;
- Отправка конфиденциальной информации в публичный репозиторий дополнений – это неприятная мысль (я не хочу, чтобы кто-то узнал, что я тайно люблю Comic Sans);
- А если у меня нет интернет-соединения? Я имею в виду, да, это браузер, но все же представьте себе этот сценарий. Может быть, я просматриваю локальные страницы, или, может быть, инопланетяне уничтожили AMO. Или, возможно, моя страна заблокировала весь домен;
- Мне не важно иметь дело с потенциальными конфликтами некоторых метаданных/иконок/шрифтов от другого разработчика или использовать защищенные авторским правом данные. Это просто для меня, я не пытаюсь ничего украсть или заработать на этом.
Какие у меня есть варианты, чтобы заставить это собственное расширение работать без всех этих проблем?
Есть два альтернативных варианта:
-
Установить такое дополнение, как Greasemonkey/Userscript, чтобы вы могли внедрять CSS на любом веб-сайте (например, изменяя атрибут стиля
font
) -
Разработать свой XPI и отключить проверку подписи (вы можете снова включить проверку подписи позже для безопасности) и установить его согласно этому посту на stackoverflow.
Ответ или решение
К сожалению, начиная с Firefox 57 (Quantum), Mozilla ввела обязательную проверку подписи для всех расширений. Это значит, что если вы хотите установить свое собственное расширение в Firefox, вам нужно будет его подписать. Тем не менее, существуют несколько обходных путей, которые могут помочь вам установить ваше собственное расширение без необходимости отправлять его на AMO или использовать интернет-соединение.
Вот несколько вариантов:
1. Использование пользователей скриптов и расширений, таких как Greasemonkey или Tampermonkey
Эти расширения позволяют вам запускать пользовательские скрипты на любых веб-сайтах. Вы можете создать скрипт, который будет внедрять CSS на страницы, что позволит вам изменить шрифты на веб-страницах по вашему выбору, не модифицируя расширение напрямую. Это гораздо менее хлопотно и не требует знания о создании полнофункциональных расширений.
Пример простого скрипта для изменения шрифтов может выглядеть так:
// ==UserScript==
// @name Custom Font Changer
// @namespace http://your.namespace/
// @version 0.1
// @description Меняет шрифт на выбранный
// @match *://*/*
// @grant GM_addStyle
// ==/UserScript==
GM_addStyle(`
body {
font-family: 'Comic Sans MS', sans-serif !important;
}
`);
2. Разработка пользовательского расширения с отключенной проверкой подписи
Для этого способа вам потребуется временно отключить проверку подписи расширений в Firefox. Это можно сделать, запустив браузер с определенным параметром командной строки (но имейте в виду, что это может повлиять на безопасность вашего браузера).
- Закройте Firefox.
- Запустите его с параметром
--unsafe-extension
, который отключит проверку подписи. - Установите ваше расширение, как обычно.
- После установки вы можете снова запустить Firefox без этого параметра для обеспечения большей безопасности.
3. Локальное развитие с использованием Firefox Nightly или Developer Edition
Если вы разработчик, вы можете воспользоваться Firefox Nightly или Firefox Developer Edition, где у вас есть возможность загружать неподписанные расширения. Эти версии браузера имеют функциональность, которая позволяет загружать и тестировать ваши локальные расширения без необходимости их подписывать. Однако имейте в виду, что это может быть не самая стабильная версия браузера.
Заключение
Выбор подходящего метода зависит от ваших потребностей и уровня комфорта с программированием и настройкой браузера. Если вас больше интересует простота, использование инструмента для пользовательских скриптов, такого как Greasemonkey, будет наиболее подходящим решением. В случае необходимости гибкости и контроля над расширением следует рассмотреть возможность временного отключения проверки подписи или использование специальной версии Firefox для разработчиков.