.URL+ RU : Ярлыки без проблем
Опубликовано: Бармалей · 05.05.2018 · 00:01 ••• Обновление: 17.10.2020 · 07:09 0

.URL+ RU – создаёт и корректно открывает файлы *.URL (ссылочные ярлыки для сетевых ресурсов, Windows-формат). Открытие URL из файлов ярлыков не зависит от браузера по умолчанию и других системных настроек. Создание файла ярлыка доступно для любой просматриваемой страницы, включая локальные и служебные, имя файла соответствует заголовку вкладки.

Предоставляется по лицензии GPL v.3, бесплатно для частного некоммерческого использования.


В этой статье:


Общее назначение и краткая история создания

.URL+ RU – расширение для браузеров семейства Chromium, создаёт и корректно открывает файлы *.URL (ярлыки интернет-ресурсов, Windows-формат).

Основное назначение – обеспечить корректную работу с внешними файлами ярлыков. Главная цель – простота и компактность решения и работоспособность на любых версиях браузеров.

Расширение создано под эти задачи на базе двух отдельных аддонов – "окрывашки" ярлыков .URL Handler и "создателя" ярлыков Save As Shortcut. В форке обе задачи сведены в один общий "пакет" (2-в-1), базовые функции доработаны и улучшены, добавлены дополнительные возможности, полностью русифицирован интерфейс.

При выпуске первой версии в мае 2018 года расширение "брэндировано" как ".URL+" и получило приставку RU, символизирующую "заточенность" решения на русскоязычную аудиторию пользователей. На текущий момент аддон распространяется под этой "торговой маркой".

В результате "доработки* напильником" аддон .URL+ RU стал отличной альтернативой прототипам и другим аналогам, не только не уступая им по качеству решения главных задач, но и превосходя их по общей "лёгкости" и функционалу.

* Самое важное отличие – существенно меньшая ресурсоёмкость, при условии полной идентичности выполняемых функций общий размер кода нового "микро-комбайна 2-в-1" уменьшен почти в 200 (!) раз по отношению к суммарному объёму прототипов.

Следует особо отметить, что в отличие от многих других современных аддонов, в .URL+ RU нет (и никогда не будет) никакой "допустимой" или скрытой рекламы, это расширение не является предметом монетизации.

Автор гарантирует отсутствие в этом расширении каких-либо следящих, "стучащих" и иных "статистических" механизмов, а также любых других средств, направленных на "персонализацию" конечного пользователя с целью получения какой-то коммерческой выгоды.


Основные возможности и способ применения

.URL+ RU работает на любых хром-браузерах и позволяет сохранить файл ярлыка* для любой просматриваемой страницы, при этом имя сохраняемого файла автоматически генерируется по заголовку текущей вкладки. В стандартном диалоге сохранения можно вручную изменить имя файла и/или путь его сохранения.

* Сохранённые файлы *.URL (ярлыки интернет-ресурсов, Windows-формат) можно затем открывать непосредственно из "Проводника" в любом другом браузере, поддерживающем этот формат.

Разработаны три линейки аддона, отличающиеся только способами вызова функции создания файла ярлыка.

Все три линейки имеют одинаковый ID и полностью взаимозаменяемы при (пере)установке поверх друг друга.

Создать ярлык на текущую страницу можно следующими способами:

  • выбрав в контекстном меню* страницы пункт "Создать ярлык для этой страницы" (все линейки):
  • используя горячую клавишу (по умолчанию – Ctrl+Shift+S, в линейке Mini хоткей недоступен);
    Заданный хоткей можно самостоятельно изменить в настройках "Быстрых клавиш" браузера.
  • щёлкнув по значку в омнибоксе (или по кнопке на тулбаре – в линейке Classic).
    В линейке Classic также можно скрыть кнопку на тулбаре, оставив только вызов по хоткею.

* В браузерах версий 49+ можно отключить контекстное меню (кроме линейки Mini – там это единственный способ вызова). Эта настройка доступна в контекстном меню кнопки в омнибоксе (или в меню кнопки на тулбаре в линейке Classic):

Кроме сохранения файлов ярлыков, .URL+ RU полностью решает "застарелый" баг, известный ещё с 19 версии движка (с 19-й, Карл!!)), но так и не исправленный даже в новейших билдах.

Как уже сказано, аддон корректно открывает файлы ярлыков, независимо от браузера по умолчанию и других системных настроек. Это позволяет установить (при желании) системную привязку этих файлов к вашему браузеру для их открытия непосредственно из "Проводника" или другого файлового менеджера.

Механизм открытия внешнего файла ярлыка во всех линейках реализован одинаково и приводит к автоматическому редиректу на содержащуюся в нём ссылку. Редирект производится в той же вкладке (окне), в которой файл был открыт.


