В материале описаны отличия от аналогов, условия и особенности работы расширения Download + Actions • CR.RU, указаны требования к клиентскому браузеру и пути решения возможных проблем, приведены некоторые технические подробности по разработке. В этой статье:
Особенности и отличия русского форкаВ отличие от оригинального расширения "Download + Actions • CR.RU" имеет следующие особенности:
Требования к клиентскому браузеруДля полноценной работы расширения требуется версия браузера не ниже 30. Это требование обусловлено использованием части функций API управления загрузками, поддержка которых в более старых* версиях браузеров отсутствует. Такая поддержка гарантированно доступна во всех браузерах на движке Chromium версий 31+, независимо от производителя браузера (в некоторых хромоклонах в качестве экспериментальной возможности присутствует с версий 30+). * В рамках этого проекта была выпущена универсальная Lite-версия, не имеющая каких-либо "нижних" ограничений по версии браузера, связанных с применением API управления загрузками. Снятие ограничений стало возможным путём урезания некоторых второстепенных функций аддона: эта вариация в принципе может работать на любых браузерах с поддержкой API загрузок, однако, её работоспособность в версиях браузеров ниже 29 автором не проверялась. Дальнейшее развитие этой линейки не предусматривается в силу её неактуальности на текущий момент. Исходя из сказанного выше, вы можете самостоятельно проверить работу расширения на любой "раритетной" версии браузера. При этом следует убедиться в отсутствии каких-либо системных консольных ошибок путём включения и последующего тестирования каждой из опций в Настройках, в противном случае никакие претензии по нерабочести отдельных функций аддона автором рассматриваться не будут. Условия и особенности применения расширенияПри использовании "Download + Actions • CR.RU" следует помнить о некоторых возможных ограничениях. • Конфликт со встроенным менеджером загрузки браузера Возможен в браузерах, имеющий встроенный продвинутый загрузчик. Связано с "борьбой за власть" между возможными пересекающимися настройками встроенного менеджера и расширения. Вероятнее всего при этом "победит" встроенный загрузчик, хотя и не факт…) Решение очевидно: внимательно проверьте ваши настройки и исключите вероятность конфликта. Если это невозможно, попробуйте отключить встроенный менеджер, доверив всё управление загрузками только самому расширению. • Конфликт с другими расширениями, имеющими функции управления загрузками Это нормально и вполне ожидаемо – не забывайте, что все расширения в браузере имеют одинаковый приоритет и не могут менять настройки (и функции) своих работающих аналогов. При этом каждый из "конкурентов" будет стараться выполнить свою задачу, поэтому появление конфликтов в таких случаях просто вопрос времени – ведь, как известно, "два медведя в одной берлоге обязательно подерутся"…) Решение: внимательно смотрите ваши настройки и учитывайте возможности других установленных у вас расширений. По возможности исключите конфликт, оставив только один менеджер для управления загрузками, либо настройте разные аддоны так, чтобы их функции не пересекались. Исходный код, интерфейс и задействованные APIКод использует только чистый JS (ES5), все неподдерживаемые в "старых" браузерах функции заменены на аналоги. Расширение Download + Actions • CR.RU работает в фоновом режиме полностью автоматически и не требует интерактивного взаимодействия с пользователем. Работа всех функций управления загрузками зависит только от заданных пользователем правил и активных настроек. Текущая версия расширения не имеет никакого интерфейса управления, кроме страницы Настроек, на которой задаются все доступные варианты автоматизации действий с загружаемыми файлами. Настройки отслеживаются и применяются фоновым скриптом сразу же после их сохранения. Исходя из этого, кнопка расширения на тулбаре, отображаемая только в браузерах версий 63+, может быть скрыта по желанию пользователя без какого‑либо ущерба для функциональности. При этом открыть настройки можно только в блоке расширения на странице chrome://extensions/ (как и во всех браузерах версий до 63). Для управления загрузками и отдельными функциями браузера применяется стандартный API chrome.downloads, для работы с которым в манифесте аддона запрашивается разрешение [ "downloads" ]. Кроме указанного, в манифесте запрашиваются дополнительные* разрешения [ "downloads.open", "downloads.shelf" ], предназначенные для опционального открытия загруженных файлов и для управления отображением штатной панели загрузок браузера (так называемой "лопатой"). * Отсутствуют в универсальной Lite-версии, ограничивают снизу допустимую версию браузера (30+). Все заданные пользователем настройки и параметры сохраняются только в локальном хранилище расширения, синхронизация отсутствует. Для работы с хранилищем задействуется стандартный API chrome.storage, для этого в манифесте запрашивается* соответствующее разрешение [ "storage" ]. * В принципе, можно обойтись и без этого запроса, поскольку объём сохранённых данных на практике не превышает допустимых максимальных размеров по умолчанию (5Mb). Для работы со вкладками и открытия штатной страницы Диспетчера загрузок браузера применяется API chrome.tabs, в манифесте для него также указано соответствующее разрешение [ "tabs" ]. Для использования горячих* клавиш под некоторые функции аддона применяется API chrome.commands. В текущей версии используется единственный хоткей, для оперативного открытия в Проводнике папки загрузок (по умолчанию <Alt+J>), который может быть штатно переопределён или просто отключён пользователем на странице управления расшширениями (chrome://extensions/, кнопка "Быстрые клавиши"). * Отсутствуют в универсальной Lite-версии, ограничивают допустимую версию браузера по API (25+). Как и в оригинальном "оперном" аддоне, в качестве языка интерфейса и описания в русском хром-форке используется единственная локализация, только русская (жёстко зашита в коде). * При необходимости можно добавить и басурманский, но пока на это "нет спроса"… :) Аддон не имеет практических ограничений по версии браузера, используемые API работают в версиях 30+ (никак не ограничивается в версии Lite). Работоспособность в версиях ниже 29 не проверялась и не гарантируется. Исходный код НЕ обфусцирован, исключительно для удобства при возможных доработках и облегчения читаемости кода при его исследовании. Если кому-то это критично – удалите комментарии и пропустите через компрессоры.) Ссылки для интересующихся
| ||||||||||
Бармалей 05.05.2014 13.02.2021 276 Общие технические сведения о разработке
|
Всего комментариев: 0 |