ChromeIPass • RU : Руководство пользователя
Опубликовано: Бармалей · 25.11.2016 · 00:02 ••• Обновление: 27.01.2021 · 07:09 0

ChromeIPass – расширение для браузеров семейства Chromium, позволяет оперировать данными учётных записей из менеджера паролей KeePass через плагин KeePassHttp.

Актуальные версии расширения доступны в архиве Chrome Web Store (удалено из CWS в 2017 году).
Авторские версии расширения доступны в виде исходного кода в репозитории проекта на GitHub.

Также доступна модифицированная русская версия этого расширения с аналогичным функционалом.
Соответственные наименования пунктов меню и кнопок для этой версии указаны в скобках.

Перед использованием расширения желательно ознакомиться с Важной информацией.


Содержание справки:


1. Возможности

  • безопасная интеграция с KeePass с использованием плагина KeePassHttp;
  • получение учётных данных из KeePass;
  • добавление новых и изменение существующих записей в KeePass;
  • поддержка нескольких баз данных KeePass, а также:
    • выбор уникальной иконки для каждой базы данных;
  • встроенный генератор паролей, работающий совместно с KeePass;
  • поддержка нескольких учётных записей для одной страницы (сайта), а также:
    • выбор во всплывающем окне;
    • выбор при автозаполнении;
  • поддержка автозаполнения полей ввода учётной записи;
  • поддержка запросов HTTP Auth (также известны как htaccess-login);
  • поддержка дополнительных полей через Строковые поля в KeePass;
  • поддержка заполнения через выпадающее меню (только для Строковых полей);
  • доступ через контекстное меню в полях ввода;
  • доступ через горячие клавиши (Ctrl+Shift+U и Ctrl+Shift+P);
  • автоопределение комбинаций полей имени пользователя и пароля;
  • автозаполнение пароля для единственной комбинации учётных данных;
  • выбор собственных настроек полей ввода учётной записи для любой страницы:
  • проверка обновлений плагина KeePassHttp.

2. Установка

2.1. Требования
  • KeePass версии 2.17 или новее.
  • KeePassHttp версии 1.0.7 или новее (рекомендуется версия 1.4 или новее).
  • При использовании расширения рекомендуется отключить встроенный в браузер менеджер паролей.
2.2. Установка
  1. Ваша база данных должна быть разблокирована (открыта) в KeePass.
  2. Перейдите в архив Chrome Web Store, скачайте и установите расширение ChromeIPass.
    …либо установите текущую авторскую версию этого расширения из исходного кода (в Режиме разработчика).
    …либо установите текущую русскую версию этого расширения (ChromeIPass • RU).
  3. После установки в браузере добавится новый значок на панели:

    browser-icon

  4. Щёлкните по этому значку для установки соединения с KeePassHttp:

    popup-connect

  5. KeePassHttp выдаст запрос на указание имени ключа соединения.
    Можно задать любое подходящее имя. Например, "Chrome on my main computer".

    keepass-association-key

  6. При повторном щелчке на иконке расширения будет показана следующая информация:

    popup-normal

  7. Перезагрузите текущую страницу (вкладку).
  8. Откройте настройки расширения ChromeIPass и измените их, если это необходимо.

3. Функциональность

3.1. Доступ к учётным записям

Если ChromeIPass определяет на текущей просматриваемой веб-странице комбинацию полей для ввода имени пользователя и пароля, через KeePassHttp будут запрошены все учётные записи для этой страницы (определяется по URL сайта). Полученные учётные данные будут доступны для ввода несколькими способами. Описание этих способов приведено ниже.

3.1.1. Всплывающее окно

Иконка ChromeIPass отмечена значком вопроса.
Щелчок по иконке откроет всплывающее окно, в котором можно выбрать одну из нескольких учётных записей для заполнения.

Если на странице доступны несколько комбинаций имени пользователя и пароля, поля ввода будут заполнены данными из выбранной учётной записи (после фокуса на поле ввода имени пользователя или пароля) либо будет использоваться только первая комбинация.

