Пользователи не будут устанавливать расширение, если оно ставит под угрозу их конфиденциальность или запрашивает дополнительные разрешения, которые ему кажутся необходимыми. Запросы на разрешения должны иметь смысл для пользователей и ограничиваться критической информацией, необходимой для реализации расширения. Расширения, которые собирают или передают любые пользовательские данные, должны соответствовать политике защиты конфиденциальности пользователей .
Защищайте и уважайте пользователей расширений, включив эти меры предосторожности, чтобы сохранить их личность в безопасности.
Уменьшите необходимые разрешения
 API-интерфейсы, к которым может получить доступ расширение, указаны в поле permissions манифеста . Чем больше разрешений предоставлено, тем больше возможностей у злоумышленника для перехвата информации. В списке должны быть указаны только те API, от которых зависит расширение, и следует рассмотреть менее инвазивные варианты. Чем меньше разрешений запрашивает расширение, тем меньше предупреждений о разрешениях будет показано пользователю. Пользователи с большей вероятностью установят расширение с ограниченным количеством предупреждений.
Расширения не должны иметь доступ к пользовательским данным, ориентированный на будущее, путем запроса разрешений, которые им в настоящее время не нужны, но могут быть реализованы в будущем. Включите новые разрешения в обновления расширений и рассмотрите возможность сделать их необязательными .
активная вкладка
 Расширения, использующие разрешения хоста для внедрения сценариев, часто могут заменить вместо этого activeTab . Разрешение activeTab предоставит расширению временный доступ к текущей активной вкладке только тогда, когда пользователь вызывает расширение. Доступ прекращается, когда пользователь уходит с текущей вкладки или закрывает ее. Он служит альтернативой для многих вариантов использования <all_urls> .
{
  "name": "Very Secure Extension",
  "version": "1.0",
  "description": "Example of a Secure Extension",
  "permissions": ["activeTab"],
  "manifest_version": 3
}
Разрешение activeTab не отображает предупреждающие сообщения во время установки.
Выберите дополнительные разрешения
 Предоставьте пользователям возможность выбирать, какие функции и разрешения расширения им нужны, включив дополнительные разрешения . Если функция не важна для основных функций расширения, сделайте ее необязательной и переместите API или домен в поле optional_permissions .
{
  "name": "Very Secure Extension",
  ...
  "optional_permissions": [ "tabs", ],
  "optional_host_permissions": ["https://www.google.com/" ],
  ...
}
Включение дополнительных разрешений позволяет расширению объяснять, почему ему требуется определенное разрешение, когда пользователь включает соответствующую функцию. Расширение может предлагать пользователю возможность включения функций.

Нажимаем «ОК!». вызовет следующее событие в сервисном работнике.
chrome.action.onClicked.addListener((event) => {
  // Permissions must be requested from inside a user gesture, like a button's
  // click handler.
  chrome.permissions.request(
    {
      permissions: ["tabs", "scripting"],
      origins: ['https://www.google.com/']
    },
    function (granted) {
      // The callback argument will be true if the user granted the permissions.
      if (granted) {
        // doSomething();
      } else {
        // doSomethingElse();
      }
    }
  );
});
Затем пользователю будет предложен следующий запрос.

Дополнительные разрешения также можно реализовать в обновлении расширения. Это сделает новую функцию доступной для пользователей без отключения расширения, как это может произойти при обновлении с новыми необходимыми разрешениями.
Ограничьте и защитите информацию пользователя
Запрашивайте только минимальный объем данных, необходимый расширению. Чем меньше информации расширение запрашивает у пользователя, тем меньше риска будет раскрыто, если расширение будет скомпрометировано.
Ко всем запрошенным пользовательским данным следует относиться с осторожностью. Храните и извлекайте данные на защищенном сервере с зарегистрированным доменом. Всегда используйте HTTPS для подключения и избегайте хранения конфиденциальных пользовательских данных на клиентской стороне расширения, поскольку хранилище расширения не зашифровано.
Сохранение данных и режим инкогнито
Расширения могут сохранять данные с помощью API хранилища или путем выполнения запросов к серверу, в результате которых данные сохраняются. Когда расширению необходимо что-то сохранить, сначала подумайте, не из окна инкогнито. По умолчанию расширения не запускаются в Windows в режиме инкогнито.
Режим инкогнито обещает, что окно не оставит следов. При работе с данными из окон в режиме инкогнито расширения должны соблюдать это обещание. Если расширение обычно сохраняет историю просмотров, не сохраняйте историю из окон в режиме инкогнито. Однако расширения могут сохранять настройки настроек из любого окна, инкогнито или нет.
 Чтобы определить, находится ли окно в режиме инкогнито, проверьте свойство incognito соответствующего объекта tabs.Tab или windows.Window .
function saveTabData(tab) {
  if (tab.incognito) {
    return;
  } else {
    chrome.storage.local.set({data: tab.url});
  }
}