summaryrefslogtreecommitdiff
path: root/firefox-1.1-uriloader.patch
diff options
context:
space:
mode:
Diffstat (limited to 'firefox-1.1-uriloader.patch')
-rwxr-xr-xfirefox-1.1-uriloader.patch459
1 files changed, 0 insertions, 459 deletions
diff --git a/firefox-1.1-uriloader.patch b/firefox-1.1-uriloader.patch
deleted file mode 100755
index 08c7e96..0000000
--- a/firefox-1.1-uriloader.patch
+++ /dev/null
@@ -1,459 +0,0 @@
-Index: uriloader/exthandler/Makefile.in
-===================================================================
-RCS file: /cvsroot/mozilla/uriloader/exthandler/Makefile.in,v
-retrieving revision 1.60
-diff -d -u -p -r1.60 Makefile.in
---- uriloader/exthandler/Makefile.in 2 May 2005 16:30:03 -0000 1.60
-+++ uriloader/exthandler/Makefile.in 21 Jul 2005 03:07:39 -0000
-@@ -102,7 +102,7 @@ endif
- LOCAL_INCLUDES = -I$(srcdir)
-
- ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
--OSHELPER += nsGNOMERegistry.cpp
-+OSHELPER += nsMIMEInfoUnix.cpp nsGNOMERegistry.cpp
- endif
-
- ifeq ($(MOZ_WIDGET_TOOLKIT),beos)
-Index: uriloader/exthandler/unix/nsGNOMERegistry.cpp
-===================================================================
-RCS file: /cvsroot/mozilla/uriloader/exthandler/unix/nsGNOMERegistry.cpp,v
-retrieving revision 1.10
-diff -d -u -p -r1.10 nsGNOMERegistry.cpp
---- uriloader/exthandler/unix/nsGNOMERegistry.cpp 16 Oct 2004 13:46:17 -0000 1.10
-+++ uriloader/exthandler/unix/nsGNOMERegistry.cpp 21 Jul 2005 03:07:40 -0000
-@@ -42,7 +42,7 @@
- #include "nsString.h"
- #include "nsIComponentManager.h"
- #include "nsILocalFile.h"
--#include "nsMIMEInfoImpl.h"
-+#include "nsMIMEInfoUnix.h"
- #include "nsAutoPtr.h"
-
- #include <glib.h>
-@@ -56,12 +56,12 @@ typedef struct _GConfClient GConfClient;
- typedef struct _GnomeProgram GnomeProgram;
- typedef struct _GnomeModuleInfo GnomeModuleInfo;
-
--typedef struct {
-+struct GnomeVFSMimeApplication {
- char *id;
- char *name;
- char *command;
- /* there is more here, but we don't need it */
--} GnomeVFSMimeApplication;
-+};
-
- typedef GConfClient * (*_gconf_client_get_default_fn)();
- typedef gchar * (*_gconf_client_get_string_fn)(GConfClient *,
-@@ -264,7 +264,7 @@ nsGNOMERegistry::GetAppDescForScheme(con
- }
-
-
--/* static */ already_AddRefed<nsMIMEInfoBase>
-+/* static */ already_AddRefed<nsMIMEInfoUnix>
- nsGNOMERegistry::GetFromExtension(const char *aFileExt)
- {
- if (!gconfLib)
-@@ -286,7 +286,7 @@ nsGNOMERegistry::GetFromExtension(const
- return GetFromType(mimeType);
- }
-
--/* static */ already_AddRefed<nsMIMEInfoBase>
-+/* static */ already_AddRefed<nsMIMEInfoUnix>
- nsGNOMERegistry::GetFromType(const char *aMIMEType)
- {
- if (!gconfLib)
-@@ -296,9 +296,11 @@ nsGNOMERegistry::GetFromType(const char
- if (!handlerApp)
- return nsnull;
-
-- nsRefPtr<nsMIMEInfoImpl> mimeInfo = new nsMIMEInfoImpl(aMIMEType);
-+ nsRefPtr<nsMIMEInfoUnix> mimeInfo = new nsMIMEInfoUnix(aMIMEType);
- NS_ENSURE_TRUE(mimeInfo, nsnull);
-
-+ mimeInfo->SetDefaultGnomeVFSMimeApplication(handlerApp);
-+
- // Get the list of extensions and append then to the mimeInfo.
- GList *extensions = _gnome_vfs_mime_get_extensions_list(aMIMEType);
- for (GList *extension = extensions; extension; extension = extension->next)
-@@ -320,11 +322,21 @@ nsGNOMERegistry::GetFromType(const char
- return nsnull;
- }
-
-- gchar *commandPath = g_find_program_in_path(nativeCommand);
-+ gchar **argv;
-+ gboolean res = g_shell_parse_argv(nativeCommand, NULL, &argv, NULL);
-+ if (!res) {
-+ NS_ERROR("Could not convert helper app command to filesystem encoding");
-+ _gnome_vfs_mime_application_free(handlerApp);
-+ return nsnull;
-+ }
-+
-+ gchar *commandPath = g_find_program_in_path(argv[0]);
-
- g_free(nativeCommand);
-+ g_strfreev(argv);
-
- if (!commandPath) {
-+ NS_WARNING("could not find command in path");
- _gnome_vfs_mime_application_free(handlerApp);
- return nsnull;
- }
-@@ -342,7 +354,7 @@ nsGNOMERegistry::GetFromType(const char
-
- _gnome_vfs_mime_application_free(handlerApp);
-
-- nsMIMEInfoBase* retval;
-+ nsMIMEInfoUnix* retval;
- NS_ADDREF((retval = mimeInfo));
- return retval;
- }
-Index: uriloader/exthandler/unix/nsGNOMERegistry.h
-===================================================================
-RCS file: /cvsroot/mozilla/uriloader/exthandler/unix/nsGNOMERegistry.h,v
-retrieving revision 1.3
-diff -d -u -p -r1.3 nsGNOMERegistry.h
---- uriloader/exthandler/unix/nsGNOMERegistry.h 16 Oct 2004 13:46:17 -0000 1.3
-+++ uriloader/exthandler/unix/nsGNOMERegistry.h 21 Jul 2005 03:07:40 -0000
-@@ -35,10 +35,13 @@
- *
- * ***** END LICENSE BLOCK ***** */
-
-+#ifndef nsGNOMERegistry_h__
-+#define nsGNOMERegistry_h__
-+
- #include "nsIURI.h"
- #include "nsCOMPtr.h"
-
--class nsMIMEInfoBase;
-+class nsMIMEInfoUnix;
-
- class nsGNOMERegistry
- {
-@@ -52,7 +55,9 @@ class nsGNOMERegistry
- static void GetAppDescForScheme(const nsACString& aScheme,
- nsAString& aDesc);
-
-- static already_AddRefed<nsMIMEInfoBase> GetFromExtension(const char *aFileExt);
-+ static already_AddRefed<nsMIMEInfoUnix> GetFromExtension(const char *aFileExt);
-
-- static already_AddRefed<nsMIMEInfoBase> GetFromType(const char *aMIMEType);
-+ static already_AddRefed<nsMIMEInfoUnix> GetFromType(const char *aMIMEType);
- };
-+
-+#endif // nsGNOMERegistry_h__
-Index: uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
-===================================================================
-RCS file: uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
-diff -N uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ uriloader/exthandler/unix/nsMIMEInfoUnix.cpp 21 Jul 2005 03:07:40 -0000
-@@ -0,0 +1,196 @@
-+/* ***** BEGIN LICENSE BLOCK *****
-+ * Version: MPL 1.1
-+ *
-+ * The contents of this file are subject to the Mozilla Public License Version
-+ * 1.1 (the "License"); you may not use this file except in compliance with
-+ * the License. You may obtain a copy of the License at
-+ * http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+ * for the specific language governing rights and limitations under the
-+ * License.
-+ *
-+ * The Original Code is mozilla.org Code.
-+ *
-+ * The Initial Developer of the Original Code is
-+ * Red Hat, Inc.
-+ * Portions created by the Initial Developer are Copyright (C) 2005
-+ * the Initial Developer. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Christopher Aillon <caillon@redhat.com> (Original author)
-+ *
-+ *
-+ * ***** END LICENSE BLOCK ***** */
-+
-+#include "nsMIMEInfoUnix.h"
-+#include "prlink.h"
-+#include "prmem.h"
-+#include <glib.h>
-+#include <glib-object.h>
-+
-+static PRLibrary *gnomeLib;
-+static PRLibrary *vfsLib;
-+
-+typedef struct _GnomeProgram GnomeProgram;
-+typedef struct _GnomeModuleInfo GnomeModuleInfo;
-+
-+typedef enum {
-+ GNOME_VFS_OK // there's more but we don't care about them.
-+} GnomeVFSResult;
-+
-+typedef GnomeVFSResult (*_gnome_vfs_mime_application_launch_fn)
-+ (GnomeVFSMimeApplication *app,
-+ GList *uris);
-+typedef void (*_gnome_vfs_mime_application_free_fn)(GnomeVFSMimeApplication *);
-+typedef GnomeVFSMimeApplication * (*_gnome_vfs_mime_application_copy_fn)(GnomeVFSMimeApplication *);
-+typedef GnomeProgram * (*_gnome_program_init_fn)(const char *, const char *,
-+ const GnomeModuleInfo *, int,
-+ char **, const char *, ...);
-+typedef const char * (*_gnome_vfs_mime_application_get_name_fn)(GnomeVFSMimeApplication *);
-+typedef const GnomeModuleInfo * (*_libgnome_module_info_get_fn)();
-+typedef GnomeProgram * (*_gnome_program_get_fn)();
-+typedef char * (*_gnome_vfs_make_uri_from_input_fn)(const char *);
-+
-+#define DECL_FUNC_PTR(func) static _##func##_fn _##func
-+
-+DECL_FUNC_PTR(gnome_vfs_mime_application_launch);
-+DECL_FUNC_PTR(gnome_vfs_mime_application_free);
-+DECL_FUNC_PTR(gnome_vfs_mime_application_copy);
-+DECL_FUNC_PTR(gnome_vfs_mime_application_get_name);
-+DECL_FUNC_PTR(gnome_program_init);
-+DECL_FUNC_PTR(gnome_program_get);
-+DECL_FUNC_PTR(libgnome_module_info_get);
-+DECL_FUNC_PTR(gnome_vfs_make_uri_from_input);
-+
-+static PRLibrary *
-+LoadVersionedLibrary(const char* libName, const char* libVersion)
-+{
-+ char *platformLibName = PR_GetLibraryName(nsnull, libName);
-+ nsCAutoString versionLibName(platformLibName);
-+ versionLibName.Append(libVersion);
-+ PR_Free(platformLibName);
-+ return PR_LoadLibrary(versionLibName.get());
-+}
-+
-+static void
-+Cleanup()
-+{
-+ // Unload all libraries
-+ if (gnomeLib)
-+ PR_UnloadLibrary(gnomeLib);
-+ if (vfsLib)
-+ PR_UnloadLibrary(vfsLib);
-+
-+ gnomeLib = vfsLib = nsnull;
-+}
-+
-+static void
-+InitGnomeVFS()
-+{
-+ static PRBool initialized = PR_FALSE;
-+
-+ if (initialized)
-+ return;
-+
-+ #define ENSURE_LIB(lib) \
-+ PR_BEGIN_MACRO \
-+ if (!lib) { \
-+ Cleanup(); \
-+ return; \
-+ } \
-+ PR_END_MACRO
-+
-+ #define GET_LIB_FUNCTION(lib, func, failure) \
-+ PR_BEGIN_MACRO \
-+ _##func = (_##func##_fn) PR_FindFunctionSymbol(lib##Lib, #func); \
-+ if (!_##func) { \
-+ failure; \
-+ } \
-+ PR_END_MACRO
-+
-+ // Attempt to open libgnome
-+ gnomeLib = LoadVersionedLibrary("gnome-2", ".0");
-+ ENSURE_LIB(gnomeLib);
-+
-+ GET_LIB_FUNCTION(gnome, gnome_program_init, return Cleanup());
-+ GET_LIB_FUNCTION(gnome, libgnome_module_info_get, return Cleanup());
-+ GET_LIB_FUNCTION(gnome, gnome_program_get, return Cleanup());
-+
-+ // Attempt to open libgnomevfs
-+ vfsLib = LoadVersionedLibrary("gnomevfs-2", ".0");
-+ ENSURE_LIB(vfsLib);
-+
-+ GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_launch, /* do nothing */);
-+ GET_LIB_FUNCTION(vfs, gnome_vfs_make_uri_from_input, return Cleanup());
-+ GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_get_name, return Cleanup());
-+ GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_free, return Cleanup());
-+ GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_copy, return Cleanup());
-+
-+ // Initialize GNOME, if it's not already initialized. It's not
-+ // necessary to tell GNOME about our actual command line arguments.
-+
-+ if (!_gnome_program_get()) {
-+ char *argv[1] = { "gecko" };
-+ _gnome_program_init("Gecko", "1.0", _libgnome_module_info_get(),
-+ 1, argv, NULL);
-+ }
-+
-+ // Note: after GNOME has been initialized, do not ever unload these
-+ // libraries. They register atexit handlers, so if they are unloaded, we'll
-+ // crash on exit.
-+}
-+
-+void
-+nsMIMEInfoUnix::SetDefaultGnomeVFSMimeApplication(GnomeVFSMimeApplication* app)
-+{
-+ if (_gnome_vfs_mime_application_copy && _gnome_vfs_mime_application_free) {
-+ mDefaultVFSApplication = _gnome_vfs_mime_application_copy(app);
-+
-+ mPreferredAction = nsIMIMEInfo::useSystemDefault;
-+
-+ const gchar * name = _gnome_vfs_mime_application_get_name(mDefaultVFSApplication);
-+ if (name)
-+ mDefaultAppDescription = NS_ConvertUTF8toUCS2(name);
-+ }
-+}
-+
-+nsMIMEInfoUnix::~nsMIMEInfoUnix()
-+{
-+ if (mDefaultVFSApplication)
-+ _gnome_vfs_mime_application_free(mDefaultVFSApplication);
-+}
-+
-+nsresult
-+nsMIMEInfoUnix::LaunchDefaultWithFile(nsIFile* aFile)
-+{
-+ NS_ENSURE_ARG_POINTER(aFile);
-+
-+ InitGnomeVFS();
-+
-+ if (_gnome_vfs_mime_application_launch && mDefaultVFSApplication) {
-+ nsCAutoString nativePath;
-+ aFile->GetNativePath(nativePath);
-+
-+ gchar *uri = _gnome_vfs_make_uri_from_input(nativePath.get());
-+
-+ GList *uris = NULL;
-+ uris = g_list_append(uris, uri);
-+
-+ GnomeVFSResult result = _gnome_vfs_mime_application_launch(mDefaultVFSApplication, uris);
-+
-+ g_free(uri);
-+ g_list_free(uris);
-+
-+ if (result != GNOME_VFS_OK)
-+ return NS_ERROR_FAILURE;
-+
-+ return NS_OK;
-+ }
-+
-+ if (!mDefaultApplication)
-+ return NS_ERROR_FILE_NOT_FOUND;
-+
-+ return LaunchWithIProcess(mDefaultApplication, aFile);
-+}
-Index: uriloader/exthandler/unix/nsMIMEInfoUnix.h
-===================================================================
-RCS file: uriloader/exthandler/unix/nsMIMEInfoUnix.h
-diff -N uriloader/exthandler/unix/nsMIMEInfoUnix.h
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ uriloader/exthandler/unix/nsMIMEInfoUnix.h 21 Jul 2005 03:07:40 -0000
-@@ -0,0 +1,50 @@
-+/* ***** BEGIN LICENSE BLOCK *****
-+ * Version: MPL 1.1
-+ *
-+ * The contents of this file are subject to the Mozilla Public License Version
-+ * 1.1 (the "License"); you may not use this file except in compliance with
-+ * the License. You may obtain a copy of the License at
-+ * http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+ * for the specific language governing rights and limitations under the
-+ * License.
-+ *
-+ * The Original Code is mozilla.org Code.
-+ *
-+ * The Initial Developer of the Original Code is
-+ * Red Hat, Inc.
-+ * Portions created by the Initial Developer are Copyright (C) 2005
-+ * the Initial Developer. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Christopher Aillon <caillon@redhat.com> (Original author)
-+ *
-+ *
-+ * ***** END LICENSE BLOCK ***** */
-+
-+#ifndef nsMimeInfoUnix_h__
-+#define nsMimeInfoUnix_h__
-+
-+#include "nsMIMEInfoImpl.h"
-+
-+struct GnomeVFSMimeApplication;
-+
-+class nsMIMEInfoUnix : public nsMIMEInfoImpl
-+{
-+public:
-+ nsMIMEInfoUnix(const char* aType = "") : nsMIMEInfoImpl(aType), mDefaultVFSApplication(nsnull) {}
-+ nsMIMEInfoUnix(const nsACString& aMIMEType) : nsMIMEInfoImpl(aMIMEType) {};
-+
-+ virtual ~nsMIMEInfoUnix();
-+
-+ void SetDefaultGnomeVFSMimeApplication(GnomeVFSMimeApplication *app);
-+
-+protected:
-+ virtual NS_HIDDEN_(nsresult) LaunchDefaultWithFile(nsIFile* aFile);
-+
-+ GnomeVFSMimeApplication *mDefaultVFSApplication;
-+};
-+
-+#endif // nsMimeInfoUnix_h__
-Index: uriloader/exthandler/unix/nsOSHelperAppService.cpp
-===================================================================
-RCS file: /cvsroot/mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp,v
-retrieving revision 1.58
-diff -d -u -p -r1.58 nsOSHelperAppService.cpp
---- uriloader/exthandler/unix/nsOSHelperAppService.cpp 25 Oct 2004 07:46:01 -0000 1.58
-+++ uriloader/exthandler/unix/nsOSHelperAppService.cpp 21 Jul 2005 03:07:40 -0000
-@@ -44,6 +44,7 @@
- #include "nsOSHelperAppService.h"
- #ifdef MOZ_WIDGET_GTK2
- #include "nsGNOMERegistry.h"
-+#include "nsMIMEInfoUnix.h"
- #endif
- #include "nsISupports.h"
- #include "nsString.h"
-@@ -1486,6 +1487,17 @@ nsOSHelperAppService::GetFromType(const
-
- LOG(("Here we do a mimetype lookup for '%s'\n", aMIMEType.get()));
-
-+#ifdef MOZ_WIDGET_GTK2
-+ // Look in GNOME registry first since it is the preferred method in GNOME,
-+ // should trump the mailcap entry
-+ LOG(("Looking in GNOME registry\n"));
-+ nsMIMEInfoBase *gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType.get()).get();
-+ if (gnomeInfo) {
-+ LOG(("Got MIMEInfo from GNOME registry\n"));
-+ return gnomeInfo;
-+ }
-+#endif
-+
- // extract the major and minor types
- NS_ConvertASCIItoUTF16 mimeType(aMIMEType);
- nsAString::const_iterator start_iter, end_iter,
-@@ -1522,21 +1534,6 @@ nsOSHelperAppService::GetFromType(const
- mozillaFlags,
- PR_TRUE);
-
--
-- if (handler.IsEmpty() && extensions.IsEmpty() &&
-- mailcap_description.IsEmpty() && mime_types_description.IsEmpty()) {
-- // No useful data yet
--
--#ifdef MOZ_WIDGET_GTK2
-- LOG(("Looking in GNOME registry\n"));
-- nsMIMEInfoBase *gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType.get()).get();
-- if (gnomeInfo) {
-- LOG(("Got MIMEInfo from GNOME registry\n"));
-- return gnomeInfo;
-- }
--#endif
-- }
--
- if (handler.IsEmpty() && mailcap_description.IsEmpty()) {
- DoLookUpHandlerAndDescription(majorType,
- minorType,
bgstack15