Martovitskiy
@Martovitskiy

Как прочитать куки определенного сайта на другой вкладке если активно расширение google?

Пишу расширение, нужно получить куки определенного сайта на любой вкладке
manifest.json
"background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "permissions": [
    "activeTab",
    "tabs",
    "cookies",
    "storage",
    "<all_urls>"
  ],  
"content_scripts": [
    {
      "matches": [
        "http://*/*", "https://*/*"
      ],
      "js": [ "jquery.min.js", "bundle/content.js", "bundle/event.js"],
      "run_at": "document_start"
    }
  ],
  "web_accessible_resources":[
    "main.js",
    "background.js",
    "*.svg",
    "*.ttf",
    "img/*"
  ]


в background.js

пробовал через executeScript, получаю ошибку Cannot read property 'executeScript' of undefined:
chrome.tabs.executeScript({
    code: 'performance.getEntriesByType("resource").map(e => e.name)',
}, data => {
    if (chrome.runtime.lastError || !data || !data[0]) return;
    const urls = data[0].map(url => url.split(/[#?]/)[0]);
    const uniqueUrls = [...new Set(urls).values()].filter(Boolean);
    Promise.all(
      uniqueUrls.map(url =>
        new Promise(resolve => {
            chrome.cookies.getAll({url}, resolve);
        })
      )
    ).then(results => {
        // convert the array of arrays into a deduplicated flat array of cookies
        const cookies = [
            ...new Map(
              [].concat(...results)
                .map(c => [JSON.stringify(c), c])
            ).values()
        ];

        // do something with the cookies here
        console.log(uniqueUrls, cookies);
    });
});


пробовал через chrome.cookies.get

chrome.cookies.get({url: "test.test.com", name: 'site_session'}, function(session) {
console.log(session)
});

ошибка Uncaught TypeError: Cannot read property 'get' of undefined
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ответы на вопрос 1
iNickolay
@iNickolay
Никак:
Начиная с версии Chrome 86, которая вышла в октябре 2020 года, Браузер имеет политику разделённого браузерного кэша (partitioned browser cache).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