Annotation of /trunk/mozilla-firefox/patches/mozilla-firefox-1.5.0-uriloader.patch
Parent Directory | Revision Log
Revision 153 -
(hide annotations)
(download)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 15300 byte(s)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 15300 byte(s)
-import
1 | niro | 153 | Index: uriloader/exthandler/Makefile.in |
2 | =================================================================== | ||
3 | RCS file: /cvsroot/mozilla/uriloader/exthandler/Makefile.in,v | ||
4 | retrieving revision 1.60 | ||
5 | diff -d -u -p -r1.60 Makefile.in | ||
6 | --- uriloader/exthandler/Makefile.in 2 May 2005 16:30:03 -0000 1.60 | ||
7 | +++ uriloader/exthandler/Makefile.in 21 Jul 2005 03:07:39 -0000 | ||
8 | @@ -102,7 +102,7 @@ endif | ||
9 | LOCAL_INCLUDES = -I$(srcdir) | ||
10 | |||
11 | ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) | ||
12 | -OSHELPER += nsGNOMERegistry.cpp | ||
13 | +OSHELPER += nsMIMEInfoUnix.cpp nsGNOMERegistry.cpp | ||
14 | endif | ||
15 | |||
16 | ifeq ($(MOZ_WIDGET_TOOLKIT),beos) | ||
17 | Index: uriloader/exthandler/unix/nsGNOMERegistry.cpp | ||
18 | =================================================================== | ||
19 | RCS file: /cvsroot/mozilla/uriloader/exthandler/unix/nsGNOMERegistry.cpp,v | ||
20 | retrieving revision 1.10 | ||
21 | diff -d -u -p -r1.10 nsGNOMERegistry.cpp | ||
22 | --- uriloader/exthandler/unix/nsGNOMERegistry.cpp 16 Oct 2004 13:46:17 -0000 1.10 | ||
23 | +++ uriloader/exthandler/unix/nsGNOMERegistry.cpp 21 Jul 2005 03:07:40 -0000 | ||
24 | @@ -42,7 +42,7 @@ | ||
25 | #include "nsString.h" | ||
26 | #include "nsIComponentManager.h" | ||
27 | #include "nsILocalFile.h" | ||
28 | -#include "nsMIMEInfoImpl.h" | ||
29 | +#include "nsMIMEInfoUnix.h" | ||
30 | #include "nsAutoPtr.h" | ||
31 | |||
32 | #include <glib.h> | ||
33 | @@ -56,12 +56,12 @@ typedef struct _GConfClient GConfClient; | ||
34 | typedef struct _GnomeProgram GnomeProgram; | ||
35 | typedef struct _GnomeModuleInfo GnomeModuleInfo; | ||
36 | |||
37 | -typedef struct { | ||
38 | +struct GnomeVFSMimeApplication { | ||
39 | char *id; | ||
40 | char *name; | ||
41 | char *command; | ||
42 | /* there is more here, but we don't need it */ | ||
43 | -} GnomeVFSMimeApplication; | ||
44 | +}; | ||
45 | |||
46 | typedef GConfClient * (*_gconf_client_get_default_fn)(); | ||
47 | typedef gchar * (*_gconf_client_get_string_fn)(GConfClient *, | ||
48 | @@ -264,7 +264,7 @@ nsGNOMERegistry::GetAppDescForScheme(con | ||
49 | } | ||
50 | |||
51 | |||
52 | -/* static */ already_AddRefed<nsMIMEInfoBase> | ||
53 | +/* static */ already_AddRefed<nsMIMEInfoUnix> | ||
54 | nsGNOMERegistry::GetFromExtension(const char *aFileExt) | ||
55 | { | ||
56 | if (!gconfLib) | ||
57 | @@ -286,7 +286,7 @@ nsGNOMERegistry::GetFromExtension(const | ||
58 | return GetFromType(mimeType); | ||
59 | } | ||
60 | |||
61 | -/* static */ already_AddRefed<nsMIMEInfoBase> | ||
62 | +/* static */ already_AddRefed<nsMIMEInfoUnix> | ||
63 | nsGNOMERegistry::GetFromType(const char *aMIMEType) | ||
64 | { | ||
65 | if (!gconfLib) | ||
66 | @@ -296,9 +296,11 @@ nsGNOMERegistry::GetFromType(const char | ||
67 | if (!handlerApp) | ||
68 | return nsnull; | ||
69 | |||
70 | - nsRefPtr<nsMIMEInfoImpl> mimeInfo = new nsMIMEInfoImpl(aMIMEType); | ||
71 | + nsRefPtr<nsMIMEInfoUnix> mimeInfo = new nsMIMEInfoUnix(aMIMEType); | ||
72 | NS_ENSURE_TRUE(mimeInfo, nsnull); | ||
73 | |||
74 | + mimeInfo->SetDefaultGnomeVFSMimeApplication(handlerApp); | ||
75 | + | ||
76 | // Get the list of extensions and append then to the mimeInfo. | ||
77 | GList *extensions = _gnome_vfs_mime_get_extensions_list(aMIMEType); | ||
78 | for (GList *extension = extensions; extension; extension = extension->next) | ||
79 | @@ -320,11 +322,21 @@ nsGNOMERegistry::GetFromType(const char | ||
80 | return nsnull; | ||
81 | } | ||
82 | |||
83 | - gchar *commandPath = g_find_program_in_path(nativeCommand); | ||
84 | + gchar **argv; | ||
85 | + gboolean res = g_shell_parse_argv(nativeCommand, NULL, &argv, NULL); | ||
86 | + if (!res) { | ||
87 | + NS_ERROR("Could not convert helper app command to filesystem encoding"); | ||
88 | + _gnome_vfs_mime_application_free(handlerApp); | ||
89 | + return nsnull; | ||
90 | + } | ||
91 | + | ||
92 | + gchar *commandPath = g_find_program_in_path(argv[0]); | ||
93 | |||
94 | g_free(nativeCommand); | ||
95 | + g_strfreev(argv); | ||
96 | |||
97 | if (!commandPath) { | ||
98 | + NS_WARNING("could not find command in path"); | ||
99 | _gnome_vfs_mime_application_free(handlerApp); | ||
100 | return nsnull; | ||
101 | } | ||
102 | @@ -342,7 +354,7 @@ nsGNOMERegistry::GetFromType(const char | ||
103 | |||
104 | _gnome_vfs_mime_application_free(handlerApp); | ||
105 | |||
106 | - nsMIMEInfoBase* retval; | ||
107 | + nsMIMEInfoUnix* retval; | ||
108 | NS_ADDREF((retval = mimeInfo)); | ||
109 | return retval; | ||
110 | } | ||
111 | Index: uriloader/exthandler/unix/nsGNOMERegistry.h | ||
112 | =================================================================== | ||
113 | RCS file: /cvsroot/mozilla/uriloader/exthandler/unix/nsGNOMERegistry.h,v | ||
114 | retrieving revision 1.3 | ||
115 | diff -d -u -p -r1.3 nsGNOMERegistry.h | ||
116 | --- uriloader/exthandler/unix/nsGNOMERegistry.h 16 Oct 2004 13:46:17 -0000 1.3 | ||
117 | +++ uriloader/exthandler/unix/nsGNOMERegistry.h 21 Jul 2005 03:07:40 -0000 | ||
118 | @@ -35,10 +35,13 @@ | ||
119 | * | ||
120 | * ***** END LICENSE BLOCK ***** */ | ||
121 | |||
122 | +#ifndef nsGNOMERegistry_h__ | ||
123 | +#define nsGNOMERegistry_h__ | ||
124 | + | ||
125 | #include "nsIURI.h" | ||
126 | #include "nsCOMPtr.h" | ||
127 | |||
128 | -class nsMIMEInfoBase; | ||
129 | +class nsMIMEInfoUnix; | ||
130 | |||
131 | class nsGNOMERegistry | ||
132 | { | ||
133 | @@ -52,7 +55,9 @@ class nsGNOMERegistry | ||
134 | static void GetAppDescForScheme(const nsACString& aScheme, | ||
135 | nsAString& aDesc); | ||
136 | |||
137 | - static already_AddRefed<nsMIMEInfoBase> GetFromExtension(const char *aFileExt); | ||
138 | + static already_AddRefed<nsMIMEInfoUnix> GetFromExtension(const char *aFileExt); | ||
139 | |||
140 | - static already_AddRefed<nsMIMEInfoBase> GetFromType(const char *aMIMEType); | ||
141 | + static already_AddRefed<nsMIMEInfoUnix> GetFromType(const char *aMIMEType); | ||
142 | }; | ||
143 | + | ||
144 | +#endif // nsGNOMERegistry_h__ | ||
145 | Index: uriloader/exthandler/unix/nsMIMEInfoUnix.cpp | ||
146 | =================================================================== | ||
147 | RCS file: uriloader/exthandler/unix/nsMIMEInfoUnix.cpp | ||
148 | diff -N uriloader/exthandler/unix/nsMIMEInfoUnix.cpp | ||
149 | --- /dev/null 1 Jan 1970 00:00:00 -0000 | ||
150 | +++ uriloader/exthandler/unix/nsMIMEInfoUnix.cpp 21 Jul 2005 03:07:40 -0000 | ||
151 | @@ -0,0 +1,196 @@ | ||
152 | +/* ***** BEGIN LICENSE BLOCK ***** | ||
153 | + * Version: MPL 1.1 | ||
154 | + * | ||
155 | + * The contents of this file are subject to the Mozilla Public License Version | ||
156 | + * 1.1 (the "License"); you may not use this file except in compliance with | ||
157 | + * the License. You may obtain a copy of the License at | ||
158 | + * http://www.mozilla.org/MPL/ | ||
159 | + * | ||
160 | + * Software distributed under the License is distributed on an "AS IS" basis, | ||
161 | + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License | ||
162 | + * for the specific language governing rights and limitations under the | ||
163 | + * License. | ||
164 | + * | ||
165 | + * The Original Code is mozilla.org Code. | ||
166 | + * | ||
167 | + * The Initial Developer of the Original Code is | ||
168 | + * Red Hat, Inc. | ||
169 | + * Portions created by the Initial Developer are Copyright (C) 2005 | ||
170 | + * the Initial Developer. All Rights Reserved. | ||
171 | + * | ||
172 | + * Contributor(s): | ||
173 | + * Christopher Aillon <caillon@redhat.com> (Original author) | ||
174 | + * | ||
175 | + * | ||
176 | + * ***** END LICENSE BLOCK ***** */ | ||
177 | + | ||
178 | +#include "nsMIMEInfoUnix.h" | ||
179 | +#include "prlink.h" | ||
180 | +#include "prmem.h" | ||
181 | +#include <glib.h> | ||
182 | +#include <glib-object.h> | ||
183 | + | ||
184 | +static PRLibrary *gnomeLib; | ||
185 | +static PRLibrary *vfsLib; | ||
186 | + | ||
187 | +typedef struct _GnomeProgram GnomeProgram; | ||
188 | +typedef struct _GnomeModuleInfo GnomeModuleInfo; | ||
189 | + | ||
190 | +typedef enum { | ||
191 | + GNOME_VFS_OK // there's more but we don't care about them. | ||
192 | +} GnomeVFSResult; | ||
193 | + | ||
194 | +typedef GnomeVFSResult (*_gnome_vfs_mime_application_launch_fn) | ||
195 | + (GnomeVFSMimeApplication *app, | ||
196 | + GList *uris); | ||
197 | +typedef void (*_gnome_vfs_mime_application_free_fn)(GnomeVFSMimeApplication *); | ||
198 | +typedef GnomeVFSMimeApplication * (*_gnome_vfs_mime_application_copy_fn)(GnomeVFSMimeApplication *); | ||
199 | +typedef GnomeProgram * (*_gnome_program_init_fn)(const char *, const char *, | ||
200 | + const GnomeModuleInfo *, int, | ||
201 | + char **, const char *, ...); | ||
202 | +typedef const char * (*_gnome_vfs_mime_application_get_name_fn)(GnomeVFSMimeApplication *); | ||
203 | +typedef const GnomeModuleInfo * (*_libgnome_module_info_get_fn)(); | ||
204 | +typedef GnomeProgram * (*_gnome_program_get_fn)(); | ||
205 | +typedef char * (*_gnome_vfs_make_uri_from_input_fn)(const char *); | ||
206 | + | ||
207 | +#define DECL_FUNC_PTR(func) static _##func##_fn _##func | ||
208 | + | ||
209 | +DECL_FUNC_PTR(gnome_vfs_mime_application_launch); | ||
210 | +DECL_FUNC_PTR(gnome_vfs_mime_application_free); | ||
211 | +DECL_FUNC_PTR(gnome_vfs_mime_application_copy); | ||
212 | +DECL_FUNC_PTR(gnome_vfs_mime_application_get_name); | ||
213 | +DECL_FUNC_PTR(gnome_program_init); | ||
214 | +DECL_FUNC_PTR(gnome_program_get); | ||
215 | +DECL_FUNC_PTR(libgnome_module_info_get); | ||
216 | +DECL_FUNC_PTR(gnome_vfs_make_uri_from_input); | ||
217 | + | ||
218 | +static PRLibrary * | ||
219 | +LoadVersionedLibrary(const char* libName, const char* libVersion) | ||
220 | +{ | ||
221 | + char *platformLibName = PR_GetLibraryName(nsnull, libName); | ||
222 | + nsCAutoString versionLibName(platformLibName); | ||
223 | + versionLibName.Append(libVersion); | ||
224 | + PR_Free(platformLibName); | ||
225 | + return PR_LoadLibrary(versionLibName.get()); | ||
226 | +} | ||
227 | + | ||
228 | +static void | ||
229 | +Cleanup() | ||
230 | +{ | ||
231 | + // Unload all libraries | ||
232 | + if (gnomeLib) | ||
233 | + PR_UnloadLibrary(gnomeLib); | ||
234 | + if (vfsLib) | ||
235 | + PR_UnloadLibrary(vfsLib); | ||
236 | + | ||
237 | + gnomeLib = vfsLib = nsnull; | ||
238 | +} | ||
239 | + | ||
240 | +static void | ||
241 | +InitGnomeVFS() | ||
242 | +{ | ||
243 | + static PRBool initialized = PR_FALSE; | ||
244 | + | ||
245 | + if (initialized) | ||
246 | + return; | ||
247 | + | ||
248 | + #define ENSURE_LIB(lib) \ | ||
249 | + PR_BEGIN_MACRO \ | ||
250 | + if (!lib) { \ | ||
251 | + Cleanup(); \ | ||
252 | + return; \ | ||
253 | + } \ | ||
254 | + PR_END_MACRO | ||
255 | + | ||
256 | + #define GET_LIB_FUNCTION(lib, func, failure) \ | ||
257 | + PR_BEGIN_MACRO \ | ||
258 | + _##func = (_##func##_fn) PR_FindFunctionSymbol(lib##Lib, #func); \ | ||
259 | + if (!_##func) { \ | ||
260 | + failure; \ | ||
261 | + } \ | ||
262 | + PR_END_MACRO | ||
263 | + | ||
264 | + // Attempt to open libgnome | ||
265 | + gnomeLib = LoadVersionedLibrary("gnome-2", ".0"); | ||
266 | + ENSURE_LIB(gnomeLib); | ||
267 | + | ||
268 | + GET_LIB_FUNCTION(gnome, gnome_program_init, return Cleanup()); | ||
269 | + GET_LIB_FUNCTION(gnome, libgnome_module_info_get, return Cleanup()); | ||
270 | + GET_LIB_FUNCTION(gnome, gnome_program_get, return Cleanup()); | ||
271 | + | ||
272 | + // Attempt to open libgnomevfs | ||
273 | + vfsLib = LoadVersionedLibrary("gnomevfs-2", ".0"); | ||
274 | + ENSURE_LIB(vfsLib); | ||
275 | + | ||
276 | + GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_launch, /* do nothing */); | ||
277 | + GET_LIB_FUNCTION(vfs, gnome_vfs_make_uri_from_input, return Cleanup()); | ||
278 | + GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_get_name, return Cleanup()); | ||
279 | + GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_free, return Cleanup()); | ||
280 | + GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_copy, return Cleanup()); | ||
281 | + | ||
282 | + // Initialize GNOME, if it's not already initialized. It's not | ||
283 | + // necessary to tell GNOME about our actual command line arguments. | ||
284 | + | ||
285 | + if (!_gnome_program_get()) { | ||
286 | + char *argv[1] = { "gecko" }; | ||
287 | + _gnome_program_init("Gecko", "1.0", _libgnome_module_info_get(), | ||
288 | + 1, argv, NULL); | ||
289 | + } | ||
290 | + | ||
291 | + // Note: after GNOME has been initialized, do not ever unload these | ||
292 | + // libraries. They register atexit handlers, so if they are unloaded, we'll | ||
293 | + // crash on exit. | ||
294 | +} | ||
295 | + | ||
296 | +void | ||
297 | +nsMIMEInfoUnix::SetDefaultGnomeVFSMimeApplication(GnomeVFSMimeApplication* app) | ||
298 | +{ | ||
299 | + if (_gnome_vfs_mime_application_copy && _gnome_vfs_mime_application_free) { | ||
300 | + mDefaultVFSApplication = _gnome_vfs_mime_application_copy(app); | ||
301 | + | ||
302 | + mPreferredAction = nsIMIMEInfo::useSystemDefault; | ||
303 | + | ||
304 | + const gchar * name = _gnome_vfs_mime_application_get_name(mDefaultVFSApplication); | ||
305 | + if (name) | ||
306 | + mDefaultAppDescription = NS_ConvertUTF8toUCS2(name); | ||
307 | + } | ||
308 | +} | ||
309 | + | ||
310 | +nsMIMEInfoUnix::~nsMIMEInfoUnix() | ||
311 | +{ | ||
312 | + if (mDefaultVFSApplication) | ||
313 | + _gnome_vfs_mime_application_free(mDefaultVFSApplication); | ||
314 | +} | ||
315 | + | ||
316 | +nsresult | ||
317 | +nsMIMEInfoUnix::LaunchDefaultWithFile(nsIFile* aFile) | ||
318 | +{ | ||
319 | + NS_ENSURE_ARG_POINTER(aFile); | ||
320 | + | ||
321 | + InitGnomeVFS(); | ||
322 | + | ||
323 | + if (_gnome_vfs_mime_application_launch && mDefaultVFSApplication) { | ||
324 | + nsCAutoString nativePath; | ||
325 | + aFile->GetNativePath(nativePath); | ||
326 | + | ||
327 | + gchar *uri = _gnome_vfs_make_uri_from_input(nativePath.get()); | ||
328 | + | ||
329 | + GList *uris = NULL; | ||
330 | + uris = g_list_append(uris, uri); | ||
331 | + | ||
332 | + GnomeVFSResult result = _gnome_vfs_mime_application_launch(mDefaultVFSApplication, uris); | ||
333 | + | ||
334 | + g_free(uri); | ||
335 | + g_list_free(uris); | ||
336 | + | ||
337 | + if (result != GNOME_VFS_OK) | ||
338 | + return NS_ERROR_FAILURE; | ||
339 | + | ||
340 | + return NS_OK; | ||
341 | + } | ||
342 | + | ||
343 | + if (!mDefaultApplication) | ||
344 | + return NS_ERROR_FILE_NOT_FOUND; | ||
345 | + | ||
346 | + return LaunchWithIProcess(mDefaultApplication, aFile); | ||
347 | +} | ||
348 | Index: uriloader/exthandler/unix/nsMIMEInfoUnix.h | ||
349 | =================================================================== | ||
350 | RCS file: uriloader/exthandler/unix/nsMIMEInfoUnix.h | ||
351 | diff -N uriloader/exthandler/unix/nsMIMEInfoUnix.h | ||
352 | --- /dev/null 1 Jan 1970 00:00:00 -0000 | ||
353 | +++ uriloader/exthandler/unix/nsMIMEInfoUnix.h 21 Jul 2005 03:07:40 -0000 | ||
354 | @@ -0,0 +1,50 @@ | ||
355 | +/* ***** BEGIN LICENSE BLOCK ***** | ||
356 | + * Version: MPL 1.1 | ||
357 | + * | ||
358 | + * The contents of this file are subject to the Mozilla Public License Version | ||
359 | + * 1.1 (the "License"); you may not use this file except in compliance with | ||
360 | + * the License. You may obtain a copy of the License at | ||
361 | + * http://www.mozilla.org/MPL/ | ||
362 | + * | ||
363 | + * Software distributed under the License is distributed on an "AS IS" basis, | ||
364 | + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License | ||
365 | + * for the specific language governing rights and limitations under the | ||
366 | + * License. | ||
367 | + * | ||
368 | + * The Original Code is mozilla.org Code. | ||
369 | + * | ||
370 | + * The Initial Developer of the Original Code is | ||
371 | + * Red Hat, Inc. | ||
372 | + * Portions created by the Initial Developer are Copyright (C) 2005 | ||
373 | + * the Initial Developer. All Rights Reserved. | ||
374 | + * | ||
375 | + * Contributor(s): | ||
376 | + * Christopher Aillon <caillon@redhat.com> (Original author) | ||
377 | + * | ||
378 | + * | ||
379 | + * ***** END LICENSE BLOCK ***** */ | ||
380 | + | ||
381 | +#ifndef nsMimeInfoUnix_h__ | ||
382 | +#define nsMimeInfoUnix_h__ | ||
383 | + | ||
384 | +#include "nsMIMEInfoImpl.h" | ||
385 | + | ||
386 | +struct GnomeVFSMimeApplication; | ||
387 | + | ||
388 | +class nsMIMEInfoUnix : public nsMIMEInfoImpl | ||
389 | +{ | ||
390 | +public: | ||
391 | + nsMIMEInfoUnix(const char* aType = "") : nsMIMEInfoImpl(aType), mDefaultVFSApplication(nsnull) {} | ||
392 | + nsMIMEInfoUnix(const nsACString& aMIMEType) : nsMIMEInfoImpl(aMIMEType) {}; | ||
393 | + | ||
394 | + virtual ~nsMIMEInfoUnix(); | ||
395 | + | ||
396 | + void SetDefaultGnomeVFSMimeApplication(GnomeVFSMimeApplication *app); | ||
397 | + | ||
398 | +protected: | ||
399 | + virtual NS_HIDDEN_(nsresult) LaunchDefaultWithFile(nsIFile* aFile); | ||
400 | + | ||
401 | + GnomeVFSMimeApplication *mDefaultVFSApplication; | ||
402 | +}; | ||
403 | + | ||
404 | +#endif // nsMimeInfoUnix_h__ | ||
405 | Index: uriloader/exthandler/unix/nsOSHelperAppService.cpp | ||
406 | =================================================================== | ||
407 | RCS file: /cvsroot/mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp,v | ||
408 | retrieving revision 1.58 | ||
409 | diff -d -u -p -r1.58 nsOSHelperAppService.cpp | ||
410 | --- uriloader/exthandler/unix/nsOSHelperAppService.cpp 25 Oct 2004 07:46:01 -0000 1.58 | ||
411 | +++ uriloader/exthandler/unix/nsOSHelperAppService.cpp 21 Jul 2005 03:07:40 -0000 | ||
412 | @@ -44,6 +44,7 @@ | ||
413 | #include "nsOSHelperAppService.h" | ||
414 | #ifdef MOZ_WIDGET_GTK2 | ||
415 | #include "nsGNOMERegistry.h" | ||
416 | +#include "nsMIMEInfoUnix.h" | ||
417 | #endif | ||
418 | #include "nsISupports.h" | ||
419 | #include "nsString.h" | ||
420 | @@ -1535,6 +1551,17 @@ nsOSHelperAppService::GetFromType(const | ||
421 | |||
422 | LOG(("Here we do a mimetype lookup for '%s'\n", aMIMEType.get())); | ||
423 | |||
424 | +#ifdef MOZ_WIDGET_GTK2 | ||
425 | + // Look in GNOME registry first since it is the preferred method in GNOME, | ||
426 | + // should trump the mailcap entry | ||
427 | + LOG(("Looking in GNOME registry\n")); | ||
428 | + nsMIMEInfoBase *gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType.get()).get(); | ||
429 | + if (gnomeInfo) { | ||
430 | + LOG(("Got MIMEInfo from GNOME registry\n")); | ||
431 | + return gnomeInfo; | ||
432 | + } | ||
433 | +#endif | ||
434 | + | ||
435 | // extract the major and minor types | ||
436 | NS_ConvertASCIItoUTF16 mimeType(aMIMEType); | ||
437 | nsAString::const_iterator start_iter, end_iter, | ||
438 | @@ -1522,21 +1534,6 @@ nsOSHelperAppService::GetFromType(const | ||
439 | mozillaFlags, | ||
440 | PR_TRUE); | ||
441 | |||
442 | - | ||
443 | - if (handler.IsEmpty() && extensions.IsEmpty() && | ||
444 | - mailcap_description.IsEmpty() && mime_types_description.IsEmpty()) { | ||
445 | - // No useful data yet | ||
446 | - | ||
447 | -#ifdef MOZ_WIDGET_GTK2 | ||
448 | - LOG(("Looking in GNOME registry\n")); | ||
449 | - nsMIMEInfoBase *gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType.get()).get(); | ||
450 | - if (gnomeInfo) { | ||
451 | - LOG(("Got MIMEInfo from GNOME registry\n")); | ||
452 | - return gnomeInfo; | ||
453 | - } | ||
454 | -#endif | ||
455 | - } | ||
456 | - | ||
457 | if (handler.IsEmpty() && mailcap_description.IsEmpty()) { | ||
458 | DoLookUpHandlerAndDescription(majorType, | ||
459 | minorType, |