TamperMonkey Classic RePack : 2021.8.12
Опубликовано: Бармалей · 12.08.2021 · 00:01 ••• Обновление: 24.08.2021 · 07:33 2

Доработка исходного кода на базе оригинального расширения версии 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", … ]

Загрузка и установка

Дополнительно

Автономные аддоны Документация
Бармалей 12.08.2021 24.08.2021 268 0.0

Поделиться

Всего комментариев: 2
0
2 Бармалей 13.08.2021 • 23:04
Цитата
...будет дополнено в ближайшие дни...
..в общем, дополнил/поправил, если что-то пропустил - не стесняемся и спрашиваем в каментах..
изменений реально было много, поэтому всех подробностей не стал приводить, чтобы не утомлять читателя..))
0
1 Бармалей 13.08.2021 • 06:43
..на всякий случай продублирую ещё и здесь:
Цитата
кто будет пробовать - обратите особое внимание на первую установку - есть какой-то плавучий глючок с первым запуском страницы настроек (вкладка "утилиты" - не всегда отображается блок "текстовое поле")..
причину я хз, пока тестил он через два на третий вылезает, второй и последующий запуски = норм..
..не баг, но фича: надо просто переключить уровень с "новичка" на адванседа..)
сам дурак, в общем, надо было ещё день-другой потестить.. biggrin
close