popup choose credentials

3.1.2. Автозавершение

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

При щелчке по требуемой строчке выпадающего списка (или при потере фокуса полем имени пользователя) будет произведена проверка правильности введённого имени и будет выполнен автоматический ввод пароля для соответствующей учётной записи.

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

autocomplete

3.1.3. Контекстное меню

Для каждого текстового поля ввода ChromeIPass добавляет 4 пункта в контекстное меню.
Даже если поле не определяется расширением как поле ввода имени пользователя или пароля, эти пункты будут доступны в контекстном меню.

При щелчке на Fill User + Pass ("Заполнить имя и пароль") или Fill Pass Only ("Заполнить только пароль") ChromeIPass проверяет, на каком из ранее определённых полей (имя пользователя и пароль) находится фокус. Если проверка неуспешна, запускается повторное переопределение только для поля в фокусе. Если фокус находится в нераспознанном парольном поле и выбрано Fill User + Pass ("Заполнить имя и пароль"), будет автоматически определено поле имени пользователя и заполнены данные учётной записи.

Fill User + Pass ("Заполнить имя и пароль") в контекстном меню работает только если ChromeIPass получил единственную пару имя+пароль для учётной записи. В противном случае будет выведено сообщение об ошибке, после чего вы можете использовать автозавершение или выбор во всплывающем окне.

Fill Pass Only ("Заполнить только пароль") также работает если ChromeIPass получил единственную пару имя+пароль либо если связанное поле имени пользователя уже содержит имя, относящееся к одной из полученных учётных записей.

Show Password Generator Icons ("Значок генератора паролей") перезапускает определение видимых парольных полей на странице и добавляет к каждому из них иконку в виде ключа для вызова генератора паролей.

context-menu

Save credentials ("Сохранить учётную запись") позволяет оперативно внести изменения в учётную запись (или ввести новые данные) без их отправки путём подтверждения формы входа. Подробное описание процедуры сохранения дано в разделе 3.5.

3.1.4. Горячие клавиши

ChromeIPass поддерживает две комбинации горячих клавиш, работающие в пределах страницы:

Ctrl+Shift+U – эта горячая клавиша соответствует пункту Fill User + Pass контекстного меню (см. п.3.1.3).

Ctrl+Shift+P – эта горячая клавиша соответствует пункту Fill Pass Only контекстного меню (см. п.3.1.3).

3.2. Генератор паролей

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

Эта функция доступна только при использовании плагина KeePassHttp v1.4 или новее.

Функция доступна для каждого парольного поля, содержащего значок ключа в правой части поля.
Щелчок по значку открывает панель генератора паролей:

password-generator

Если значок не отображается, щёлкните на поле правой кнопкой мыши и выберите в контекстном меню chromeIPass > Show Password Generator icons ("chromeIPass > Значок генератора паролей").

После открытия панели сгенерированный пароль сохраняется в этом поле до перезагрузки страницы или до момента подтверждения ввода или до нажатия кнопки Generate ("Генерация"). Даже если вы закроете диалог генератора и щёлкните по другому значку генератора в другом поле, отображаемый пароль не изменяется.

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

Если парольное поле имеет ограничение по длине вводимого текста, ChromeIPass определит это и автоматически обрежет сгенерированный пароль. Об этом изменении вы будете проинформированы и укороченный пароль будет скопирован в буфер обмена.

Поскольку ChromeIPass имеет некоторые ограничения по запоминанию учётных записей, пароль всегда будет копироваться в буфер обмена.

3.2.1.Как генерируются пароли?

ChromeIPass посылает запрос в KeePass, который генерирует пароль в соответствии с настройками встроенного профиля для автогенерации паролей. Для изменения длины и способа композиции генерируемых паролей откройте в KeePass настройки генерации паролей.
Перейдите в Keepass > Tools > Generate Password..., откроется следующий диалог:

