blob: 8141e1d06304b98ba18b6cc8e3aee735fae7d355 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
diff --git a/toolkit/system/gnome/nsGIOService.cpp b/toolkit/system/gnome/nsGIOService.cpp
--- a/toolkit/system/gnome/nsGIOService.cpp
+++ b/toolkit/system/gnome/nsGIOService.cpp
@@ -521,16 +521,22 @@ nsGIOService::GetAppForMimeType(const ns
return NS_OK;
}
char *content_type =
g_content_type_from_mime_type(PromiseFlatCString(aMimeType).get());
if (!content_type)
return NS_ERROR_FAILURE;
+ // GIO returns "unknown" appinfo for the application/octet-stream, which is
+ // useless. It's better to fallback to create appinfo from file extension later.
+ if (g_content_type_is_unknown(content_type)) {
+ return NS_ERROR_NOT_AVAILABLE;
+ }
+
GAppInfo *app_info = g_app_info_get_default_for_type(content_type, false);
if (app_info) {
nsGIOMimeApp *mozApp = new nsGIOMimeApp(app_info);
NS_ENSURE_TRUE(mozApp, NS_ERROR_OUT_OF_MEMORY);
NS_ADDREF(*aApp = mozApp);
} else {
g_free(content_type);
return NS_ERROR_FAILURE;
|