Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

Расширение для Chrome в инкогнито режиме

#cookie #сессия #chrome_extension


Есть расширение для Chrome, которое делает ajax запрос на сайт. На сайте используются
сессии.

Так, вот, в ответе на ajax запрос к сайту, возвращается заголовок Set-Cookie c некоторым
идентификатором сессии и в разделе кук появляется соответсвующая запись. Речь идёт
о DevPanel фоновой страницы расширения.

Но, если посмотреть на куки в DevPanel браузера, то там совсем другой идентификатор
сессии.

Расширению разрешена работа в инкогнито режиме.

В обычном режиме браузера куки (идентификаторы сессии) в DevPanel расширения и браузера
одинаковы.

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

Получается, что, несмотря на то, что расширению разрешено работать в инкогнито режиме,
он сам работает в обычном режиме?
    


Ответы

Ответ 1



Для всех, кого интересует данный вопрос. Решение мне подсказали на форуме для обсуждения Google Chrome. В manifest есть ключ "incognito", у которого три значения: "spanning" (по умолчанию), "split" и "not_allowed". Подробнее об этой настройке можете прочитать здесь: https://developer.chrome.com/extensions/manifest/incognito. Решение моего вопроса, заключалось в задание значения "split". При этом значении, для расширения в инкогнито режиме, будет создаваться отдельный процесс. Другими словами, будет два процесса: для обычного и инкогнито режимов. Теперь, запросы в инкогнито режиме выполняются в инкогнито процессе и сессионная кука, получаемая расширением, может использоваться при редиректе на сайт. P.S. Если вы разрабатываете кроссбраузерное расширение, используя WebExtension API, то Firefox до сих пор (на 2017-12-11) поддерживает только "spanning" значение для ключа "incognito".

Комментариев нет:

Отправить комментарий