commit 1247163ecabf36d553311e7b9dbd7e2d5b586706 Author: Sukhbir Singh sukhbir@torproject.org Date: Mon Jul 18 12:41:21 2016 -0400
Update build and config files for Instantbird --- ...e-the-default-Firefox-profile-director.mozpatch | 451 --------------------- projects/instantbird/build | 2 + projects/instantbird/config | 9 +- 3 files changed, 10 insertions(+), 452 deletions(-)
diff --git a/projects/instantbird/Bug-9173-Change-the-default-Firefox-profile-director.mozpatch b/projects/instantbird/Bug-9173-Change-the-default-Firefox-profile-director.mozpatch deleted file mode 100644 index 4447c70..0000000 --- a/projects/instantbird/Bug-9173-Change-the-default-Firefox-profile-director.mozpatch +++ /dev/null @@ -1,451 +0,0 @@ -From 48068e88b66ba37c725850331d099f10f9d34c90 Mon Sep 17 00:00:00 2001 -From: Kathy Brade brade@pearlcrescent.com -Date: Fri, 18 Oct 2013 15:20:06 -0400 -Subject: Bug #9173: Change the default Firefox profile directory to be - TBB-relative. - -This should eliminate our need to rely on a wrapper script that -sets $HOME and launches Firefox with -profile. - -diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp -index a828d33..831a373 100644 ---- a/toolkit/xre/nsXREDirProvider.cpp -+++ b/toolkit/xre/nsXREDirProvider.cpp -@@ -32,6 +32,7 @@ - #include "nsArrayEnumerator.h" - #include "nsEnumeratorUtils.h" - #include "nsReadableUtils.h" -+#include "nsXPCOMPrivate.h" // for XPCOM_FILE_PATH_SEPARATOR - #include "mozilla/Services.h" - #include "mozilla/Omnijar.h" - #include "mozilla/Preferences.h" -@@ -200,9 +201,6 @@ nsXREDirProvider::GetUserProfilesRootDir(nsIFile** aResult, - aProfileName, aAppName, aVendorName); - - if (NS_SUCCEEDED(rv)) { --#if !defined(XP_UNIX) || defined(XP_MACOSX) -- rv = file->AppendNative(NS_LITERAL_CSTRING("Profiles")); --#endif - // We must create the profile directory here if it does not exist. - nsresult tmp = EnsureDirectoryExists(file); - if (NS_FAILED(tmp)) { -@@ -225,9 +223,6 @@ nsXREDirProvider::GetUserProfilesLocalDir(nsIFile** aResult, - aProfileName, aAppName, aVendorName); - - if (NS_SUCCEEDED(rv)) { --#if !defined(XP_UNIX) || defined(XP_MACOSX) -- rv = file->AppendNative(NS_LITERAL_CSTRING("Profiles")); --#endif - // We must create the profile directory here if it does not exist. - nsresult tmp = EnsureDirectoryExists(file); - if (NS_FAILED(tmp)) { -@@ -1245,90 +1240,45 @@ nsresult - nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile, bool aLocal) - { - // Copied from nsAppFileLocationProvider (more or less) -- nsresult rv; -+ NS_ENSURE_ARG_POINTER(aFile); - nsCOMPtr<nsIFile> localDir; - --#if defined(XP_MACOSX) -- FSRef fsRef; -- OSType folderType; -- if (aLocal) { -- folderType = kCachedDataFolderType; -- } else { --#ifdef MOZ_THUNDERBIRD -- folderType = kDomainLibraryFolderType; --#else -- folderType = kApplicationSupportFolderType; --#endif -- } -- OSErr err = ::FSFindFolder(kUserDomain, folderType, kCreateFolder, &fsRef); -- NS_ENSURE_FALSE(err, NS_ERROR_FAILURE); -- -- rv = NS_NewNativeLocalFile(EmptyCString(), true, getter_AddRefs(localDir)); -+ nsresult rv = GetAppDir()->Clone(getter_AddRefs(localDir)); - NS_ENSURE_SUCCESS(rv, rv); - -- nsCOMPtr<nsILocalFileMac> dirFileMac = do_QueryInterface(localDir); -- NS_ENSURE_TRUE(dirFileMac, NS_ERROR_UNEXPECTED); -+ int levelsToRemove = 0; // In FF21+, appDir points to browser subdirectory. -+#if defined(XP_MACOSX) -+ levelsToRemove += 1; -+#endif -+ while (localDir && (levelsToRemove > 0)) { -+ // When crawling up the hierarchy, components named "." do not count. -+ nsAutoCString removedName; -+ rv = localDir->GetNativeLeafName(removedName); -+ NS_ENSURE_SUCCESS(rv, rv); -+ bool didRemove = !removedName.Equals("."); - -- rv = dirFileMac->InitWithFSRef(&fsRef); -- NS_ENSURE_SUCCESS(rv, rv); -+ // Remove a directory component. -+ nsCOMPtr<nsIFile> parentDir; -+ rv = localDir->GetParent(getter_AddRefs(parentDir)); -+ NS_ENSURE_SUCCESS(rv, rv); -+ localDir = parentDir; - -- localDir = do_QueryInterface(dirFileMac, &rv); --#elif defined(XP_IOS) -- nsAutoCString userDir; -- if (GetUIKitDirectory(aLocal, userDir)) { -- rv = NS_NewNativeLocalFile(userDir, true, getter_AddRefs(localDir)); -- } else { -- rv = NS_ERROR_FAILURE; -- } -- NS_ENSURE_SUCCESS(rv, rv); --#elif defined(XP_WIN) -- nsString path; -- if (aLocal) { -- rv = GetShellFolderPath(CSIDL_LOCAL_APPDATA, path); -- if (NS_FAILED(rv)) -- rv = GetRegWindowsAppDataFolder(aLocal, path); -- } -- if (!aLocal || NS_FAILED(rv)) { -- rv = GetShellFolderPath(CSIDL_APPDATA, path); -- if (NS_FAILED(rv)) { -- if (!aLocal) -- rv = GetRegWindowsAppDataFolder(aLocal, path); -- } -+ if (didRemove) -+ --levelsToRemove; - } -- NS_ENSURE_SUCCESS(rv, rv); - -- rv = NS_NewLocalFile(path, true, getter_AddRefs(localDir)); --#elif defined(MOZ_WIDGET_GONK) -- rv = NS_NewNativeLocalFile(NS_LITERAL_CSTRING("/data/b2g"), true, -- getter_AddRefs(localDir)); --#elif defined(XP_UNIX) -- const char* homeDir = getenv("HOME"); -- if (!homeDir || !*homeDir) -+ if (!localDir) - return NS_ERROR_FAILURE; - --#ifdef ANDROID /* We want (ProfD == ProfLD) on Android. */ -- aLocal = false; --#endif -+ rv = localDir->AppendRelativeNativePath(NS_LITERAL_CSTRING("TorBrowser" -+ XPCOM_FILE_PATH_SEPARATOR "Data" -+ XPCOM_FILE_PATH_SEPARATOR "Browser")); -+ NS_ENSURE_SUCCESS(rv, rv); - - if (aLocal) { -- // If $XDG_CACHE_HOME is defined use it, otherwise use $HOME/.cache. -- const char* cacheHome = getenv("XDG_CACHE_HOME"); -- if (cacheHome && *cacheHome) { -- rv = NS_NewNativeLocalFile(nsDependentCString(cacheHome), true, -- getter_AddRefs(localDir)); -- } else { -- rv = NS_NewNativeLocalFile(nsDependentCString(homeDir), true, -- getter_AddRefs(localDir)); -- if (NS_SUCCEEDED(rv)) -- rv = localDir->AppendNative(NS_LITERAL_CSTRING(".cache")); -- } -- } else { -- rv = NS_NewNativeLocalFile(nsDependentCString(homeDir), true, -- getter_AddRefs(localDir)); -+ rv = localDir->AppendNative(NS_LITERAL_CSTRING("Caches")); -+ NS_ENSURE_SUCCESS(rv, rv); - } --#else --#error "Don't know how to get product dir on your platform" --#endif - - NS_IF_ADDREF(*aFile = localDir); - return rv; -@@ -1541,48 +1491,25 @@ nsXREDirProvider::AppendProfilePath(nsIFile* aFile, - } - - nsAutoCString profile; -- nsAutoCString appName; -- nsAutoCString vendor; - if (aProfileName && !aProfileName->IsEmpty()) { - profile = *aProfileName; -- } else if (aAppName) { -- appName = *aAppName; -- if (aVendorName) { -- vendor = *aVendorName; -- } - } else if (gAppData->profile) { - profile = gAppData->profile; -- } else { -- appName = gAppData->name; -- vendor = gAppData->vendor; - } - -- nsresult rv; -+ nsresult rv = NS_ERROR_FAILURE; - - #if defined (XP_MACOSX) - if (!profile.IsEmpty()) { - rv = AppendProfileString(aFile, profile.get()); -+ NS_ENSURE_SUCCESS(rv, rv); - } -- else { -- // Note that MacOS ignores the vendor when creating the profile hierarchy - -- // all application preferences directories live alongside one another in -- // ~/Library/Application Support/ -- rv = aFile->AppendNative(appName); -- } -- NS_ENSURE_SUCCESS(rv, rv); - - #elif defined(XP_WIN) - if (!profile.IsEmpty()) { - rv = AppendProfileString(aFile, profile.get()); -+ NS_ENSURE_SUCCESS(rv, rv); - } -- else { -- if (!vendor.IsEmpty()) { -- rv = aFile->AppendNative(vendor); -- NS_ENSURE_SUCCESS(rv, rv); -- } -- rv = aFile->AppendNative(appName); -- } -- NS_ENSURE_SUCCESS(rv, rv); - - #elif defined(ANDROID) - // The directory used for storing profiles -@@ -1594,12 +1521,6 @@ nsXREDirProvider::AppendProfilePath(nsIFile* aFile, - rv = aFile->AppendNative(nsDependentCString("mozilla")); - 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 - const char* profileStart = profile.get(); -@@ -1608,31 +1529,17 @@ nsXREDirProvider::AppendProfilePath(nsIFile* aFile, - - // On the off chance that someone wanted their folder to be hidden don't - // let it become ".." -- if (*profileStart == '.' && !aLocal) -+ if (*profileStart == '.') - profileStart++; - -+ // Make it hidden (by starting with "."). -+ nsAutoCString folder("."); - folder.Append(profileStart); - ToLowerCase(folder); - - rv = AppendProfileString(aFile, folder.BeginReading()); -+ NS_ENSURE_SUCCESS(rv, rv); - } -- else { -- if (!vendor.IsEmpty()) { -- folder.Append(vendor); -- ToLowerCase(folder); -- -- rv = aFile->AppendNative(folder); -- NS_ENSURE_SUCCESS(rv, rv); -- -- folder.Truncate(); -- } -- -- folder.Append(appName); -- ToLowerCase(folder); -- -- rv = aFile->AppendNative(folder); -- } -- NS_ENSURE_SUCCESS(rv, rv); - - #else - #error "Don't know how to get profile path on your platform" -diff --git a/toolkit/xre/nsXREDirProvider.h b/toolkit/xre/nsXREDirProvider.h -index eb27ed2..1985f66 100644 ---- a/toolkit/xre/nsXREDirProvider.h -+++ b/toolkit/xre/nsXREDirProvider.h -@@ -56,16 +56,16 @@ public: - - nsresult GetProfileDefaultsDir(nsIFile* *aResult); - -- static nsresult GetUserAppDataDirectory(nsIFile* *aFile) { -+ nsresult GetUserAppDataDirectory(nsIFile* *aFile) { - return GetUserDataDirectory(aFile, false, nullptr, nullptr, nullptr); - } -- static nsresult GetUserLocalDataDirectory(nsIFile* *aFile) { -+ nsresult GetUserLocalDataDirectory(nsIFile* *aFile) { - return GetUserDataDirectory(aFile, true, nullptr, nullptr, nullptr); - } - - // By default GetUserDataDirectory gets profile path from gAppData, - // but that can be overridden by using aProfileName/aAppName/aVendorName. -- static nsresult GetUserDataDirectory(nsIFile** aFile, bool aLocal, -+ nsresult GetUserDataDirectory(nsIFile** aFile, bool aLocal, - const nsACString* aProfileName, - const nsACString* aAppName, - const nsACString* aVendorName); -@@ -102,8 +102,8 @@ public: - - protected: - nsresult GetFilesInternal(const char* aProperty, nsISimpleEnumerator** aResult); -- static nsresult GetUserDataDirectoryHome(nsIFile* *aFile, bool aLocal); -- static nsresult GetSysUserExtensionsDirectory(nsIFile* *aFile); -+ nsresult GetUserDataDirectoryHome(nsIFile* *aFile, bool aLocal); -+ nsresult GetSysUserExtensionsDirectory(nsIFile* *aFile); - #if defined(XP_UNIX) || defined(XP_MACOSX) - static nsresult GetSystemExtensionsDirectory(nsIFile** aFile); - #endif -diff --git a/xpcom/io/moz.build b/xpcom/io/moz.build -index 45732e4..bc62f71 100644 ---- a/xpcom/io/moz.build -+++ b/xpcom/io/moz.build -@@ -134,4 +134,7 @@ FINAL_LIBRARY = 'xul' - if CONFIG['OS_ARCH'] == 'Linux' and 'lib64' in CONFIG['libdir']: - DEFINES['HAVE_USR_LIB64_DIR'] = True - --LOCAL_INCLUDES += ['!..'] -+LOCAL_INCLUDES += [ -+ '!..', -+ '../build', -+] -diff --git a/xpcom/io/nsAppFileLocationProvider.cpp b/xpcom/io/nsAppFileLocationProvider.cpp -index 1211c39..039a89e 100644 ---- a/xpcom/io/nsAppFileLocationProvider.cpp -+++ b/xpcom/io/nsAppFileLocationProvider.cpp -@@ -15,6 +15,7 @@ - #include "nsISimpleEnumerator.h" - #include "prenv.h" - #include "nsCRT.h" -+#include "nsXPCOMPrivate.h" // for XPCOM_FILE_PATH_SEPARATOR - - #if defined(MOZ_WIDGET_COCOA) - #include <Carbon/Carbon.h> -@@ -281,9 +282,8 @@ nsAppFileLocationProvider::CloneMozBinDirectory(nsIFile** aLocalFile) - //---------------------------------------------------------------------------------------- - // GetProductDirectory - Gets the directory which contains the application data folder - // --// UNIX : ~/.mozilla/ --// WIN : <Application Data folder on user's machine>\Mozilla --// Mac : :Documents:Mozilla: -+// UNIX and WIN : <App Folder>/TorBrowser/Data/Browser -+// Mac : <App Folder>/../../TorBrowser/Data/Browser - //---------------------------------------------------------------------------------------- - NS_METHOD - nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile, -@@ -297,48 +297,45 @@ nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile, - bool exists; - nsCOMPtr<nsIFile> localDir; - --#if defined(MOZ_WIDGET_COCOA) -- FSRef fsRef; -- OSType folderType = aLocal ? (OSType)kCachedDataFolderType : -- (OSType)kDomainLibraryFolderType; -- OSErr err = ::FSFindFolder(kUserDomain, folderType, kCreateFolder, &fsRef); -- if (err) { -- return NS_ERROR_FAILURE; -+ rv = CloneMozBinDirectory(getter_AddRefs(localDir)); -+ NS_ENSURE_SUCCESS(rv, rv); -+ -+ int levelsToRemove = 0; // In FF21+, bin dir points to browser subdirectory. -+#if defined(XP_MACOSX) -+ levelsToRemove += 1; -+#endif -+ while (localDir && (levelsToRemove > 0)) { -+ // When crawling up the hierarchy, components named "." do not count. -+ nsAutoCString removedName; -+ rv = localDir->GetNativeLeafName(removedName); -+ NS_ENSURE_SUCCESS(rv, rv); -+ bool didRemove = !removedName.Equals("."); -+ -+ // Remove a directory component. -+ nsCOMPtr<nsIFile> parentDir; -+ rv = localDir->GetParent(getter_AddRefs(parentDir)); -+ NS_ENSURE_SUCCESS(rv, rv); -+ localDir = parentDir; -+ -+ if (didRemove) { -+ --levelsToRemove; -+ } - } -- NS_NewLocalFile(EmptyString(), true, getter_AddRefs(localDir)); -+ - if (!localDir) { - return NS_ERROR_FAILURE; - } -- nsCOMPtr<nsILocalFileMac> localDirMac(do_QueryInterface(localDir)); -- rv = localDirMac->InitWithFSRef(&fsRef); -- if (NS_FAILED(rv)) { -- return rv; -- } --#elif defined(XP_WIN) -- nsCOMPtr<nsIProperties> directoryService = -- do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv); -- if (NS_FAILED(rv)) { -- return rv; -- } -- const char* prop = aLocal ? NS_WIN_LOCAL_APPDATA_DIR : NS_WIN_APPDATA_DIR; -- rv = directoryService->Get(prop, NS_GET_IID(nsIFile), getter_AddRefs(localDir)); -- if (NS_FAILED(rv)) { -- return rv; -- } --#elif defined(XP_UNIX) -- rv = NS_NewNativeLocalFile(nsDependentCString(PR_GetEnv("HOME")), true, -- getter_AddRefs(localDir)); -- if (NS_FAILED(rv)) { -- return rv; -- } --#else --#error dont_know_how_to_get_product_dir_on_your_platform --#endif - -- rv = localDir->AppendRelativeNativePath(DEFAULT_PRODUCT_DIR); -- if (NS_FAILED(rv)) { -- return rv; -+ rv = localDir->AppendRelativeNativePath(NS_LITERAL_CSTRING("TorBrowser" -+ XPCOM_FILE_PATH_SEPARATOR "Data" -+ XPCOM_FILE_PATH_SEPARATOR "Browser")); -+ NS_ENSURE_SUCCESS(rv, rv); -+ -+ if (aLocal) { -+ rv = localDir->AppendNative(NS_LITERAL_CSTRING("Caches")); -+ NS_ENSURE_SUCCESS(rv, rv); - } -+ - rv = localDir->Exists(&exists); - - if (NS_SUCCEEDED(rv) && !exists) { -@@ -357,10 +354,6 @@ nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile, - - //---------------------------------------------------------------------------------------- - // GetDefaultUserProfileRoot - Gets the directory which contains each user profile dir --// --// UNIX : ~/.mozilla/ --// WIN : <Application Data folder on user's machine>\Mozilla\Profiles --// Mac : :Documents:Mozilla:Profiles: - //---------------------------------------------------------------------------------------- - NS_METHOD - nsAppFileLocationProvider::GetDefaultUserProfileRoot(nsIFile** aLocalFile, -@@ -378,23 +371,6 @@ nsAppFileLocationProvider::GetDefaultUserProfileRoot(nsIFile** aLocalFile, - return rv; - } - --#if defined(MOZ_WIDGET_COCOA) || defined(XP_WIN) -- // These 3 platforms share this part of the path - do them as one -- rv = localDir->AppendRelativeNativePath(NS_LITERAL_CSTRING("Profiles")); -- if (NS_FAILED(rv)) { -- return rv; -- } -- -- bool exists; -- rv = localDir->Exists(&exists); -- if (NS_SUCCEEDED(rv) && !exists) { -- rv = localDir->Create(nsIFile::DIRECTORY_TYPE, 0775); -- } -- if (NS_FAILED(rv)) { -- return rv; -- } --#endif -- - localDir.forget(aLocalFile); - - return rv; --- -cgit v0.10.2 - diff --git a/projects/instantbird/build b/projects/instantbird/build index 1b8b058..5039dcb 100644 --- a/projects/instantbird/build +++ b/projects/instantbird/build @@ -89,6 +89,8 @@ then done fi
+cp ../$rootdir/aboutTBUpdateLogo.png browser/base/content/abouttbupdate/ + if ls -1 $rootdir/*.nsspatch > /dev/null 2>&1 then cd security/nss diff --git a/projects/instantbird/config b/projects/instantbird/config index 27f9d6f..3c5871d 100644 --- a/projects/instantbird/config +++ b/projects/instantbird/config @@ -121,7 +121,14 @@ input_files: enable: '[% c("var/windows") %]' - filename: trac-18331.mozpatch enable: '[% c("var/osx") %]' - - filename: Bug-9173-Change-the-default-Firefox-profile-director.mozpatch + - filename: Change-the-default-Firefox-profile-director-bug-9173.mozpatch + - filename: Firefox-update-process-bug-4234.mozpatch + - filename: Improve-profile-access-bug-14631-first.mozpatch + - filename: Improve-profile-access-bug-14631-second.mozpatch + - filename: Mac-outside-app-data-bug-13252.mozpatch + - filename: Update-load-local-changes-bug-14392-first.mozpatch + - filename: Update-load-local-changes-bug-16940-second.mozpatch + - filename: aboutTBUpdateLogo.png - filename: trac-16475.mozpatch - filename: OSX-package-as-tar.bz2.mozpatch enable: '[% c("var/osx") %]'