keepass-password-generation-options

  1. Выберите встроенный профиль (Automatically generated passwords for new entries) и измените способ комбинации генерируемых паролей.
  2. Щёлкните по кнопке сохранения.
  3. Появится второй диалог. Щёлкните по стрелке вниз с правой стороны и снова выберите имя встроенного профиля (Automatically generated passwords for new entries).
  4. Нажмите OK и ваши изменения будут сохранены в профиле.
3.3. Определение полей для ввода учётной записи
  1. После загрузки страницы ChromeIPass начинает поиск всех видимых полей ввода.
  2. Для каждого найденного поля с типом password проверяется, что предыдущее поле ввода является нормальным текстовым полем.
    • Если предыдущее поле отсутствует или оно также является парольным – это поле не добавляется как определённое поле в комбинации полей ввода имени пользователя и пароля.
    • Если предыдущее поле является текстовым полем – оба этих поля добавляются как комбинация полей ввода имени пользователя и пароля.

Автоопределение полей ввода учётной записи вызывается только один раз и только после завершения загрузки страницы.

Существуют известные ограничения, когда функция автоопределения не может найти на странице комбинацию полей ввода имени пользователя и пароля. Подробнее об этом смотрите в разделе Ограничения и известные проблемы > Автоопределение полей ввода.

Если комбинация полей логин + пароль не определилась, можно щёлкнуть по значку ChromeIPass на панели и нажать кнопку "Redetect credential fields" ("Переопределить поля ввода учётной записи").

Кроме того, можно также использовать горячие клавиши (как описано в п.3.1.3) для запуска переопределения полей, установив фокус на нужном поле.

3.4. Ручной выбор полей ввода учётной записи на отдельной странице

В некоторых случаях между полем ввода имени пользователя и полем ввода пароля имеются другие поля ввода.
В этом случае ChromeIPass не может корректно определить комбинацию полей логин + пароль.

При необходимости можно задать требуемую комбинацию вручную для каждой отдельной страницы (сайта).
Для этого щёлкните по значку ChromeIPass и нажмите кнопку "Choose own credential fields for this page" ("Указать поля ввода учётной записи"):

popup-normal

Изначально все нормальные текстовые поля будут подсвечены. Щёлкните по полю, которое вы хотите использовать для ввода имени пользователя или пропустите этот шаг, если поле имени пользователя не требуется. Затем выберите поле для ввода пароля и в завершение подтвердите свой выбор.

choose-credential-fields

Также вы можете выбрать дополнительные поля, так называемые String Fields (Строковые поля).
Их функциональность описана в разделе 3.7.

Когда вы откроете эту страницу в следующий раз, ChromeIPass будет использовать заданную вами комбинацию полей логин + пароль и больше не будет проводить автоопределение комбинации полей.

Кроме того, можно установить фокус на другое поле и использовать контекстное меню (3.1.3) или горячие клавиши (3.1.4), чтобы запустить автоопределение для текущего поля в фокусе.

3.5. Сохранение паролей

Поскольку Google Chrome не предоставляет API для своего встроенного менеджера паролей, в ChromeIPass применяется собственный способ определения новых или обновления существующих учётных записей.

Если ChromeIPass находит комбинацию полей логин + пароль, производится попытка определить и соответствующую форму для них. Для этой формы регистрируется событие подтверждения, которое вызывается при отправке формы.

Для этой последовательности есть известные ограничения, описанные в разделе Ограничения и известные проблемы.

Если ChromeIPass обнаруживает несохранённую учётную запись, иконка расширения на панели начинает мигать красным. Иконка продолжает мигать до тех пор, пока вы не щёлкните по ней либо если вы игнорируете это мигание в течение двух последующих переходов между страницами (либо если загружается другой сайт).

Если вы щёлкните по иконке, она останется красной до тех пор, пока вы не добавите новую запись, либо не подтвердите обновление уже существующей, либо не откажетесь от зафиксированных изменений. Вам будет показан соответствующий URL и имя пользователя, а также имя базы данных, в которой изменения будут сохранены.

popup-remember

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

popup-remember-update

Новые учётные данные сохраняются в KeePass в отдельной группе, добавляемой плагином KeePassHttp.

