Важные изменения и доработка линейки Micro Plus : Context Menu Mod с расширенным функционалом.
Билд ветки только с контекстным меню страницы (без функций кнопок в омнибоксе и/или на тулбаре).
Вызов только из контекстного меню, другие методы не используются.
Часть текущих изменений сделана в соответствии с "роадмапом", часть – на основе фидбэка пользователей.
Добавленные функции проверены и отлажены, однако, не исключаются и всевозможные "нюансики".)
Проверка работоспособности: SRWare Iron 49 и 360 Extreme Explorer 12 (CR78).
Версия может конфликтовать с другими менеджерами загрузок.
Эта версия предназначена для браузеров версий 31+, на более старых корректно работать НЕ будет!
Основные изменения:
- из кода и меню удалена вся привязка к неработающему с мая 2020 года архиву расширений CWS crx.dam.io:
- удалены пункты для просмотра исходника со страниц CWS и по ссылкам на них;
- удалены пункты перехода на страницы архивных копий расширений из CWS и по ссылкам на них;
- функция автопересылки в архив со страниц выпиленных из CWS аддонов теперь перебрасывает в архив crx4chrome – шанс найти там необходимую версию меньше, но уж что есть…
- из меню удалена опция настроек "
Просмотр изходного кода в архиве", также она удалена* из localStorage;
* если настройка была установлена, она автоматически удаляется при обновлении предыдущей версии.
- примечание: если этот архив снова "оживёт", все "выпиленные" функции можно будет вернуть обратно…
- добавлена функция просмотра исходного кода по любым прямым ссылкам:
- работает с любыми прямыми ссылками на файлы расширений (оканчивающиеся на *.crx, *.oex, *.nex, *.xpi);
- на всякий случай – просмотрщик также поддерживает формат *.zip, но "в нашем случае" его применение неоправданно в силу слишком большой вероятности "неправильного" восприятия произвольных архивов как расширений;
- в контекстном меню (ПКМ) таких (прямых) ссылок появляется пункт "Смотреть исходный код файла";
- при выборе пункта эти файлы открываются в отдельной вкладке в он-лайн просмотрщике RobWu-CRX-viewer;
На браузерах версий старше 49 просмотрщик работает не всегда корректно – связано с отдельными функциями скриптов этого ресурса, неподдерживаемыми в "старых арбузах";
- добавлен новый пункт меню настроек "Формат CRX по версии браузера":
- работает только для загрузок из гуглозина (со страниц и по ссылкам);
- опция работает как переключатель, по умолчанию – ВКЛючено;
- при включённой опции в строку запроса подставляется текущая мажорная версия браузера;
- если отключено – как и в предыдущих билдах, в запросе указывается "&prodversion=100";
- эта опция имеет более высокий приоритет, чем настройка "Формат CRXv2 (для версий до CR63)" (см. ниже), при её выборе в строке запроса НЕ указывается в принципе никакого конкретного формата CRX – так же, как это и было в предыдущих билдах при установке опции "
Совместимый формат CRX (v2+v3)";
- при ВКЛючении этой настройки (чисто теоретически) гуглозин должен автоматически "отдавать" CRX-файл именно в том формате, который поддерживается текущим клиентом, но при этом нет, однако, никакой гарантиии, что это будет работать на любых хромоклонах…)
В частности:
- на SRware Iron 49 при включённом автоопределении всегда скачивается CRXv2 (как и положено);
- на 360 Extreme Explorer 12 (CR78) при включённом автоопределении также всегда скачивается CRXv2; :)
- в обоих случаях – при отсутствии в гуглозине файла в формате CRXv2 выдаётся сообщение об ошибке и последующий запрос на принудительную загрузку файла в CRXv3;
С чем именно связаны такие "неопределённости" – пока неясно, просто принимаем как факт.
- пункт меню "
Совместимый формат CRX (v2+v3)" переименован в "Формат CRXv2 (для версий до CR63)":
- изменённая опция так же, как и предыдущая, работает только для гуглозина;
- эта опция, так же, как и её "предок", работает как переключатель, по умолчанию – ВЫКЛючено;
- при обновлении с предыдущей версии настройка "выпиленной" опции (если её меняли вручную) автоматически "передаётся по наследству", а соответствующий ключ в localStorage автоматически заменяется на новый;
- эта опция недоступна и не влияет на запрос формата CRX-файла, если включена более приоритетная настройка "Формат CRX по версии браузера" (см. выше);
- если эта опция ВЫКЛючена И также ВЫКЛючена опция "Формат CRX по версии браузера" – строка запроса файла содержит параметр "&acceptformat=crx3";
- при включении этой опции теперь принудительно* запрашивается файл в формате CRXv2:
строка запроса содержит конкретное указание единственного формата – "&acceptformat=crx2"
* Раньше загружался "совместимый" v2+v3, но теперь эта фича, похоже, по-тихому выпилена из гуглозина;
Ранее используемый параметр "&acceptformat=crx2,crx3" (загрузка совместимого переходного формата) больше не используется ни при каких настройках – проверено на разных комбинациях, не работает он теперь, только путаницу вносит – при его указании с любыми другими параметрами строки запроса из гуглозина устойчиво загружается CRXv3…
- суммируя – чтобы однозначно запросить и скачать CRX-файл нужного формата, следует:
- для загрузки CRXv2: ВКЛючить опцию "Формат CRXv2 (для версий до CR63)" и ВЫКЛючить опцию "Формат CRX по версии браузера";
- для загрузки CRXv3: ВЫКЛючить обе опции "Формат CRXv2 (для версий до CR63)" и "Формат CRX по версии браузера";
- при всех остальных комбинациях определение формата загрузжаемого файла зависит
от погоды на луне происходит автоматически, но опция "Формат CRX по версии браузера" всегда имеет более высокий приоритет;
- в любом случае – помним, что "неисповедимы пути" гуглозина и всегда есть шанс "нарваться" на ошибку загрузки, для обхода которой предназначена следующая функция…
- для обработки возможных ошибок загрузки файлов из CWS в формате CRXv2, отсутствующих для отдельных новых расширений (пример такого аддона), добавлена функция принудительной загрузки аддона в формате CRXv3:
- работает только для загрузок из гуглозина (и по ссылкам на него);
- ошибка (предположительно) связана с изменение текущей политики гуглозина в части планомерного "гнобления" достаточно старых версий браузеров;
- косвенным признаком возможного появления ошибки загрузки файла в формате CRXv2 может служить соответствующая надпись на кнопке установки расширения на странице CWS – "Не поддерживается" ("Not compatible");
- вызывается при подтверждении в диалоге сообщения об ошибке при попытке скачать файл в CRXv2;
- при этом, независимо от текущих настроек "воровайки", всегда запрашивается файл в CRXv3;
- в некоторых случаях функция может не срабатывать – например, если для загрузки требуется вход в аккаунт Google, нужно будет сначала залогиниться на гуглозине в таком аккаунте (если он у вас есть). В таких случаях выдаётся другое диалоговое окно (как и было в предыдущих билдах).
- по "просьбам трудящихся" добавлен пункт меню "Не добавлять CRXv* к имени файла":
- работает только для загрузок из гуглозина (и по ссылкам на него);
- опция работает как переключатель, по умолчанию – ВЫКЛючено (признак версии добавляется);
- при включении опции добавки к имени как для CRXv2, так и для CRXv3 будут отсутствовать, в имени файла останется только имя и номер версии;
- если отключено – в конец имени файла, перед расширением, будет автоматически добавляться _(CRXv2) для файлов старого формата, и, соответственно _(CRXv3) для нового;
- какой именно из форматов прописывается – пока определяется упрощённо, по настройкам:
- v2 добавляется автоматически, для всех загружаемых файлов, если ВКЛючена опция "Формат CRXv2 (для версий до CR63)", в противном случае – с учётом текущей версии браузера при ВКЛюченной опции "Формат CRX по версии браузера" – для версий до 63 автоматически, для всех загружаемых файлов;
- во всех остальных случаях автоматически ставится v3, опция "Формат CRX по версии браузера" при этом имеет более высокий приоритет;
- также по "просьбам трудящихся" добавлены пункты меню, отвечающие за формирование имени конечного файла:
- "Разделитель слов в имени файла" позволяет при формировании имени конечного файла "расклеить" отдельные слова (взятые по названию аддона) любым желаемым способом, в том числе – пробелом;
- "Разделитель имени и версии файла" позволяет изменить символ-разделитель (по умолчанию – символ подчёркивания) на любую желаемую последовательность, в том числе – на пробел;
- оба пункта работают глобально, влияют на формирование имён файлов из любого репозитория;
- оба пункта имеют в меню отображение текущих символов разделителей, заданных пользователем;
- в обоих пунктах есть ограничения на ряд символов, запрещённых регуляркой:
/[:,;"\*\\/\u2122\u00AE\|<>='\u2013-]/g
Это сделано во избежание ошибок из-за создания некорректных имён файлов при сохранении, при вводе таких символов они будут автоматически удалены (для разделителя имени) или преобразованы в одиночный символ подчёркивания (для разделителя имени и версии);
- во избежание "непоняток":
- символ дефиса запретен, так как это напрямую связано с общей регуляркой преобразования исходного имени файла в "человеческий" вид;
- вопросительный знак в последовательность не включён в силу того, что его запрет вполне очевиден и без этого, но если "к нам поступят жалобы" – добавим…)
- желающие могут самостоятельно исправить регулярку (строка 44 в текущей версии get_crx_file.js), либо аргументированно доказать автору её неправильность в комментариях…)
Прочие изменения:
- в манифесте изменён адрес авторского сайта с форума Ru-Board на этот сайт…
- немного оптимизирован код отдельных функций, вроде, ничего не поломал при этом…))
Скриншоты:
Общий вид Настроек для текущей версии:
[Копия скриншота]
Пример меню для просмотра исходника по прямой ссылке на расширение:
[Копия скриншота]
Диалог принудительной загрузки файла расширения в формате CRXv3:
[Копия скриншота]
Диалог возможной причины ошибки загрузки файла расширения из CWS без авторизации:
[Копия скриншота]
Диалог изменения разделителя слов в имени загружаемого файла:
[Копия скриншота]
Диалог изменения разделителя имени и номера версии загружаемого файла:
[Копия скриншота]
История и обсуждение
Общие технические сведения
- Технологии и API:
Чистый JavaScript (ES5), API: contextMenus, downloads, clipboardRead
- Запрашиваемые разрешения:
[ "activeTab", "contextMenus", "downloads", "clipboardRead", "" ]
Загрузка и установка
Дополнительно
|