Описание
 Используйте API chrome.cookies для запроса и изменения файлов cookie, а также для получения уведомлений об их изменении.
Разрешения
cookies Чтобы использовать API cookie-файлов, укажите разрешение "cookies" в манифесте вместе с разрешениями для всех хостов, к файлам cookie которых вы хотите получить доступ. Например:
{
  "name": "My extension",
  ...
  "host_permissions": [
    "*://*.google.com/"
  ],
  "permissions": [
    "cookies"
  ],
  ...
}
Разбиение
Разделённые файлы cookie позволяют сайту указать, что определённые файлы cookie должны быть привязаны к источнику фрейма верхнего уровня. Это означает, что, например, если сайт A встроен с помощью iframe на сайтах B и C, встроенные версии разделённого файла cookie с A могут иметь разные значения на сайтах B и C.
 По умолчанию все методы API работают с неразделёнными cookie-файлами. Свойство partitionKey можно переопределить с помощью свойства partitionKey.
Подробную информацию об общем влиянии разбиения на разделы для расширений см. в разделе Хранилище и файлы cookie .
Примеры
Простой пример использования API cookie-файлов можно найти в каталоге examples/api/cookies . Другие примеры и помощь с просмотром исходного кода см. в разделе «Примеры» .
Типы
Cookie
Представляет информацию о HTTP-cookie.
Характеристики
- доменнить Домен cookie-файла (например, «www.google.com», «example.com»). 
- Дата окончания сроканомер необязательный Срок действия cookie-файла определяется количеством секунд с начала эпохи UNIX. Не предусмотрено для сеансовых cookie-файлов. 
- только хостбулев True, если cookie-файл является cookie-файлом, действующим только на хосте (т.е. хост запроса должен точно соответствовать домену cookie-файла). 
- httpOnlyбулев True, если cookie-файл помечен как HttpOnly (т.е. cookie-файл недоступен для клиентских скриптов). 
- имянить Имя файла cookie. 
- partitionKeyCookiePartitionKey необязательно Хром 119+Ключ раздела для чтения или изменения файлов cookie с атрибутом Partitioned. 
- путьнить Путь файла cookie. 
- тот жеСайтХром 51+Статус куки-файла на том же сайте (т. е. отправляется ли куки-файл с межсайтовыми запросами). 
- безопасныйбулев True, если cookie-файл помечен как безопасный (т.е. его область действия ограничена безопасными каналами, обычно HTTPS). 
- сессиябулев True, если cookie-файл является сеансовым, а не постоянным cookie-файлом с датой истечения срока действия. 
- storeIdнить Идентификатор хранилища cookie, содержащего этот cookie, указанный в getAllCookieStores(). 
- ценитьнить Ценность куки-файла. 
CookieDetails
Подробная информация для идентификации cookie-файла.
Характеристики
- имянить Имя куки-файла для доступа. 
- partitionKeyCookiePartitionKey необязательно Хром 119+Ключ раздела для чтения или изменения файлов cookie с атрибутом Partitioned. 
- storeIdстрока необязательная Идентификатор хранилища cookie, в котором следует искать cookie. По умолчанию будет использоваться хранилище cookie текущего контекста выполнения. 
- URL-адреснить URL-адрес, с которым связан файл cookie для доступа. Этот аргумент может быть полным URL-адресом, в этом случае любые данные, следующие за URL-путем (например, строка запроса), просто игнорируются. Если разрешения хоста для этого URL-адреса не указаны в файле манифеста, вызов API завершится ошибкой. 
CookiePartitionKey
Представляет собой ключ раздела разделенного cookie-файла.
Характеристики
- hasCrossSiteAncestorлогическое необязательное Хром 130+Указывает, был ли файл cookie установлен в межсайтовом контексте. Это предотвращает доступ сайта верхнего уровня, встроенного в межсайтовый контекст, к файлам cookie, установленным сайтом верхнего уровня в контексте того же сайта. 
- topLevelSiteстрока необязательная Сайт верхнего уровня, на котором доступен разделенный cookie-файл. 
CookieStore
Представляет хранилище файлов cookie в браузере. Например, окно в режиме инкогнито использует отдельное хранилище файлов cookie, отличное от окна в режиме инкогнито.
Характеристики
- идентификаторнить Уникальный идентификатор хранилища cookie. 
- tabIdsчисло[] Идентификаторы всех вкладок браузера, которые совместно используют это хранилище cookie. 
FrameDetails
Детали, позволяющие идентифицировать раму.
Характеристики
- documentIdстрока необязательная Уникальный идентификатор документа. Если указаны frameId и/или tabId, они будут проверены на соответствие документу, найденному по указанному идентификатору. 
- frameIdномер необязательный Уникальный идентификатор фрейма внутри вкладки. 
- tabIdномер необязательный Уникальный идентификатор вкладки, содержащей фрейм. 
OnChangedCause
Основная причина изменения файла cookie. Если файл cookie был вставлен или удалён посредством явного вызова «chrome.cookies.remove», «cause» будет «explicit». Если файл cookie был автоматически удалён из-за истечения срока действия, «cause» будет «expired». Если файл cookie был удалён из-за перезаписи с уже истёкшим сроком действия, «cause» будет установлено как «expired_overwrite». Если файл cookie был автоматически удалён в результате сборки мусора, «cause» будет «evicted». Если файл cookie был автоматически удалён из-за вызова «set», который его перезаписал, «cause» будет «overwrite». Спланируйте свой ответ соответствующим образом.
Перечисление
 «выселены»   "истекший"   "явный"   "expired_overwrite"   "перезаписать" 
