6

帮助!我使用GeckoFx-Windows-10.0-0.6浏览器和xulrunner-10.0.en-US.win32。(Visual Studio 2010 c#)一切正常。但我需要清除 Firefox 的所有历史记录:工具 >> 选项 >> 隐私

我发现 cookie 是多么清晰Gecko.CookieManager.RemoveAll();

缓存、临时文件和历史记录有多清晰?!

当我初始化时,由于显而易见的原因, Gecko.Xpcom我无法清理文件夹(缓存和 cookie 所在的位置)。没有帮助"Gecko.Xpcom.ProfileDirectory"Gecko.Xpcom.Shutdown()


我找到了一种通过 javascript 清理 cookie 的方法:

var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"].getService(Components.interfa‌​ces.nsICookieManager); cookieManager.removeAll();

在 C# 中如何正确调用这个 JS?

4

2 回答 2

6

要清除 cookie,您需要查询如下界面:

    if (MessageBox.Show("Do you want to delete cookies?", "About to delete all cookies", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
    {
        nsICookieManager CookieMan;
        CookieMan = Xpcom.GetService<nsICookieManager>("@mozilla.org/cookiemanager;1");
        CookieMan = Xpcom.QueryInterface<nsICookieManager>(CookieMan);
        CookieMan.RemoveAll();
    }

由于安全等原因,在运行时拒绝访问缓存。这意味着您需要在程序关闭等之后找到一种删除这些文件夹的方法。创建另一个应用程序来处理它。

于 2013-04-12T15:00:18.590 回答
2

对于它的价值,因为我为此看了一段时间,在 GeckoFX 29 上,至少历史遵循相同的模式:

nsIBrowserHistory historyMan = Xpcom.GetService<nsIBrowserHistory>(Gecko.Contracts.NavHistoryService);
historyMan = Xpcom.QueryInterface<nsIBrowserHistory>(historyMan);
historyMan.RemoveAllPages();

对于没有确定是正确方法的缓存:

// https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/imgICache
Gecko.Cache.ImageCache.ClearCache(true);
Gecko.Cache.ImageCache.ClearCache(false);
// Defaults to all devices(0) - https://bitbucket.org/geckofx/geckofx-9.0/issue/7/idl-translation-bug-for-enums
Gecko.Cache.CacheService.Clear(new CacheStoragePolicy());
于 2014-09-30T01:17:32.097 回答