3.6. Автозаполнение для запросов HTTP Auth

KeePassHttp возвращает в ChromeIPass найденные учётные записи отсортированными по максимальному соответствию URL. ChromeIPass может попытаться выполнить автоматический вход с первой из полученных учётных записей при запросе HTTP Auth. Если попытка автовхода окажется неудачной, будет выведено штатное диалоговое окно..

Стандартный диалог запроса HTTP Auth показан на следующем скриншоте:

http auth request

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

3.7. Заполнение дополнительных параметров через Строковые поля

Вы можете вводить дополнительные данные с помощью заданных строковых полей.

  1. Задайте специфичные поля учётной записи на странице как указано в разделе 3.4. Вы также можете пропустить оба основных поля (имени пользователя и пароля).
  2. Теперь вы можете выбрать дополнительные поля, которые называются String Fields (Строковые поля). При этом можно выбрать даже элементы выпадающих списков. Порядок выбора этих строковых полей является важным для метода их заполнения!
  3. Активируйте настройку String Fields в KeePassHttp, как описано в документации по KeePassHttp (настройка 11). Алфавитно-цифровой порядок ввода будет запомнен в соответствии с последовательностью Вашего выбора Строковых полей.

keepasshttp options advanced

Элементы выпадающих списков будут заполнены видимыми значениями. Если вы откроете выпадающий список, вы можете увидеть все доступные значения. Видимое значение должно соответствовать одному из Строковых полей, сохраняемых в KeePass.

keepasshttp advanced string fields


4. Конфигурация и настройки

Изначальное конфигурирование ChromeIPass не требуется.

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

popup-base-locked

Для устранения этой проблемы просто откройте (или разблокируйте) нужную базу KeePass, указав её мастер-пароль.

Если расширение не может установить авторизованное соединение с KeePassHttp, на значке расширения будет отображён красный крест и во всплывающем окне будет предложено отправить запрос на установку соединения:

popup-connect

Для дальнейшей конфигурации вы можете открыть страницу настроек, которая доступна по нажатию соответствующей кнопки во всплывающем окне, из контекстного меню на значке расширения (пункт Настройки) либо на вкладке chrome://extensions (в блоке самого расширения ChromeIPass также есть ссылка Параметры).

4.1. Общие настройки

На вкладке General ("Общие настройки") вы можете включить/отключить отдельные ключевые функции, такие как Автозавершение, Генератор паролей или Автозаполнение для запросов HTTP Auth.

Эти изменения сохраняются немедленно.

settings general

В нижней части страницы общих Настроек ChromeIPass есть отдельный блок расширенных настроек, по умолчанию свёрнутый во избежание случайных ошибок. Для доступа к этим настройкам следует нажать красную кнопку Show this options ("Показать эти настройки"):

settings advanced

Особое внимание следует обратить на настройку соединения с KeePassHttp: если вы используете нестандартный порт или работаете с удалённой базой данных, следует задать корректные параметры соединения в расширенных настройках.

4.2. Подключённые базы данных

На вкладке Connected Databases ("Подключённые базы") показан текущий список баз данных, с которыми ChromeIPass может установить соединение в паре с KeePassHttp. Здесь вы также можете задать специфичные значки для каждой базы, чтобы визуально определять, с какой из баз установлено текущее соединение.

Отображаемая на панели браузера иконка зависит от конкретной активной и разблокированной базы KeePass, с которой установлено соединение.

Удаление базы из списка в ChromeIPass не удаляет ключ из KeePassHttp! Однако, KeePassHttp после этого больше не будет отправлять учётные данные и/или получать данные от расширения для текущей активной базы в KeePass.

settings connected databases

4.3. Специфичные поля ввода учётных записей

В разделе 3.4 описана функция Choose own credential fields for this page ("Указать поля для ввода учётной записи"). Все сайты с полями ввода, которые были определены с помощью этой функции, отображаются на соответствующей вкладке настроек.