SameSiteStatus
Состояние cookie-файла «SameSite» (https://tools.ietf.org/html/draft-west-first-party-cookies). «no_restriction» соответствует набору cookie-файлов с «SameSite=None», «lax» — «SameSite=Lax», а «strict» — «SameSite=Strict». «unspecified» соответствует набору cookie-файлов без атрибута SameSite.
Перечисление
 "no_restriction"   "слабый"   "строгий"   "неуказанный" 
Методы
get()
chrome.cookies.get(
details: CookieDetails,
): Promise<Cookie | undefined>
Получает информацию об одном файле cookie. Если для заданного URL-адреса существует несколько файлов cookie с одинаковым именем, будет возвращен файл с самым длинным путем. Для файлов cookie с одинаковой длиной пути будет возвращен файл cookie с самым ранним временем создания.
Параметры
- подробности
Возврат
- Обещание< Файл cookie | не определено> Хром 88+
getAll()
chrome.cookies.getAll(
details: object,
): Promise<Cookie[]>
Извлекает все файлы cookie из одного хранилища, соответствующие заданной информации. Возвращаемые файлы cookie сортируются, начиная с файлов с самым длинным путём. Если несколько файлов cookie имеют одинаковую длину пути, первыми будут файлы с самым ранним временем создания. Этот метод извлекает файлы cookie только для доменов, к которым у расширения есть разрешения на хост.
Параметры
- подробностиобъект Информация для фильтрации получаемых cookie-файлов. - доменстрока необязательная Ограничивает извлеченные cookie-файлы теми, домены которых совпадают с данным или являются его поддоменами. 
- имястрока необязательная Фильтрует файлы cookie по имени. 
- partitionKeyCookiePartitionKey необязательно Хром 119+Ключ раздела для чтения или изменения файлов cookie с атрибутом Partitioned. 
- путьстрока необязательная Ограничивает извлеченные cookie-файлы теми, путь которых точно соответствует этой строке. 
- безопасныйлогическое необязательное Фильтрует файлы cookie по их свойству «Безопасность». 
- сессиялогическое необязательное Фильтрует сеансовые и постоянные файлы cookie. 
- storeIdстрока необязательная Хранилище cookie-файлов, из которого нужно извлечь cookie-файлы. Если этот параметр пропущен, будет использоваться хранилище cookie текущего контекста выполнения. 
- URL-адресстрока необязательная Ограничивает извлеченные cookie-файлы теми, которые соответствуют указанному URL-адресу. 
 
Возврат
- Обещание< Cookie []> Хром 88+
getAllCookieStores()
chrome.cookies.getAllCookieStores(): Promise<CookieStore[]>
Перечисляет все существующие хранилища файлов cookie.
Возврат
- Обещание< CookieStore []> Хром 88+
getPartitionKey()
chrome.cookies.getPartitionKey(
details: FrameDetails,
): Promise<object>
Указан ключ раздела для кадра.
Параметры
- подробности
Возврат
- Обещание<объект> 
remove()
chrome.cookies.remove(
details: CookieDetails,
): Promise<object | undefined>
Удаляет куки-файл по имени.
Параметры
- подробности
Возврат
- Обещание<объект | неопределенный> Хром 88+
set()
chrome.cookies.set(
details: object,
): Promise<Cookie | undefined>
Устанавливает cookie-файл с указанными данными cookie-файла; может перезаписывать эквивалентные cookie-файлы, если они существуют.
Параметры
- подробностиобъект Подробная информация об устанавливаемом cookie-файле. - доменстрока необязательная Домен cookie-файла. Если не указан, cookie-файл становится только хостовым. 
- Дата окончания сроканомер необязательный Дата истечения срока действия cookie-файла, выраженная в секундах с начала эпохи UNIX. Если этот параметр не указан, cookie-файл становится сеансовым. 
- httpOnlyлогическое необязательное Следует ли помечать cookie как HttpOnly. Значение по умолчанию — false. 
- имястрока необязательная Имя файла cookie. Если не указано, по умолчанию пусто. 
- partitionKeyCookiePartitionKey необязательно Хром 119+Ключ раздела для чтения или изменения файлов cookie с атрибутом Partitioned. 
- путьстрока необязательная Путь к файлу cookie. По умолчанию соответствует части пути параметра URL. 
- тот жеСайтSameSiteStatus необязательно Хром 51+Статус cookie-файла на том же сайте. По умолчанию — «не указано», т. е. если не указано, cookie-файл устанавливается без указания атрибута SameSite. 
- безопасныйлогическое необязательное Следует ли пометить файл cookie как безопасный. Значение по умолчанию — false. 
- storeIdстрока необязательная Идентификатор хранилища cookie, в котором необходимо установить cookie. По умолчанию cookie устанавливается в хранилище cookie текущего контекста выполнения. 
- URL-адреснить URI запроса для связи с настройкой cookie. Это значение может повлиять на значения домена и пути по умолчанию для создаваемого cookie. Если разрешения хоста для этого URL не указаны в файле манифеста, вызов API завершится ошибкой. 
- ценитьстрока необязательная Значение cookie-файла. Если не указано, по умолчанию пусто. 
 
Возврат
- Обещание< Файл cookie | не определено> Хром 88+
События
onChanged
chrome.cookies.onChanged.addListener(
callback: function,
)
Срабатывает при установке или удалении файла cookie. Обратите внимание, что обновление свойств файла cookie реализовано в виде особого случая: сначала файл cookie, подлежащий обновлению, полностью удаляется, что приводит к появлению уведомления с причиной «overwrite». После этого записывается новый файл cookie с обновлёнными значениями, что приводит к появлению второго уведомления с причиной «explicit».
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(changeInfo: object) => void - changeInfoобъект - причинаОсновная причина изменения cookie-файла. 
- печеньеИнформация о cookie-файле, который был установлен или удален. 
- удаленныйбулев True, если файл cookie был удален.