зеркало из https://github.com/mozilla/gecko-dev.git
Bug 870460 - Part 4: Make the lifecycle of cookie thread alongwith the profile. r=ngwh
This commit is contained in:
Родитель
47c1ce6716
Коммит
96911b1321
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче