Что именно вы подразумеваете под «всеми куками, связанными с текущей вкладкой»?
Любой ресурс, загруженный по сети, может быть связан с файлом cookie. Если вы хотите получить куки для всех фреймов на вкладке, используйте метод chrome.webNavigation.getAllFrames
, чтобы получить список URL-адресов, связанных с вкладкой. Вот очень наивный метод получения всех файлов cookie.
chrome.tabs.query({
currentWindow: true,
active: true
}, function(tabs) {
chrome.webNavigation.getAllFrames({
tabId: tabs[0].id
}, function(details) {
// Get unique list of URLs
var urls = details.reduce(function(urls, frame) {
if (urls.indexOf(frame.url) === -1)
urls.push(frame.url);
return urls;
}, []);
// Get all cookies
var index = 0;
var cookies = [];
urls.forEach(function(url) {
chrome.cookies.getAll({
url: url
}, function(additionalCookies) {
cookies = cookies.concat(additionalCookies);
if (++index === urls.length) {
// Collected all cookies!
// TODO: Use cookies.
// Note: The array may contain duplicate cookies!
}
}); // chrome.cookies.getAll
}); // urls.forEach
}); // chrome.webNavigation.getAllFrames
}); // chrome.tabs.query
предыдущий метод наивный, так как результирующий массив печенья может содержать повторяющиеся записи (например, если страница содержит http://example.com
и http://example.com/index.htm
, то вы получите две записи для печенья на .example.com
).
Существует множество способов фильтрации дубликатов в массиве JavaScript, вы можете увидеть некоторые методы в this question.
Если вы хотите буквально получить все куки, связанные с вкладкой, вам необходимо собрать их, используя API chrome.webRequest
. Используйте события webRequest
для обнаружения сетевых запросов и заголовок запроса Cookie
и Set-Cookie
и Set-Cookie2
ответные заголовки. Вы должны вручную разобрать cookie.
Если вы хотите быстро просмотреть все файлы cookie, связанные с вкладкой (только кадры, как и первый метод), вы также можете открыть инструменты разработчика и посмотреть Ресурсы -> Файлы cookie).
(источник изображения: https://developers.google.com/chrome-developer-tools/docs/resources)
Ваш вопрос не ясен. Файлы cookie привязаны к URL-адресам, а не к вкладкам. Если вы хотите получить список файлов cookie для всех URL-адресов, для которых страница сделала запросы (включая внешние домены), вы должны перехватить http-запросы, собрать все URL-адреса, а затем вызывать 'cookies.getAll' для всех из них. – Stan