Технические детали разработки

Ниже приведены технические особенности расширения и некоторые подробности по исходному коду.

Исходный код, интерфейс и API

.URL+ RU не использует для работы никакие сторонние библиотеки (привет любителям JQuery)).

В коде применён только чистый JS (ES5), все неподдерживаемые в "старых" браузерах функции заменены на аналоги.

Скрипт работает в "строгом" режиме – для гарантированного выполнения функций и облегчения отлова ошибок.

Аддон загружается только в момент вызова, не имеет фонового процесса и не занимает память в покое. Кроме того, добавлена функция ускоренной выгрузки расширения из памяти после выполнения требуемых действий.

Для работы со вкладками задействуется API chrome.tabs. Этот API используется в "омнибоксной" и "классической" линейках, в "мини" его применение не требуется. Кроме того, в "омнибоксной" линейке также применяется разрешение activeTab, упрощающее действия на текущих страницах.

Для работы функции, связанной с открытием файлов ярлыков, применяется инжекция скрипта в текущую страницу (API контент-скриптов). Инжектор работает только для локальных файлов *.URL, для работы с ними в манифесте указано разрешение [ "file://*.url" ].

Интерфейс для "открывающей" части отсутствует, процесс получения URL из файла ярлыка и его последующее открытие во вкладке происходит полностью автоматически.

Интерфейсная часть аддона используется только для функции создания ярлыка текущей страницы (вкладки) и в контекстном меню страницы во всех линейках представлена единственным пунктом.

Для запуска функции создания ярлыка через контекстное меню применяется стандартный API chrome.contextMenus. Этим же API предоставляется доступ к настройкам аддона в "омнибоксной" и "классической" линейках.

Для вызова функции создания ярлыка при щелчке по кнопке в омнибоксе применяется API chrome.pageAction. Для ускоренной и гарантированной отрисовки кнопки на всех вкладках используется API chrome.declarativeContent. Оба этих API используются только в "омнибоксной" линейке.

Для вызова функции создания ярлыка при щелчке по кнопке на тулбаре применяется API chrome.browserAction. Этот API используется только в "классической" линейке.

Для вызова функции создания ярлыка по горячей клавише используется API chrome.commands. Этот API используется только в "омнибоксной" и "классической" линейках.

Для обеспечения корректной работы аддона по созданию ярлыков на любых вкладках, включая локальные и служебные страницы, в манифесте запрашивается разрешение [ "<all_urls>" ].

Расширение работает полностью автономно. Настройки также автономны и сохраняются только в локальном хранилище самого аддона, синхронизации нет. Для работы с хранилищем применяется API chrome.storage. Запрос отдельного разрешения [ "storage" ] в манифесте при этом необязателен и не указан. Этот API используется только в "омнибоксной" и "классической" линейках, в версии "мини" какие-либо настройки отсутствуют в принципе.

Дополнительные примечания по коду

Практических ограничений по версии браузера не имеется, используемые API работают в версиях 22+ (минимум для работы контекстного меню, для вызова по хоткею требуется версия 25+).

Язык интерфейса – только русский (локализация жёсткая, зашита в коде), другие* локализации отсутствуют. Это связано со значительным упрощением кода, а также с тем, что при создании расширения автор в первую очередь ориентируется на русскоязычных пользователей.

* Впрочем, если "дело пойдёт", прикрутить ещё и "басурманский" не является особой проблемой…)


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

Расширение не имеет практических ограничений по версии браузера, может использоваться на любых хром-браузерах версий 22+ (рекомендуется 25+). Однако, с учётом различных "новшеств", вводимых производителями браузеров, желательно ознакомиться с документацией на конкретный билд, который планируется установить – могут быть, так сказать, "некоторые нюансики" и их необходимо учитывать.)

Можно загрузить любую из версий .URL+ RU на следующих ресурсах:

При возникновении сложностей с установкой читаем этот совет.

Для работы в режиме "инкогнито" в блоке аддона на странице chrome://extensions включаем опцию:
[читать матчасть]

Для работы с локальными файлами в блоке аддона на странице chrome://extensions включаем опцию:



Описание и инструкции Бармалей
Бармалей 05.05.2018 17.10.2020 306 0.0

Общие технические сведения о разработке
Статус разработки:Активная, поддерживается автором
Язык интерфейса:Русский
Версия браузера:22+
Протестировано в:SRWare Iron 29/31/49
Технологии и API:Чистый JavaScript (ES5), API: content-script, tabs, contextMenus, pageAction, browserAction, commands, declarativeContent

Поделиться

Всего комментариев: 0
close