Bug 573739 - Don't get the private browing service during layout module initialization: delay until profile-after-change.

This commit is contained in:
Benjamin Smedberg 2010-06-22 12:59:57 -04:00
Родитель d8fb140651
Коммит c89bc5321c
2 изменённых файлов: 17 добавлений и 14 удалений

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

@ -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;
}