2010-02-22 31 views
2

使用gecko/firefox XPCOM接口可以在不關閉瀏覽器的情況下刪除或使用戶的活動會話失效嗎?我在一個應用程序中使用Gecko嵌入式(特別是GeckoFX),在這個應用程序中,多個用戶可能會在應用程序的整個生命週期中使用瀏覽器組件。是否有可能在不關閉瀏覽器的情況下刪除或失效gecko/firefox會話?

該應用程序使用各種其他功能打包網頁瀏覽,當網頁瀏覽器「關閉」時,該應用程序保持打開狀態。看起來,就壁虎引擎而言,由於該過程尚未結束,活動會話仍處於活動狀態。例如,如果用戶要登錄到Gmail或Facebook,然後關閉瀏覽器,則在重新打開瀏覽器並導航回其中一個頁面時,該用戶被確定仍然登錄。由於多個用戶可以使用該應用程序沒有實際退出的應用程序,這會引發隱私問題。

我曾嘗試調用構造函數中NS_InitXPCOM2NS_ShutdownXPCOM /處置瀏覽器控件的方法,但是NS_InitXPCOM2後不能NS_ShutdownXPCOM過程的生命週期中調用,所以這簡直崩潰。

我還使用了nsISHistory的清除歷史方法和nsICacheService的evictEntries方法 - 這些方法都沒有在整個過程的生命週期中產生立竿見影的效果。

有誰知道任何可以實現這一目標的XPCOM接口?另外,任何指向類似功能的指針,無論是通過XPCOM接口還是Firefox擴展,都將不勝感激(是否有任何擴展允許您在不重新打開瀏覽器的情況下清除當前瀏覽會話?或者爲每個會話之間提供了不同的會話Firefox的窗口/標籤?)

該程序是用C#編寫的,但是用任何語言都可以得到答案。

非常感謝

回答

4

我終於發現,似乎讓這個界面:在適當的位置

[Guid("AAAB6710-0F2C-11d5-A53B-0010A401EB10"), 
ComImport, 
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] 
interface nsICookieManager 
{ 
    void removeAll(); 
    void remove(string aDomain, string aName, string aPath, bool aBlocked); 
} 

Xpcom.GetService<nsICookieManager>("@mozilla.org/cookiemanager;1").removeAll();nsICookieManagerremoveAll()

相關的C#接口/代碼爲那些使用GeckoFX。

相關問題