author | Wolfgang Rosenauer <wr@rosenauer.org> |
Wed, 30 Sep 2020 09:47:34 +0200 | |
branch | firefox81 |
changeset 1144 | 8a43aff7e982 |
parent 1141 | edb0ebe8cccc |
child 1152 | 4cfe46c9a944 |
permissions | -rw-r--r-- |
828 | 1 |
# HG changeset patch |
1097 | 2 |
# User msirringhaus@suse.de |
3 |
# Date 1559294891 -7200 |
|
4 |
# Fri May 31 11:28:11 2019 +0200 |
|
5 |
# Node ID c2aa7198fb925e7fde96abf65b6f68b9b755f112 |
|
1144 | 6 |
# Parent e89d21ead66fbb34b6349edda42748a3ad9e6136 |
398
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
7 |
Description: Add KDE integration to Firefox (toolkit parts) |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
8 |
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org> |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
9 |
Author: Lubos Lunak <lunak@suse.com> |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
10 |
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751 |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
11 |
https://bugzilla.novell.com/show_bug.cgi?id=170055 |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
12 |
|
779 | 13 |
diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp |
14 |
--- a/modules/libpref/Preferences.cpp |
|
15 |
+++ b/modules/libpref/Preferences.cpp |
|
1124 | 16 |
@@ -83,16 +83,17 @@ |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
17 |
#include "nsXPCOM.h" |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
18 |
#include "nsXULAppAPI.h" |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
19 |
#include "nsZipArchive.h" |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
20 |
#include "plbase64.h" |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
21 |
#include "PLDHashTable.h" |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
22 |
#include "plstr.h" |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
23 |
#include "prlink.h" |
1106 | 24 |
#include "xpcpublic.h" |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
25 |
+#include "nsKDEUtils.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
26 |
|
1106 | 27 |
#ifdef DEBUG |
28 |
# include <map> |
|
29 |
#endif |
|
30 |
||
1074
4b99400f6d17
rebased patches and updated spec for 63.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1067
diff
changeset
|
31 |
#ifdef MOZ_MEMORY |
1089 | 32 |
# include "mozmemory.h" |
1074
4b99400f6d17
rebased patches and updated spec for 63.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1067
diff
changeset
|
33 |
#endif |
1144 | 34 |
@@ -4536,25 +4537,37 @@ nsresult Preferences::InitInitialObjects |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
35 |
// application pref files for backwards compatibility. |
340
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
36 |
static const char* specialFiles[] = { |
289
3c0dff7ca9c4
Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
284
diff
changeset
|
37 |
#if defined(XP_MACOSX) |
340
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
38 |
"macprefs.js" |
127
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
39 |
#elif defined(XP_WIN) |
340
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
40 |
"winpref.js" |
127
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
41 |
#elif defined(XP_UNIX) |
340
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
42 |
"unix.js" |
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
43 |
+ , "" // placeholder for KDE (empty is otherwise harmless) |
1089 | 44 |
# if defined(_AIX) |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
45 |
, |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
46 |
"aix.js" |
1089 | 47 |
# endif |
289
3c0dff7ca9c4
Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
284
diff
changeset
|
48 |
#elif defined(XP_BEOS) |
340
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
49 |
"beos.js" |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
50 |
#endif |
340
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
51 |
}; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
52 |
|
340
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
53 |
+ if(nsKDEUtils::kdeSession()) { // TODO what if some setup actually requires the helper? |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
54 |
+ for(int i = 0; |
716
cef565f1c325
update to Firefox 29.0b7
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
703
diff
changeset
|
55 |
+ i < MOZ_ARRAY_LENGTH(specialFiles); |
340
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
56 |
+ ++i ) { |
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
57 |
+ if( *specialFiles[ i ] == '\0' ) { |
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
58 |
+ specialFiles[ i ] = "kde.js"; |
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
59 |
+ break; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
60 |
+ } |
127
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
61 |
+ } |
340
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
62 |
+ } |
127
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
63 |
+ |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
64 |
rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
65 |
ArrayLength(specialFiles)); |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
66 |
if (NS_FAILED(rv)) { |
340
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
67 |
NS_WARNING("Error parsing application default preferences."); |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
68 |
} |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
69 |
|
289
3c0dff7ca9c4
Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
284
diff
changeset
|
70 |
// Load jar:$app/omni.jar!/defaults/preferences/*.js |
438
7d934b2f5014
rebased and removed upstreamed and obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
419
diff
changeset
|
71 |
// or jar:$gre/omni.jar!/defaults/preferences/*.js. |
1144 | 72 |
@@ -4600,17 +4613,17 @@ nsresult Preferences::InitInitialObjects |
1032
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
73 |
} |
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
74 |
|
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
75 |
nsCOMPtr<nsIFile> path = do_QueryInterface(elem); |
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
76 |
if (!path) { |
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
77 |
continue; |
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
78 |
} |
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
79 |
|
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
80 |
// Do we care if a file provided by this process fails to load? |
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
81 |
- pref_LoadPrefsInDir(path, nullptr, 0); |
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
82 |
+ pref_LoadPrefsInDir(path, specialFiles, ArrayLength(specialFiles)); |
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
83 |
} |
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
84 |
} |
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
85 |
|
1055
526f445635f3
removed obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1050
diff
changeset
|
86 |
if (XRE_IsParentProcess()) { |
526f445635f3
removed obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1050
diff
changeset
|
87 |
SetupTelemetryPref(); |
526f445635f3
removed obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1050
diff
changeset
|
88 |
} |
526f445635f3
removed obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1050
diff
changeset
|
89 |
|
1125 | 90 |
if (aIsStartup) { |
904 | 91 |
diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build |
92 |
--- a/modules/libpref/moz.build |
|
93 |
+++ b/modules/libpref/moz.build |
|
1141 | 94 |
@@ -118,16 +118,20 @@ EXPORTS.mozilla += [ |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
95 |
] |
1112 | 96 |
EXPORTS.mozilla += sorted(['!' + g for g in gen_h]) |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
97 |
|
985 | 98 |
UNIFIED_SOURCES += [ |
99 |
'Preferences.cpp', |
|
1074
4b99400f6d17
rebased patches and updated spec for 63.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1067
diff
changeset
|
100 |
'SharedPrefMap.cpp', |
904 | 101 |
] |
102 |
||
103 |
+LOCAL_INCLUDES += [ |
|
1093 | 104 |
+ '/toolkit/xre' |
904 | 105 |
+] |
106 |
+ |
|
1112 | 107 |
gen_all_tuple = tuple(gen_h + gen_cpp + gen_rs) |
108 |
||
1140 | 109 |
GeneratedFile(*gen_all_tuple, script='init/generate_static_pref_list.py', |
110 |
entry_point='emit_code', inputs=['init/StaticPrefList.yaml']) |
|
1093 | 111 |
|
1140 | 112 |
PYTHON_UNITTEST_MANIFESTS += [ |
113 |
'test/python.ini', |
|
114 |
] |
|
637
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
115 |
diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
116 |
--- a/python/mozbuild/mozpack/chrome/flags.py |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
117 |
+++ b/python/mozbuild/mozpack/chrome/flags.py |
1106 | 118 |
@@ -227,16 +227,17 @@ class Flags(OrderedDict): |
637
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
119 |
'contentaccessible': Flag, |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
120 |
'os': StringFlag, |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
121 |
'osversion': VersionFlag, |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
122 |
'abi': StringFlag, |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
123 |
'platform': Flag, |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
124 |
'xpcnativewrappers': Flag, |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
125 |
'tablet': Flag, |
807
f54c68340963
Aurora 35.0 (20141115) uplift
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
779
diff
changeset
|
126 |
'process': StringFlag, |
f54c68340963
Aurora 35.0 (20141115) uplift
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
779
diff
changeset
|
127 |
+ 'desktop': StringFlag, |
637
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
128 |
} |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
129 |
RE = re.compile(r'([!<>=]+)') |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
130 |
|
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
131 |
def __init__(self, *flags): |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
132 |
''' |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
133 |
Initialize a set of flags given in string form. |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
134 |
flags = Flags('contentaccessible=yes', 'appversion>=3.5') |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
135 |
''' |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
136 |
diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
137 |
--- a/python/mozbuild/mozpack/chrome/manifest.py |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
138 |
+++ b/python/mozbuild/mozpack/chrome/manifest.py |
1121 | 139 |
@@ -37,16 +37,17 @@ class ManifestEntry(object): |
637
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
140 |
'platformversion', |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
141 |
'os', |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
142 |
'osversion', |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
143 |
'abi', |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
144 |
'xpcnativewrappers', |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
145 |
'tablet', |
807
f54c68340963
Aurora 35.0 (20141115) uplift
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
779
diff
changeset
|
146 |
'process', |
1005 | 147 |
'contentaccessible', |
148 |
+ 'desktop', |
|
637
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
149 |
] |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
150 |
|
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
151 |
def __init__(self, base, *flags): |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
152 |
''' |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
153 |
Initialize a manifest entry with the given base path and flags. |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
154 |
''' |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
155 |
self.base = base |
73640b76d6c3
first building version of FF21
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
612
diff
changeset
|
156 |
self.flags = Flags(*flags) |
779 | 157 |
diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build |
158 |
--- a/toolkit/components/downloads/moz.build |
|
159 |
+++ b/toolkit/components/downloads/moz.build |
|
1141 | 160 |
@@ -45,10 +45,14 @@ XPCOM_MANIFESTS += [ |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
161 |
|
1045 | 162 |
if CONFIG['MOZ_PLACES']: |
163 |
EXTRA_JS_MODULES += [ |
|
164 |
'DownloadHistory.jsm', |
|
165 |
] |
|
779 | 166 |
|
167 |
FINAL_LIBRARY = 'xul' |
|
251
4c9ebbedd59c
adopt patches to new base
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
244
diff
changeset
|
168 |
|
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
169 |
+LOCAL_INCLUDES += [ |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
170 |
+ '/toolkit/xre' |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
171 |
+] |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
172 |
+ |
1045 | 173 |
with Files('**'): |
1074
4b99400f6d17
rebased patches and updated spec for 63.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1067
diff
changeset
|
174 |
BUG_COMPONENT = ('Toolkit', 'Downloads API') |
1093 | 175 |
diff --git a/toolkit/mozapps/downloads/HelperAppDlg.jsm b/toolkit/mozapps/downloads/HelperAppDlg.jsm |
176 |
--- a/toolkit/mozapps/downloads/HelperAppDlg.jsm |
|
177 |
+++ b/toolkit/mozapps/downloads/HelperAppDlg.jsm |
|
1144 | 178 |
@@ -1239,36 +1239,66 @@ nsUnknownContentTypeDialog.prototype = { |
1099
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
179 |
params.handlerApp && |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
180 |
params.handlerApp.executable && |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
181 |
params.handlerApp.executable.isFile() |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
182 |
) { |
944 | 183 |
// Remember the file they chose to run. |
184 |
this.chosenApp = params.handlerApp; |
|
185 |
} |
|
1045 | 186 |
} else if ("@mozilla.org/applicationchooser;1" in Cc) { |
187 |
- var nsIApplicationChooser = Ci.nsIApplicationChooser; |
|
1099
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
188 |
- var appChooser = Cc["@mozilla.org/applicationchooser;1"].createInstance( |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
189 |
- nsIApplicationChooser |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
190 |
- ); |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
191 |
- appChooser.init( |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
192 |
- this.mDialog, |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
193 |
- this.dialogElement("strings").getString("chooseAppFilePickerTitle") |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
194 |
- ); |
944 | 195 |
- var contentTypeDialogObj = this; |
196 |
- let appChooserCallback = function appChooserCallback_done(aResult) { |
|
197 |
- if (aResult) { |
|
1099
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
198 |
- contentTypeDialogObj.chosenApp = aResult.QueryInterface( |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
199 |
- Ci.nsILocalHandlerApp |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
200 |
- ); |
1050
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
201 |
- } |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
202 |
- contentTypeDialogObj.finishChooseApp(); |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
203 |
- }; |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
204 |
- appChooser.open(this.mLauncher.MIMEInfo.MIMEType, appChooserCallback); |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
205 |
- // The finishChooseApp is called from appChooserCallback |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
206 |
- return; |
944 | 207 |
+ // handle the KDE case which is implemented in the filepicker |
208 |
+ // therefore falling back to Gtk2 like behaviour if KDE is running |
|
994 | 209 |
+ // FIXME this should be better handled in the nsIApplicationChooser |
210 |
+ // interface |
|
944 | 211 |
+ var env = Components.classes["@mozilla.org/process/environment;1"] |
212 |
+ .getService(Components.interfaces.nsIEnvironment); |
|
213 |
+ if (env.get('KDE_FULL_SESSION') == "true") |
|
214 |
+ { |
|
1050
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
215 |
+ var nsIFilePicker = Ci.nsIFilePicker; |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
216 |
+ var fp = Cc["@mozilla.org/filepicker;1"] |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
217 |
+ .createInstance(nsIFilePicker); |
944 | 218 |
+ fp.init(this.mDialog, |
219 |
+ this.dialogElement("strings").getString("chooseAppFilePickerTitle"), |
|
220 |
+ nsIFilePicker.modeOpen); |
|
221 |
+ |
|
222 |
+ fp.appendFilters(nsIFilePicker.filterApps); |
|
223 |
+ |
|
1050
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
224 |
+ fp.open(aResult => { |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
225 |
+ if (aResult == nsIFilePicker.returnOK && fp.file) { |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
226 |
+ // Remember the file they chose to run. |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
227 |
+ var localHandlerApp = |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
228 |
+ Cc["@mozilla.org/uriloader/local-handler-app;1"]. |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
229 |
+ createInstance(Ci.nsILocalHandlerApp); |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
230 |
+ localHandlerApp.executable = fp.file; |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
231 |
+ this.chosenApp = localHandlerApp; |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
232 |
+ } |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
233 |
+ this.finishChooseApp(); |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
234 |
+ }); |
944 | 235 |
+ } else { |
1045 | 236 |
+ var nsIApplicationChooser = Ci.nsIApplicationChooser; |
1099
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
237 |
+ var appChooser = Cc["@mozilla.org/applicationchooser;1"].createInstance( |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
238 |
+ nsIApplicationChooser |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
239 |
+ ); |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
240 |
+ appChooser.init( |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
241 |
+ this.mDialog, |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
242 |
+ this.dialogElement("strings").getString("chooseAppFilePickerTitle") |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
243 |
+ ); |
944 | 244 |
+ var contentTypeDialogObj = this; |
245 |
+ let appChooserCallback = function appChooserCallback_done(aResult) { |
|
246 |
+ if (aResult) { |
|
1099
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
247 |
+ contentTypeDialogObj.chosenApp = aResult.QueryInterface( |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
248 |
+ Ci.nsILocalHandlerApp |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
249 |
+ ); |
944 | 250 |
+ } |
251 |
+ contentTypeDialogObj.finishChooseApp(); |
|
252 |
+ }; |
|
253 |
+ appChooser.open(this.mLauncher.MIMEInfo.MIMEType, appChooserCallback); |
|
254 |
+ // The finishChooseApp is called from appChooserCallback |
|
255 |
+ return; |
|
256 |
+ } |
|
994 | 257 |
} else { |
1045 | 258 |
var nsIFilePicker = Ci.nsIFilePicker; |
1099
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
259 |
var fp = Cc["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker); |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
260 |
fp.init( |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
261 |
this.mDialog, |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
262 |
this.dialogElement("strings").getString("chooseAppFilePickerTitle"), |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
263 |
nsIFilePicker.modeOpen |
8a3c73e74e65
68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate68.1.0 candidate
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1097
diff
changeset
|
264 |
); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
265 |
diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
266 |
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
267 |
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp |
1121 | 268 |
@@ -13,16 +13,17 @@ |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
269 |
#include "nsPrintfCString.h" |
885 | 270 |
#include "nsNetCID.h" |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
271 |
#include "nsNetUtil.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
272 |
#include "nsISupportsPrimitives.h" |
399
20f8b5f0aea6
port KDE patches to Gecko 11
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
398
diff
changeset
|
273 |
#include "nsIGSettingsService.h" |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
274 |
#include "nsInterfaceHashtable.h" |
541
830e50bbfc79
working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
538
diff
changeset
|
275 |
#include "mozilla/Attributes.h" |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
276 |
#include "nsIURI.h" |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
277 |
+#include "nsKDEUtils.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
278 |
|
1093 | 279 |
using namespace mozilla; |
280 |
||
850 | 281 |
class nsUnixSystemProxySettings final : public nsISystemProxySettings { |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
282 |
public: |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
283 |
NS_DECL_ISUPPORTS |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
284 |
NS_DECL_NSISYSTEMPROXYSETTINGS |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
285 |
|
1121 | 286 |
@@ -36,16 +37,18 @@ class nsUnixSystemProxySettings final : |
1097 | 287 |
nsCOMPtr<nsIGSettingsCollection> mProxySettings; |
288 |
nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> |
|
289 |
mSchemeProxySettings; |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
290 |
nsresult GetProxyFromGSettings(const nsACString& aScheme, |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
291 |
const nsACString& aHost, int32_t aPort, |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
292 |
nsACString& aResult); |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
293 |
nsresult SetProxyResultFromGSettings(const char* aKeyBase, const char* aType, |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
294 |
nsACString& aResult); |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
295 |
+ nsresult GetProxyFromKDE(const nsACString& aScheme, const nsACString& aHost, |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
296 |
+ PRInt32 aPort, nsACString& aResult); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
297 |
}; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
298 |
|
738 | 299 |
NS_IMPL_ISUPPORTS(nsUnixSystemProxySettings, nsISystemProxySettings) |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
300 |
|
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
301 |
NS_IMETHODIMP |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
302 |
nsUnixSystemProxySettings::GetMainThreadOnly(bool* aMainThreadOnly) { |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
303 |
// dbus prevents us from being threadsafe, but this routine should not block |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
304 |
// anyhow |
1141 | 305 |
@@ -381,21 +384,50 @@ nsresult nsUnixSystemProxySettings::GetP |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
306 |
return NS_OK; |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
307 |
} |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
308 |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
309 |
nsresult nsUnixSystemProxySettings::GetProxyForURI(const nsACString& aSpec, |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
310 |
const nsACString& aScheme, |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
311 |
const nsACString& aHost, |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
312 |
const int32_t aPort, |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
313 |
nsACString& aResult) { |
596 | 314 |
+ if (nsKDEUtils::kdeSupport()) |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
315 |
+ return GetProxyFromKDE(aScheme, aHost, aPort, aResult); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
316 |
+ |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
317 |
if (mProxySettings) { |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
318 |
nsresult rv = GetProxyFromGSettings(aScheme, aHost, aPort, aResult); |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
319 |
if (NS_SUCCEEDED(rv)) return rv; |
399
20f8b5f0aea6
port KDE patches to Gecko 11
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
398
diff
changeset
|
320 |
} |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
321 |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
322 |
return GetProxyFromEnvironment(aScheme, aHost, aPort, aResult); |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
323 |
} |
284
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
324 |
|
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
325 |
+nsresult |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
326 |
+nsUnixSystemProxySettings::GetProxyFromKDE(const nsACString& aScheme, |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
327 |
+ const nsACString& aHost, |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
328 |
+ PRInt32 aPort, |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
329 |
+ nsACString& aResult) |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
330 |
+{ |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
331 |
+ nsAutoCString url; |
284
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
332 |
+ url = aScheme; |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
333 |
+ url += "://"; |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
334 |
+ url += aHost; |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
335 |
+ if( aPort >= 0 ) |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
336 |
+ { |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
337 |
+ url += ":"; |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
338 |
+ url += nsPrintfCString("%d", aPort); |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
339 |
+ } |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
340 |
+ nsTArray<nsCString> command; |
1141 | 341 |
+ command.AppendElement( "GETPROXY"_ns ); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
342 |
+ command.AppendElement( url ); |
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
343 |
+ nsTArray<nsCString> result; |
398
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
344 |
+ if( !nsKDEUtils::command( command, &result ) || result.Length() != 1 ) |
284
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
345 |
+ return NS_ERROR_FAILURE; |
398
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
346 |
+ aResult = result[0]; |
284
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
347 |
+ return NS_OK; |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
348 |
+} |
ccddc8555cdb
readd lost method for non libproxy builds
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
260
diff
changeset
|
349 |
+ |
1093 | 350 |
+ |
351 |
NS_IMPL_COMPONENT_FACTORY(nsUnixSystemProxySettings) { |
|
352 |
auto result = MakeRefPtr<nsUnixSystemProxySettings>(); |
|
353 |
result->Init(); |
|
354 |
return result.forget().downcast<nsISupports>(); |
|
355 |
} |
|
659 | 356 |
diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build |
357 |
--- a/toolkit/xre/moz.build |
|
358 |
+++ b/toolkit/xre/moz.build |
|
1140 | 359 |
@@ -90,17 +90,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co |
1032
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
360 |
'../components/printingui', |
932 | 361 |
] |
362 |
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit': |
|
363 |
UNIFIED_SOURCES += [ |
|
364 |
'nsNativeAppSupportDefault.cpp', |
|
365 |
'UIKitDirProvider.mm', |
|
659 | 366 |
] |
1112 | 367 |
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk': |
659 | 368 |
+ EXPORTS += ['nsKDEUtils.h'] |
703 | 369 |
UNIFIED_SOURCES += [ |
691
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
370 |
+ 'nsKDEUtils.cpp', |
703 | 371 |
'nsNativeAppSupportUnix.cpp', |
659 | 372 |
] |
373 |
else: |
|
703 | 374 |
UNIFIED_SOURCES += [ |
659 | 375 |
'nsNativeAppSupportDefault.cpp', |
376 |
] |
|
377 |
||
1093 | 378 |
if CONFIG['MOZ_HAS_REMOTE']: |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
379 |
diff --git a/toolkit/xre/nsKDEUtils.cpp b/toolkit/xre/nsKDEUtils.cpp |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
380 |
new file mode 100644 |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
381 |
--- /dev/null |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
382 |
+++ b/toolkit/xre/nsKDEUtils.cpp |
935
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
383 |
@@ -0,0 +1,344 @@ |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
384 |
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
546 | 385 |
+/* This Source Code Form is subject to the terms of the Mozilla Public |
386 |
+ * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
387 |
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
388 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
389 |
+#include "nsKDEUtils.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
390 |
+#include "nsIWidget.h" |
398
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
391 |
+#include "nsISupportsPrimitives.h" |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
392 |
+#include "nsIMutableArray.h" |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
393 |
+#include "nsComponentManagerUtils.h" |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
394 |
+#include "nsArrayUtils.h" |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
395 |
+ |
10
1920f0ff04a3
Make mozilla-kde.patch compile with 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
9
diff
changeset
|
396 |
+#include <gtk/gtk.h> |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
397 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
398 |
+#include <limits.h> |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
399 |
+#include <stdio.h> |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
400 |
+#include <sys/wait.h> |
517
fa93154734b8
Fix mozilla-kde.patch to include sys/resource.h for getrlimit etc (glibc 2.16)
Andreas Jaeger <aj@suse.de>
parents:
515
diff
changeset
|
401 |
+#include <sys/resource.h> |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
402 |
+#include <unistd.h> |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
403 |
+#include <X11/Xlib.h> |
935
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
404 |
+// copied from X11/X.h as a hack since for an unknown |
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
405 |
+// reason it's not picked up from X11/X.h |
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
406 |
+#ifndef None |
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
407 |
+#define None 0L /* universal null resource or null atom */ |
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
408 |
+#endif |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
409 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
410 |
+//#define DEBUG_KDE |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
411 |
+#ifdef DEBUG_KDE |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
412 |
+#define KMOZILLAHELPER "kmozillahelper" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
413 |
+#else |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
414 |
+// not need for lib64, it's a binary |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
415 |
+#define KMOZILLAHELPER "/usr/lib/mozilla/kmozillahelper" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
416 |
+#endif |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
417 |
+ |
538
be682f8c9361
revert API version change for kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
537
diff
changeset
|
418 |
+#define KMOZILLAHELPER_VERSION 6 |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
419 |
+#define MAKE_STR2( n ) #n |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
420 |
+#define MAKE_STR( n ) MAKE_STR2( n ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
421 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
422 |
+static bool getKdeSession() |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
423 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
424 |
+ Display* dpy = XOpenDisplay( NULL ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
425 |
+ if( dpy == NULL ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
426 |
+ return false; |
1097 | 427 |
+ Atom kde_full_session = XInternAtom( dpy, "KDE_FULL_SESSION", true ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
428 |
+ bool kde = false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
429 |
+ if( kde_full_session != None ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
430 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
431 |
+ int cnt; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
432 |
+ if( Atom* props = XListProperties( dpy, DefaultRootWindow( dpy ), &cnt )) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
433 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
434 |
+ for( int i = 0; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
435 |
+ i < cnt; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
436 |
+ ++i ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
437 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
438 |
+ if( props[ i ] == kde_full_session ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
439 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
440 |
+ kde = true; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
441 |
+#ifdef DEBUG_KDE |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
442 |
+ fprintf( stderr, "KDE SESSION %d\n", kde ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
443 |
+#endif |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
444 |
+ break; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
445 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
446 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
447 |
+ XFree( props ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
448 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
449 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
450 |
+ XCloseDisplay( dpy ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
451 |
+ return kde; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
452 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
453 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
454 |
+static bool getKdeSupport() |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
455 |
+ { |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
456 |
+ nsTArray<nsCString> command; |
1141 | 457 |
+ command.AppendElement( "CHECK"_ns ); |
458 |
+ command.AppendElement( "KMOZILLAHELPER_VERSION"_ns ); |
|
398
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
459 |
+ bool kde = nsKDEUtils::command( command ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
460 |
+#ifdef DEBUG_KDE |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
461 |
+ fprintf( stderr, "KDE RUNNING %d\n", kde ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
462 |
+#endif |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
463 |
+ return kde; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
464 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
465 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
466 |
+nsKDEUtils::nsKDEUtils() |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
467 |
+ : commandFile( NULL ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
468 |
+ , replyFile( NULL ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
469 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
470 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
471 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
472 |
+nsKDEUtils::~nsKDEUtils() |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
473 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
474 |
+// closeHelper(); not actually useful, exiting will close the fd too |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
475 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
476 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
477 |
+nsKDEUtils* nsKDEUtils::self() |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
478 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
479 |
+ static nsKDEUtils s; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
480 |
+ return &s; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
481 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
482 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
483 |
+static bool helperRunning = false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
484 |
+static bool helperFailed = false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
485 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
486 |
+bool nsKDEUtils::kdeSession() |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
487 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
488 |
+ static bool session = getKdeSession(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
489 |
+ return session; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
490 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
491 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
492 |
+bool nsKDEUtils::kdeSupport() |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
493 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
494 |
+ static bool support = kdeSession() && getKdeSupport(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
495 |
+ return support && helperRunning; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
496 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
497 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
498 |
+struct nsKDECommandData |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
499 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
500 |
+ FILE* file; |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
501 |
+ nsTArray<nsCString>* output; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
502 |
+ GMainLoop* loop; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
503 |
+ bool success; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
504 |
+ }; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
505 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
506 |
+static gboolean kdeReadFunc( GIOChannel*, GIOCondition, gpointer data ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
507 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
508 |
+ nsKDECommandData* p = static_cast< nsKDECommandData* >( data ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
509 |
+ char buf[ 8192 ]; // TODO big enough |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
510 |
+ bool command_done = false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
511 |
+ bool command_failed = false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
512 |
+ while( !command_done && !command_failed && fgets( buf, 8192, p->file ) != NULL ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
513 |
+ { // TODO what if the kernel splits a line into two chunks? |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
514 |
+//#ifdef DEBUG_KDE |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
515 |
+// fprintf( stderr, "READ: %s %d\n", buf, feof( p->file )); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
516 |
+//#endif |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
517 |
+ if( char* eol = strchr( buf, '\n' )) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
518 |
+ *eol = '\0'; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
519 |
+ command_done = ( strcmp( buf, "\\1" ) == 0 ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
520 |
+ command_failed = ( strcmp( buf, "\\0" ) == 0 ); |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
521 |
+ nsAutoCString line( buf ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
522 |
+ line.ReplaceSubstring( "\\n", "\n" ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
523 |
+ line.ReplaceSubstring( "\\" "\\", "\\" ); // \\ -> \ , i.e. unescape |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
524 |
+ if( p->output && !( command_done || command_failed )) |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
525 |
+ p->output->AppendElement( nsCString( buf )); // TODO utf8? |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
526 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
527 |
+ bool quit = false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
528 |
+ if( feof( p->file ) || command_failed ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
529 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
530 |
+ quit = true; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
531 |
+ p->success = false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
532 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
533 |
+ if( command_done ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
534 |
+ { // reading one reply finished |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
535 |
+ quit = true; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
536 |
+ p->success = true; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
537 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
538 |
+ if( quit ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
539 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
540 |
+ if( p->loop ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
541 |
+ g_main_loop_quit( p->loop ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
542 |
+ return FALSE; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
543 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
544 |
+ return TRUE; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
545 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
546 |
+ |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
547 |
+bool nsKDEUtils::command( const nsTArray<nsCString>& command, nsTArray<nsCString>* output ) |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
548 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
549 |
+ return self()->internalCommand( command, NULL, false, output ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
550 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
551 |
+ |
398
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
552 |
+bool nsKDEUtils::command( nsIArray* command, nsIArray** output) |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
553 |
+ { |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
554 |
+ nsTArray<nsCString> in; |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
555 |
+ PRUint32 length; |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
556 |
+ command->GetLength( &length ); |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
557 |
+ for ( PRUint32 i = 0; i < length; i++ ) |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
558 |
+ { |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
559 |
+ nsCOMPtr<nsISupportsCString> str = do_QueryElementAt( command, i ); |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
560 |
+ if( str ) |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
561 |
+ { |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
562 |
+ nsAutoCString s; |
398
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
563 |
+ str->GetData( s ); |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
564 |
+ in.AppendElement( s ); |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
565 |
+ } |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
566 |
+ } |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
567 |
+ |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
568 |
+ nsTArray<nsCString> out; |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
569 |
+ bool ret = self()->internalCommand( in, NULL, false, &out ); |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
570 |
+ |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
571 |
+ if ( !output ) return ret; |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
572 |
+ |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
573 |
+ nsCOMPtr<nsIMutableArray> result = do_CreateInstance( NS_ARRAY_CONTRACTID ); |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
574 |
+ if ( !result ) return false; |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
575 |
+ |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
576 |
+ for ( PRUint32 i = 0; i < out.Length(); i++ ) |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
577 |
+ { |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
578 |
+ nsCOMPtr<nsISupportsCString> rstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID ); |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
579 |
+ if ( !rstr ) return false; |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
580 |
+ |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
581 |
+ rstr->SetData( out[i] ); |
1021
1307721d2345
fixed patches for FF58
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1020
diff
changeset
|
582 |
+ result->AppendElement( rstr ); |
398
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
583 |
+ } |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
584 |
+ |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
585 |
+ NS_ADDREF( *output = result); |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
586 |
+ return ret; |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
587 |
+ } |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
588 |
+ |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
589 |
+ |
893
86f72f1e98a4
prepare Gtk3 based builds on a feature branch
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
889
diff
changeset
|
590 |
+bool nsKDEUtils::commandBlockUi( const nsTArray<nsCString>& command, GtkWindow* parent, nsTArray<nsCString>* output ) |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
591 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
592 |
+ return self()->internalCommand( command, parent, true, output ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
593 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
594 |
+ |
893
86f72f1e98a4
prepare Gtk3 based builds on a feature branch
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
889
diff
changeset
|
595 |
+bool nsKDEUtils::internalCommand( const nsTArray<nsCString>& command, GtkWindow* parent, bool blockUi, |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
596 |
+ nsTArray<nsCString>* output ) |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
597 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
598 |
+ if( !startHelper()) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
599 |
+ return false; |
398
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
600 |
+ feedCommand( command ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
601 |
+ // do not store the data in 'this' but in extra structure, just in case there |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
602 |
+ // is reentrancy (can there be? the event loop is re-entered) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
603 |
+ nsKDECommandData data; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
604 |
+ data.file = replyFile; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
605 |
+ data.output = output; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
606 |
+ data.success = false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
607 |
+ if( blockUi ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
608 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
609 |
+ data.loop = g_main_loop_new( NULL, FALSE ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
610 |
+ GtkWidget* window = gtk_window_new( GTK_WINDOW_TOPLEVEL ); |
893
86f72f1e98a4
prepare Gtk3 based builds on a feature branch
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
889
diff
changeset
|
611 |
+ if( parent && gtk_window_get_group(parent) ) |
86f72f1e98a4
prepare Gtk3 based builds on a feature branch
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
889
diff
changeset
|
612 |
+ gtk_window_group_add_window( gtk_window_get_group(parent), GTK_WINDOW( window )); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
613 |
+ gtk_widget_realize( window ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
614 |
+ gtk_widget_set_sensitive( window, TRUE ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
615 |
+ gtk_grab_add( window ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
616 |
+ GIOChannel* channel = g_io_channel_unix_new( fileno( data.file )); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
617 |
+ g_io_add_watch( channel, static_cast< GIOCondition >( G_IO_IN | G_IO_ERR | G_IO_HUP ), kdeReadFunc, &data ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
618 |
+ g_io_channel_unref( channel ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
619 |
+ g_main_loop_run( data.loop ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
620 |
+ g_main_loop_unref( data.loop ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
621 |
+ gtk_grab_remove( window ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
622 |
+ gtk_widget_destroy( window ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
623 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
624 |
+ else |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
625 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
626 |
+ data.loop = NULL; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
627 |
+ while( kdeReadFunc( NULL, static_cast< GIOCondition >( 0 ), &data )) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
628 |
+ ; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
629 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
630 |
+ return data.success; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
631 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
632 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
633 |
+bool nsKDEUtils::startHelper() |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
634 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
635 |
+ if( helperRunning ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
636 |
+ return true; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
637 |
+ if( helperFailed ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
638 |
+ return false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
639 |
+ helperFailed = true; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
640 |
+ int fdcommand[ 2 ]; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
641 |
+ int fdreply[ 2 ]; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
642 |
+ if( pipe( fdcommand ) < 0 ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
643 |
+ return false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
644 |
+ if( pipe( fdreply ) < 0 ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
645 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
646 |
+ close( fdcommand[ 0 ] ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
647 |
+ close( fdcommand[ 1 ] ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
648 |
+ return false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
649 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
650 |
+ char* args[ 2 ] = { const_cast< char* >( KMOZILLAHELPER ), NULL }; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
651 |
+ switch( fork()) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
652 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
653 |
+ case -1: |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
654 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
655 |
+ close( fdcommand[ 0 ] ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
656 |
+ close( fdcommand[ 1 ] ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
657 |
+ close( fdreply[ 0 ] ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
658 |
+ close( fdreply[ 1 ] ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
659 |
+ return false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
660 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
661 |
+ case 0: // child |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
662 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
663 |
+ if( dup2( fdcommand[ 0 ], STDIN_FILENO ) < 0 ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
664 |
+ _exit( 1 ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
665 |
+ if( dup2( fdreply[ 1 ], STDOUT_FILENO ) < 0 ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
666 |
+ _exit( 1 ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
667 |
+ int maxfd = 1024; // close all other fds |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
668 |
+ struct rlimit rl; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
669 |
+ if( getrlimit( RLIMIT_NOFILE, &rl ) == 0 ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
670 |
+ maxfd = rl.rlim_max; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
671 |
+ for( int i = 3; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
672 |
+ i < maxfd; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
673 |
+ ++i ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
674 |
+ close( i ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
675 |
+#ifdef DEBUG_KDE |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
676 |
+ execvp( KMOZILLAHELPER, args ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
677 |
+#else |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
678 |
+ execv( KMOZILLAHELPER, args ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
679 |
+#endif |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
680 |
+ _exit( 1 ); // failed |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
681 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
682 |
+ default: // parent |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
683 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
684 |
+ commandFile = fdopen( fdcommand[ 1 ], "w" ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
685 |
+ replyFile = fdopen( fdreply[ 0 ], "r" ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
686 |
+ close( fdcommand[ 0 ] ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
687 |
+ close( fdreply[ 1 ] ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
688 |
+ if( commandFile == NULL || replyFile == NULL ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
689 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
690 |
+ closeHelper(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
691 |
+ return false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
692 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
693 |
+ // ok, helper ready, getKdeRunning() will check if it works |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
694 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
695 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
696 |
+ helperFailed = false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
697 |
+ helperRunning = true; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
698 |
+ return true; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
699 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
700 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
701 |
+void nsKDEUtils::closeHelper() |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
702 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
703 |
+ if( commandFile != NULL ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
704 |
+ fclose( commandFile ); // this will also make the helper quit |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
705 |
+ if( replyFile != NULL ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
706 |
+ fclose( replyFile ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
707 |
+ helperRunning = false; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
708 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
709 |
+ |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
710 |
+void nsKDEUtils::feedCommand( const nsTArray<nsCString>& command ) |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
711 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
712 |
+ for( int i = 0; |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
713 |
+ i < command.Length(); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
714 |
+ ++i ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
715 |
+ { |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
716 |
+ nsCString line = command[ i ]; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
717 |
+ line.ReplaceSubstring( "\\", "\\" "\\" ); // \ -> \\ , i.e. escape |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
718 |
+ line.ReplaceSubstring( "\n", "\\n" ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
719 |
+#ifdef DEBUG_KDE |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
720 |
+ fprintf( stderr, "COMM: %s\n", line.get()); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
721 |
+#endif |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
722 |
+ fputs( line.get(), commandFile ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
723 |
+ fputs( "\n", commandFile ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
724 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
725 |
+ fputs( "\\E\n", commandFile ); // done as \E, so it cannot happen in normal data |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
726 |
+ fflush( commandFile ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
727 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
728 |
diff --git a/toolkit/xre/nsKDEUtils.h b/toolkit/xre/nsKDEUtils.h |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
729 |
new file mode 100644 |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
730 |
--- /dev/null |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
731 |
+++ b/toolkit/xre/nsKDEUtils.h |
546 | 732 |
@@ -0,0 +1,48 @@ |
733 |
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
734 |
+/* This Source Code Form is subject to the terms of the Mozilla Public |
|
735 |
+ * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
736 |
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
737 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
738 |
+#ifndef nsKDEUtils_h__ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
739 |
+#define nsKDEUtils_h__ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
740 |
+ |
1033
51bfdd19b9e9
rebased everything to apply cleanly
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1032
diff
changeset
|
741 |
+#include "nsString.h" |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
742 |
+#include "nsTArray.h" |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
743 |
+#include <stdio.h> |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
744 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
745 |
+typedef struct _GtkWindow GtkWindow; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
746 |
+ |
398
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
747 |
+class nsIArray; |
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
748 |
+ |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
749 |
+class NS_EXPORT nsKDEUtils |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
750 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
751 |
+ public: |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
752 |
+ /* Returns true if running inside a KDE session (regardless of whether there is KDE |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
753 |
+ support available for Firefox). This should be used e.g. when determining |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
754 |
+ dialog button order but not for code that requires the KDE support. */ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
755 |
+ static bool kdeSession(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
756 |
+ /* Returns true if running inside a KDE session and KDE support is available |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
757 |
+ for Firefox. This should be used everywhere where the external helper is needed. */ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
758 |
+ static bool kdeSupport(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
759 |
+ /* Executes the given helper command, returns true if helper returned success. */ |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
760 |
+ static bool command( const nsTArray<nsCString>& command, nsTArray<nsCString>* output = NULL ); |
398
937669e1c537
ported and reenabled KDE integration (bnc#746591)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
368
diff
changeset
|
761 |
+ static bool command( nsIArray* command, nsIArray** output = NULL ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
762 |
+ /* Like command(), but additionally blocks the parent widget like if there was |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
763 |
+ a modal dialog shown and enters the event loop (i.e. there are still paint updates, |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
764 |
+ this is for commands that take long). */ |
893
86f72f1e98a4
prepare Gtk3 based builds on a feature branch
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
889
diff
changeset
|
765 |
+ static bool commandBlockUi( const nsTArray<nsCString>& command, GtkWindow* parent, nsTArray<nsCString>* output = NULL ); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
766 |
+ |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
767 |
+ private: |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
768 |
+ nsKDEUtils(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
769 |
+ ~nsKDEUtils(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
770 |
+ static nsKDEUtils* self(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
771 |
+ bool startHelper(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
772 |
+ void closeHelper(); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
773 |
+ void feedCommand( const nsTArray<nsCString>& command ); |
893
86f72f1e98a4
prepare Gtk3 based builds on a feature branch
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
889
diff
changeset
|
774 |
+ bool internalCommand( const nsTArray<nsCString>& command, GtkWindow* parent, bool isParent, |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
775 |
+ nsTArray<nsCString>* output ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
776 |
+ FILE* commandFile; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
777 |
+ FILE* replyFile; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
778 |
+ }; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
779 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
780 |
+#endif // nsKDEUtils |
1050
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
781 |
diff --git a/uriloader/exthandler/HandlerServiceParent.cpp b/uriloader/exthandler/HandlerServiceParent.cpp |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
782 |
--- a/uriloader/exthandler/HandlerServiceParent.cpp |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
783 |
+++ b/uriloader/exthandler/HandlerServiceParent.cpp |
1112 | 784 |
@@ -7,17 +7,17 @@ |
1097 | 785 |
#include "mozilla/ipc/ProtocolUtils.h" |
1050
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
786 |
#include "mozilla/Logging.h" |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
787 |
#include "HandlerServiceParent.h" |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
788 |
#include "nsIHandlerService.h" |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
789 |
#include "nsIMIMEInfo.h" |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
790 |
#include "ContentHandlerService.h" |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
791 |
#include "nsStringEnumerator.h" |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
792 |
#ifdef MOZ_WIDGET_GTK |
1089 | 793 |
-# include "unix/nsGNOMERegistry.h" |
794 |
+# include "unix/nsCommonRegistry.h" |
|
1050
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
795 |
#endif |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
796 |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
797 |
using mozilla::dom::ContentHandlerService; |
1050
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
798 |
using mozilla::dom::HandlerApp; |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
799 |
using mozilla::dom::HandlerInfo; |
1050
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
800 |
using mozilla::dom::RemoteHandlerApp; |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
801 |
|
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
802 |
namespace { |
1130 | 803 |
@@ -299,17 +299,17 @@ mozilla::ipc::IPCResult HandlerServicePa |
1097 | 804 |
mozilla::ipc::IPCResult HandlerServiceParent::RecvExistsForProtocolOS( |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
805 |
const nsCString& aProtocolScheme, bool* aHandlerExists) { |
1097 | 806 |
if (aProtocolScheme.Length() > MAX_SCHEME_LENGTH) { |
807 |
*aHandlerExists = false; |
|
808 |
return IPC_OK(); |
|
809 |
} |
|
1050
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
810 |
#ifdef MOZ_WIDGET_GTK |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
811 |
// Check the GNOME registry for a protocol handler |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
812 |
- *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme.get()); |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
813 |
+ *aHandlerExists = nsCommonRegistry::HandlerExists(aProtocolScheme.get()); |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
814 |
#else |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
815 |
*aHandlerExists = false; |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
816 |
#endif |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
817 |
return IPC_OK(); |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
818 |
} |
bf0d08380dcf
fix Bug 1094747 - Open with option in download dialog has no effect with kmozillahelper
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1045
diff
changeset
|
819 |
|
1097 | 820 |
/* |
821 |
* Check if a handler exists for the provided protocol. Check the datastore |
|
1130 | 822 |
@@ -328,17 +328,17 @@ mozilla::ipc::IPCResult HandlerServicePa |
1097 | 823 |
nsCOMPtr<nsIExternalProtocolService> protoSvc = |
824 |
do_GetService(NS_EXTERNALPROTOCOLSERVICE_CONTRACTID, &rv); |
|
825 |
if (NS_WARN_IF(NS_FAILED(rv))) { |
|
826 |
*aHandlerExists = false; |
|
827 |
return IPC_OK(); |
|
828 |
} |
|
829 |
rv = protoSvc->ExternalProtocolHandlerExists(aProtocolScheme.get(), |
|
830 |
aHandlerExists); |
|
831 |
- |
|
832 |
+## |
|
833 |
if (NS_WARN_IF(NS_FAILED(rv))) { |
|
834 |
*aHandlerExists = false; |
|
835 |
} |
|
836 |
#else |
|
837 |
MOZ_RELEASE_ASSERT(false, "No implementation on this platform."); |
|
838 |
*aHandlerExists = false; |
|
839 |
#endif |
|
840 |
return IPC_OK(); |
|
659 | 841 |
diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build |
842 |
--- a/uriloader/exthandler/moz.build |
|
843 |
+++ b/uriloader/exthandler/moz.build |
|
1119 | 844 |
@@ -85,17 +85,19 @@ else: |
691
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
845 |
SOURCES += [ |
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
846 |
osdir + '/nsOSHelperAppService.cpp', |
659 | 847 |
] |
1032
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
848 |
if CONFIG['CC_TYPE'] in ('clang', 'gcc'): |
929 | 849 |
CXXFLAGS += ['-Wno-error=shadow'] |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
850 |
|
1112 | 851 |
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk': |
703 | 852 |
UNIFIED_SOURCES += [ |
691
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
853 |
+ 'unix/nsCommonRegistry.cpp', |
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
854 |
'unix/nsGNOMERegistry.cpp', |
1032
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
855 |
+ 'unix/nsKDERegistry.cpp', |
691
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
856 |
'unix/nsMIMEInfoUnix.cpp', |
659 | 857 |
] |
858 |
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android': |
|
703 | 859 |
UNIFIED_SOURCES += [ |
691
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
860 |
'android/nsAndroidHandlerApp.cpp', |
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
861 |
'android/nsExternalURLHandlerService.cpp', |
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
862 |
'android/nsMIMEInfoAndroid.cpp', |
1074
4b99400f6d17
rebased patches and updated spec for 63.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1067
diff
changeset
|
863 |
] |
1119 | 864 |
@@ -135,16 +137,17 @@ include('/ipc/chromium/chromium-config.m |
779 | 865 |
FINAL_LIBRARY = 'xul' |
866 |
||
867 |
LOCAL_INCLUDES += [ |
|
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
868 |
'/docshell/base', |
779 | 869 |
'/dom/base', |
870 |
'/dom/ipc', |
|
850 | 871 |
'/netwerk/base', |
779 | 872 |
'/netwerk/protocol/http', |
850 | 873 |
+ '/toolkit/xre', |
779 | 874 |
] |
875 |
||
876 |
if CONFIG['MOZ_ENABLE_DBUS']: |
|
877 |
CXXFLAGS += CONFIG['TK_CFLAGS'] |
|
878 |
CXXFLAGS += CONFIG['MOZ_DBUS_CFLAGS'] |
|
879 |
||
1112 | 880 |
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk': |
779 | 881 |
CXXFLAGS += CONFIG['TK_CFLAGS'] |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
882 |
diff --git a/uriloader/exthandler/unix/nsCommonRegistry.cpp b/uriloader/exthandler/unix/nsCommonRegistry.cpp |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
883 |
new file mode 100644 |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
884 |
--- /dev/null |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
885 |
+++ b/uriloader/exthandler/unix/nsCommonRegistry.cpp |
869 | 886 |
@@ -0,0 +1,53 @@ |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
887 |
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
546 | 888 |
+/* This Source Code Form is subject to the terms of the Mozilla Public |
889 |
+ * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
890 |
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
891 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
892 |
+#include "nsCommonRegistry.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
893 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
894 |
+#include "nsGNOMERegistry.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
895 |
+#include "nsKDERegistry.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
896 |
+#include "nsString.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
897 |
+#include "nsKDEUtils.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
898 |
+ |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
899 |
+/* static */ bool |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
900 |
+nsCommonRegistry::HandlerExists(const char *aProtocolScheme) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
901 |
+{ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
902 |
+ if( nsKDEUtils::kdeSupport()) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
903 |
+ return nsKDERegistry::HandlerExists( aProtocolScheme ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
904 |
+ return nsGNOMERegistry::HandlerExists( aProtocolScheme ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
905 |
+} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
906 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
907 |
+/* static */ nsresult |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
908 |
+nsCommonRegistry::LoadURL(nsIURI *aURL) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
909 |
+{ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
910 |
+ if( nsKDEUtils::kdeSupport()) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
911 |
+ return nsKDERegistry::LoadURL( aURL ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
912 |
+ return nsGNOMERegistry::LoadURL( aURL ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
913 |
+} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
914 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
915 |
+/* static */ void |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
916 |
+nsCommonRegistry::GetAppDescForScheme(const nsACString& aScheme, |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
917 |
+ nsAString& aDesc) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
918 |
+{ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
919 |
+ if( nsKDEUtils::kdeSupport()) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
920 |
+ return nsKDERegistry::GetAppDescForScheme( aScheme, aDesc ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
921 |
+ return nsGNOMERegistry::GetAppDescForScheme( aScheme, aDesc ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
922 |
+} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
923 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
924 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
925 |
+/* static */ already_AddRefed<nsMIMEInfoBase> |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
926 |
+nsCommonRegistry::GetFromExtension(const nsACString& aFileExt) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
927 |
+{ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
928 |
+ if( nsKDEUtils::kdeSupport()) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
929 |
+ return nsKDERegistry::GetFromExtension( aFileExt ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
930 |
+ return nsGNOMERegistry::GetFromExtension( aFileExt ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
931 |
+} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
932 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
933 |
+/* static */ already_AddRefed<nsMIMEInfoBase> |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
934 |
+nsCommonRegistry::GetFromType(const nsACString& aMIMEType) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
935 |
+{ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
936 |
+ if( nsKDEUtils::kdeSupport()) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
937 |
+ return nsKDERegistry::GetFromType( aMIMEType ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
938 |
+ return nsGNOMERegistry::GetFromType( aMIMEType ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
939 |
+} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
940 |
diff --git a/uriloader/exthandler/unix/nsCommonRegistry.h b/uriloader/exthandler/unix/nsCommonRegistry.h |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
941 |
new file mode 100644 |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
942 |
--- /dev/null |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
943 |
+++ b/uriloader/exthandler/unix/nsCommonRegistry.h |
760 | 944 |
@@ -0,0 +1,28 @@ |
546 | 945 |
+/* This Source Code Form is subject to the terms of the Mozilla Public |
946 |
+ * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
947 |
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
948 |
+ |
760 | 949 |
+#ifndef nsCommonRegistry_h__ |
950 |
+#define nsCommonRegistry_h__ |
|
951 |
+ |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
952 |
+#include "nsIURI.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
953 |
+#include "nsCOMPtr.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
954 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
955 |
+class nsMIMEInfoBase; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
956 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
957 |
+class nsCommonRegistry |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
958 |
+{ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
959 |
+ public: |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
960 |
+ static bool HandlerExists(const char *aProtocolScheme); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
961 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
962 |
+ static nsresult LoadURL(nsIURI *aURL); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
963 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
964 |
+ static void GetAppDescForScheme(const nsACString& aScheme, |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
965 |
+ nsAString& aDesc); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
966 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
967 |
+ static already_AddRefed<nsMIMEInfoBase> GetFromExtension(const nsACString& aFileExt); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
968 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
969 |
+ static already_AddRefed<nsMIMEInfoBase> GetFromType(const nsACString& aMIMEType); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
970 |
+}; |
760 | 971 |
+ |
972 |
+#endif |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
973 |
diff --git a/uriloader/exthandler/unix/nsKDERegistry.cpp b/uriloader/exthandler/unix/nsKDERegistry.cpp |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
974 |
new file mode 100644 |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
975 |
--- /dev/null |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
976 |
+++ b/uriloader/exthandler/unix/nsKDERegistry.cpp |
1127 | 977 |
@@ -0,0 +1,86 @@ |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
978 |
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
546 | 979 |
+/* This Source Code Form is subject to the terms of the Mozilla Public |
980 |
+ * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
981 |
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
982 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
983 |
+#include "nsKDERegistry.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
984 |
+#include "prlink.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
985 |
+#include "prmem.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
986 |
+#include "nsString.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
987 |
+#include "nsMIMEInfoUnix.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
988 |
+#include "nsKDEUtils.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
989 |
+ |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
990 |
+/* static */ bool |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
991 |
+nsKDERegistry::HandlerExists(const char *aProtocolScheme) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
992 |
+{ |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
993 |
+ nsTArray<nsCString> command; |
1141 | 994 |
+ command.AppendElement( "HANDLEREXISTS"_ns ); |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
995 |
+ command.AppendElement( nsAutoCString( aProtocolScheme )); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
996 |
+ return nsKDEUtils::command( command ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
997 |
+} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
998 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
999 |
+/* static */ nsresult |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1000 |
+nsKDERegistry::LoadURL(nsIURI *aURL) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1001 |
+{ |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1002 |
+ nsTArray<nsCString> command; |
1141 | 1003 |
+ command.AppendElement( "OPEN"_ns ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1004 |
+ nsCString url; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1005 |
+ aURL->GetSpec( url ); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1006 |
+ command.AppendElement( url ); |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1007 |
+ bool rv = nsKDEUtils::command( command ); |
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1008 |
+ if (!rv) |
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1009 |
+ return NS_ERROR_FAILURE; |
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1010 |
+ |
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1011 |
+ return NS_OK; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1012 |
+} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1013 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1014 |
+/* static */ void |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1015 |
+nsKDERegistry::GetAppDescForScheme(const nsACString& aScheme, |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1016 |
+ nsAString& aDesc) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1017 |
+{ |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1018 |
+ nsTArray<nsCString> command; |
1141 | 1019 |
+ command.AppendElement( "GETAPPDESCFORSCHEME"_ns ); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1020 |
+ command.AppendElement( aScheme ); |
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1021 |
+ nsTArray<nsCString> output; |
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1022 |
+ if( nsKDEUtils::command( command, &output ) && output.Length() == 1 ) |
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1023 |
+ CopyUTF8toUTF16( output[ 0 ], aDesc ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1024 |
+} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1025 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1026 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1027 |
+/* static */ already_AddRefed<nsMIMEInfoBase> |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1028 |
+nsKDERegistry::GetFromExtension(const nsACString& aFileExt) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1029 |
+{ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1030 |
+ NS_ASSERTION(aFileExt[0] != '.', "aFileExt shouldn't start with a dot"); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1031 |
+ nsTArray<nsCString> command; |
1141 | 1032 |
+ command.AppendElement( "GETFROMEXTENSION"_ns ); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1033 |
+ command.AppendElement( aFileExt ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1034 |
+ return GetFromHelper( command ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1035 |
+} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1036 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1037 |
+/* static */ already_AddRefed<nsMIMEInfoBase> |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1038 |
+nsKDERegistry::GetFromType(const nsACString& aMIMEType) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1039 |
+{ |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1040 |
+ nsTArray<nsCString> command; |
1141 | 1041 |
+ command.AppendElement( "GETFROMTYPE"_ns ); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1042 |
+ command.AppendElement( aMIMEType ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1043 |
+ return GetFromHelper( command ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1044 |
+} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1045 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1046 |
+/* static */ already_AddRefed<nsMIMEInfoBase> |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1047 |
+nsKDERegistry::GetFromHelper(const nsTArray<nsCString>& command) |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1048 |
+{ |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1049 |
+ nsTArray<nsCString> output; |
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1050 |
+ if( nsKDEUtils::command( command, &output ) && output.Length() == 3 ) |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1051 |
+ { |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1052 |
+ nsCString mimetype = output[ 0 ]; |
901 | 1053 |
+ RefPtr<nsMIMEInfoUnix> mimeInfo = new nsMIMEInfoUnix( mimetype ); |
541
830e50bbfc79
working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
538
diff
changeset
|
1054 |
+ NS_ENSURE_TRUE(mimeInfo, nullptr); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1055 |
+ nsCString description = output[ 1 ]; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1056 |
+ mimeInfo->SetDescription(NS_ConvertUTF8toUTF16(description)); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1057 |
+ nsCString handlerAppName = output[ 2 ]; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1058 |
+ mimeInfo->SetDefaultDescription(NS_ConvertUTF8toUTF16(handlerAppName)); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1059 |
+ mimeInfo->SetPreferredAction(nsIMIMEInfo::useSystemDefault); |
659 | 1060 |
+ return mimeInfo.forget(); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1061 |
+ } |
541
830e50bbfc79
working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
538
diff
changeset
|
1062 |
+ return nullptr; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1063 |
+} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1064 |
diff --git a/uriloader/exthandler/unix/nsKDERegistry.h b/uriloader/exthandler/unix/nsKDERegistry.h |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1065 |
new file mode 100644 |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1066 |
--- /dev/null |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1067 |
+++ b/uriloader/exthandler/unix/nsKDERegistry.h |
757 | 1068 |
@@ -0,0 +1,34 @@ |
546 | 1069 |
+/* This Source Code Form is subject to the terms of the Mozilla Public |
1070 |
+ * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
1071 |
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1072 |
+ |
757 | 1073 |
+#ifndef nsKDERegistry_h__ |
1074 |
+#define nsKDERegistry_h__ |
|
1075 |
+ |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1076 |
+#include "nsIURI.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1077 |
+#include "nsCOMPtr.h" |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1078 |
+#include "nsTArray.h" |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1079 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1080 |
+class nsMIMEInfoBase; |
1007
65e317e42eff
fixed KDE custom code and replaced obsolete types
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1006
diff
changeset
|
1081 |
+//class nsAutoCString; |
65e317e42eff
fixed KDE custom code and replaced obsolete types
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1006
diff
changeset
|
1082 |
+//class nsCString; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1083 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1084 |
+class nsKDERegistry |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1085 |
+{ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1086 |
+ public: |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1087 |
+ static bool HandlerExists(const char *aProtocolScheme); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1088 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1089 |
+ static nsresult LoadURL(nsIURI *aURL); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1090 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1091 |
+ static void GetAppDescForScheme(const nsACString& aScheme, |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1092 |
+ nsAString& aDesc); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1093 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1094 |
+ static already_AddRefed<nsMIMEInfoBase> GetFromExtension(const nsACString& aFileExt); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1095 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1096 |
+ static already_AddRefed<nsMIMEInfoBase> GetFromType(const nsACString& aMIMEType); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1097 |
+ private: |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1098 |
+ static already_AddRefed<nsMIMEInfoBase> GetFromHelper(const nsTArray<nsCString>& command); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1099 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1100 |
+}; |
757 | 1101 |
+ |
1102 |
+#endif //nsKDERegistry_h__ |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1103 |
diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1104 |
--- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1105 |
+++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp |
1125 | 1106 |
@@ -1,46 +1,49 @@ |
932 | 1107 |
/* -*- Mode: C++; tab-width: 3; indent-tabs-mode: nil; c-basic-offset: 2 -*- |
1108 |
* |
|
1109 |
* This Source Code Form is subject to the terms of the Mozilla Public |
|
1110 |
* License, v. 2.0. If a copy of the MPL was not distributed with this |
|
1111 |
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1112 |
|
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1113 |
#include "nsMIMEInfoUnix.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1114 |
-#include "nsGNOMERegistry.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1115 |
+#include "nsCommonRegistry.h" |
127
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
1116 |
#include "nsIGIOService.h" |
236
a4f5954df3a3
update for 2.0/4.0rc1
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
229
diff
changeset
|
1117 |
#include "nsNetCID.h" |
a4f5954df3a3
update for 2.0/4.0rc1
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
229
diff
changeset
|
1118 |
#include "nsIIOService.h" |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1119 |
#ifdef MOZ_ENABLE_DBUS |
1089 | 1120 |
# include "nsDBusHandlerApp.h" |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1121 |
#endif |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1122 |
+#if defined(XP_UNIX) && !defined(XP_MACOSX) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1123 |
+#include "nsKDEUtils.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1124 |
+#endif |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1125 |
|
1097 | 1126 |
nsresult nsMIMEInfoUnix::LoadUriInternal(nsIURI* aURI) { |
932 | 1127 |
- return nsGNOMERegistry::LoadURL(aURI); |
1128 |
+ return nsCommonRegistry::LoadURL(aURI); |
|
1129 |
} |
|
127
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
1130 |
|
932 | 1131 |
NS_IMETHODIMP |
1097 | 1132 |
nsMIMEInfoUnix::GetHasDefaultHandler(bool* _retval) { |
932 | 1133 |
// if mDefaultApplication is set, it means the application has been set from |
650 | 1134 |
// either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to |
1135 |
// give the GNOME answer. |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1136 |
if (mDefaultApplication) return nsMIMEInfoImpl::GetHasDefaultHandler(_retval); |
127
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
1137 |
|
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1138 |
*_retval = false; |
738 | 1139 |
|
850 | 1140 |
if (mClass == eProtocolInfo) { |
738 | 1141 |
- *_retval = nsGNOMERegistry::HandlerExists(mSchemeOrType.get()); |
1142 |
+ *_retval = nsCommonRegistry::HandlerExists(mSchemeOrType.get()); |
|
1143 |
} else { |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1144 |
RefPtr<nsMIMEInfoBase> mimeInfo = |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1145 |
- nsGNOMERegistry::GetFromType(mSchemeOrType); |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1146 |
+ nsCommonRegistry::GetFromType(mSchemeOrType); |
738 | 1147 |
if (!mimeInfo) { |
1148 |
nsAutoCString ext; |
|
1149 |
nsresult rv = GetPrimaryExtension(ext); |
|
1150 |
if (NS_SUCCEEDED(rv)) { |
|
1151 |
- mimeInfo = nsGNOMERegistry::GetFromExtension(ext); |
|
1152 |
+ mimeInfo = nsCommonRegistry::GetFromExtension(ext); |
|
1153 |
} |
|
127
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
1154 |
} |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1155 |
if (mimeInfo) *_retval = true; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1156 |
} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1157 |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1158 |
if (*_retval) return NS_OK; |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1159 |
|
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1160 |
return NS_OK; |
1125 | 1161 |
@@ -50,16 +53,33 @@ nsresult nsMIMEInfoUnix::LaunchDefaultWi |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1162 |
// if mDefaultApplication is set, it means the application has been set from |
1032
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
1163 |
// either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to |
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
1164 |
// give the GNOME answer. |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1165 |
if (mDefaultApplication) return nsMIMEInfoImpl::LaunchDefaultWithFile(aFile); |
1032
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
1166 |
|
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
1167 |
nsAutoCString nativePath; |
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
1168 |
aFile->GetNativePath(nativePath); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1169 |
|
64
7bb1edb78dd5
Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
59
diff
changeset
|
1170 |
+ if( nsKDEUtils::kdeSupport()) { |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1171 |
+ bool supports; |
64
7bb1edb78dd5
Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
59
diff
changeset
|
1172 |
+ if( NS_SUCCEEDED( GetHasDefaultHandler( &supports )) && supports ) { |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1173 |
+ nsTArray<nsCString> command; |
1141 | 1174 |
+ command.AppendElement( "OPEN"_ns ); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1175 |
+ command.AppendElement( nativePath ); |
1141 | 1176 |
+ command.AppendElement( "MIMETYPE"_ns ); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1177 |
+ command.AppendElement( mSchemeOrType ); |
64
7bb1edb78dd5
Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
59
diff
changeset
|
1178 |
+ if( nsKDEUtils::command( command )) |
7bb1edb78dd5
Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
59
diff
changeset
|
1179 |
+ return NS_OK; |
7bb1edb78dd5
Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
59
diff
changeset
|
1180 |
+ } |
7bb1edb78dd5
Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
59
diff
changeset
|
1181 |
+ if (!mDefaultApplication) |
7bb1edb78dd5
Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
59
diff
changeset
|
1182 |
+ return NS_ERROR_FILE_NOT_FOUND; |
7bb1edb78dd5
Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
59
diff
changeset
|
1183 |
+ |
7bb1edb78dd5
Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
59
diff
changeset
|
1184 |
+ return LaunchWithIProcess(mDefaultApplication, nativePath); |
7bb1edb78dd5
Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
59
diff
changeset
|
1185 |
+ } |
7bb1edb78dd5
Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
59
diff
changeset
|
1186 |
+ |
127
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
1187 |
nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID); |
850 | 1188 |
if (!giovfs) { |
1189 |
return NS_ERROR_FAILURE; |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1190 |
} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1191 |
|
850 | 1192 |
// nsGIOMimeApp->Launch wants a URI string instead of local file |
1193 |
nsresult rv; |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1194 |
nsCOMPtr<nsIIOService> ioservice = |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1195 |
diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exthandler/unix/nsOSHelperAppService.cpp |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1196 |
--- a/uriloader/exthandler/unix/nsOSHelperAppService.cpp |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1197 |
+++ b/uriloader/exthandler/unix/nsOSHelperAppService.cpp |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1198 |
@@ -5,17 +5,17 @@ |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1199 |
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1200 |
|
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1201 |
#include <sys/types.h> |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1202 |
#include <sys/stat.h> |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1203 |
|
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1204 |
#include "nsOSHelperAppService.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1205 |
#include "nsMIMEInfoUnix.h" |
659 | 1206 |
#ifdef MOZ_WIDGET_GTK |
1089 | 1207 |
-# include "nsGNOMERegistry.h" |
1208 |
+# include "nsCommonRegistry.h" |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1209 |
#endif |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1210 |
#include "nsISupports.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1211 |
#include "nsString.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1212 |
#include "nsReadableUtils.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1213 |
#include "nsUnicharUtils.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1214 |
#include "nsIFileStreams.h" |
1005 | 1215 |
#include "nsILineInputStream.h" |
1121 | 1216 |
#include "nsIFile.h" |
1141 | 1217 |
@@ -1019,17 +1019,17 @@ nsresult nsOSHelperAppService::GetHandle |
127
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
1218 |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1219 |
nsresult nsOSHelperAppService::OSProtocolHandlerExists( |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1220 |
const char* aProtocolScheme, bool* aHandlerExists) { |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1221 |
nsresult rv = NS_OK; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1222 |
|
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1223 |
if (!XRE_IsContentProcess()) { |
659 | 1224 |
#ifdef MOZ_WIDGET_GTK |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1225 |
// Check the GNOME registry for a protocol handler |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1226 |
- *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme); |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1227 |
+ *aHandlerExists = nsCommonRegistry::HandlerExists(aProtocolScheme); |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1228 |
#else |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1229 |
*aHandlerExists = false; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1230 |
#endif |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1231 |
} else { |
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1232 |
*aHandlerExists = false; |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1233 |
nsCOMPtr<nsIHandlerService> handlerSvc = |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1234 |
do_GetService(NS_HANDLERSERVICE_CONTRACTID, &rv); |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1235 |
if (NS_SUCCEEDED(rv) && handlerSvc) { |
1141 | 1236 |
@@ -1039,17 +1039,17 @@ nsresult nsOSHelperAppService::OSProtoco |
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1237 |
} |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1238 |
|
1020
d2c159cb9bf2
rebased patches; updated spec file
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1014
diff
changeset
|
1239 |
return rv; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1240 |
} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1241 |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1242 |
NS_IMETHODIMP nsOSHelperAppService::GetApplicationDescription( |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1243 |
const nsACString& aScheme, nsAString& _retval) { |
659 | 1244 |
#ifdef MOZ_WIDGET_GTK |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1245 |
- nsGNOMERegistry::GetAppDescForScheme(aScheme, _retval); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1246 |
+ nsCommonRegistry::GetAppDescForScheme(aScheme, _retval); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1247 |
return _retval.IsEmpty() ? NS_ERROR_NOT_AVAILABLE : NS_OK; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1248 |
#else |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1249 |
return NS_ERROR_NOT_AVAILABLE; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1250 |
#endif |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1251 |
} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1252 |
|
1119 | 1253 |
NS_IMETHODIMP nsOSHelperAppService::IsCurrentAppOSDefaultForProtocol( |
1254 |
const nsACString& aScheme, bool* _retval) { |
|
1141 | 1255 |
@@ -1136,17 +1136,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1256 |
nsresult rv = |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1257 |
LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType, |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1258 |
minorType, mime_types_description, true); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1259 |
|
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1260 |
if (NS_FAILED(rv) || majorType.IsEmpty()) { |
659 | 1261 |
#ifdef MOZ_WIDGET_GTK |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1262 |
LOG(("Looking in GNOME registry\n")); |
899 | 1263 |
RefPtr<nsMIMEInfoBase> gnomeInfo = |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1264 |
- nsGNOMERegistry::GetFromExtension(aFileExt); |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1265 |
+ nsCommonRegistry::GetFromExtension(aFileExt); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1266 |
if (gnomeInfo) { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1267 |
LOG(("Got MIMEInfo from GNOME registry\n")); |
653 | 1268 |
return gnomeInfo.forget(); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1269 |
} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1270 |
#endif |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1271 |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1272 |
rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType, |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1273 |
minorType, mime_types_description, false); |
1141 | 1274 |
@@ -1247,17 +1247,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1275 |
|
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1276 |
// Now look up our extensions |
850 | 1277 |
nsAutoString extensions, mime_types_description; |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1278 |
LookUpExtensionsAndDescription(majorType, minorType, extensions, |
850 | 1279 |
mime_types_description); |
1280 |
||
659 | 1281 |
#ifdef MOZ_WIDGET_GTK |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1282 |
if (handler.IsEmpty()) { |
899 | 1283 |
- RefPtr<nsMIMEInfoBase> gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType); |
1284 |
+ RefPtr<nsMIMEInfoBase> gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType); |
|
850 | 1285 |
if (gnomeInfo) { |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1286 |
LOG( |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1287 |
("Got MIMEInfo from GNOME registry without extensions; setting them " |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1288 |
"to %s\n", |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1289 |
NS_LossyConvertUTF16toASCII(extensions).get())); |
850 | 1290 |
|
1291 |
NS_ASSERTION(!gnomeInfo->HasExtensions(), "How'd that happen?"); |
|
1292 |
gnomeInfo->SetFileExtensions(NS_ConvertUTF16toUTF8(extensions)); |
|
779 | 1293 |
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build |
1294 |
--- a/widget/gtk/moz.build |
|
1295 |
+++ b/widget/gtk/moz.build |
|
1144 | 1296 |
@@ -134,16 +134,17 @@ FINAL_LIBRARY = 'xul' |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1297 |
|
779 | 1298 |
LOCAL_INCLUDES += [ |
1074
4b99400f6d17
rebased patches and updated spec for 63.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1067
diff
changeset
|
1299 |
'/layout/base', |
1144 | 1300 |
'/layout/forms', |
779 | 1301 |
'/layout/generic', |
1302 |
'/layout/xul', |
|
1303 |
'/other-licenses/atk-1.0', |
|
1141 | 1304 |
'/third_party/cups/include', |
828 | 1305 |
+ '/toolkit/xre', |
1306 |
'/widget', |
|
985 | 1307 |
'/widget/headless', |
779 | 1308 |
] |
703 | 1309 |
|
779 | 1310 |
if CONFIG['MOZ_X11']: |
1311 |
LOCAL_INCLUDES += [ |
|
828 | 1312 |
'/widget/x11', |
779 | 1313 |
] |
691
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
1314 |
diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp |
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
1315 |
--- a/widget/gtk/nsFilePicker.cpp |
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
1316 |
+++ b/widget/gtk/nsFilePicker.cpp |
1121 | 1317 |
@@ -1,15 +1,16 @@ |
1318 |
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
1319 |
/* This Source Code Form is subject to the terms of the Mozilla Public |
|
1320 |
* License, v. 2.0. If a copy of the MPL was not distributed with this |
|
467
a9baaad57fa4
refreshed patches and removed obsolete ones
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
438
diff
changeset
|
1321 |
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
10
1920f0ff04a3
Make mozilla-kde.patch compile with 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
9
diff
changeset
|
1322 |
|
1121 | 1323 |
#include <dlfcn.h> |
1324 |
#include <gtk/gtk.h> |
|
1325 |
+#include <gdk/gdkx.h> |
|
837 | 1326 |
#include <sys/types.h> |
1327 |
#include <sys/stat.h> |
|
1328 |
#include <unistd.h> |
|
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1329 |
|
1121 | 1330 |
#include "mozilla/Types.h" |
680 | 1331 |
#include "nsGtkUtils.h" |
10
1920f0ff04a3
Make mozilla-kde.patch compile with 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
9
diff
changeset
|
1332 |
#include "nsIFileURL.h" |
1106 | 1333 |
#include "nsIGIOService.h" |
1130 | 1334 |
@@ -22,16 +23,18 @@ |
606
9d39369e1b4c
FF19beta cycle preparation (does not build yet)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
596
diff
changeset
|
1335 |
#include "nsMemory.h" |
9d39369e1b4c
FF19beta cycle preparation (does not build yet)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
596
diff
changeset
|
1336 |
#include "nsEnumeratorUtils.h" |
340
aabcc7895695
update to version 8.0b1 (just merged stuff; build might still fail)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
294
diff
changeset
|
1337 |
#include "nsNetUtil.h" |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1338 |
#include "nsReadableUtils.h" |
1130 | 1339 |
#include "MozContainer.h" |
1340 |
#include "gfxPlatformGtk.h" |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1341 |
|
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1342 |
#include "nsFilePicker.h" |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1343 |
+#include "nsKDEUtils.h" |
1125 | 1344 |
+#include "nsURLHelper.h" |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1345 |
|
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1346 |
using namespace mozilla; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1347 |
|
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1348 |
#define MAX_PREVIEW_SIZE 180 |
881 | 1349 |
// bug 1184009 |
1350 |
#define MAX_PREVIEW_SOURCE_SIZE 4096 |
|
686
ab25aac2aa83
Firefox 26.0b5 update
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
680
diff
changeset
|
1351 |
|
1097 | 1352 |
nsIFile* nsFilePicker::mPrevDisplayDirectory = nullptr; |
1130 | 1353 |
@@ -231,17 +234,19 @@ nsFilePicker::AppendFilters(int32_t aFil |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1354 |
mAllowURLs = !!(aFilterMask & filterAllowURLs); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1355 |
return nsBaseFilePicker::AppendFilters(aFilterMask); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1356 |
} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1357 |
|
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1358 |
NS_IMETHODIMP |
1097 | 1359 |
nsFilePicker::AppendFilter(const nsAString& aTitle, const nsAString& aFilter) { |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1360 |
if (aFilter.EqualsLiteral("..apps")) { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1361 |
// No platform specific thing we can do here, really.... |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1362 |
- return NS_OK; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1363 |
+ // Unless it's KDE. |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1364 |
+ if( mMode != modeOpen || !nsKDEUtils::kdeSupport()) |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1365 |
+ return NS_OK; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1366 |
} |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1367 |
|
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1368 |
nsAutoCString filter, name; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1369 |
CopyUTF16toUTF8(aFilter, filter); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1370 |
CopyUTF16toUTF8(aTitle, name); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1371 |
|
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1372 |
mFilters.AppendElement(filter); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1373 |
mFilterNames.AppendElement(name); |
1130 | 1374 |
@@ -341,16 +346,39 @@ nsresult nsFilePicker::Show(int16_t* aRe |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1375 |
return NS_OK; |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1376 |
} |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1377 |
|
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1378 |
NS_IMETHODIMP |
1097 | 1379 |
nsFilePicker::Open(nsIFilePickerShownCallback* aCallback) { |
589 | 1380 |
// Can't show two dialogs concurrently with the same filepicker |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1381 |
if (mRunning) return NS_ERROR_NOT_AVAILABLE; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1382 |
|
589 | 1383 |
+ // KDE file picker is not handled via callback |
1384 |
+ if( nsKDEUtils::kdeSupport()) { |
|
1385 |
+ mCallback = aCallback; |
|
1386 |
+ mRunning = true; |
|
1013
a71985fab8e5
Bug 1069962 Tumbleweed: OpenSuse's Firefox version crashes when "cancel" pressed in "File Upload" dialogue, e.g. TYPO3, BUGZILLA
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1007
diff
changeset
|
1387 |
+ NS_ADDREF_THIS(); |
999
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1388 |
+ g_idle_add([](gpointer data) -> gboolean { |
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1389 |
+ nsFilePicker* queuedPicker = (nsFilePicker*) data; |
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1390 |
+ int16_t result; |
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1391 |
+ queuedPicker->kdeFileDialog(&result); |
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1392 |
+ if (queuedPicker->mCallback) { |
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1393 |
+ queuedPicker->mCallback->Done(result); |
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1394 |
+ queuedPicker->mCallback = nullptr; |
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1395 |
+ } else { |
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1396 |
+ queuedPicker->mResult = result; |
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1397 |
+ } |
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1398 |
+ queuedPicker->mRunning = false; |
1014
963651ec972e
real fix for Bug 1069962 - Tumbleweed: OpenSuse's Firefox version crashes when "cancel" pressed in "File Upload" dialogue, e.g. TYPO3, BUGZILLA
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1013
diff
changeset
|
1399 |
+ NS_RELEASE(queuedPicker); |
999
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1400 |
+ return G_SOURCE_REMOVE; |
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1401 |
+ }, this); |
932b3ad009d5
improve KDE patch:
Ignaz Forster <ignaz.forster@muenchen.de>
parents:
994
diff
changeset
|
1402 |
+ |
589 | 1403 |
+ return NS_OK; |
1404 |
+ } |
|
399
20f8b5f0aea6
port KDE patches to Gecko 11
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
398
diff
changeset
|
1405 |
+ |
1124 | 1406 |
NS_ConvertUTF16toUTF8 title(mTitle); |
589 | 1407 |
|
1097 | 1408 |
GtkWindow* parent_widget = |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1409 |
GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET)); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1410 |
|
589 | 1411 |
GtkFileChooserAction action = GetGtkFileChooserAction(mMode); |
932 | 1412 |
|
1124 | 1413 |
const gchar* accept_button; |
1130 | 1414 |
@@ -570,16 +598,244 @@ void nsFilePicker::Done(void* file_choos |
541
830e50bbfc79
working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
538
diff
changeset
|
1415 |
mCallback->Done(result); |
830e50bbfc79
working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
538
diff
changeset
|
1416 |
mCallback = nullptr; |
830e50bbfc79
working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
538
diff
changeset
|
1417 |
} else { |
830e50bbfc79
working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
538
diff
changeset
|
1418 |
mResult = result; |
830e50bbfc79
working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
538
diff
changeset
|
1419 |
} |
830e50bbfc79
working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
538
diff
changeset
|
1420 |
NS_RELEASE_THIS(); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1421 |
} |
1082 | 1422 |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1423 |
+nsCString nsFilePicker::kdeMakeFilter( int index ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1424 |
+ { |
10
1920f0ff04a3
Make mozilla-kde.patch compile with 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
9
diff
changeset
|
1425 |
+ nsCString buf = mFilters[ index ]; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1426 |
+ for( PRUint32 i = 0; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1427 |
+ i < buf.Length(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1428 |
+ ++i ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1429 |
+ if( buf[ i ] == ';' ) // KDE separates just using spaces |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1430 |
+ buf.SetCharAt( ' ', i ); |
10
1920f0ff04a3
Make mozilla-kde.patch compile with 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
9
diff
changeset
|
1431 |
+ if (!mFilterNames[index].IsEmpty()) |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1432 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1433 |
+ buf += "|"; |
10
1920f0ff04a3
Make mozilla-kde.patch compile with 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
9
diff
changeset
|
1434 |
+ buf += mFilterNames[index].get(); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1435 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1436 |
+ return buf; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1437 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1438 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1439 |
+static PRInt32 windowToXid( nsIWidget* widget ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1440 |
+ { |
609 | 1441 |
+ GtkWindow *parent_widget = GTK_WINDOW(widget->GetNativeData(NS_NATIVE_SHELLWIDGET)); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1442 |
+ GdkWindow* gdk_window = gtk_widget_get_window( gtk_widget_get_toplevel( GTK_WIDGET( parent_widget ))); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1443 |
+ return GDK_WINDOW_XID( gdk_window ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1444 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1445 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1446 |
+NS_IMETHODIMP nsFilePicker::kdeFileDialog(PRInt16 *aReturn) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1447 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1448 |
+ NS_ENSURE_ARG_POINTER(aReturn); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1449 |
+ |
10
1920f0ff04a3
Make mozilla-kde.patch compile with 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
9
diff
changeset
|
1450 |
+ if( mMode == modeOpen && mFilters.Length() == 1 && mFilters[ 0 ].EqualsLiteral( "..apps" )) |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1451 |
+ return kdeAppsDialog( aReturn ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1452 |
+ |
1007
65e317e42eff
fixed KDE custom code and replaced obsolete types
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1006
diff
changeset
|
1453 |
+ nsCString title; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1454 |
+ title.Adopt(ToNewUTF8String(mTitle)); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1455 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1456 |
+ const char* arg = NULL; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1457 |
+ if( mAllowURLs ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1458 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1459 |
+ switch( mMode ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1460 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1461 |
+ case nsIFilePicker::modeOpen: |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1462 |
+ case nsIFilePicker::modeOpenMultiple: |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1463 |
+ arg = "GETOPENURL"; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1464 |
+ break; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1465 |
+ case nsIFilePicker::modeSave: |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1466 |
+ arg = "GETSAVEURL"; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1467 |
+ break; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1468 |
+ case nsIFilePicker::modeGetFolder: |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1469 |
+ arg = "GETDIRECTORYURL"; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1470 |
+ break; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1471 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1472 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1473 |
+ else |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1474 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1475 |
+ switch( mMode ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1476 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1477 |
+ case nsIFilePicker::modeOpen: |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1478 |
+ case nsIFilePicker::modeOpenMultiple: |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1479 |
+ arg = "GETOPENFILENAME"; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1480 |
+ break; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1481 |
+ case nsIFilePicker::modeSave: |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1482 |
+ arg = "GETSAVEFILENAME"; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1483 |
+ break; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1484 |
+ case nsIFilePicker::modeGetFolder: |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1485 |
+ arg = "GETDIRECTORYFILENAME"; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1486 |
+ break; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1487 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1488 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1489 |
+ |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1490 |
+ nsAutoCString directory; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1491 |
+ if (mDisplayDirectory) { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1492 |
+ mDisplayDirectory->GetNativePath(directory); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1493 |
+ } else if (mPrevDisplayDirectory) { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1494 |
+ mPrevDisplayDirectory->GetNativePath(directory); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1495 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1496 |
+ |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1497 |
+ nsAutoCString startdir; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1498 |
+ if (!directory.IsEmpty()) { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1499 |
+ startdir = directory; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1500 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1501 |
+ if (mMode == nsIFilePicker::modeSave) { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1502 |
+ if( !startdir.IsEmpty()) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1503 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1504 |
+ startdir += "/"; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1505 |
+ startdir += ToNewUTF8String(mDefault); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1506 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1507 |
+ else |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1508 |
+ startdir = ToNewUTF8String(mDefault); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1509 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1510 |
+ |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1511 |
+ nsAutoCString filters; |
10
1920f0ff04a3
Make mozilla-kde.patch compile with 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
9
diff
changeset
|
1512 |
+ PRInt32 count = mFilters.Length(); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1513 |
+ if( count == 0 ) //just in case |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1514 |
+ filters = "*"; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1515 |
+ else |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1516 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1517 |
+ filters = kdeMakeFilter( 0 ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1518 |
+ for (PRInt32 i = 1; i < count; ++i) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1519 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1520 |
+ filters += "\n"; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1521 |
+ filters += kdeMakeFilter( i ); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1522 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1523 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1524 |
+ |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1525 |
+ nsTArray<nsCString> command; |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1526 |
+ command.AppendElement( nsAutoCString( arg )); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1527 |
+ command.AppendElement( startdir ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1528 |
+ if( mMode != nsIFilePicker::modeGetFolder ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1529 |
+ { |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1530 |
+ command.AppendElement( filters ); |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1531 |
+ nsAutoCString selected; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1532 |
+ selected.AppendInt( mSelectedType ); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1533 |
+ command.AppendElement( selected ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1534 |
+ } |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1535 |
+ command.AppendElement( title ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1536 |
+ if( mMode == nsIFilePicker::modeOpenMultiple ) |
1141 | 1537 |
+ command.AppendElement( "MULTIPLE"_ns ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1538 |
+ if( PRInt32 xid = windowToXid( mParentWidget )) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1539 |
+ { |
1141 | 1540 |
+ command.AppendElement( "PARENT"_ns ); |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1541 |
+ nsAutoCString parent; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1542 |
+ parent.AppendInt( xid ); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1543 |
+ command.AppendElement( parent ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1544 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1545 |
+ |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1546 |
+ nsTArray<nsCString> output; |
609 | 1547 |
+ if( nsKDEUtils::commandBlockUi( command, GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET)), &output )) |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1548 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1549 |
+ *aReturn = nsIFilePicker::returnOK; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1550 |
+ mFiles.Clear(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1551 |
+ if( mMode != nsIFilePicker::modeGetFolder ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1552 |
+ { |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1553 |
+ mSelectedType = atoi( output[ 0 ].get()); |
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1554 |
+ output.RemoveElementAt( 0 ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1555 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1556 |
+ if (mMode == nsIFilePicker::modeOpenMultiple) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1557 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1558 |
+ mFileURL.Truncate(); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1559 |
+ PRUint32 count = output.Length(); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1560 |
+ for( PRUint32 i = 0; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1561 |
+ i < count; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1562 |
+ ++i ) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1563 |
+ { |
515 | 1564 |
+ nsCOMPtr<nsIFile> localfile; |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1565 |
+ nsresult rv = NS_NewNativeLocalFile( output[ i ], |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1566 |
+ PR_FALSE, |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1567 |
+ getter_AddRefs(localfile)); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1568 |
+ if (NS_SUCCEEDED(rv)) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1569 |
+ mFiles.AppendObject(localfile); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1570 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1571 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1572 |
+ else |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1573 |
+ { |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1574 |
+ if( output.Length() == 0 ) |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1575 |
+ mFileURL = nsCString(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1576 |
+ else if( mAllowURLs ) |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1577 |
+ mFileURL = output[ 0 ]; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1578 |
+ else // GetFile() actually requires it to be url even for local files :-/ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1579 |
+ { |
1125 | 1580 |
+ nsCOMPtr<nsIFile> localfile; |
1581 |
+ nsresult rv = NS_NewNativeLocalFile( output[ 0 ], |
|
1582 |
+ PR_FALSE, |
|
1583 |
+ getter_AddRefs(localfile)); |
|
1584 |
+ if (NS_SUCCEEDED(rv)) |
|
1585 |
+ rv = net_GetURLSpecFromActualFile(localfile, mFileURL); |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1586 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1587 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1588 |
+ // Remember last used directory. |
515 | 1589 |
+ nsCOMPtr<nsIFile> file; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1590 |
+ GetFile(getter_AddRefs(file)); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1591 |
+ if (file) { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1592 |
+ nsCOMPtr<nsIFile> dir; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1593 |
+ file->GetParent(getter_AddRefs(dir)); |
515 | 1594 |
+ nsCOMPtr<nsIFile> localDir(do_QueryInterface(dir)); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1595 |
+ if (localDir) { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1596 |
+ localDir.swap(mPrevDisplayDirectory); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1597 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1598 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1599 |
+ if (mMode == nsIFilePicker::modeSave) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1600 |
+ { |
515 | 1601 |
+ nsCOMPtr<nsIFile> file; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1602 |
+ GetFile(getter_AddRefs(file)); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1603 |
+ if (file) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1604 |
+ { |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1605 |
+ bool exists = false; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1606 |
+ file->Exists(&exists); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1607 |
+ if (exists) // TODO do overwrite check in the helper app |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1608 |
+ *aReturn = nsIFilePicker::returnReplace; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1609 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1610 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1611 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1612 |
+ else |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1613 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1614 |
+ *aReturn = nsIFilePicker::returnCancel; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1615 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1616 |
+ return NS_OK; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1617 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1618 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1619 |
+ |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1620 |
+NS_IMETHODIMP nsFilePicker::kdeAppsDialog(PRInt16 *aReturn) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1621 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1622 |
+ NS_ENSURE_ARG_POINTER(aReturn); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1623 |
+ |
1007
65e317e42eff
fixed KDE custom code and replaced obsolete types
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1006
diff
changeset
|
1624 |
+ nsCString title; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1625 |
+ title.Adopt(ToNewUTF8String(mTitle)); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1626 |
+ |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1627 |
+ nsTArray<nsCString> command; |
1141 | 1628 |
+ command.AppendElement( "APPSDIALOG"_ns ); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1629 |
+ command.AppendElement( title ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1630 |
+ if( PRInt32 xid = windowToXid( mParentWidget )) |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1631 |
+ { |
1141 | 1632 |
+ command.AppendElement( "PARENT"_ns ); |
568
2c74c5927ea2
first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
546
diff
changeset
|
1633 |
+ nsAutoCString parent; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1634 |
+ parent.AppendInt( xid ); |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1635 |
+ command.AppendElement( parent ); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1636 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1637 |
+ |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1638 |
+ nsTArray<nsCString> output; |
609 | 1639 |
+ if( nsKDEUtils::commandBlockUi( command, GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET)), &output )) |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1640 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1641 |
+ *aReturn = nsIFilePicker::returnOK; |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1642 |
+ mFileURL = output.Length() > 0 ? output[ 0 ] : nsCString(); |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1643 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1644 |
+ else |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1645 |
+ { |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1646 |
+ *aReturn = nsIFilePicker::returnCancel; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1647 |
+ } |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1648 |
+ return NS_OK; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1649 |
+ } |
541
830e50bbfc79
working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
538
diff
changeset
|
1650 |
+ |
1082 | 1651 |
// All below functions available as of GTK 3.20+ |
1097 | 1652 |
void* nsFilePicker::GtkFileChooserNew(const gchar* title, GtkWindow* parent, |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1653 |
GtkFileChooserAction action, |
1097 | 1654 |
const gchar* accept_label) { |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1655 |
static auto sGtkFileChooserNativeNewPtr = |
1097 | 1656 |
(void* (*)(const gchar*, GtkWindow*, GtkFileChooserAction, const gchar*, |
1657 |
const gchar*))dlsym(RTLD_DEFAULT, |
|
1658 |
"gtk_file_chooser_native_new"); |
|
691
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
1659 |
diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h |
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
1660 |
--- a/widget/gtk/nsFilePicker.h |
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
1661 |
+++ b/widget/gtk/nsFilePicker.h |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1662 |
@@ -67,16 +67,22 @@ class nsFilePicker : public nsBaseFilePi |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1663 |
nsString mDefaultExtension; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1664 |
|
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1665 |
nsTArray<nsCString> mFilters; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1666 |
nsTArray<nsCString> mFilterNames; |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1667 |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1668 |
private: |
1097 | 1669 |
static nsIFile* mPrevDisplayDirectory; |
881 | 1670 |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1671 |
+ bool kdeRunning(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1672 |
+ bool getKdeRunning(); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1673 |
+ NS_IMETHODIMP kdeFileDialog(PRInt16 *aReturn); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1674 |
+ NS_IMETHODIMP kdeAppsDialog(PRInt16 *aReturn); |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1675 |
+ nsCString kdeMakeFilter( int index ); |
881 | 1676 |
+ |
1097 | 1677 |
void* GtkFileChooserNew(const gchar* title, GtkWindow* parent, |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1678 |
GtkFileChooserAction action, |
1097 | 1679 |
const gchar* accept_label); |
1680 |
void GtkFileChooserShow(void* file_chooser); |
|
1681 |
void GtkFileChooserDestroy(void* file_chooser); |
|
1682 |
void GtkFileChooserSetModal(void* file_chooser, GtkWindow* parent_widget, |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1683 |
gboolean modal); |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1684 |
|
127
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
1685 |
diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp |
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
1686 |
--- a/xpcom/components/ManifestParser.cpp |
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
1687 |
+++ b/xpcom/components/ManifestParser.cpp |
1130 | 1688 |
@@ -34,16 +34,17 @@ |
935
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
1689 |
#include "nsTextFormatter.h" |
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
1690 |
#include "nsVersionComparator.h" |
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
1691 |
#include "nsXPCOMCIDInternal.h" |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1692 |
|
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1693 |
#include "nsIConsoleService.h" |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1694 |
#include "nsIScriptError.h" |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1695 |
#include "nsIXULAppInfo.h" |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1696 |
#include "nsIXULRuntime.h" |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1697 |
+#include "nsKDEUtils.h" |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1698 |
|
935
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
1699 |
using namespace mozilla; |
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
1700 |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1701 |
struct ManifestDirective { |
935
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
1702 |
const char* directive; |
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
1703 |
int argc; |
9ae2b79d3bb1
prepare FF 51 -> 51.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
932
diff
changeset
|
1704 |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1705 |
bool ischrome; |
1141 | 1706 |
@@ -393,16 +394,17 @@ void ParseManifest(NSLocationType aType, |
1707 |
constexpr auto kRemoteEnabled = u"remoteenabled"_ns; |
|
1708 |
constexpr auto kRemoteRequired = u"remoterequired"_ns; |
|
1709 |
constexpr auto kApplication = u"application"_ns; |
|
1710 |
constexpr auto kAppVersion = u"appversion"_ns; |
|
1711 |
constexpr auto kGeckoVersion = u"platformversion"_ns; |
|
1712 |
constexpr auto kOs = u"os"_ns; |
|
1713 |
constexpr auto kOsVersion = u"osversion"_ns; |
|
1714 |
constexpr auto kABI = u"abi"_ns; |
|
1715 |
+ constexpr auto kDesktop = u"desktop"_ns; |
|
1716 |
constexpr auto kProcess = u"process"_ns; |
|
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1717 |
#if defined(MOZ_WIDGET_ANDROID) |
1141 | 1718 |
constexpr auto kTablet = u"tablet"_ns; |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1719 |
#endif |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1720 |
|
1141 | 1721 |
constexpr auto kMain = u"main"_ns; |
1722 |
constexpr auto kContent = u"content"_ns; |
|
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1723 |
|
1141 | 1724 |
@@ -448,39 +450,44 @@ void ParseManifest(NSLocationType aType, |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1725 |
CopyUTF8toUTF16(s, abi); |
716
cef565f1c325
update to Firefox 29.0b7
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
703
diff
changeset
|
1726 |
abi.Insert(char16_t('_'), 0); |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1727 |
abi.Insert(osTarget, 0); |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1728 |
} |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1729 |
} |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1730 |
} |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1731 |
|
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1732 |
nsAutoString osVersion; |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1733 |
+ nsAutoString desktop; |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1734 |
#if defined(XP_WIN) |
1089 | 1735 |
# pragma warning(push) |
1736 |
# pragma warning(disable : 4996) // VC12+ deprecates GetVersionEx |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1737 |
OSVERSIONINFO info = {sizeof(OSVERSIONINFO)}; |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1738 |
if (GetVersionEx(&info)) { |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1739 |
nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", info.dwMajorVersion, |
779 | 1740 |
info.dwMinorVersion); |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1741 |
} |
1141 | 1742 |
+ desktop = u"win"_ns; |
1089 | 1743 |
# pragma warning(pop) |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1744 |
#elif defined(MOZ_WIDGET_COCOA) |
1130 | 1745 |
SInt32 majorVersion = nsCocoaFeatures::macOSVersionMajor(); |
1746 |
SInt32 minorVersion = nsCocoaFeatures::macOSVersionMinor(); |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1747 |
nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", majorVersion, minorVersion); |
1141 | 1748 |
+ desktop = u"macosx"_ns); |
659 | 1749 |
#elif defined(MOZ_WIDGET_GTK) |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1750 |
nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", gtk_major_version, |
779 | 1751 |
gtk_minor_version); |
1141 | 1752 |
+ desktop = nsKDEUtils::kdeSession() ? u"kde"_ns : u"gnome"_ns; |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1753 |
#elif defined(MOZ_WIDGET_ANDROID) |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1754 |
bool isTablet = false; |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1755 |
if (mozilla::AndroidBridge::Bridge()) { |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1756 |
mozilla::AndroidBridge::Bridge()->GetStaticStringField( |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1757 |
"android/os/Build$VERSION", "RELEASE", osVersion); |
932 | 1758 |
isTablet = java::GeckoAppShell::IsTablet(); |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1759 |
} |
1141 | 1760 |
+ desktop = u"android"_ns; |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1761 |
#endif |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1762 |
|
885 | 1763 |
if (XRE_IsContentProcess()) { |
807
f54c68340963
Aurora 35.0 (20141115) uplift
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
779
diff
changeset
|
1764 |
process = kContent; |
f54c68340963
Aurora 35.0 (20141115) uplift
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
779
diff
changeset
|
1765 |
} else { |
f54c68340963
Aurora 35.0 (20141115) uplift
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
779
diff
changeset
|
1766 |
process = kMain; |
f54c68340963
Aurora 35.0 (20141115) uplift
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
779
diff
changeset
|
1767 |
} |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1768 |
|
1141 | 1769 |
@@ -567,25 +574,27 @@ void ParseManifest(NSLocationType aType, |
850 | 1770 |
TriState stOsVersion = eUnspecified; |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1771 |
TriState stOs = eUnspecified; |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1772 |
TriState stABI = eUnspecified; |
807
f54c68340963
Aurora 35.0 (20141115) uplift
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
779
diff
changeset
|
1773 |
TriState stProcess = eUnspecified; |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1774 |
#if defined(MOZ_WIDGET_ANDROID) |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1775 |
TriState stTablet = eUnspecified; |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1776 |
#endif |
850 | 1777 |
int flags = 0; |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1778 |
+ TriState stDesktop = eUnspecified; |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1779 |
|
779 | 1780 |
while ((token = nsCRT::strtok(whitespace, kWhitespace, &whitespace)) && |
1781 |
ok) { |
|
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1782 |
ToLowerCase(token); |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1783 |
NS_ConvertASCIItoUTF16 wtoken(token); |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1784 |
|
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1785 |
if (CheckStringFlag(kApplication, wtoken, appID, stApp) || |
985 | 1786 |
CheckOsFlag(kOs, wtoken, osTarget, stOs) || |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1787 |
CheckStringFlag(kABI, wtoken, abi, stABI) || |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1788 |
+ CheckStringFlag(kDesktop, wtoken, desktop, stDesktop) || |
807
f54c68340963
Aurora 35.0 (20141115) uplift
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
779
diff
changeset
|
1789 |
CheckStringFlag(kProcess, wtoken, process, stProcess) || |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1790 |
CheckVersionFlag(kOsVersion, wtoken, osVersion, stOsVersion) || |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1791 |
CheckVersionFlag(kAppVersion, wtoken, appVersion, stAppVersion) || |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1792 |
CheckVersionFlag(kGeckoVersion, wtoken, geckoVersion, |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1793 |
stGeckoVersion)) { |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1794 |
continue; |
779 | 1795 |
} |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1796 |
|
1141 | 1797 |
@@ -622,17 +631,17 @@ void ParseManifest(NSLocationType aType, |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1798 |
} |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1799 |
|
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1800 |
LogMessageWithContext( |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1801 |
aFile, line, "Unrecognized chrome manifest modifier '%s'.", token); |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1802 |
ok = false; |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1803 |
} |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1804 |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1805 |
if (!ok || stApp == eBad || stAppVersion == eBad || |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1806 |
- stGeckoVersion == eBad || stOs == eBad || stOsVersion == eBad || |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1807 |
+ stGeckoVersion == eBad || stOs == eBad || stOsVersion == eBad || stDesktop == eBad || |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1808 |
#ifdef MOZ_WIDGET_ANDROID |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1809 |
stTablet == eBad || |
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1810 |
#endif |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1811 |
stABI == eBad || stProcess == eBad) { |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1812 |
continue; |
779 | 1813 |
} |
419
f6b055dd94bc
commit Aurora 13 state
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
409
diff
changeset
|
1814 |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1815 |
if (directive->regfunc) { |
779 | 1816 |
diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build |
1817 |
--- a/xpcom/components/moz.build |
|
1818 |
+++ b/xpcom/components/moz.build |
|
1119 | 1819 |
@@ -62,16 +62,17 @@ LOCAL_INCLUDES += [ |
904 | 1820 |
'!..', |
779 | 1821 |
'../base', |
1822 |
'../build', |
|
1823 |
'../ds', |
|
1824 |
'/chrome', |
|
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1825 |
'/js/xpconnect/loader', |
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1826 |
'/layout/build', |
779 | 1827 |
'/modules/libjar', |
1055
526f445635f3
removed obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1050
diff
changeset
|
1828 |
+ '/toolkit/xre', |
779 | 1829 |
] |
1830 |
||
1112 | 1831 |
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk': |
779 | 1832 |
CXXFLAGS += CONFIG['TK_CFLAGS'] |
1127 | 1833 |
if CONFIG['MOZ_ENABLE_DBUS']: |
1834 |
CXXFLAGS += CONFIG['MOZ_DBUS_GLIB_CFLAGS'] |
|
1093 | 1835 |
|
1130 | 1836 |
include('/ipc/chromium/chromium-config.mozbuild') |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1837 |
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1838 |
--- a/xpcom/io/nsLocalFileUnix.cpp |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1839 |
+++ b/xpcom/io/nsLocalFileUnix.cpp |
1121 | 1840 |
@@ -46,16 +46,17 @@ |
850 | 1841 |
#include "prproces.h" |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1842 |
#include "nsIDirectoryEnumerator.h" |
1074
4b99400f6d17
rebased patches and updated spec for 63.0b14
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1067
diff
changeset
|
1843 |
#include "nsSimpleEnumerator.h" |
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1844 |
#include "private/pprio.h" |
691
18c2dc922e51
update to Firefox 27.0b2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
686
diff
changeset
|
1845 |
#include "prlink.h" |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1846 |
|
515 | 1847 |
#ifdef MOZ_WIDGET_GTK |
1089 | 1848 |
# include "nsIGIOService.h" |
1849 |
+# include "nsKDEUtils.h" |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1850 |
#endif |
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1851 |
|
367
3fabd9f66322
begin Firefox 10 cycle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
356
diff
changeset
|
1852 |
#ifdef MOZ_WIDGET_COCOA |
1089 | 1853 |
# include <Carbon/Carbon.h> |
1854 |
# include "CocoaFileUtils.h" |
|
1855 |
# include "prmem.h" |
|
1856 |
# include "plbase64.h" |
|
127
4c86470ed796
Reenabling KDE integration patches (part 1: rebase and reenable; might need post-fixes)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
64
diff
changeset
|
1857 |
|
1130 | 1858 |
@@ -1898,62 +1899,77 @@ nsLocalFile::SetPersistentDescriptor(con |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1859 |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1860 |
NS_IMETHODIMP |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1861 |
nsLocalFile::Reveal() { |
1067 | 1862 |
if (!FilePreferences::IsAllowedPath(mPath)) { |
1863 |
return NS_ERROR_FILE_ACCESS_DENIED; |
|
1864 |
} |
|
1865 |
||
515 | 1866 |
#ifdef MOZ_WIDGET_GTK |
748
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1867 |
- nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID); |
850 | 1868 |
- if (!giovfs) { |
748
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1869 |
- return NS_ERROR_FAILURE; |
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1870 |
- } |
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1871 |
+ nsAutoCString url; |
850 | 1872 |
|
748
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1873 |
bool isDirectory; |
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1874 |
if (NS_FAILED(IsDirectory(&isDirectory))) { |
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1875 |
return NS_ERROR_FAILURE; |
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1876 |
} |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1877 |
|
748
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1878 |
+ nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID); |
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1879 |
if (isDirectory) { |
850 | 1880 |
- return giovfs->ShowURIForInput(mPath); |
748
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1881 |
+ url = mPath; |
979 | 1882 |
} |
1883 |
if (NS_SUCCEEDED(giovfs->OrgFreedesktopFileManager1ShowItems(mPath))) { |
|
748
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1884 |
return NS_OK; |
979 | 1885 |
} |
1886 |
nsCOMPtr<nsIFile> parentDir; |
|
1887 |
nsAutoCString dirPath; |
|
1888 |
if (NS_FAILED(GetParent(getter_AddRefs(parentDir)))) { |
|
1889 |
return NS_ERROR_FAILURE; |
|
1890 |
} |
|
1891 |
if (NS_FAILED(parentDir->GetNativePath(dirPath))) { |
|
1892 |
return NS_ERROR_FAILURE; |
|
1893 |
} |
|
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1894 |
|
979 | 1895 |
- return giovfs->ShowURIForInput(dirPath); |
1896 |
+ url = dirPath; |
|
1897 |
#elif defined(MOZ_WIDGET_COCOA) |
|
1898 |
CFURLRef url; |
|
1899 |
if (NS_SUCCEEDED(GetCFURL(&url))) { |
|
1900 |
nsresult rv = CocoaFileUtils::RevealFileInFinder(url); |
|
1901 |
::CFRelease(url); |
|
1902 |
return rv; |
|
748
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1903 |
} |
979 | 1904 |
return NS_ERROR_FAILURE; |
1905 |
#else |
|
1906 |
return NS_ERROR_FAILURE; |
|
1907 |
#endif |
|
748
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1908 |
+ if(nsKDEUtils::kdeSupport()) { |
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1909 |
+ nsTArray<nsCString> command; |
1141 | 1910 |
+ command.AppendElement( "REVEAL"_ns ); |
748
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1911 |
+ command.AppendElement( mPath ); |
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1912 |
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE; |
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1913 |
+ } |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1914 |
+ |
850 | 1915 |
+ if (!giovfs) |
748
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1916 |
+ return NS_ERROR_FAILURE; |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1917 |
+ |
850 | 1918 |
+ return giovfs->ShowURIForInput(url); |
686
ab25aac2aa83
Firefox 26.0b5 update
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
680
diff
changeset
|
1919 |
} |
9
bc5dfe5b853a
Rebased KDE integration patches to 1.9.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1920 |
|
686
ab25aac2aa83
Firefox 26.0b5 update
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
680
diff
changeset
|
1921 |
NS_IMETHODIMP |
1085
87f893cf45b9
Firefox 65.0 release
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1082
diff
changeset
|
1922 |
nsLocalFile::Launch() { |
1067 | 1923 |
if (!FilePreferences::IsAllowedPath(mPath)) { |
1924 |
return NS_ERROR_FILE_ACCESS_DENIED; |
|
1925 |
} |
|
1926 |
||
686
ab25aac2aa83
Firefox 26.0b5 update
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
680
diff
changeset
|
1927 |
#ifdef MOZ_WIDGET_GTK |
748
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1928 |
+ if( nsKDEUtils::kdeSupport()) { |
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1929 |
+ nsTArray<nsCString> command; |
1141 | 1930 |
+ command.AppendElement( "OPEN"_ns ); |
748
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1931 |
+ command.AppendElement( mPath ); |
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1932 |
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE; |
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1933 |
+ } |
72ba5129e5fd
full rebase to Aurora 32
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
738
diff
changeset
|
1934 |
nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID); |
850 | 1935 |
if (!giovfs) { |
1936 |
return NS_ERROR_FAILURE; |
|
1937 |
} |
|
1938 |
||
1939 |
return giovfs->ShowURIForInput(mPath); |
|
1032
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
1940 |
#elif defined(MOZ_WIDGET_ANDROID) |
8220ea23b47d
remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
1021
diff
changeset
|
1941 |
// Try to get a mimetype, if this fails just use the file uri alone |