Bug 870460 - Part 4: Make the lifecycle of cookie thread alongwith the profile. r=ngwh

This commit is contained in:
Junior Hsu 2017-10-25 01:30:00 -04:00
Родитель 47c1ce6716
Коммит 96911b1321
1 изменённых файлов: 7 добавлений и 7 удалений

Просмотреть файл

@ -644,9 +644,6 @@ nsCookieService::Init()
mStorageService = do_GetService("@mozilla.org/storage/service;1", &rv);
NS_ENSURE_SUCCESS(rv, rv);
rv = NS_NewNamedThread("Cookie", getter_AddRefs(mThread));
NS_ENSURE_SUCCESS(rv, rv);
// Init our default, and possibly private DBStates.
InitDBStates();
@ -674,6 +671,7 @@ nsCookieService::InitDBStates()
NS_ASSERTION(!mDefaultDBState, "already have a default DBState");
NS_ASSERTION(!mPrivateDBState, "already have a private DBState");
NS_ASSERTION(!mInitializedDBStates, "already initialized");
NS_ASSERTION(!mThread, "already have a cookie thread");
// Create a new default DBState and set our current one.
mDefaultDBState = new DBState();
@ -695,6 +693,8 @@ nsCookieService::InitDBStates()
}
mDefaultDBState->cookieFile->AppendNative(NS_LITERAL_CSTRING(COOKIES_FILE));
NS_ENSURE_SUCCESS_VOID(NS_NewNamedThread("Cookie", getter_AddRefs(mThread)));
nsCOMPtr<nsIRunnable> runnable = NS_NewRunnableFunction("InitDBStates.TryInitDB", [] {
NS_ENSURE_TRUE_VOID(gCookieService &&
gCookieService->mDBState &&
@ -1703,7 +1703,10 @@ nsCookieService::CloseDBStates()
return;
}
EnsureReadComplete(false);
if (mThread) {
mThread->Shutdown();
mThread = nullptr;
}
// Null out our private and pointer DBStates regardless.
mPrivateDBState = nullptr;
@ -1962,9 +1965,6 @@ nsCookieService::~nsCookieService()
UnregisterWeakMemoryReporter(this);
gCookieService = nullptr;
if (mThread) {
mThread->Shutdown();
}
}
NS_IMETHODIMP