зеркало из https://github.com/mozilla/gecko-dev.git
Bug 573739 - Don't get the private browing service during layout module initialization: delay until profile-after-change.
This commit is contained in:
Родитель
d8fb140651
Коммит
c89bc5321c
|
@ -262,13 +262,9 @@ nsDOMStorageManager::Initialize()
|
|||
os->AddObserver(gStorageManager, "cookie-changed", PR_FALSE);
|
||||
os->AddObserver(gStorageManager, "offline-app-removed", PR_FALSE);
|
||||
os->AddObserver(gStorageManager, NS_PRIVATE_BROWSING_SWITCH_TOPIC, PR_FALSE);
|
||||
os->AddObserver(gStorageManager, "profile-after-change", PR_FALSE);
|
||||
os->AddObserver(gStorageManager, "perm-changed", PR_FALSE);
|
||||
|
||||
nsCOMPtr<nsIPrivateBrowsingService> pbs =
|
||||
do_GetService(NS_PRIVATE_BROWSING_SERVICE_CONTRACTID);
|
||||
if (pbs)
|
||||
pbs->GetPrivateBrowsingEnabled(&gStorageManager->mInPrivateBrowsing);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -348,7 +344,13 @@ nsDOMStorageManager::Observe(nsISupports *aSubject,
|
|||
const char *aTopic,
|
||||
const PRUnichar *aData)
|
||||
{
|
||||
if (!strcmp(aTopic, "offline-app-removed")) {
|
||||
if (!strcmp(aTopic, "profile-after-change")) {
|
||||
nsCOMPtr<nsIPrivateBrowsingService> pbs =
|
||||
do_GetService(NS_PRIVATE_BROWSING_SERVICE_CONTRACTID);
|
||||
if (pbs)
|
||||
pbs->GetPrivateBrowsingEnabled(&gStorageManager->mInPrivateBrowsing);
|
||||
}
|
||||
else if (!strcmp(aTopic, "offline-app-removed")) {
|
||||
#ifdef MOZ_STORAGE
|
||||
nsresult rv = nsDOMStorage::InitDB();
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
|
|
@ -805,17 +805,12 @@ nsPrivateBrowsingObserver::nsPrivateBrowsingObserver()
|
|||
void
|
||||
nsPrivateBrowsingObserver::Init()
|
||||
{
|
||||
nsCOMPtr<nsIPrivateBrowsingService> pbService =
|
||||
do_GetService(NS_PRIVATE_BROWSING_SERVICE_CONTRACTID);
|
||||
if (!pbService)
|
||||
return;
|
||||
|
||||
pbService->GetPrivateBrowsingEnabled(&mInPrivateBrowsing);
|
||||
|
||||
nsCOMPtr<nsIObserverService> observerService =
|
||||
mozilla::services::GetObserverService();
|
||||
if (observerService)
|
||||
if (observerService) {
|
||||
observerService->AddObserver(this, "profile-after-change", PR_TRUE);
|
||||
observerService->AddObserver(this, NS_PRIVATE_BROWSING_SWITCH_TOPIC, PR_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
@ -830,6 +825,12 @@ nsPrivateBrowsingObserver::Observe(nsISupports *aSubject,
|
|||
mInPrivateBrowsing = PR_FALSE;
|
||||
}
|
||||
}
|
||||
else if (!strcmp(aTopic, "profile-after-change")) {
|
||||
nsCOMPtr<nsIPrivateBrowsingService> pbService =
|
||||
do_GetService(NS_PRIVATE_BROWSING_SERVICE_CONTRACTID);
|
||||
if (pbService)
|
||||
pbService->GetPrivateBrowsingEnabled(&mInPrivateBrowsing);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче