Доработка исходного кода на базе оригинального расширения версии 4.9 от 15.11.2019.
Исправлены мелкие "огрехи" оригинала, изменены стили оформления элементов и русский перевод.
С этой версии вводится их новая нумерация и новый брэнд – TamperMonkey Classic RePack (ID прежний).
Проверка работоспособности: SRWare Iron 31/36/49 + 360 Extreme Explorer 9/11/12/13 (CR63/69/78/86) + Chromium 87.
Эта версия предназначена для браузеров версий 31+, на более старых корректно работать НЕ будет!
Эта версия предоставляется только для ознакомительного частного использования!
Основные изменения:
- произведён ребрэндинг имени форка, теперь аддон называется TamperMonkey Classic* RePack;
* Добавка "Classic" подчёркивает его гарантированную работоспособность на старых версиях браузеров. И хотя на сайте оригинала красуется гордая надпись про поддержку версий CR31+, оригинальный ТМ давно уже не может работать на этой версии в силу применения в нём множества функций ES6. А русский форк – может. И вполне успешно и шустро… :)
- из исходного кода модулей полностью удалена гуглоаналитика и все функции "анонимной* статистики";
* В том числе – из Настроек удалён соответствующий пункт, не используемый в репаке.
- из файла инжектора (встраивается в страницы вкладок) удалена вся гуглоаналитика и отсылка* данных;
* Нарушение приватности, работала всегда и независимо от настройки сбора анонимной статистики.
- изменена логика работы при первом запуске, обновлении, удалении расширения – убрана статистическая переадресация на сайт ТМ, отслеживающая* версию и состояние аддона;
* В оригинале работает независимо от настроек, даже при отключенном выводе сообщений.
- в меню попапа добавлена кнопка запуска перезагрузки* аддона (полной или только фоновый процесс);
* Справа от кнопки вызова окна Настроек ("⁂"), при нажатии выдаётся запрос на подтверждение перезагрузки, перезагрузка производится только после щелчка по полю сообщения (защита от случайного нажатия). Если подтверждения нет в течение 10 секунд, уведомление автоматически закрывается.
Если по этой кнопке (в попапе) щёлкнуть с зажатой клавишей ALT, вместо перезапуска фонового скрипта будет произведена полная перезагрузка аддона. Соответственно, меняется и текст всплывающего уведомления.
Обе функции предназначены для повышения оперативности устранения ошибок в работе TM·CR и могут быть полезны, если "что-то пошло не так" и расширение работает неправильно.
- в Настройки добавлена опция уровня внутреннего консольного* логирования, 5 вариантов;
* Последняя в блоке общих настроек, "Уровень вывода сообщений консоли", по умолчанию = отключено.
Зачем/почему – шибко уж "говорливый" код у оригинала, пишет логи на каждый пук и чих.))
В принципе – это полезно, но теперь можно регулировать консольный вывод по уровню важности или отключить совсем, если "я в этом ничего не понимаю" (теперь по умолчанию сообщения отсутствуют, могут быть только стандартные выдачи при ошибках, от самого браузера).
- доработаны и изменены отдельные стили, устранены несоответствия* стандарту CSS2;
* Проявлялись в виде неотображаемых иконок, кривого шрифта надписей. Кроме того, в CR31 приводили к массовым предупреждениям в консоли. Все нестыковки заменены на аналоги CSS2, теперь в CR31 проблемы со стилями отсутствуют.
- упрощена отрисовка иконок, из пакета полностью удалён* подгружаемый шрифт Awesome Pro и его стили;
* Зачем/почему – используемый в оригинале формат шрифта (woff2**) поддерживается только браузерами CR36+, это приводило к кривому отображению интерфейса в более ранних версиях (CR31+), вплоть до полного отсутствия иконок на странице Настроек и в попапе. В русском форке для отрисовки всех иконок теперь используются только стандартные html‑символы псевдографики, это работает без ошибок даже на древней 31-й версии.)
** Да, можно было сконвертировать в формат woff, но после пробной замены часть иконок всё равно не отображалась…
- шрифт интерфейса заменён* на стандартный, вместо "модного" Roboto используется обычный Arial или Segoe UI;
* Сделано для ускорения отрисовки и уменьшения возможных проблем с нестандартными шрифтами в WinXP+.
- заменены/удалены некоторые ненужные* ресурсы, заменены графические файлы иконок, сокращено их число;
* Попутно оптимизированы/упрощены функции работы с иконками и вывода графики в целом.
- заменены некоторые файлы иконок, подгружаемых* из сети, повышена "отзывчивость" и скорость работы страницы Настроек;
* В частности, постоянно подгружалась одна из иконок, отображающая режим Chromium, заменена на статику в base64.
- в попапе нерабочие ссылки с аналитикой заменены на прямые ссылки на сайт ТМ (FAQ/Справка)*;
* Дополнительно добавлена ссылка на ченчлог текущей версии репака (✪ рядом со Справкой, откроет эту страницу).
Аналогично и в Настройках – блок с логотипом и номером версии в левом верхнем углу.
- в попапе общая ссылка на отправку баг-репорта заменена* на этот сайт (на страницу описания);
* Зачем/почему – не думаю, что автор оригинального ТМ будет поддерживать ещё и работу этого форка. :))
- в меню попапа ссылка на сайт ТМ (поиск) заменена на группу ссылок, непосредственно* на поисковые ресурсы;
* Поиск по домену текущей вкладки напрямую на UserScriptsZone, GreasyFork, OpenUserJS, UserScriptsMirror.
- исправлена* функция вывода иконок на всплывающих уведомлениях, теперь корректно показывает и в CR31+;
* В оригинале имелась ошибка отрисовки canvas, проявлявшаяся на всех браузерах – при некорректном конвертировании изображений в формате base64.
- в блоке облачной синхронизации для русской локали по умолчанию* выбирается Яндекс.диск вместо Google.Drive;
* Определяется по текущему языку браузера, независимо от настроек языка в аддоне.
- из комплекта репака удалены все локали, кроме русской/английской, как ненужные* для "наших людей" :))
* Если кому-то вдруг потребуется вернуть китайскую локаль – просто скопируйте её из оригинальной версии (при необходимости можно взять их из установщика оригинальной версии 4.9) и переключите язык на "Browser Default". При этом добавленные сообщения, отсутствующие в неподдерживаемых в форке локалях, будут выведены на английском.
Прочие изменения:
- изменён код части функций, исправлены* ошибки, приводящие к неработоспособности на версиях CR31/49;
* Подробно не расписываю, но их было достаточно много…))
- по ходу работы над кодом поправлены некоторые некорректные* переводы в русской локали;
* Неправильные, напрямую через "гуглапиревотчег", или непонятные (в английской локали они корректнее)).
- изменена лицензия* форка, теперь аддон предоставляется только для ознакомительного частного использования;
* Связано с изменением лицензии оригинала ТМ с GNU GPLv3 на проприетарную (это произошло в 2019 году, уже после выпуска базовой версии в феврале 2014 года). Теперь русский форк в целом предоставляется по ограниченной лицензии, лицензия на код всех добавленных в репак функций не изменена (GNU GPLv3).
- как и в оригинале, исходный код аддона частично обфусцирован* (плагином JSTool для Notepad++);
* Может быть легко развёрнут вами самостоятельно для облегчения его читаемости при исследованиях или при возможных доработках. Вообще говоря, это некритично для опенсорса, в этом я только следую принципам разработчика оригинала…)
- из манифеста удалён URL обновления из гуглозина (всё равно не будет работать из-за смены ID расширения);
- попутно с "ребрэндингом" имени аддона заменены его иконки (синий цвет, переворот по горизонтали);
- из оригинала удалены лишние файлы, общий размер пакета уменьшен почти в 1,5 раза.
Известные проблемы:
Скриншоты:
Блок аддона на странице управления расширениями в браузере:
Блок оперативного управления из попапа на фоне окна Настроек:
Блок общих Настроек с новой опцией – уровень внутреннего логирования консоли:
Уведомление-запрос о перезапуске фонового скрипта ТМ:
Уведомление-запрос о полной перезагрузке расширения:
История и обсуждение
Общие технические сведения
- Технологии и API:
Чистый JavaScript (ES5), API: runtime, tabs, browserAction, notifications, contextMenus, webNavigation, webRequest, storage, clipboardWrite, cookies, downloads
- Запрашиваемые разрешения:
[ "notifications", "unlimitedStorage", "tabs", "contextMenus", "webNavigation", "webRequest", "storage", "clipboardWrite", "cookies", "downloads", … ]
Загрузка и установка
Дополнительно
|