summaryrefslogtreecommitdiff
path: root/firefox-4.0-moz-app-launcher.patch
diff options
context:
space:
mode:
Diffstat (limited to 'firefox-4.0-moz-app-launcher.patch')
-rw-r--r--firefox-4.0-moz-app-launcher.patch137
1 files changed, 0 insertions, 137 deletions
diff --git a/firefox-4.0-moz-app-launcher.patch b/firefox-4.0-moz-app-launcher.patch
deleted file mode 100644
index d87b64a..0000000
--- a/firefox-4.0-moz-app-launcher.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From https://bugzilla.mozilla.org/show_bug.cgi?id=611953
-Patch 1 - Use MOZ_APP_LAUNCHER for default browser executable (v3, un-bitrotted)
-
-
-diff --git a/browser/components/shell/src/nsGNOMEShellService.cpp b/browser/components/shell/src/nsGNOMEShellService.cpp
---- a/browser/components/shell/src/nsGNOMEShellService.cpp
-+++ b/browser/components/shell/src/nsGNOMEShellService.cpp
-@@ -115,16 +115,19 @@ nsGNOMEShellService::Init()
-
- if (!gconf)
- return NS_ERROR_NOT_AVAILABLE;
-
- // Check G_BROKEN_FILENAMES. If it's set, then filenames in glib use
- // the locale encoding. If it's not set, they use UTF-8.
- mUseLocaleFilenames = PR_GetEnv("G_BROKEN_FILENAMES") != nsnull;
-
-+ if (GetAppPathFromLauncher())
-+ return NS_OK;
-+
- nsCOMPtr<nsIProperties> dirSvc
- (do_GetService("@mozilla.org/file/directory_service;1"));
- NS_ENSURE_TRUE(dirSvc, NS_ERROR_NOT_AVAILABLE);
-
- nsCOMPtr<nsILocalFile> appPath;
- rv = dirSvc->Get(NS_XPCOM_CURRENT_PROCESS_DIR, NS_GET_IID(nsILocalFile),
- getter_AddRefs(appPath));
- NS_ENSURE_SUCCESS(rv, rv);
-@@ -133,16 +136,44 @@ nsGNOMEShellService::Init()
- NS_ENSURE_SUCCESS(rv, rv);
-
- return appPath->GetNativePath(mAppPath);
- }
-
- NS_IMPL_ISUPPORTS1(nsGNOMEShellService, nsIShellService)
-
- PRBool
-+nsGNOMEShellService::GetAppPathFromLauncher()
-+{
-+ gchar *tmp;
-+
-+ const char *launcher = PR_GetEnv("MOZ_APP_LAUNCHER");
-+ if (!launcher)
-+ return PR_FALSE;
-+
-+ if (g_path_is_absolute(launcher)) {
-+ mAppPath = launcher;
-+ tmp = g_path_get_basename(launcher);
-+ gchar *fullpath = g_find_program_in_path(tmp);
-+ if (fullpath && mAppPath.Equals(fullpath))
-+ mAppIsInPath = PR_TRUE;
-+ g_free(fullpath);
-+ } else {
-+ tmp = g_find_program_in_path(launcher);
-+ if (!tmp)
-+ return PR_FALSE;
-+ mAppPath = tmp;
-+ mAppIsInPath = PR_TRUE;
-+ }
-+
-+ g_free(tmp);
-+ return PR_TRUE;
-+}
-+
-+PRBool
- nsGNOMEShellService::KeyMatchesAppName(const char *aKeyValue) const
- {
-
- gchar *commandPath;
- if (mUseLocaleFilenames) {
- gchar *nativePath = g_filename_from_utf8(aKeyValue, -1, NULL, NULL, NULL);
- if (!nativePath) {
- NS_ERROR("Error converting path to filesystem encoding");
-@@ -210,18 +241,28 @@ nsGNOMEShellService::SetDefaultBrowser(P
- {
- #ifdef DEBUG
- if (aForAllUsers)
- NS_WARNING("Setting the default browser for all users is not yet supported");
- #endif
-
- nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
- if (gconf) {
-- nsCAutoString appKeyValue(mAppPath);
-- appKeyValue.Append(" \"%s\"");
-+ nsCAutoString appKeyValue;
-+ if(mAppIsInPath) {
-+ // mAppPath is in the users path, so use only the basename as the launcher
-+ gchar *tmp = g_path_get_basename(mAppPath.get());
-+ appKeyValue = tmp;
-+ g_free(tmp);
-+ } else {
-+ appKeyValue = mAppPath;
-+ }
-+
-+ appKeyValue.AppendLiteral(" %s");
-+
- for (unsigned int i = 0; i < NS_ARRAY_LENGTH(appProtocols); ++i) {
- if (appProtocols[i].essential || aClaimAllTypes) {
- gconf->SetAppForProtocol(nsDependentCString(appProtocols[i].name),
- appKeyValue);
- }
- }
- }
-
-diff --git a/browser/components/shell/src/nsGNOMEShellService.h b/browser/components/shell/src/nsGNOMEShellService.h
---- a/browser/components/shell/src/nsGNOMEShellService.h
-+++ b/browser/components/shell/src/nsGNOMEShellService.h
-@@ -38,26 +38,28 @@
- #define nsgnomeshellservice_h____
-
- #include "nsIShellService.h"
- #include "nsStringAPI.h"
-
- class nsGNOMEShellService : public nsIShellService
- {
- public:
-- nsGNOMEShellService() : mCheckedThisSession(PR_FALSE) { }
-+ nsGNOMEShellService() : mCheckedThisSession(PR_FALSE), mAppIsInPath(PR_FALSE) { }
-
- NS_DECL_ISUPPORTS
- NS_DECL_NSISHELLSERVICE
-
- nsresult Init() NS_HIDDEN;
-
- private:
- ~nsGNOMEShellService() {}
-
- NS_HIDDEN_(PRBool) KeyMatchesAppName(const char *aKeyValue) const;
-
-+ NS_HIDDEN_(PRBool) GetAppPathFromLauncher();
- PRPackedBool mCheckedThisSession;
- PRPackedBool mUseLocaleFilenames;
- nsCString mAppPath;
-+ PRPackedBool mAppIsInPath;
- };
-
- #endif // nsgnomeshellservice_h____
-
bgstack15