chrome.cookies

Описание

Используйте 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 . Другие примеры и помощь с просмотром исходного кода см. в разделе «Примеры» .

Типы

Представляет информацию о HTTP-cookie.

Характеристики

  • нить

    Домен cookie-файла (например, «www.google.com», «example.com»).

  • номер необязательный

    Срок действия cookie-файла определяется количеством секунд с начала эпохи UNIX. Не предусмотрено для сеансовых cookie-файлов.

  • булев

    True, если cookie-файл является cookie-файлом, действующим только на хосте (т.е. хост запроса должен точно соответствовать домену cookie-файла).

  • булев

    True, если cookie-файл помечен как HttpOnly (т.е. cookie-файл недоступен для клиентских скриптов).

  • нить

    Имя файла cookie.

  • CookiePartitionKey необязательно

    Хром 119+

    Ключ раздела для чтения или изменения файлов cookie с атрибутом Partitioned.

  • нить

    Путь файла cookie.

  • Хром 51+

    Статус куки-файла на том же сайте (т. е. отправляется ли куки-файл с межсайтовыми запросами).

  • булев

    True, если cookie-файл помечен как безопасный (т.е. его область действия ограничена безопасными каналами, обычно HTTPS).

  • булев

    True, если cookie-файл является сеансовым, а не постоянным cookie-файлом с датой истечения срока действия.

  • нить

    Идентификатор хранилища cookie, содержащего этот cookie, указанный в getAllCookieStores().

  • нить

    Ценность куки-файла.

CookieDetails

Хром 88+

Подробная информация для идентификации cookie-файла.

Характеристики

  • имя

    нить

    Имя куки-файла для доступа.

  • partitionKey

    CookiePartitionKey необязательно

    Хром 119+

    Ключ раздела для чтения или изменения файлов cookie с атрибутом Partitioned.

  • storeId

    строка необязательная

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

  • URL-адрес

    нить

    URL-адрес, с которым связан файл cookie для доступа. Этот аргумент может быть полным URL-адресом, в этом случае любые данные, следующие за URL-путем (например, строка запроса), просто игнорируются. Если разрешения хоста для этого URL-адреса не указаны в файле манифеста, вызов API завершится ошибкой.

CookiePartitionKey

Хром 119+

Представляет собой ключ раздела разделенного cookie-файла.

Характеристики

  • hasCrossSiteAncestor

    логическое необязательное

    Хром 130+

    Указывает, был ли файл cookie установлен в межсайтовом контексте. Это предотвращает доступ сайта верхнего уровня, встроенного в межсайтовый контекст, к файлам cookie, установленным сайтом верхнего уровня в контексте того же сайта.

  • topLevelSite

    строка необязательная

    Сайт верхнего уровня, на котором доступен разделенный cookie-файл.

CookieStore

Представляет хранилище файлов cookie в браузере. Например, окно в режиме инкогнито использует отдельное хранилище файлов cookie, отличное от окна в режиме инкогнито.

Характеристики

  • идентификатор

    нить

    Уникальный идентификатор хранилища cookie.

  • tabIds

    число[]

    Идентификаторы всех вкладок браузера, которые совместно используют это хранилище cookie.

FrameDetails

Хром 132+

Детали, позволяющие идентифицировать раму.

Характеристики

  • documentId

    строка необязательная

    Уникальный идентификатор документа. Если указаны frameId и/или tabId, они будут проверены на соответствие документу, найденному по указанному идентификатору.

  • frameId

    номер необязательный

    Уникальный идентификатор фрейма внутри вкладки.

  • tabId

    номер необязательный

    Уникальный идентификатор вкладки, содержащей фрейм.

OnChangedCause

Хром 44+

Основная причина изменения файла cookie. Если файл cookie был вставлен или удалён посредством явного вызова «chrome.cookies.remove», «cause» будет «explicit». Если файл cookie был автоматически удалён из-за истечения срока действия, «cause» будет «expired». Если файл cookie был удалён из-за перезаписи с уже истёкшим сроком действия, «cause» будет установлено как «expired_overwrite». Если файл cookie был автоматически удалён в результате сборки мусора, «cause» будет «evicted». Если файл cookie был автоматически удалён из-за вызова «set», который его перезаписал, «cause» будет «overwrite». Спланируйте свой ответ соответствующим образом.

Перечисление

«выселены»

"истекший"

"явный"

"expired_overwrite"

"перезаписать"

SameSiteStatus

Хром 51+

Состояние 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 по имени.

    • partitionKey

      CookiePartitionKey необязательно

      Хром 119+

      Ключ раздела для чтения или изменения файлов cookie с атрибутом Partitioned.

    • путь

      строка необязательная

      Ограничивает извлеченные cookie-файлы теми, путь которых точно соответствует этой строке.

    • безопасный

      логическое необязательное

      Фильтрует файлы cookie по их свойству «Безопасность».

    • сессия

      логическое необязательное

      Фильтрует сеансовые и постоянные файлы cookie.

    • storeId

      строка необязательная

      Хранилище cookie-файлов, из которого нужно извлечь cookie-файлы. Если этот параметр пропущен, будет использоваться хранилище cookie текущего контекста выполнения.

    • URL-адрес

      строка необязательная

      Ограничивает извлеченные cookie-файлы теми, которые соответствуют указанному URL-адресу.

Возврат

  • Обещание< Cookie []>

    Хром 88+

getAllCookieStores()

chrome.cookies.getAllCookieStores(): Promise<CookieStore[]>

Перечисляет все существующие хранилища файлов cookie.

Возврат

getPartitionKey()

Хром 132+
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. Если не указано, по умолчанию пусто.

    • partitionKey

      CookiePartitionKey необязательно

      Хром 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 был удален.