Edit This Cookie • CR : Что "под капотом"
Опубликовано: Бармалей · 13.12.2016 · 00:02 ••• Обновление: 13.01.2021 · 15:36 0

…Как понимаю, вы уже прочитали общий обзор и хотите поглубже разобраться что и как в этом аддоне…)

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


Основные отличия русского "Редактора"

В дополнение к функционалу оригинального аддона в русском форке сделано следующее:

  • Удалена "анонимная" статистика, гуглоаналитика и настойчивые предложения "забашлять". :)
  • При вызове из контекстного меню панель управления куками отображается в компактном попап-окне.
  • Оптимизирован набор файлов и стилей, удалены лишние и мусорные файлы (общий размер уменьшен вдвое).
  • Удалены локализации для всех языков кроме русского и английского.
  • Отключены лишние алерты и консольные сообщения.

Технические детали

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

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

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

Для упрощения отрисовки интерфейса панели DevTools и попап-окон используются JQuery-based библиотеки.

Всё управление работой расширения и управление куками текущей вкладки осуществляется через попап-окно или (альтернативно) через дополнительную панель DevTools ("ETCookies"). Интерфейс управления прост и интуитивно понятен, для всех "кликабельных" элементов имеются подсказки:

Блок настроек расширения, а также списки заданных вами заблокированных и защищённых куки, отображаются на отдельной странице настроек (заданной в манифесте):

Все настройки автономны и сохраняются только в локальном хранилище самого аддона, синхронизации нет.

Расширение работает без выгрузки из памяти и управляет вашими куками постоянно, применяя заданные вами правила независимо от того, открыто окно панели управления или нет.

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

Для работы с панелями DevTools применяется стандартный API chrome.devtools.panels, страница панели определяется в манифесте аддона параметром "devtools_page".

Для работы со вкладками применяется стандартный API chrome.tabs с соответственным разрешением в манифесте права доступа [ "tabs" ].

Для доступа к функциям управления куками применяется стандартный API chrome.cookies с разрешением в манифесте права доступа [ "cookies" ].

Для хранения настроек и параметров управления куками на отдельных сайтах задействован API chrome.storage с разрешением в манифесте права доступа [ "storage" ]. Этого разрешения достаточно без превышения максимально допустимого лимита (5Mb) на размер сохранённых данных.

Для помещения в буфер обмена данных для экспорта куки запрашивается разрешение [ "clipboardWrite" ].

Для выдачи уведомлений о статусе выполнения каких-либо действий используется API chrome.notifications с разрешением в манифесте права доступа [ "notifications" ].

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

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

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

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

Исходный код НЕ обфусцирован, исключительно с целью удобства при возможных доработках.
Кому это критично – удалите комментарии и пропустите через компрессоры…

Примечание по работе с панелью DevTools

В дополнение к общим правилам включения и использования опциональной панели DevTools.

Если предполагается постоянное использование этой функции расширения, можно изменить* исходный код аддона, убрав проверку опции Настроек "Показать в DevTools дополнительную панель". При этом панель всегда будет отображаться в Инструментах разработчика.

* Исправленный вручную код будет работать только при установке в Режиме разработчика.

Для этого следует найти в папке аддона файл \devtools\devtools-page.js и изменить его, удалив проверку условия:

(function() { if(preferences.showDevToolsPanel) chrome.devtools.panels.create('ETCookies', 'img/32.png', '/devtools/panel.html') })()

После правки/сохранения следует перезагрузить/обновить расширение.

Теперь панель будет всегда доступна, независимо от настроек как расширения, так и самого браузера.

При этом никаких других настроек в самом браузере больше не требуется.


Ресурсы и ссылки по разработке Edit This Cookie • CR



Управление данными Бармалей
Бармалей 13.12.2016 13.01.2021 270 0.0

Общие технические сведения о разработке
Статус разработки:Активная, поддерживается автором
Язык интерфейса:Русский, Английский
Версия браузера:28+
Протестировано в:SRWare Iron 31/49 + 360 Extreme Explorer 11/12/13 (CR69/78/86)
Технологии и API:Чистый JavaScript (ES5). API: cookies, tabs, storage, contextMenus, clipboardWrite, notifications, browserAction

Поделиться

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