Вы можете только удалять такие настройки, т.к. ручная настройка полей не всегда бывает полезна.
При необходимости процедуру переопределения полей ввода всегда можно повторить.

settings specified credential fields


5. Полезные советы

Если поля ввода учётных данных не определяются автоматически, вы можете установить фокус на одно из этих полей и нажать Ctrl+Shift+U или Ctrl+Shift+P для повторного переопределения этих полей и заполнения учётной записи. Также вы можете щёлкнуть по значку расширения на панели и нажать кнопку Redetect credential fields ("Переопределить поля ввода учётной записи").

Если ChromeIPass неправильно определил поля ввода учётной записи, укажите их самостоятельно вручную, нажав кнопку Choose own credential fields for this page ("Указать поля ввода учётной записи"), которая доступна во всех всплывающих окнах расширения.

Если ChromeIPass всегда запрашивает разблокировку базы данных и вам это не нужно – просто отключите эту опцию в настройках KeePassHttp.

Весьма желательно всегда проверять настройки KeePassHttp. Возможно, требуемая функция или решение какой-то проблемы уже есть и они могут заключаться в изменении настроек. Для получения более подробной информации ознакомьтесь с иллюстрированным руководством по настройкам KeePassHttp.

Поддержка множественных URL для одной комбинации логин + пароль

Такая поддержка изначально заложена в KeePass. Подробнее смотрите в руководстве по KeePassHttp.

Отключение уведомлений в системном трее при запросе учётной записи

Откройте настройки KeePassHttp и отключите опцию 1:

keepasshttp options general

Изменение порядка сортировки учётных записей, отображаемых в chromeIPass

Откройте настройки KeePassHttp и переключите опцию 5:

keepasshttp options general


6. Важная информация

  • Поскольку в Chromium-браузерах отсутствует API для связи со встроенным в браузер менеджером паролей, ChromeIPass использует собственный тип парольного менеджера. Ознакомьтесь с известными ограничениями, где это описано подробнее.
  • По соображениям безопасности ChromeIPass стирает временно хранимые в кэше учётные данные каждый раз, когда вы переключаетесь между вкладками. Кроме того, расширение запрашивает учётные данные для текущей вкладки каждый раз, когда вы переключаетесь на неё.

7. Ограничения и известные проблемы

7.1. Сохранение учётных записей

В Google Chrome и других Chromium-браузерах не предоставляется API для взаимодействия со встроенным в браузер менеджером паролей. Поэтому в ChromeIPass реализован собственный способ проверки изменений учётных записей.

Для обнаруженной формы, содержащей комбинацию полей логин + пароль, ChromeIPass регистрирует событие, которое вызывается в момент отправки этой формы.

В момент отправки формы проверяется, есть ли изменения в отправляемых имени пользователя и пароле, и если они есть – вызывается диалог сохранения этих изменений.

Тем не менее, при этом возможны некоторые проблемы, которые не могут быть решены и которые приводят к невозможности распознавания изменений:

  1. Если поле пароля очищается неким JavaScript-кодом (к примеру – хэшированием введённого значения), ChromeIPass не сможет получить доступа к самому значению пароля и, соответственно, диалог сохранения при этом не будет показан.
  2. Если на странице существует внутреннее событие подтверждения ввода в форму, которое будет отрабатывать перед ожидаемым в ChromeIPass (например: вызовы ajax), алгоритм, заложенный в расширение, возможно, не отработает и диалог на сохранение пароля не будет выведен.

Проблему некорректного определения изменений при отправке формы можно решить принудительным вызовом процедуры сохранения. Для этого достаточно внести изменения в соответствующих полях ввода и до момента отправки обновлённых данным выбрать в контекстном меню пункт Save credentials ("Сохранить учётную запись").

Другая проблема состоит в том, что ChromeIPass не может полностью корректно отличить успешную и неуспешную попытки входа в аккаунт. Соответственно, диалог напоминания о сохранении изменений будет выводиться и для неуспешных попыток входа.

7.2. Автоопределение полей ввода
7.2.1. Проблема

