Отличия от аналогов и некоторые технические подробности. …Как понимаю, общий обзор вы уже прочитали и теперь хотите разобраться что и как в этом аддоне…) Всё верно, работа с любым расширением требует знания и понимания всех его особенностей, это позволит вам избежать "непонятных" проблем при эксплуатации аддона. В этой статье:
Отличия от оригинала и аналоговПо большому счёту, Copy URL CR.RU не является "единственным и уникальным" копировщиком ссылок, но для "осознанного и правильного выбора" следует знать (и понимать) различия между этим аддоном и его "коллегами". По отношению к исходному аддону и его аналогам в этом форке имеются следующие основные отличия:
Технические отличия от аналоговКроме вышеуказанных, есть также и другие, чисто технические отличия, которые также следует учитывать. Для начала сто́ит упомянуть, что кроме Copy URL CR.RU существует ещё один альтернативный вариант исходного расширения – Game Edition: Репак CopyUrl_RpR, сделанный в июле 2016 года на основе оригинальной версии 1.7 и отличающийся от оригинала выгрузкой из памяти и "жёсткой" русификацией на уровне исходного кода (смотрим архивную копию этого форка в файловом архиве проекта). В связи с этим иногда могут возникать вопросы "а чем твоё круче и почему", на которые есть аргументированный ответ, раскрывающий основные преимущества Copy URL CR.RU с технической точки зрения:
Короче говоря, в Copy URL CR.RU всё сделано "как надо", всё компактно и удобно для пользователя.) Но если всего этого мало – смотрим также на… Дополнительные возможности, отсутствующие в оригинале и аналогахПри разработке Copy URL CR.RU изначально ставилась задача расширения полезного функционала по отношению к исходному аддону. Ниже указаны ключевые дополнительные функции, добавленные в этом аддоне, с указанием версий, начиная с которых они были реализованы. С версии 2018.5.17 кроме простого копирования URL объектов с текущей страницы доступно:
С версии 2018.5.20 для объектов текущей страницы также доступно:
Важные примечания по этим функциям:
С версии 2019.1.19 для изображений текущей страницы доступно:
С версии 2019.1.25 для изображений текущей страницы дополнительно доступно:
С версии 2020.10.15 для объектов текущей страницы дополнительно доступно:
С версии 2020.11.25 для объектов текущей страницы дополнительно доступно:
Технические детали разработкиНиже приведены некоторые технические подробности по исходному коду и отдельным функциям расширения. Исходный код, интерфейс и APICopy URL CR.RU не использует для работы никакие сторонние библиотеки (привет любителям JQuery)). В коде применён только чистый JS (ES5), все неподдерживаемые в "старых" браузерах функции заменены на аналоги. Скрипт работает в "строгом" режиме – для гарантированного выполнения функций и облегчения отлова ошибок. В аддоне отсутствует постоянный фоновый процесс, он не расходует ресурсы браузера "в покое", все функции выполняются с помощью автозагружаемого скрипта, который также автоматически выгружается* из памяти после отработки необходимых действий. * С версии 2018.5.16 – быстрая выгрузка через 1-1,5 секунды после завершения копирования. Для вызова функции копирования URL текущей вкладки применяется стандартный API chrome.pageAction. Для ускоренной и гарантированной отрисовки кнопки на всех вкладках используется API chrome.declarativeContent. Для вызова дополнительных функций из меню кнопки в омнибоксе и для работы с контекстом страницы применяется стандартный API chrome.contextMenus. Для работы с веб-страницами в активных вкладках задействуется API chrome.tabs. Также применяется разрешение activeTab, упрощающее отдельные действия на текущих страницах. Для работы функций, связанных с цитированием, применяется инжекция скрипта в текущую страницу (API chrome.tabs). По этой причине такие функции не будут работать на служебных страницах и в гуглозине. Для обеспечения корректной работы аддона с любыми веб-сайтами и локальными страницами в манифесте запрашивается разрешение [ "<all_urls>" ]. Со служебными страницами аддон напрямую не работает – только копирование URL, другие сервисные функции на них недоступны. Для помещения в буфер обмена результатов работы в манифесте запрашивается разрешение [ "clipboardWrite" ]. Настройки автономны и сохраняются только в локальном хранилище самого аддона, синхронизации нет. Для работы с хранилищем применяется API chrome.storage. Запрос отдельного разрешения [ "storage" ] в манифесте при этом необязателен, хотя и указан (в качестве задела на будущее)). Контекстное меню омнибокса и страницыВ версиях браузеров 49+ часть функций контекстного меню дублируется в меню иконки в омнибоксе:
В версиях браузеров 63+ эти же функции контекстного меню отображаются в меню кнопки на тулбаре:
С версии 2018.5.17 там же есть опция отключения контекстного меню страницы (в омнибоксе меню есть всегда). При выключении контекстного меню страницы будут недоступны все функции, связанные с копирование её контекста. В более старых версиях браузера дублирования меню в омнибоксе нет, контекстное меню страницы неотключаемое. Кроме пунктов, отвечающих за выполнение функций копирования, в меню страницы содержатся дополнительные настройки в виде переключателей сервисных опций. Назначение пунктов меню интуитивно понятно из их названий:
Индикация состояния и сообщения об ошибкахВо всех версиях состояние аддона индицируется изменение цвета значка в омнибоксе: Такой значок означает успешное завершение любой из операций копирования/преобразования URL. Значок меняется на дефольтный через 1 секунду, никаких сообщений об успешном выполнении действий не выдаётся. Такой значок означает наличие ошибок в любой из операций копирования/преобразования URL. Этот значок не меняется на текущей вкладке до следующего вызова любой из функций, напоминая о проблеме. Начиная с версии 2018.5.20 при ошибках также выводится сообщение и событие заносится в консольный лог. Независимо от результата выполнения любой из функций, аддон автоматически выгружается из памяти. Дополнительные примечания по кодуПрактических ограничений по версии браузера не имеется, используемые API работают в версиях 29+. При разработке расширения часть API обновлена под современные стандарты, на версиях браузера старше 29/31, возможно, не будет* работать совсем. * Если кому-то это нужно – проверяйте самостоятельно и пишите "фидбэк про иссуй", будем думать.) Язык интерфейса – только русский (локализация жёсткая, зашита в коде), другие* локализации отсутствуют. Это связано со значительным упрощением кода и повышением скорости его работы, а также с тем, что при создании расширения автор в первую очередь ориентируется на русскоязычных пользователей. * Впрочем, если "дело пойдёт", прикрутить ещё и "басурманский" не является особой проблемой…) Ссылки для интересующихся
| ||||||||||
Бармалей 04.11.2014 15.05.2021 380 Общие технические сведения о разработке
|
Всего комментариев: 0 |