From 55db0fc3880948dd905e4997e9586085e064a3c6 Mon Sep 17 00:00:00 2001 From: "dietrich@mozilla.com" Date: Tue, 8 Jan 2008 18:23:31 -0800 Subject: [PATCH] Bug 411353 ? Default bookmarks and Smart folder missing from New Profile (r=bsmedberg, a=revert) --- .../profile/src/nsToolkitProfileService.cpp | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/toolkit/profile/src/nsToolkitProfileService.cpp b/toolkit/profile/src/nsToolkitProfileService.cpp index 959b3d376155..13b910e9b568 100644 --- a/toolkit/profile/src/nsToolkitProfileService.cpp +++ b/toolkit/profile/src/nsToolkitProfileService.cpp @@ -686,7 +686,30 @@ nsToolkitProfileService::CreateProfile(nsILocalFile* aRootDir, return NS_ERROR_FILE_NOT_DIRECTORY; } else { - rv = rootDir->Create(nsIFile::DIRECTORY_TYPE, 0700); + nsCOMPtr profileDefaultsDir; + nsCOMPtr profileDirParent; + nsCAutoString profileDirName; + + rv = rootDir->GetParent(getter_AddRefs(profileDirParent)); + NS_ENSURE_SUCCESS(rv, rv); + + rv = rootDir->GetNativeLeafName(profileDirName); + NS_ENSURE_SUCCESS(rv, rv); + + PRBool dummy; + rv = gDirServiceProvider->GetFile(NS_APP_PROFILE_DEFAULTS_50_DIR, &dummy, + getter_AddRefs(profileDefaultsDir)); + + if (NS_SUCCEEDED(rv)) + rv = profileDefaultsDir->CopyToNative(profileDirParent, + profileDirName); + if (NS_FAILED(rv)) { + // if copying failed, lets just ensure that the profile directory exists. + rv = rootDir->Create(nsIFile::DIRECTORY_TYPE, 0700); + NS_ENSURE_SUCCESS(rv, rv); + } + + rv = rootDir->SetPermissions(0700); NS_ENSURE_SUCCESS(rv, rv); }