Во время определения полей ввода учётных данных детектируются только те поля, которые являются видимыми на момент вызова функции определения. Автоматически это происходит только один раз: после окончания загрузки страницы.

Новые поля ввода, создаваемые с помощью JavaScript или вызовов AJAX, не могут быть определены поскольку они становятся видимыми после вызова функции автоопределения.

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

7.2.2. Решение

В таких случаях. когда автоматически не определена комбинация полей логин + пароль, вы можете щёлкнуть по значку ChromeIPass на панели браузера и нажать кнопку "Redetect credential fields" ("Переопределить поля ввода учётной записи").

вы также можете установить фокус на видимое поле имени пользователя или пароля и нажать Ctrl+Shift+U. Это повторно запустит функцию определения для поля в фокусе.


8. Решение проблем

Первое: прочитайте раздел 5. Полезные советы.
Второе: проверьте настройки KeePassHttp – возможно, достаточно изменить некоторые опции.

Если вы хотите сообщить о проблеме в оригинальной версии, всегда указывайте следующую информацию:

  1. версия ChromeIPass;
  2. версия вашего браузера;
  3. версия KeePassHttp;
  4. версия KeePass;
  5. страница/сайт, на котором обнаружена ошибка.

Для сообщения об ошибках в русской версии ChromeIPass вы можете использовать комментарии в статьях по соответствующим русским релизам, не забывая указывать те же самые сведения о проблеме.

8.1. Учётные данные заполняются некорректно
  1. Найдите в базе KeePass URL страницы, на которой данные заполняются некорректно.
  2. Убедитесь, что найденные данные учётной записи действительно актуальны и верны.

Если это не решило проблему, сообщите об ошибке.

8.2. chromeIPass не работает
8.2.1. Проверка версий установленных программ и плагинов
  1. Убедитесь, что используется последняя версия ChromeIPass (или последняя русская версия плагина).
  2. Убедитесь, что ваш браузер достаточно свежей версии и поддерживает весь функционал расширения.
  3. Убедитесь, что используются соответствующие версии плагина KeePassHttp (1.4+) и самого KeePass (2.17+).
8.2.2. Сообщения об ошибках в консоли фоновой страницы расширения
  1. Откройте вкладку с URL chrome://extensions (Расширения) и включите Режим разработчика, для доступа к фоновой странице расширения нажмите ссылку фоновая страница:

    extensions-developer-mode

  2. В открывшемся окне выберите вкладку Console:

    console-background

8.2.3. Сообщения об ошибках в консоли проблемной веб-страницы

Находясь на странице, на которой ChromeIPass не работает, нажмите F12 или щёлкните правой кнопкой мыши и выберите пункт Просмотр кода элемента в контекстном меню. Затем выберите вкладку Console для открытия консоли для выполняемых скриптов:

inline page console


9. Безопасность

  • Все соединения с KeePass и KeePassHttp шифруются симметричным ключом AES в CBC-режиме.
  • Сообщения шифруются ключом с длиной 256 бит.
  • Соединения устанавливаются с хостом http://localhost на порт 19455, на котором работает плагин KeePassHttp (значение порта по умолчанию, может быть изменено в настройках KeePass с соответствуюжщим изменением в настройках ChromeIPass).

Система передачи уязвима только в момент присоединения базы данных к ChromeIPass. В этот момент плагин KeePassHttp передаёт ключ шифрования в ChromeIPass, который потом сохраняется в безопасном хранилище расширения. Если злоумышленник перехватит трафик именно в этот момент, он будет иметь возможность извлечь из него ключ.

Все последующие соединения шифруются этим ключом и являются безопасными!


Об этом документе

Описание создано Lukas Schulze, последнее обновление в апреле 2013.
Русский перевод BaRMaLeY, создан в ноябре 2016, последнее обновление в январе 2021.

Оригинал документа (GitHub).


Ресурсы и ссылки по разработке ChromeIPass • RU



Управление данными Бармалей
Бармалей 25.11.2016 27.01.2021 291 0.0

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

Поделиться

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