' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'')//-->
…Как понимаю, вы уже прочитали общий обзор и хотите поглубже разобраться что и как в этом аддоне…)
В этой статье:
В дополнение к функционалу оригинального аддона в русском форке сделано следующее:
Ниже приведены некоторые технические подробности по исходному коду и отдельным функциям расширения.
Код использует только чистый 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‑page.js и изменить его, удалив проверку условия:
(function() { if(preferences.showDevToolsPanel) chrome.devtools.panels.create('ETCookies', 'img/32.png', '/devtools/panel.html') })()
После правки/сохранения следует перезагрузить/обновить расширение.
Теперь панель будет всегда доступна, независимо от настроек как расширения, так и самого браузера.
При этом никаких других настроек в самом браузере больше не требуется.