1 # HG changeset patch |
1 # HG changeset patch |
2 # Parent 5f8cbb078ab0d5696255c2f514c6333666b47da9 |
2 # Parent 3f3d1e5db92a45cf3758ee5ba77c577fcfb364c9 |
3 Description: Add KDE integration to Firefox (toolkit parts) |
3 Description: Add KDE integration to Firefox (toolkit parts) |
4 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org> |
4 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org> |
5 Author: Lubos Lunak <lunak@suse.com> |
5 Author: Lubos Lunak <lunak@suse.com> |
6 Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751 |
6 Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751 |
7 https://bugzilla.novell.com/show_bug.cgi?id=170055 |
7 https://bugzilla.novell.com/show_bug.cgi?id=170055 |
44 |
44 |
45 #include "prefapi.h" |
45 #include "prefapi.h" |
46 #include "prefread.h" |
46 #include "prefread.h" |
47 #include "prefapi_private_data.h" |
47 #include "prefapi_private_data.h" |
48 |
48 |
49 @@ -1154,16 +1155,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char |
49 @@ -1153,16 +1154,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char |
50 |
50 |
51 static nsresult pref_LoadPrefsInDirList(const char *listId) |
51 static nsresult pref_LoadPrefsInDirList(const char *listId) |
52 { |
52 { |
53 nsresult rv; |
53 nsresult rv; |
54 nsCOMPtr<nsIProperties> dirSvc(do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv)); |
54 nsCOMPtr<nsIProperties> dirSvc(do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv)); |
79 getter_AddRefs(list)); |
79 getter_AddRefs(list)); |
80 if (!list) |
80 if (!list) |
81 return NS_OK; |
81 return NS_OK; |
82 |
82 |
83 bool hasMore; |
83 bool hasMore; |
84 @@ -1179,17 +1198,17 @@ static nsresult pref_LoadPrefsInDirList( |
84 @@ -1178,17 +1197,17 @@ static nsresult pref_LoadPrefsInDirList( |
85 |
85 |
86 nsAutoCString leaf; |
86 nsAutoCString leaf; |
87 path->GetNativeLeafName(leaf); |
87 path->GetNativeLeafName(leaf); |
88 |
88 |
89 // Do we care if a file provided by this process fails to load? |
89 // Do we care if a file provided by this process fails to load? |
98 |
98 |
99 static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name) |
99 static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name) |
100 { |
100 { |
101 nsZipItemPtr<char> manifest(jarReader, name, true); |
101 nsZipItemPtr<char> manifest(jarReader, name, true); |
102 NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE); |
102 NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE); |
103 @@ -1283,26 +1302,38 @@ static nsresult pref_InitInitialObjects( |
103 @@ -1282,26 +1301,38 @@ static nsresult pref_InitInitialObjects( |
104 /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */ |
104 /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */ |
105 static const char* specialFiles[] = { |
105 static const char* specialFiles[] = { |
106 #if defined(XP_MACOSX) |
106 #if defined(XP_MACOSX) |
107 "macprefs.js" |
107 "macprefs.js" |
108 #elif defined(XP_WIN) |
108 #elif defined(XP_WIN) |
140 nsRefPtr<nsZipArchive> appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP); |
140 nsRefPtr<nsZipArchive> appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP); |
141 // GetReader(mozilla::Omnijar::APP) returns null when $app == $gre, in which |
141 // GetReader(mozilla::Omnijar::APP) returns null when $app == $gre, in which |
142 diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py |
142 diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py |
143 --- a/python/mozbuild/mozpack/chrome/flags.py |
143 --- a/python/mozbuild/mozpack/chrome/flags.py |
144 +++ b/python/mozbuild/mozpack/chrome/flags.py |
144 +++ b/python/mozbuild/mozpack/chrome/flags.py |
145 @@ -209,16 +209,17 @@ class Flags(OrderedDict): |
145 @@ -211,16 +211,17 @@ class Flags(OrderedDict): |
146 'contentaccessible': Flag, |
146 'contentaccessible': Flag, |
147 'os': StringFlag, |
147 'os': StringFlag, |
148 'osversion': VersionFlag, |
148 'osversion': VersionFlag, |
149 'abi': StringFlag, |
149 'abi': StringFlag, |
150 'platform': Flag, |
150 'platform': Flag, |
161 flags = Flags('contentaccessible=yes', 'appversion>=3.5') |
161 flags = Flags('contentaccessible=yes', 'appversion>=3.5') |
162 ''' |
162 ''' |
163 diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py |
163 diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py |
164 --- a/python/mozbuild/mozpack/chrome/manifest.py |
164 --- a/python/mozbuild/mozpack/chrome/manifest.py |
165 +++ b/python/mozbuild/mozpack/chrome/manifest.py |
165 +++ b/python/mozbuild/mozpack/chrome/manifest.py |
166 @@ -31,16 +31,17 @@ class ManifestEntry(object): |
166 @@ -33,16 +33,17 @@ class ManifestEntry(object): |
167 'application', |
167 'application', |
168 'platformversion', |
168 'platformversion', |
169 'os', |
169 'os', |
170 'osversion', |
170 'osversion', |
171 'abi', |
171 'abi', |
182 self.base = base |
182 self.base = base |
183 self.flags = Flags(*flags) |
183 self.flags = Flags(*flags) |
184 diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build |
184 diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build |
185 --- a/toolkit/components/downloads/moz.build |
185 --- a/toolkit/components/downloads/moz.build |
186 +++ b/toolkit/components/downloads/moz.build |
186 +++ b/toolkit/components/downloads/moz.build |
187 @@ -67,14 +67,15 @@ if not CONFIG['MOZ_SUITE']: |
187 @@ -67,15 +67,16 @@ if not CONFIG['MOZ_SUITE']: |
188 ] |
188 ] |
189 |
189 |
190 FAIL_ON_WARNINGS = True |
190 FAIL_ON_WARNINGS = True |
191 |
191 |
192 FINAL_LIBRARY = 'xul' |
192 FINAL_LIBRARY = 'xul' |
197 + '/ipc/chromium/src', |
197 + '/ipc/chromium/src', |
198 + '/toolkit/xre' |
198 + '/toolkit/xre' |
199 ] |
199 ] |
200 |
200 |
201 DEFINES['GOOGLE_PROTOBUF_NO_RTTI'] = True |
201 DEFINES['GOOGLE_PROTOBUF_NO_RTTI'] = True |
|
202 DEFINES['GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER'] = True |
202 |
203 |
203 CXXFLAGS += CONFIG['TK_CFLAGS'] |
204 CXXFLAGS += CONFIG['TK_CFLAGS'] |
204 diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp |
205 diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp |
205 --- a/toolkit/components/downloads/nsDownloadManager.cpp |
206 --- a/toolkit/components/downloads/nsDownloadManager.cpp |
206 +++ b/toolkit/components/downloads/nsDownloadManager.cpp |
207 +++ b/toolkit/components/downloads/nsDownloadManager.cpp |
773 +</bindings> |
774 +</bindings> |
774 diff --git a/toolkit/content/widgets/preferences-kde.xml b/toolkit/content/widgets/preferences-kde.xml |
775 diff --git a/toolkit/content/widgets/preferences-kde.xml b/toolkit/content/widgets/preferences-kde.xml |
775 new file mode 100644 |
776 new file mode 100644 |
776 --- /dev/null |
777 --- /dev/null |
777 +++ b/toolkit/content/widgets/preferences-kde.xml |
778 +++ b/toolkit/content/widgets/preferences-kde.xml |
778 @@ -0,0 +1,1357 @@ |
779 @@ -0,0 +1,1403 @@ |
779 +<?xml version="1.0"?> |
780 +<?xml version="1.0"?> |
780 + |
781 + |
781 +<!DOCTYPE bindings [ |
782 +<!DOCTYPE bindings [ |
782 + <!ENTITY % preferencesDTD SYSTEM "chrome://global/locale/preferences.dtd"> |
783 + <!ENTITY % preferencesDTD SYSTEM "chrome://global/locale/preferences.dtd"> |
783 + %preferencesDTD; |
784 + %preferencesDTD; |
1959 + <method name="writePreferences"> |
1960 + <method name="writePreferences"> |
1960 + <parameter name="aFlushToDisk"/> |
1961 + <parameter name="aFlushToDisk"/> |
1961 + <body> |
1962 + <body> |
1962 + <![CDATA[ |
1963 + <![CDATA[ |
1963 + // Write all values to preferences. |
1964 + // Write all values to preferences. |
|
1965 + if (this._deferredValueUpdateElements.size) { |
|
1966 + this._finalizeDeferredElements(); |
|
1967 + } |
|
1968 + |
1964 + var preferences = this.preferences; |
1969 + var preferences = this.preferences; |
1965 + for (var i = 0; i < preferences.length; ++i) { |
1970 + for (var i = 0; i < preferences.length; ++i) { |
1966 + var preference = preferences[i]; |
1971 + var preference = preferences[i]; |
1967 + preference.batching = true; |
1972 + preference.batching = true; |
1968 + preference.valueFromPreferences = preference.value; |
1973 + preference.valueFromPreferences = preference.value; |
2035 + return temp.nodeType == Node.ELEMENT_NODE ? temp : aStartElement; |
2040 + return temp.nodeType == Node.ELEMENT_NODE ? temp : aStartElement; |
2036 + ]]> |
2041 + ]]> |
2037 + </body> |
2042 + </body> |
2038 + </method> |
2043 + </method> |
2039 + |
2044 + |
|
2045 + <field name="DeferredTask" readonly="true"> |
|
2046 + let targetObj = {}; |
|
2047 + Components.utils.import("resource://gre/modules/DeferredTask.jsm", targetObj); |
|
2048 + targetObj.DeferredTask; |
|
2049 + </field> |
|
2050 + <method name="_deferredValueUpdate"> |
|
2051 + <parameter name="aElement"/> |
|
2052 + <body> |
|
2053 + <![CDATA[ |
|
2054 + delete aElement._deferredValueUpdateTask; |
|
2055 + let preference = document.getElementById(aElement.getAttribute("preference")); |
|
2056 + let prefVal = preference.getElementValue(aElement); |
|
2057 + preference.value = prefVal; |
|
2058 + this._deferredValueUpdateElements.delete(aElement); |
|
2059 + ]]> |
|
2060 + </body> |
|
2061 + </method> |
|
2062 + <field name="_deferredValueUpdateElements"> |
|
2063 + new Set(); |
|
2064 + </field> |
|
2065 + <method name="_finalizeDeferredElements"> |
|
2066 + <body> |
|
2067 + <![CDATA[ |
|
2068 + for (let el of this._deferredValueUpdateElements) { |
|
2069 + if (el._deferredValueUpdateTask) { |
|
2070 + el._deferredValueUpdateTask.finalize(); |
|
2071 + } |
|
2072 + } |
|
2073 + ]]> |
|
2074 + </body> |
|
2075 + </method> |
2040 + <method name="userChangedValue"> |
2076 + <method name="userChangedValue"> |
2041 + <parameter name="aElement"/> |
2077 + <parameter name="aElement"/> |
2042 + <body> |
2078 + <body> |
2043 + <![CDATA[ |
2079 + <![CDATA[ |
2044 + var element = this.getPreferenceElement(aElement); |
2080 + let element = this.getPreferenceElement(aElement); |
2045 + if (element.hasAttribute("preference")) { |
2081 + if (element.hasAttribute("preference")) { |
2046 + var preference = document.getElementById(element.getAttribute("preference")); |
2082 + if (element.getAttribute("delayprefsave") != "true") { |
2047 + var prefVal = preference.getElementValue(element); |
2083 + var preference = document.getElementById(element.getAttribute("preference")); |
2048 + preference.value = prefVal; |
2084 + var prefVal = preference.getElementValue(element); |
|
2085 + preference.value = prefVal; |
|
2086 + } else { |
|
2087 + if (!element._deferredValueUpdateTask) { |
|
2088 + element._deferredValueUpdateTask = new this.DeferredTask(this._deferredValueUpdate.bind(this, element), 1000); |
|
2089 + this._deferredValueUpdateElements.add(element); |
|
2090 + } else { |
|
2091 + // Each time the preference is changed, restart the delay. |
|
2092 + element._deferredValueUpdateTask.disarm(); |
|
2093 + } |
|
2094 + element._deferredValueUpdateTask.arm(); |
|
2095 + } |
2049 + } |
2096 + } |
2050 + ]]> |
2097 + ]]> |
2051 + </body> |
2098 + </body> |
2052 + </method> |
2099 + </method> |
2053 + |
2100 + |
2228 +} |
2275 +} |
2229 + |
2276 + |
2230 diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build |
2277 diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build |
2231 --- a/toolkit/xre/moz.build |
2278 --- a/toolkit/xre/moz.build |
2232 +++ b/toolkit/xre/moz.build |
2279 +++ b/toolkit/xre/moz.build |
2233 @@ -45,17 +45,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt |
2280 @@ -43,17 +43,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co |
2234 GENERATED_SOURCES += [ |
2281 elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt': |
2235 'moc_nsNativeAppSupportQt.cpp', |
2282 EXPORTS += ['nsQAppInstance.h'] |
2236 ] |
|
2237 SOURCES += [ |
2283 SOURCES += [ |
|
2284 '!moc_nsNativeAppSupportQt.cpp', |
2238 'nsNativeAppSupportQt.cpp', |
2285 'nsNativeAppSupportQt.cpp', |
2239 'nsQAppInstance.cpp', |
2286 'nsQAppInstance.cpp', |
2240 ] |
2287 ] |
2241 elif CONFIG['MOZ_ENABLE_GTK']: |
2288 elif CONFIG['MOZ_ENABLE_GTK']: |
2242 + EXPORTS += ['nsKDEUtils.h'] |
2289 + EXPORTS += ['nsKDEUtils.h'] |
3104 return gnomeInfo.forget(); |
3151 return gnomeInfo.forget(); |
3105 } |
3152 } |
3106 diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build |
3153 diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build |
3107 --- a/widget/gtk/moz.build |
3154 --- a/widget/gtk/moz.build |
3108 +++ b/widget/gtk/moz.build |
3155 +++ b/widget/gtk/moz.build |
3109 @@ -79,16 +79,17 @@ else: |
3156 @@ -80,16 +80,17 @@ else: |
3110 include('/ipc/chromium/chromium-config.mozbuild') |
3157 include('/ipc/chromium/chromium-config.mozbuild') |
3111 |
3158 |
3112 FINAL_LIBRARY = 'xul' |
3159 FINAL_LIBRARY = 'xul' |
3113 |
3160 |
3114 LOCAL_INCLUDES += [ |
3161 LOCAL_INCLUDES += [ |
3156 +#include "nsKDEUtils.h" |
3203 +#include "nsKDEUtils.h" |
3157 |
3204 |
3158 using namespace mozilla; |
3205 using namespace mozilla; |
3159 |
3206 |
3160 #define MAX_PREVIEW_SIZE 180 |
3207 #define MAX_PREVIEW_SIZE 180 |
|
3208 // bug 1184009 |
|
3209 #define MAX_PREVIEW_SOURCE_SIZE 4096 |
3161 |
3210 |
3162 nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr; |
3211 nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr; |
3163 |
3212 @@ -246,17 +248,19 @@ nsFilePicker::AppendFilters(int32_t aFil |
3164 void |
|
3165 @@ -238,17 +240,19 @@ nsFilePicker::AppendFilters(int32_t aFil |
|
3166 return nsBaseFilePicker::AppendFilters(aFilterMask); |
3213 return nsBaseFilePicker::AppendFilters(aFilterMask); |
3167 } |
3214 } |
3168 |
3215 |
3169 NS_IMETHODIMP |
3216 NS_IMETHODIMP |
3170 nsFilePicker::AppendFilter(const nsAString& aTitle, const nsAString& aFilter) |
3217 nsFilePicker::AppendFilter(const nsAString& aTitle, const nsAString& aFilter) |
3181 CopyUTF16toUTF8(aFilter, filter); |
3228 CopyUTF16toUTF8(aFilter, filter); |
3182 CopyUTF16toUTF8(aTitle, name); |
3229 CopyUTF16toUTF8(aTitle, name); |
3183 |
3230 |
3184 mFilters.AppendElement(filter); |
3231 mFilters.AppendElement(filter); |
3185 mFilterNames.AppendElement(name); |
3232 mFilterNames.AppendElement(name); |
3186 @@ -363,16 +367,32 @@ nsFilePicker::Show(int16_t *aReturn) |
3233 @@ -371,16 +375,32 @@ nsFilePicker::Show(int16_t *aReturn) |
3187 |
3234 |
3188 NS_IMETHODIMP |
3235 NS_IMETHODIMP |
3189 nsFilePicker::Open(nsIFilePickerShownCallback *aCallback) |
3236 nsFilePicker::Open(nsIFilePickerShownCallback *aCallback) |
3190 { |
3237 { |
3191 // Can't show two dialogs concurrently with the same filepicker |
3238 // Can't show two dialogs concurrently with the same filepicker |
3214 GtkWindow *parent_widget = |
3261 GtkWindow *parent_widget = |
3215 GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET)); |
3262 GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET)); |
3216 |
3263 |
3217 GtkFileChooserAction action = GetGtkFileChooserAction(mMode); |
3264 GtkFileChooserAction action = GetGtkFileChooserAction(mMode); |
3218 const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE) |
3265 const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE) |
3219 @@ -551,8 +571,235 @@ nsFilePicker::Done(GtkWidget* file_choos |
3266 @@ -595,8 +615,235 @@ nsFilePicker::Done(GtkWidget* file_choos |
3220 if (mCallback) { |
3267 if (mCallback) { |
3221 mCallback->Done(result); |
3268 mCallback->Done(result); |
3222 mCallback = nullptr; |
3269 mCallback = nullptr; |
3223 } else { |
3270 } else { |
3224 mResult = result; |
3271 mResult = result; |
3453 + } |
3500 + } |
3454 + |
3501 + |
3455 diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h |
3502 diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h |
3456 --- a/widget/gtk/nsFilePicker.h |
3503 --- a/widget/gtk/nsFilePicker.h |
3457 +++ b/widget/gtk/nsFilePicker.h |
3504 +++ b/widget/gtk/nsFilePicker.h |
3458 @@ -68,11 +68,17 @@ protected: |
3505 @@ -69,14 +69,20 @@ protected: |
3459 nsString mDefault; |
|
3460 nsString mDefaultExtension; |
3506 nsString mDefaultExtension; |
3461 |
3507 |
3462 nsTArray<nsCString> mFilters; |
3508 nsTArray<nsCString> mFilters; |
3463 nsTArray<nsCString> mFilterNames; |
3509 nsTArray<nsCString> mFilterNames; |
3464 |
3510 |
3465 private: |
3511 private: |
3466 static nsIFile *mPrevDisplayDirectory; |
3512 static nsIFile *mPrevDisplayDirectory; |
3467 + |
3513 |
3468 + bool kdeRunning(); |
3514 + bool kdeRunning(); |
3469 + bool getKdeRunning(); |
3515 + bool getKdeRunning(); |
3470 + NS_IMETHODIMP kdeFileDialog(PRInt16 *aReturn); |
3516 + NS_IMETHODIMP kdeFileDialog(PRInt16 *aReturn); |
3471 + NS_IMETHODIMP kdeAppsDialog(PRInt16 *aReturn); |
3517 + NS_IMETHODIMP kdeAppsDialog(PRInt16 *aReturn); |
3472 + nsCString kdeMakeFilter( int index ); |
3518 + nsCString kdeMakeFilter( int index ); |
|
3519 + |
|
3520 #if (MOZ_WIDGET_GTK == 3) |
|
3521 GtkFileChooserWidget *mFileChooserDelegate; |
|
3522 #endif |
3473 }; |
3523 }; |
3474 |
3524 |
3475 #endif |
3525 #endif |
3476 diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp |
3526 diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp |
3477 --- a/xpcom/components/ManifestParser.cpp |
3527 --- a/xpcom/components/ManifestParser.cpp |
3626 if CONFIG['MOZ_WIDGET_GTK']: |
3676 if CONFIG['MOZ_WIDGET_GTK']: |
3627 CXXFLAGS += CONFIG['TK_CFLAGS'] |
3677 CXXFLAGS += CONFIG['TK_CFLAGS'] |
3628 diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp |
3678 diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp |
3629 --- a/xpcom/io/nsLocalFileUnix.cpp |
3679 --- a/xpcom/io/nsLocalFileUnix.cpp |
3630 +++ b/xpcom/io/nsLocalFileUnix.cpp |
3680 +++ b/xpcom/io/nsLocalFileUnix.cpp |
3631 @@ -44,16 +44,17 @@ |
3681 @@ -47,16 +47,17 @@ |
3632 #include "prproces.h" |
3682 #include "prproces.h" |
3633 #include "nsIDirectoryEnumerator.h" |
3683 #include "nsIDirectoryEnumerator.h" |
3634 #include "nsISimpleEnumerator.h" |
3684 #include "nsISimpleEnumerator.h" |
3635 #include "private/pprio.h" |
3685 #include "private/pprio.h" |
3636 #include "prlink.h" |
3686 #include "prlink.h" |
3644 #include <Carbon/Carbon.h> |
3694 #include <Carbon/Carbon.h> |
3645 #include "CocoaFileUtils.h" |
3695 #include "CocoaFileUtils.h" |
3646 #include "prmem.h" |
3696 #include "prmem.h" |
3647 #include "plbase64.h" |
3697 #include "plbase64.h" |
3648 |
3698 |
3649 @@ -1960,42 +1961,52 @@ nsLocalFile::SetPersistentDescriptor(con |
3699 @@ -1963,42 +1964,52 @@ nsLocalFile::SetPersistentDescriptor(con |
3650 return InitWithNativePath(aPersistentDescriptor); |
3700 return InitWithNativePath(aPersistentDescriptor); |
3651 #endif |
3701 #endif |
3652 } |
3702 } |
3653 |
3703 |
3654 NS_IMETHODIMP |
3704 NS_IMETHODIMP |