Отказано в доступе при попытке установить cookie в веб-расширении firefox для локального файла

Я пытаюсь установить новый файл cookie в Firefox с веб-расширением на странице, которая является локальным файлом (с протоколом файла: file:///[...]), и я получаю следующую ошибку:

Отказано в разрешении на установку cookie {"domain":"","expirationDate":null,"firstPartyDomain":"","httpOnly":null,"name":"myCookie","path":null,"secure": нуль "StoreID": нулевой, "URL": "файл:///E:/folder/mypage.html","значение": "MyValue"}

Это скрипт, который я использую для вставки куки:

var newCookie = {
        domain: '',
        name: 'myCookie',
        value: 'myValue',
        path: null,
        secure: null,
        httpOnly: null,
        expirationDate: null,
        storeId: null,
        url: 'file:///E:/folder/mypage.html',
    };

    if (cookie.hostOnly) {
        newCookie.domain = null;
    }
    browser.cookies.set(newCookie).then(function (e) {
        console.log('success!');
    }, function (e) {
        console.error(e);
    });

И эти разрешения настроены в manifest.json:

"permissions": [
    "cookies",
    "<all_urls>",
    "tabs"
],

Я предположил, что мне нужно дополнительное разрешение, но я не смог найти ничего связанного с этим в документации. all_urls должен включать все протоколы.

Я могу создавать куки вручную в devTools, используя простой код, подобный тому document.cookie = "myCookie=myValue";

И я также могу добавить cookie-файл на страницу с помощью сценария содержимого, введенного, например, browser.tabs.executeScript ({code: document.cookie = "${newCookie.name}=${newCookie.value}" });

Но это похоже на хак, и я чувствую, что должен быть в состоянии использовать API browser.cookies для этого.

Что я здесь не так делаю?

0 ответов

Другие вопросы по тегам