Bug 1360480 - about:url-classifier: Cache information. r=francois

MozReview-Commit-ID: 4YXtb2KPgwL
This commit is contained in:
DimiL
2017-05-17 10:32:33 +08:00
parent 75f2175e94
commit c8f160ac4e
18 changed files with 651 additions and 35 deletions

View File

@@ -734,6 +734,18 @@ nsUrlClassifierDBServiceWorker::ReloadDatabase()
return NS_OK;
}
NS_IMETHODIMP
nsUrlClassifierDBServiceWorker::ClearCache()
{
nsTArray<nsCString> tables;
nsresult rv = mClassifier->ActiveTables(tables);
NS_ENSURE_SUCCESS(rv, rv);
mClassifier->ResetTables(Classifier::Clear_Cache, tables);
return NS_OK;
}
NS_IMETHODIMP
nsUrlClassifierDBServiceWorker::CancelUpdate()
{
@@ -944,6 +956,19 @@ nsUrlClassifierDBServiceWorker::ClearLastResults()
return NS_OK;
}
nsresult
nsUrlClassifierDBServiceWorker::GetCacheInfo(const nsACString& aTable,
nsIUrlClassifierCacheInfo** aCache)
{
MOZ_ASSERT(!NS_IsMainThread(), "Must be on the background thread");
if (!mClassifier) {
return NS_ERROR_NOT_AVAILABLE;
}
mClassifier->GetCacheInfo(aTable, aCache);
return NS_OK;
}
bool
nsUrlClassifierDBServiceWorker::IsSameAsLastResults(CacheResultArray& aResult)
{
@@ -1507,6 +1532,7 @@ NS_INTERFACE_MAP_BEGIN(nsUrlClassifierDBService)
// Only nsIURIClassifier is supported in the content process!
NS_INTERFACE_MAP_ENTRY_CONDITIONAL(nsIUrlClassifierDBService, XRE_IsParentProcess())
NS_INTERFACE_MAP_ENTRY(nsIURIClassifier)
NS_INTERFACE_MAP_ENTRY(nsIUrlClassifierInfo)
NS_INTERFACE_MAP_ENTRY_CONDITIONAL(nsIObserver, XRE_IsParentProcess())
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIURIClassifier)
NS_INTERFACE_MAP_END
@@ -2198,6 +2224,24 @@ nsUrlClassifierDBService::ReloadDatabase()
return mWorkerProxy->ReloadDatabase();
}
NS_IMETHODIMP
nsUrlClassifierDBService::ClearCache()
{
NS_ENSURE_TRUE(gDbBackgroundThread, NS_ERROR_NOT_INITIALIZED);
return mWorkerProxy->ClearCache();
}
NS_IMETHODIMP
nsUrlClassifierDBService::GetCacheInfo(const nsACString& aTable,
nsIUrlClassifierCacheInfo** aCache)
{
NS_ENSURE_TRUE(gDbBackgroundThread, NS_ERROR_NOT_INITIALIZED);
return mWorkerProxy->GetCacheInfo(aTable, aCache);
}
nsresult
nsUrlClassifierDBService::CacheCompletions(CacheResultArray *results)
{