Возможно ли с помощью интерфейсов gecko / firefox XPCOM удалить или аннулировать активный сеанс пользователя без закрытия браузера? Я использую встроенный Gecko (в частности, GeckoFX ) в приложении, где существует вероятность того, что несколько пользователей могут использовать компонент браузера в течение всего срока службы приложения.
Приложение упаковывает веб-браузер с различными другими функциями, и когда веб-браузер «закрыт», приложение остается открытым. Кажется, что с точки зрения движка геккона, поскольку процесс еще не закрыт, активный сеанс все еще активен. Если пользователь должен войти в Gmail или Facebook, например, а затем закрыть браузер, после повторного открытия браузера и возврата на одну из этих страниц, этот пользователь будет по-прежнему входить в систему. Поскольку несколько пользователей могут использовать приложение без фактического выхода из приложения возникают проблемы с конфиденциальностью.
Я пытался вызвать NS_InitXPCOM2 и NS_ShutdownXPCOM в методе constructor / dispose элемента управления браузера, однако NS_InitXPCOM2 не может быть вызван после NS_ShutdownXPCOM в течение времени жизни процесса, так что это просто аварии.
Я также использовал метод PurgeHistory из nsISHistory и метод evictEntries из nsICacheService - ни один из них, по-видимому, не оказывает немедленного эффекта в течение жизни процесса.
Кто-нибудь знает какие-либо интерфейсы XPCOM, которые могут достичь этого? В качестве альтернативы, любые указатели в направлении аналогичной функциональности, будь то через интерфейсы XPCOM или расширения Firefox, будут высоко оценены (существуют ли какие-либо расширения, которые позволяют вам очистить текущий сеанс просмотра без повторного открытия браузера? Или которые предоставляют разные сессии между каждым Firefox окно / вкладка?)
Программа написана на C #, однако ответы на любом языке приветствуются.
Большое спасибо