diff options
Diffstat (limited to 'config/firefox/nightly/D6695.diff')
-rw-r--r-- | config/firefox/nightly/D6695.diff | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/config/firefox/nightly/D6695.diff b/config/firefox/nightly/D6695.diff new file mode 100644 index 000000000000..31a08471a8cc --- /dev/null +++ b/config/firefox/nightly/D6695.diff @@ -0,0 +1,159 @@ +--- a/toolkit/xre/nsXREDirProvider.cpp ++++ b/toolkit/xre/nsXREDirProvider.cpp +@@ -390,13 +390,6 @@ nsXREDirProvider::GetFile(const char* aProperty, bool* aPersistent, + nsCOMPtr<nsIFile> localDir; + rv = GetUserDataDirectoryHome(getter_AddRefs(localDir), false); + if (NS_SUCCEEDED(rv)) { +-#if defined(XP_MACOSX) +- rv = localDir->AppendNative(NS_LITERAL_CSTRING("Mozilla")); +-#else +- rv = localDir->AppendNative(NS_LITERAL_CSTRING(".mozilla")); +-#endif +- } +- if (NS_SUCCEEDED(rv)) { + localDir.swap(file); + } + } +@@ -1249,8 +1242,6 @@ nsresult nsXREDirProvider::GetUpdateRootDir(nsIFile** aResult, + nsDependentCString(hasVendor ? GetAppVendor() : GetAppName())))) { + return NS_ERROR_FAILURE; + } +- } else if (NS_FAILED(localDir->AppendNative(NS_LITERAL_CSTRING("Mozilla")))) { +- return NS_ERROR_FAILURE; + } + + if (NS_FAILED(localDir->Append(NS_LITERAL_STRING("updates"))) || +@@ -1378,6 +1369,9 @@ nsresult nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile, + NS_ENSURE_SUCCESS(rv, rv); + + localDir = dirFileMac; ++ ++ rv = localDir->AppendRelativeNativePath(nsDependentCString("Mozilla")); ++ NS_ENSURE_SUCCESS(rv, rv); + #elif defined(XP_IOS) + nsAutoCString userDir; + if (GetUIKitDirectory(aLocal, userDir)) { +@@ -1401,6 +1395,9 @@ nsresult nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile, + NS_ENSURE_SUCCESS(rv, rv); + + rv = NS_NewLocalFile(path, true, getter_AddRefs(localDir)); ++ NS_ENSURE_SUCCESS(rv, rv); ++ rv = localDir->AppendRelativeNativePath(nsDependentCString("Mozilla")); ++ NS_ENSURE_SUCCESS(rv, rv); + #elif defined(XP_UNIX) + const char* homeDir = getenv("HOME"); + if (!homeDir || !*homeDir) return NS_ERROR_FAILURE; +@@ -1422,8 +1419,51 @@ nsresult nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile, + rv = localDir->AppendNative(NS_LITERAL_CSTRING(".cache")); + } + } else { ++ bool exists; ++ /* check old config ~/.mozilla */ + rv = NS_NewNativeLocalFile(nsDependentCString(homeDir), true, + getter_AddRefs(localDir)); ++ NS_ENSURE_SUCCESS(rv, rv); ++ rv = localDir->AppendRelativeNativePath(nsDependentCString(".mozilla")); ++ NS_ENSURE_SUCCESS(rv, rv); ++ rv = localDir->Exists(&exists); ++ NS_ENSURE_SUCCESS(rv, rv); ++ /* otherwise, use new config */ ++ if (!exists) { ++ const char* xdghomedir = getenv("XDG_DATA_HOME"); ++ if (!xdghomedir || !*xdghomedir) { ++ rv = NS_NewNativeLocalFile(nsDependentCString(homeDir), true, ++ getter_AddRefs(localDir)); ++ NS_ENSURE_SUCCESS(rv, rv); ++ rv = localDir->AppendRelativeNativePath(nsDependentCString(".local")); ++ NS_ENSURE_SUCCESS(rv, rv); ++ rv = localDir->Exists(&exists); ++ if (NS_SUCCEEDED(rv) && !exists) { ++ rv = localDir->Create(nsIFile::DIRECTORY_TYPE, 0755); ++ NS_ENSURE_SUCCESS(rv, rv); ++ } ++ rv = localDir->AppendRelativeNativePath(nsDependentCString("share")); ++ NS_ENSURE_SUCCESS(rv, rv); ++ rv = localDir->Exists(&exists); ++ if (NS_SUCCEEDED(rv) && !exists) { ++ rv = localDir->Create(nsIFile::DIRECTORY_TYPE, 0755); ++ } ++ } ++ else { ++ rv = NS_NewNativeLocalFile(nsDependentCString(xdghomedir), true, ++ getter_AddRefs(localDir)); ++ } ++ NS_ENSURE_SUCCESS(rv, rv); ++ ++ rv = localDir->AppendRelativeNativePath(nsDependentCString("mozilla")); ++ NS_ENSURE_SUCCESS(rv, rv); ++ rv = localDir->Exists(&exists); ++ NS_ENSURE_SUCCESS(rv, rv); ++ if (NS_SUCCEEDED(rv) && !exists) { ++ rv = localDir->Create(nsIFile::DIRECTORY_TYPE, 0700); ++ NS_ENSURE_SUCCESS(rv, rv); ++ } ++ } + } + #else + #error "Don't know how to get product dir on your platform" +@@ -1534,20 +1574,12 @@ nsresult nsXREDirProvider::AppendSysUserExtensionPath(nsIFile* aFile) { + + #if defined(XP_MACOSX) || defined(XP_WIN) + +- static const char* const sXR = "Mozilla"; +- rv = aFile->AppendNative(nsDependentCString(sXR)); +- NS_ENSURE_SUCCESS(rv, rv); +- + static const char* const sExtensions = "Extensions"; + rv = aFile->AppendNative(nsDependentCString(sExtensions)); + NS_ENSURE_SUCCESS(rv, rv); + + #elif defined(XP_UNIX) + +- static const char* const sXR = ".mozilla"; +- rv = aFile->AppendNative(nsDependentCString(sXR)); +- NS_ENSURE_SUCCESS(rv, rv); +- + static const char* const sExtensions = "extensions"; + rv = aFile->AppendNative(nsDependentCString(sExtensions)); + NS_ENSURE_SUCCESS(rv, rv); +@@ -1565,20 +1597,12 @@ nsresult nsXREDirProvider::AppendSysUserExtensionsDevPath(nsIFile* aFile) { + + #if defined(XP_MACOSX) || defined(XP_WIN) + +- static const char* const sXR = "Mozilla"; +- rv = aFile->AppendNative(nsDependentCString(sXR)); +- NS_ENSURE_SUCCESS(rv, rv); +- + static const char* const sExtensions = "SystemExtensionsDev"; + rv = aFile->AppendNative(nsDependentCString(sExtensions)); + NS_ENSURE_SUCCESS(rv, rv); + + #elif defined(XP_UNIX) + +- static const char* const sXR = ".mozilla"; +- rv = aFile->AppendNative(nsDependentCString(sXR)); +- NS_ENSURE_SUCCESS(rv, rv); +- + static const char* const sExtensions = "systemextensionsdev"; + rv = aFile->AppendNative(nsDependentCString(sExtensions)); + NS_ENSURE_SUCCESS(rv, rv); +@@ -1636,9 +1660,6 @@ nsresult nsXREDirProvider::AppendProfilePath(nsIFile* aFile, bool aLocal) { + NS_ENSURE_SUCCESS(rv, rv); + #elif defined(XP_UNIX) + nsAutoCString folder; +- // Make it hidden (by starting with "."), except when local (the +- // profile is already under ~/.cache or XDG_CACHE_HOME). +- if (!aLocal) folder.Assign('.'); + + if (!profile.IsEmpty()) { + // Skip any leading path characters +@@ -1658,9 +1679,6 @@ nsresult nsXREDirProvider::AppendProfilePath(nsIFile* aFile, bool aLocal) { + folder.Append(vendor); + ToLowerCase(folder); + +- rv = aFile->AppendNative(folder); +- NS_ENSURE_SUCCESS(rv, rv); +- + folder.Truncate(); + } + |