/[packages]/updates/5/firefox/current/SOURCES/mozilla-kde.patch
ViewVC logotype

Diff of /updates/5/firefox/current/SOURCES/mozilla-kde.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1050410 by luigiwalser, Tue Sep 22 21:02:29 2015 UTC revision 1050411 by lmenut, Wed Sep 7 20:02:01 2016 UTC
# Line 1  Line 1 
1  # HG changeset patch  # HG changeset patch
2  # Parent  214f99f3ce4f1f8ae9b3d18da44e5d66b3105663  # Parent  797d5f17b080f54439602f107ecaf6b09a0ef5c1
3  Description: Add KDE integration to Firefox (toolkit parts)  Description: Add KDE integration to Firefox (toolkit parts)
4  Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>  Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
5  Author: Lubos Lunak <lunak@suse.com>  Author: Lubos Lunak <lunak@suse.com>
6  Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751  Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751
7       https://bugzilla.novell.com/show_bug.cgi?id=170055       https://bugzilla.novell.com/show_bug.cgi?id=170055
8    
 diff --git a/modules/libpref/Makefile.in b/modules/libpref/Makefile.in  
 --- a/modules/libpref/Makefile.in  
 +++ b/modules/libpref/Makefile.in  
 @@ -21,13 +21,15 @@ endif  
  ifdef MOZ_SERVICES_HEALTHREPORT  
  ifneq (android,$(MOZ_WIDGET_TOOLKIT))  
  grepref_files += $(topsrcdir)/services/healthreport/healthreport-prefs.js  
  else  
  grepref_files += $(topsrcdir)/mobile/android/chrome/content/healthreport-prefs.js  
  endif  
  endif  
   
 +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre  
 +  
  greprefs.js: $(grepref_files)  
         $(call py_action,preprocessor,$(PREF_PPFLAGS) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) $^ -o $@)  
   
  libs:: greprefs.js  
         $(INSTALL) $^ $(DIST)/bin/  
9  diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp  diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
10  --- a/modules/libpref/Preferences.cpp  --- a/modules/libpref/Preferences.cpp
11  +++ b/modules/libpref/Preferences.cpp  +++ b/modules/libpref/Preferences.cpp
12  @@ -27,16 +27,17 @@  @@ -30,16 +30,17 @@
13   #include "nsIZipReader.h"   #include "nsIZipReader.h"
14   #include "nsPrefBranch.h"   #include "nsPrefBranch.h"
15   #include "nsXPIDLString.h"   #include "nsXPIDLString.h"
# Line 40  diff --git a/modules/libpref/Preferences Line 21  diff --git a/modules/libpref/Preferences
21  +#include "nsKDEUtils.h"  +#include "nsKDEUtils.h"
22    
23   #include "nsQuickSort.h"   #include "nsQuickSort.h"
24   #include "pldhash.h"   #include "PLDHashTable.h"
25    
26   #include "prefapi.h"   #include "prefapi.h"
27   #include "prefread.h"   #include "prefread.h"
28   #include "prefapi_private_data.h"   #include "prefapi_private_data.h"
29    
30  @@ -1165,16 +1166,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char  @@ -1136,16 +1137,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
31    
32   static nsresult pref_LoadPrefsInDirList(const char *listId)   static nsresult pref_LoadPrefsInDirList(const char *listId)
33   {   {
# Line 81  diff --git a/modules/libpref/Preferences Line 62  diff --git a/modules/libpref/Preferences
62       return NS_OK;       return NS_OK;
63    
64     bool hasMore;     bool hasMore;
65  @@ -1190,17 +1209,17 @@ static nsresult pref_LoadPrefsInDirList(  @@ -1161,17 +1180,17 @@ static nsresult pref_LoadPrefsInDirList(
66    
67       nsAutoCString leaf;       nsAutoCString leaf;
68       path->GetNativeLeafName(leaf);       path->GetNativeLeafName(leaf);
# Line 100  diff --git a/modules/libpref/Preferences Line 81  diff --git a/modules/libpref/Preferences
81   {   {
82     nsZipItemPtr<char> manifest(jarReader, name, true);     nsZipItemPtr<char> manifest(jarReader, name, true);
83     NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);     NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
84  @@ -1294,26 +1313,38 @@ static nsresult pref_InitInitialObjects(  @@ -1265,26 +1284,38 @@ static nsresult pref_InitInitialObjects(
85     /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */     /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
86     static const char* specialFiles[] = {     static const char* specialFiles[] = {
87   #if defined(XP_MACOSX)   #if defined(XP_MACOSX)
# Line 137  diff --git a/modules/libpref/Preferences Line 118  diff --git a/modules/libpref/Preferences
118    
119     // Load jar:$app/omni.jar!/defaults/preferences/*.js     // Load jar:$app/omni.jar!/defaults/preferences/*.js
120     // or jar:$gre/omni.jar!/defaults/preferences/*.js.     // or jar:$gre/omni.jar!/defaults/preferences/*.js.
121     nsRefPtr<nsZipArchive> appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);     RefPtr<nsZipArchive> appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);
122     // GetReader(mozilla::Omnijar::APP) returns null when $app == $gre, in which     // GetReader(mozilla::Omnijar::APP) returns null when $app == $gre, in which
123    diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
124    --- a/modules/libpref/moz.build
125    +++ b/modules/libpref/moz.build
126    @@ -31,16 +31,20 @@ UNIFIED_SOURCES += [
127         'prefread.cpp',
128     ]
129    
130     # prefapi.cpp cannot be built in unified mode because it uses plarena.h
131     SOURCES += [
132         'prefapi.cpp',
133     ]
134    
135    +LOCAL_INCLUDES += [
136    +    '/toolkit/xre'
137    +]
138    +
139     include('/ipc/chromium/chromium-config.mozbuild')
140    
141     FINAL_LIBRARY = 'xul'
142    
143     DEFINES['OS_ARCH'] = CONFIG['OS_ARCH']
144     DEFINES['MOZ_WIDGET_TOOLKIT'] = CONFIG['MOZ_WIDGET_TOOLKIT']
145    
146     if CONFIG['GNU_CXX']:
147  diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py  diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py
148  --- a/python/mozbuild/mozpack/chrome/flags.py  --- a/python/mozbuild/mozpack/chrome/flags.py
149  +++ b/python/mozbuild/mozpack/chrome/flags.py  +++ b/python/mozbuild/mozpack/chrome/flags.py
150  @@ -209,16 +209,17 @@ class Flags(OrderedDict):  @@ -211,16 +211,17 @@ class Flags(OrderedDict):
151           'contentaccessible': Flag,           'contentaccessible': Flag,
152           'os': StringFlag,           'os': StringFlag,
153           'osversion': VersionFlag,           'osversion': VersionFlag,
# Line 163  diff --git a/python/mozbuild/mozpack/chr Line 168  diff --git a/python/mozbuild/mozpack/chr
168  diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py  diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py
169  --- a/python/mozbuild/mozpack/chrome/manifest.py  --- a/python/mozbuild/mozpack/chrome/manifest.py
170  +++ b/python/mozbuild/mozpack/chrome/manifest.py  +++ b/python/mozbuild/mozpack/chrome/manifest.py
171  @@ -31,16 +31,17 @@ class ManifestEntry(object):  @@ -33,16 +33,17 @@ class ManifestEntry(object):
172           'application',           'application',
173           'platformversion',           'platformversion',
174           'os',           'os',
# Line 184  diff --git a/python/mozbuild/mozpack/chr Line 189  diff --git a/python/mozbuild/mozpack/chr
189  diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build  diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build
190  --- a/toolkit/components/downloads/moz.build  --- a/toolkit/components/downloads/moz.build
191  +++ b/toolkit/components/downloads/moz.build  +++ b/toolkit/components/downloads/moz.build
192  @@ -52,14 +52,15 @@ if not CONFIG['MOZ_SUITE']:  @@ -65,15 +65,16 @@ if not CONFIG['MOZ_SUITE']:
193             'nsDownloadManagerUI.js',
194             'nsDownloadManagerUI.manifest',
195       ]       ]
196    
  FAIL_ON_WARNINGS = True  
   
197   FINAL_LIBRARY = 'xul'   FINAL_LIBRARY = 'xul'
198    
199   LOCAL_INCLUDES += [   LOCAL_INCLUDES += [
# Line 199  diff --git a/toolkit/components/download Line 204  diff --git a/toolkit/components/download
204   ]   ]
205    
206   DEFINES['GOOGLE_PROTOBUF_NO_RTTI'] = True   DEFINES['GOOGLE_PROTOBUF_NO_RTTI'] = True
207     DEFINES['GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER'] = True
208    
209   CXXFLAGS += CONFIG['TK_CFLAGS']   CXXFLAGS += CONFIG['TK_CFLAGS']
210  diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp  diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp
211  --- a/toolkit/components/downloads/nsDownloadManager.cpp  --- a/toolkit/components/downloads/nsDownloadManager.cpp
212  +++ b/toolkit/components/downloads/nsDownloadManager.cpp  +++ b/toolkit/components/downloads/nsDownloadManager.cpp
213  @@ -46,16 +46,20 @@  @@ -51,16 +51,20 @@
214   #ifdef XP_WIN   #ifdef XP_WIN
215   #include <shlobj.h>   #include <shlobj.h>
216   #include "nsWindowsHelpers.h"   #include "nsWindowsHelpers.h"
# Line 225  diff --git a/toolkit/components/download Line 231  diff --git a/toolkit/components/download
231   #include "AndroidBridge.h"   #include "AndroidBridge.h"
232   #endif   #endif
233    
234  @@ -2716,16 +2720,25 @@ nsDownload::SetState(DownloadState aStat  @@ -2719,16 +2723,25 @@ nsDownload::SetState(DownloadState aStat
235         nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));         nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
236    
237         // Master pref to control this function.         // Master pref to control this function.
# Line 251  diff --git a/toolkit/components/download Line 257  diff --git a/toolkit/components/download
257           int64_t goat = PR_Now() - mStartTime;           int64_t goat = PR_Now() - mStartTime;
258           showTaskbarAlert = goat > alertIntervalUSec;           showTaskbarAlert = goat > alertIntervalUSec;
259    
260  @@ -2756,16 +2769,17 @@ nsDownload::SetState(DownloadState aStat  @@ -2759,16 +2772,17 @@ nsDownload::SetState(DownloadState aStat
261                     NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title,                     NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title,
262                     message, !removeWhenDone,                     message, !removeWhenDone,
263                     mPrivate ? NS_LITERAL_STRING("private") : NS_LITERAL_STRING("non-private"),                     mPrivate ? NS_LITERAL_STRING("private") : NS_LITERAL_STRING("non-private"),
# Line 272  diff --git a/toolkit/components/download Line 278  diff --git a/toolkit/components/download
278  diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn  diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
279  --- a/toolkit/content/jar.mn  --- a/toolkit/content/jar.mn
280  +++ b/toolkit/content/jar.mn  +++ b/toolkit/content/jar.mn
281  @@ -57,29 +57,33 @@ toolkit.jar:  @@ -64,29 +64,33 @@ toolkit.jar:
282      content/global/viewZoomOverlay.js          (viewZoomOverlay.js)      content/global/viewZoomOverlay.js
283   *+ content/global/bindings/autocomplete.xml    (widgets/autocomplete.xml)   *+ content/global/bindings/autocomplete.xml    (widgets/autocomplete.xml)
284      content/global/bindings/browser.xml         (widgets/browser.xml)      content/global/bindings/browser.xml         (widgets/browser.xml)
285      content/global/bindings/button.xml          (widgets/button.xml)      content/global/bindings/button.xml          (widgets/button.xml)
# Line 310  diff --git a/toolkit/content/widgets/dia Line 316  diff --git a/toolkit/content/widgets/dia
316  new file mode 100644  new file mode 100644
317  --- /dev/null  --- /dev/null
318  +++ b/toolkit/content/widgets/dialog-kde.xml  +++ b/toolkit/content/widgets/dialog-kde.xml
319  @@ -0,0 +1,455 @@  @@ -0,0 +1,460 @@
320  +<?xml version="1.0"?>  +<?xml version="1.0"?>
321  +<!-- This Source Code Form is subject to the terms of the Mozilla Public  +<!-- This Source Code Form is subject to the terms of the Mozilla Public
322  +   - License, v. 2.0. If a copy of the MPL was not distributed with this  +   - License, v. 2.0. If a copy of the MPL was not distributed with this
# Line 344  new file mode 100644 Line 350  new file mode 100644
350  +        <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>  +        <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
351  +#elif XP_UNIX  +#elif XP_UNIX
352  +                >  +                >
353  +        <xul:button dlgtype="help" class="dialog-button" hidden="true"/>  +       <xul:button dlgtype="help" class="dialog-button" hidden="true"/>
354  +       <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>  +       <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
355  +       <xul:spacer anonid="spacer" flex="1"/>  +       <xul:spacer anonid="spacer" flex="1"/>
356  +       <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>  +       <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
# Line 426  new file mode 100644 Line 432  new file mode 100644
432  +            sizeToContent();  +            sizeToContent();
433  +          }  +          }
434  +  +
435  +          var xOffset = (opener.outerWidth - window.outerWidth) / 2;  +          if (opener) {
436  +          var yOffset = opener.outerHeight / 5;  +            var xOffset = (opener.outerWidth - window.outerWidth) / 2;
437  +  +            var yOffset = opener.outerHeight / 5;
438  +          var newX = opener.screenX + xOffset;  +
439  +          var newY = opener.screenY + yOffset;  +            var newX = opener.screenX + xOffset;
440    +            var newY = opener.screenY + yOffset;
441    +          } else {
442    +            newX = (screen.availWidth - window.outerWidth) / 2;
443    +            newY = (screen.availHeight - window.outerHeight) / 2;
444    +          }
445  +  +
446  +          // ensure the window is fully onscreen (if smaller than the screen)  +          // ensure the window is fully onscreen (if smaller than the screen)
447  +          if (newX < screen.availLeft)  +          if (newX < screen.availLeft)
# Line 770  diff --git a/toolkit/content/widgets/pre Line 781  diff --git a/toolkit/content/widgets/pre
781  new file mode 100644  new file mode 100644
782  --- /dev/null  --- /dev/null
783  +++ b/toolkit/content/widgets/preferences-kde.xml  +++ b/toolkit/content/widgets/preferences-kde.xml
784  @@ -0,0 +1,1350 @@  @@ -0,0 +1,1403 @@
785  +<?xml version="1.0"?>  +<?xml version="1.0"?>
786  +  +
787  +<!DOCTYPE bindings [  +<!DOCTYPE bindings [
# Line 1394  new file mode 100644 Line 1405  new file mode 100644
1405  +      <constructor>  +      <constructor>
1406  +      <![CDATA[  +      <![CDATA[
1407  +        if (this.type != "child") {  +        if (this.type != "child") {
1408  +          var psvc = Components.classes["@mozilla.org/preferences-service;1"]  +          if (!this._instantApplyInitialized) {
1409  +                               .getService(Components.interfaces.nsIPrefBranch);  +            let psvc = Components.classes["@mozilla.org/preferences-service;1"]
1410  +          this.instantApply = psvc.getBoolPref("browser.preferences.instantApply");  +                                 .getService(Components.interfaces.nsIPrefBranch);
1411    +            this.instantApply = psvc.getBoolPref("browser.preferences.instantApply");
1412    +          }
1413  +          if (this.instantApply) {  +          if (this.instantApply) {
1414  +            var docElt = document.documentElement;  +            var docElt = document.documentElement;
1415  +            var acceptButton = docElt.getButton("accept");  +            var acceptButton = docElt.getButton("accept");
# Line 1466  new file mode 100644 Line 1479  new file mode 100644
1479  +      ]]>  +      ]]>
1480  +      </destructor>  +      </destructor>
1481  +  +
1482    +      <!-- Derived bindings can set this to true to cause us to skip
1483    +           reading the browser.preferences.instantApply pref in the constructor.
1484    +           Then they can set instantApply to their wished value. -->
1485    +      <field name="_instantApplyInitialized">false</field>
1486    +      <!-- Controls whether changed pref values take effect immediately. -->
1487  +      <field name="instantApply">false</field>  +      <field name="instantApply">false</field>
1488  +        +
1489  +      <property name="preferencePanes"  +      <property name="preferencePanes"
1490  +                onget="return this.getElementsByTagName('prefpane');"/>  +                onget="return this.getElementsByTagName('prefpane');"/>
1491  +  +
# Line 1949  new file mode 100644 Line 1967  new file mode 100644
1967  +        <body>  +        <body>
1968  +        <![CDATA[  +        <![CDATA[
1969  +          // Write all values to preferences.  +          // Write all values to preferences.
1970    +          if (this._deferredValueUpdateElements.size) {
1971    +            this._finalizeDeferredElements();
1972    +          }
1973    +
1974  +          var preferences = this.preferences;  +          var preferences = this.preferences;
1975  +          for (var i = 0; i < preferences.length; ++i) {  +          for (var i = 0; i < preferences.length; ++i) {
1976  +            var preference = preferences[i];  +            var preference = preferences[i];
# Line 2025  new file mode 100644 Line 2047  new file mode 100644
2047  +        </body>  +        </body>
2048  +      </method>  +      </method>
2049  +        +      
2050    +      <field name="DeferredTask" readonly="true">
2051    +        let targetObj = {};
2052    +        Components.utils.import("resource://gre/modules/DeferredTask.jsm", targetObj);
2053    +        targetObj.DeferredTask;
2054    +      </field>
2055    +      <method name="_deferredValueUpdate">
2056    +        <parameter name="aElement"/>
2057    +        <body>
2058    +        <![CDATA[
2059    +          delete aElement._deferredValueUpdateTask;
2060    +          let preference = document.getElementById(aElement.getAttribute("preference"));
2061    +          let prefVal = preference.getElementValue(aElement);
2062    +          preference.value = prefVal;
2063    +          this._deferredValueUpdateElements.delete(aElement);
2064    +        ]]>
2065    +        </body>
2066    +      </method>
2067    +      <field name="_deferredValueUpdateElements">
2068    +        new Set();
2069    +      </field>
2070    +      <method name="_finalizeDeferredElements">
2071    +        <body>
2072    +        <![CDATA[
2073    +          for (let el of this._deferredValueUpdateElements) {
2074    +            if (el._deferredValueUpdateTask) {
2075    +              el._deferredValueUpdateTask.finalize();
2076    +            }
2077    +          }
2078    +        ]]>
2079    +        </body>
2080    +      </method>
2081  +      <method name="userChangedValue">  +      <method name="userChangedValue">
2082  +        <parameter name="aElement"/>  +        <parameter name="aElement"/>
2083  +        <body>  +        <body>
2084  +        <![CDATA[  +        <![CDATA[
2085  +          var element = this.getPreferenceElement(aElement);  +          let element = this.getPreferenceElement(aElement);
2086  +          if (element.hasAttribute("preference")) {  +          if (element.hasAttribute("preference")) {
2087  +            var preference = document.getElementById(element.getAttribute("preference"));  +            if (element.getAttribute("delayprefsave") != "true") {
2088  +            var prefVal = preference.getElementValue(element);  +              var preference = document.getElementById(element.getAttribute("preference"));
2089  +            preference.value = prefVal;  +              var prefVal = preference.getElementValue(element);
2090    +              preference.value = prefVal;
2091    +            } else {
2092    +              if (!element._deferredValueUpdateTask) {
2093    +                element._deferredValueUpdateTask = new this.DeferredTask(this._deferredValueUpdate.bind(this, element), 1000);
2094    +                this._deferredValueUpdateElements.add(element);
2095    +              } else {
2096    +                // Each time the preference is changed, restart the delay.
2097    +                element._deferredValueUpdateTask.disarm();
2098    +              }
2099    +              element._deferredValueUpdateTask.arm();
2100    +            }
2101  +          }  +          }
2102  +        ]]>  +        ]]>
2103  +        </body>  +        </body>
# Line 2124  new file mode 100644 Line 2188  new file mode 100644
2188  diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp  diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
2189  --- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp  --- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
2190  +++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp  +++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
2191  @@ -14,16 +14,18 @@  @@ -15,16 +15,17 @@
  #include "prenv.h"  
2192   #include "nsPrintfCString.h"   #include "nsPrintfCString.h"
2193     #include "nsNetCID.h"
2194   #include "nsNetUtil.h"   #include "nsNetUtil.h"
2195   #include "nsISupportsPrimitives.h"   #include "nsISupportsPrimitives.h"
2196   #include "nsIGSettingsService.h"   #include "nsIGSettingsService.h"
2197   #include "nsInterfaceHashtable.h"   #include "nsInterfaceHashtable.h"
2198   #include "mozilla/Attributes.h"   #include "mozilla/Attributes.h"
2199   #include "nsIURI.h"   #include "nsIURI.h"
 +#include "nsVoidArray.h"  
2200  +#include "nsKDEUtils.h"  +#include "nsKDEUtils.h"
2201    
2202   class nsUnixSystemProxySettings final : public nsISystemProxySettings {   class nsUnixSystemProxySettings final : public nsISystemProxySettings {
# Line 2143  diff --git a/toolkit/system/unixproxy/ns Line 2206  diff --git a/toolkit/system/unixproxy/ns
2206    
2207     nsUnixSystemProxySettings()     nsUnixSystemProxySettings()
2208       : mSchemeProxySettings(4)       : mSchemeProxySettings(4)
2209  @@ -38,16 +40,17 @@ private:  @@ -39,16 +40,17 @@ private:
2210     nsCOMPtr<nsIGSettingsService> mGSettings;     nsCOMPtr<nsIGSettingsService> mGSettings;
2211     nsCOMPtr<nsIGSettingsCollection> mProxySettings;     nsCOMPtr<nsIGSettingsCollection> mProxySettings;
2212     nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings;     nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings;
# Line 2161  diff --git a/toolkit/system/unixproxy/ns Line 2224  diff --git a/toolkit/system/unixproxy/ns
2224   nsUnixSystemProxySettings::GetMainThreadOnly(bool *aMainThreadOnly)   nsUnixSystemProxySettings::GetMainThreadOnly(bool *aMainThreadOnly)
2225   {   {
2226     // dbus prevents us from being threadsafe, but this routine should not block anyhow     // dbus prevents us from being threadsafe, but this routine should not block anyhow
2227  @@ -504,16 +507,19 @@ nsUnixSystemProxySettings::GetProxyFromG  @@ -505,16 +507,19 @@ nsUnixSystemProxySettings::GetProxyFromG
2228    
2229   nsresult   nsresult
2230   nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec,   nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec,
# Line 2181  diff --git a/toolkit/system/unixproxy/ns Line 2244  diff --git a/toolkit/system/unixproxy/ns
2244     if (mGConf)     if (mGConf)
2245       return GetProxyFromGConf(aScheme, aHost, aPort, aResult);       return GetProxyFromGConf(aScheme, aHost, aPort, aResult);
2246    
2247  @@ -539,8 +545,34 @@ static const mozilla::Module::ContractID  @@ -540,8 +545,34 @@ static const mozilla::Module::ContractID
2248    
2249   static const mozilla::Module kUnixProxyModule = {   static const mozilla::Module kUnixProxyModule = {
2250     mozilla::Module::kVersion,     mozilla::Module::kVersion,
# Line 2219  diff --git a/toolkit/system/unixproxy/ns Line 2282  diff --git a/toolkit/system/unixproxy/ns
2282  diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build  diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
2283  --- a/toolkit/xre/moz.build  --- a/toolkit/xre/moz.build
2284  +++ b/toolkit/xre/moz.build  +++ b/toolkit/xre/moz.build
2285  @@ -45,17 +45,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt  @@ -48,17 +48,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'ui
2286       GENERATED_SOURCES += [   elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
2287           'moc_nsNativeAppSupportQt.cpp',       EXPORTS += ['nsQAppInstance.h']
      ]  
2288       SOURCES += [       SOURCES += [
2289             '!moc_nsNativeAppSupportQt.cpp',
2290           'nsNativeAppSupportQt.cpp',           'nsNativeAppSupportQt.cpp',
2291           'nsQAppInstance.cpp',           'nsQAppInstance.cpp',
2292       ]       ]
# Line 2445  new file mode 100644 Line 2508  new file mode 100644
2508  +    }  +    }
2509  +  +
2510  +  +
2511  +bool nsKDEUtils::commandBlockUi( const nsTArray<nsCString>& command, const GtkWindow* parent, nsTArray<nsCString>* output )  +bool nsKDEUtils::commandBlockUi( const nsTArray<nsCString>& command, GtkWindow* parent, nsTArray<nsCString>* output )
2512  +    {  +    {
2513  +    return self()->internalCommand( command, parent, true, output );  +    return self()->internalCommand( command, parent, true, output );
2514  +    }  +    }
2515  +  +
2516  +bool nsKDEUtils::internalCommand( const nsTArray<nsCString>& command, const GtkWindow* parent, bool blockUi,  +bool nsKDEUtils::internalCommand( const nsTArray<nsCString>& command, GtkWindow* parent, bool blockUi,
2517  +    nsTArray<nsCString>* output )  +    nsTArray<nsCString>* output )
2518  +    {  +    {
2519  +    if( !startHelper())  +    if( !startHelper())
# Line 2466  new file mode 100644 Line 2529  new file mode 100644
2529  +        {  +        {
2530  +        data.loop = g_main_loop_new( NULL, FALSE );  +        data.loop = g_main_loop_new( NULL, FALSE );
2531  +        GtkWidget* window = gtk_window_new( GTK_WINDOW_TOPLEVEL );  +        GtkWidget* window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
2532  +        if( parent && parent->group )  +        if( parent && gtk_window_get_group(parent) )
2533  +            gtk_window_group_add_window( parent->group, GTK_WINDOW( window ));  +            gtk_window_group_add_window( gtk_window_get_group(parent), GTK_WINDOW( window ));
2534  +        gtk_widget_realize( window );  +        gtk_widget_realize( window );
2535  +        gtk_widget_set_sensitive( window, TRUE );  +        gtk_widget_set_sensitive( window, TRUE );
2536  +        gtk_grab_add( window );  +        gtk_grab_add( window );
# Line 2620  new file mode 100644 Line 2683  new file mode 100644
2683  +        /* Like command(), but additionally blocks the parent widget like if there was  +        /* Like command(), but additionally blocks the parent widget like if there was
2684  +           a modal dialog shown and enters the event loop (i.e. there are still paint updates,  +           a modal dialog shown and enters the event loop (i.e. there are still paint updates,
2685  +           this is for commands that take long). */  +           this is for commands that take long). */
2686  +        static bool commandBlockUi( const nsTArray<nsCString>& command, const GtkWindow* parent, nsTArray<nsCString>* output = NULL );  +        static bool commandBlockUi( const nsTArray<nsCString>& command, GtkWindow* parent, nsTArray<nsCString>* output = NULL );
2687  +  +
2688  +    private:  +    private:
2689  +        nsKDEUtils();  +        nsKDEUtils();
# Line 2629  new file mode 100644 Line 2692  new file mode 100644
2692  +        bool startHelper();  +        bool startHelper();
2693  +        void closeHelper();  +        void closeHelper();
2694  +        void feedCommand( const nsTArray<nsCString>& command );  +        void feedCommand( const nsTArray<nsCString>& command );
2695  +        bool internalCommand( const nsTArray<nsCString>& command, const GtkWindow* parent, bool isParent,  +        bool internalCommand( const nsTArray<nsCString>& command, GtkWindow* parent, bool isParent,
2696  +            nsTArray<nsCString>* output );  +            nsTArray<nsCString>* output );
2697  +        FILE* commandFile;  +        FILE* commandFile;
2698  +        FILE* replyFile;  +        FILE* replyFile;
# Line 2639  new file mode 100644 Line 2702  new file mode 100644
2702  diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build  diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
2703  --- a/uriloader/exthandler/moz.build  --- a/uriloader/exthandler/moz.build
2704  +++ b/uriloader/exthandler/moz.build  +++ b/uriloader/exthandler/moz.build
2705  @@ -68,17 +68,19 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco  @@ -75,17 +75,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'ui
2706   else:   else:
2707       # These files can't be built in unified mode because they redefine LOG.       # These files can't be built in unified mode because they redefine LOG.
2708       SOURCES += [       SOURCES += [
# Line 2659  diff --git a/uriloader/exthandler/moz.bu Line 2722  diff --git a/uriloader/exthandler/moz.bu
2722           'android/nsExternalSharingAppService.cpp',           'android/nsExternalSharingAppService.cpp',
2723           'android/nsExternalURLHandlerService.cpp',           'android/nsExternalURLHandlerService.cpp',
2724           'android/nsMIMEInfoAndroid.cpp',           'android/nsMIMEInfoAndroid.cpp',
2725  @@ -123,16 +125,17 @@ include('/ipc/chromium/chromium-config.m  @@ -129,16 +131,17 @@ include('/ipc/chromium/chromium-config.m
2726    
2727   FINAL_LIBRARY = 'xul'   FINAL_LIBRARY = 'xul'
2728    
# Line 2681  diff --git a/uriloader/exthandler/unix/n Line 2744  diff --git a/uriloader/exthandler/unix/n
2744  new file mode 100644  new file mode 100644
2745  --- /dev/null  --- /dev/null
2746  +++ b/uriloader/exthandler/unix/nsCommonRegistry.cpp  +++ b/uriloader/exthandler/unix/nsCommonRegistry.cpp
2747  @@ -0,0 +1,54 @@  @@ -0,0 +1,53 @@
2748  +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */  +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2749  +/* This Source Code Form is subject to the terms of the Mozilla Public  +/* This Source Code Form is subject to the terms of the Mozilla Public
2750  + * License, v. 2.0. If a copy of the MPL was not distributed with this  + * License, v. 2.0. If a copy of the MPL was not distributed with this
# Line 2692  new file mode 100644 Line 2755  new file mode 100644
2755  +#include "nsGNOMERegistry.h"  +#include "nsGNOMERegistry.h"
2756  +#include "nsKDERegistry.h"  +#include "nsKDERegistry.h"
2757  +#include "nsString.h"  +#include "nsString.h"
 +#include "nsVoidArray.h"  
2758  +#include "nsKDEUtils.h"  +#include "nsKDEUtils.h"
2759  +  +
2760  +/* static */ bool  +/* static */ bool
# Line 2851  new file mode 100644 Line 2913  new file mode 100644
2913  +    if( nsKDEUtils::command( command, &output ) && output.Length() == 3 )  +    if( nsKDEUtils::command( command, &output ) && output.Length() == 3 )
2914  +        {  +        {
2915  +        nsCString mimetype = output[ 0 ];  +        nsCString mimetype = output[ 0 ];
2916  +        nsRefPtr<nsMIMEInfoUnix> mimeInfo = new nsMIMEInfoUnix( mimetype );  +        RefPtr<nsMIMEInfoUnix> mimeInfo = new nsMIMEInfoUnix( mimetype );
2917  +        NS_ENSURE_TRUE(mimeInfo, nullptr);  +        NS_ENSURE_TRUE(mimeInfo, nullptr);
2918  +        nsCString description = output[ 1 ];  +        nsCString description = output[ 1 ];
2919  +        mimeInfo->SetDescription(NS_ConvertUTF8toUTF16(description));  +        mimeInfo->SetDescription(NS_ConvertUTF8toUTF16(description));
# Line 2954  diff --git a/uriloader/exthandler/unix/n Line 3016  diff --git a/uriloader/exthandler/unix/n
3016  -    *_retval = nsGNOMERegistry::HandlerExists(mSchemeOrType.get());  -    *_retval = nsGNOMERegistry::HandlerExists(mSchemeOrType.get());
3017  +    *_retval = nsCommonRegistry::HandlerExists(mSchemeOrType.get());  +    *_retval = nsCommonRegistry::HandlerExists(mSchemeOrType.get());
3018     } else {     } else {
3019  -    nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);  -    RefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);
3020  +    nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType);  +    RefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType);
3021       if (!mimeInfo) {       if (!mimeInfo) {
3022         nsAutoCString ext;         nsAutoCString ext;
3023         nsresult rv = GetPrimaryExtension(ext);         nsresult rv = GetPrimaryExtension(ext);
# Line 3063  diff --git a/uriloader/exthandler/unix/n Line 3125  diff --git a/uriloader/exthandler/unix/n
3125    
3126   #ifdef MOZ_WIDGET_GTK   #ifdef MOZ_WIDGET_GTK
3127       LOG(("Looking in GNOME registry\n"));       LOG(("Looking in GNOME registry\n"));
3128       nsRefPtr<nsMIMEInfoBase> gnomeInfo =       RefPtr<nsMIMEInfoBase> gnomeInfo =
3129  -      nsGNOMERegistry::GetFromExtension(aFileExt);  -      nsGNOMERegistry::GetFromExtension(aFileExt);
3130  +      nsCommonRegistry::GetFromExtension(aFileExt);  +      nsCommonRegistry::GetFromExtension(aFileExt);
3131       if (gnomeInfo) {       if (gnomeInfo) {
# Line 3083  diff --git a/uriloader/exthandler/unix/n Line 3145  diff --git a/uriloader/exthandler/unix/n
3145    
3146   #ifdef MOZ_WIDGET_GTK   #ifdef MOZ_WIDGET_GTK
3147     if (handler.IsEmpty()) {     if (handler.IsEmpty()) {
3148  -    nsRefPtr<nsMIMEInfoBase> gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType);  -    RefPtr<nsMIMEInfoBase> gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType);
3149  +    nsRefPtr<nsMIMEInfoBase> gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType);  +    RefPtr<nsMIMEInfoBase> gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType);
3150       if (gnomeInfo) {       if (gnomeInfo) {
3151         LOG(("Got MIMEInfo from GNOME registry without extensions; setting them "         LOG(("Got MIMEInfo from GNOME registry without extensions; setting them "
3152              "to %s\n", NS_LossyConvertUTF16toASCII(extensions).get()));              "to %s\n", NS_LossyConvertUTF16toASCII(extensions).get()));
# Line 3096  diff --git a/uriloader/exthandler/unix/n Line 3158  diff --git a/uriloader/exthandler/unix/n
3158  diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build  diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
3159  --- a/widget/gtk/moz.build  --- a/widget/gtk/moz.build
3160  +++ b/widget/gtk/moz.build  +++ b/widget/gtk/moz.build
3161  @@ -79,16 +79,17 @@ else:  @@ -86,16 +86,17 @@ else:
3162   include('/ipc/chromium/chromium-config.mozbuild')   include('/ipc/chromium/chromium-config.mozbuild')
3163    
3164   FINAL_LIBRARY = 'xul'   FINAL_LIBRARY = 'xul'
# Line 3152  diff --git a/widget/gtk/nsFilePicker.cpp Line 3214  diff --git a/widget/gtk/nsFilePicker.cpp
3214   #define MAX_PREVIEW_SOURCE_SIZE 4096   #define MAX_PREVIEW_SOURCE_SIZE 4096
3215    
3216   nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr;   nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr;
3217  @@ -243,17 +245,19 @@ nsFilePicker::AppendFilters(int32_t aFil  @@ -246,17 +248,19 @@ nsFilePicker::AppendFilters(int32_t aFil
3218     return nsBaseFilePicker::AppendFilters(aFilterMask);     return nsBaseFilePicker::AppendFilters(aFilterMask);
3219   }   }
3220    
# Line 3173  diff --git a/widget/gtk/nsFilePicker.cpp Line 3235  diff --git a/widget/gtk/nsFilePicker.cpp
3235    
3236     mFilters.AppendElement(filter);     mFilters.AppendElement(filter);
3237     mFilterNames.AppendElement(name);     mFilterNames.AppendElement(name);
3238  @@ -368,16 +372,32 @@ nsFilePicker::Show(int16_t *aReturn)  @@ -371,16 +375,32 @@ nsFilePicker::Show(int16_t *aReturn)
3239    
3240   NS_IMETHODIMP   NS_IMETHODIMP
3241   nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)   nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
# Line 3206  diff --git a/widget/gtk/nsFilePicker.cpp Line 3268  diff --git a/widget/gtk/nsFilePicker.cpp
3268    
3269     GtkFileChooserAction action = GetGtkFileChooserAction(mMode);     GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
3270     const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE)     const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE)
3271  @@ -556,8 +576,235 @@ nsFilePicker::Done(GtkWidget* file_choos  @@ -595,8 +615,235 @@ nsFilePicker::Done(GtkWidget* file_choos
3272     if (mCallback) {     if (mCallback) {
3273       mCallback->Done(result);       mCallback->Done(result);
3274       mCallback = nullptr;       mCallback = nullptr;
# Line 3445  diff --git a/widget/gtk/nsFilePicker.cpp Line 3507  diff --git a/widget/gtk/nsFilePicker.cpp
3507  diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h  diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
3508  --- a/widget/gtk/nsFilePicker.h  --- a/widget/gtk/nsFilePicker.h
3509  +++ b/widget/gtk/nsFilePicker.h  +++ b/widget/gtk/nsFilePicker.h
3510  @@ -68,11 +68,17 @@ protected:  @@ -69,14 +69,20 @@ protected:
    nsString  mDefault;  
3511     nsString  mDefaultExtension;     nsString  mDefaultExtension;
3512    
3513     nsTArray<nsCString> mFilters;     nsTArray<nsCString> mFilters;
# Line 3454  diff --git a/widget/gtk/nsFilePicker.h b Line 3515  diff --git a/widget/gtk/nsFilePicker.h b
3515    
3516   private:   private:
3517     static nsIFile *mPrevDisplayDirectory;     static nsIFile *mPrevDisplayDirectory;
3518  +  
3519  +  bool kdeRunning();  +  bool kdeRunning();
3520  +  bool getKdeRunning();  +  bool getKdeRunning();
3521  +  NS_IMETHODIMP kdeFileDialog(PRInt16 *aReturn);  +  NS_IMETHODIMP kdeFileDialog(PRInt16 *aReturn);
3522  +  NS_IMETHODIMP kdeAppsDialog(PRInt16 *aReturn);  +  NS_IMETHODIMP kdeAppsDialog(PRInt16 *aReturn);
3523  +  nsCString kdeMakeFilter( int index );  +  nsCString kdeMakeFilter( int index );
3524    +
3525     #if (MOZ_WIDGET_GTK == 3)
3526       GtkFileChooserWidget *mFileChooserDelegate;
3527     #endif
3528   };   };
3529    
3530   #endif   #endif
3531  diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp  diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp
3532  --- a/xpcom/components/ManifestParser.cpp  --- a/xpcom/components/ManifestParser.cpp
3533  +++ b/xpcom/components/ManifestParser.cpp  +++ b/xpcom/components/ManifestParser.cpp
3534  @@ -34,16 +34,17 @@  @@ -35,16 +35,17 @@
3535    
3536   #include "nsIConsoleService.h"   #include "nsIConsoleService.h"
3537   #include "nsIScriptError.h"   #include "nsIScriptError.h"
# Line 3484  diff --git a/xpcom/components/ManifestPa Line 3549  diff --git a/xpcom/components/ManifestPa
3549   #define XPTONLY_MANIFEST nullptr   #define XPTONLY_MANIFEST nullptr
3550   #define XPTONLY_XPT nullptr   #define XPTONLY_XPT nullptr
3551   #endif   #endif
3552  @@ -489,16 +490,17 @@ ParseManifest(NSLocationType aType, File  @@ -494,16 +495,17 @@ ParseManifest(NSLocationType aType, File
3553     NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");     NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");
3554     NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");     NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");
3555     NS_NAMED_LITERAL_STRING(kApplication, "application");     NS_NAMED_LITERAL_STRING(kApplication, "application");
# Line 3502  diff --git a/xpcom/components/ManifestPa Line 3567  diff --git a/xpcom/components/ManifestPa
3567     NS_NAMED_LITERAL_STRING(kMain, "main");     NS_NAMED_LITERAL_STRING(kMain, "main");
3568     NS_NAMED_LITERAL_STRING(kContent, "content");     NS_NAMED_LITERAL_STRING(kContent, "content");
3569    
3570  @@ -549,44 +551,49 @@ ParseManifest(NSLocationType aType, File  @@ -554,44 +556,49 @@ ParseManifest(NSLocationType aType, File
3571           CopyUTF8toUTF16(s, abi);           CopyUTF8toUTF16(s, abi);
3572           abi.Insert(char16_t('_'), 0);           abi.Insert(char16_t('_'), 0);
3573           abi.Insert(osTarget, 0);           abi.Insert(osTarget, 0);
# Line 3526  diff --git a/xpcom/components/ManifestPa Line 3591  diff --git a/xpcom/components/ManifestPa
3591   #elif defined(MOZ_WIDGET_COCOA)   #elif defined(MOZ_WIDGET_COCOA)
3592     SInt32 majorVersion = nsCocoaFeatures::OSXVersionMajor();     SInt32 majorVersion = nsCocoaFeatures::OSXVersionMajor();
3593     SInt32 minorVersion = nsCocoaFeatures::OSXVersionMinor();     SInt32 minorVersion = nsCocoaFeatures::OSXVersionMinor();
3594     nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(),     nsTextFormatter::ssprintf(osVersion, MOZ_UTF16("%ld.%ld"),
3595                               majorVersion,                               majorVersion,
3596                               minorVersion);                               minorVersion);
3597  +  desktop = NS_LITERAL_STRING("macosx");  +  desktop = NS_LITERAL_STRING("macosx");
# Line 3546  diff --git a/xpcom/components/ManifestPa Line 3611  diff --git a/xpcom/components/ManifestPa
3611  +  desktop = NS_LITERAL_STRING("android");  +  desktop = NS_LITERAL_STRING("android");
3612   #endif   #endif
3613    
3614     if (XRE_GetProcessType() == GeckoProcessType_Content) {     if (XRE_IsContentProcess()) {
3615       process = kContent;       process = kContent;
3616     } else {     } else {
3617       process = kMain;       process = kMain;
3618     }     }
3619    
3620  @@ -681,25 +688,27 @@ ParseManifest(NSLocationType aType, File  @@ -694,25 +701,27 @@ ParseManifest(NSLocationType aType, File
3621       TriState stOsVersion = eUnspecified;       TriState stOsVersion = eUnspecified;
3622       TriState stOs = eUnspecified;       TriState stOs = eUnspecified;
3623       TriState stABI = eUnspecified;       TriState stABI = eUnspecified;
# Line 3580  diff --git a/xpcom/components/ManifestPa Line 3645  diff --git a/xpcom/components/ManifestPa
3645         }         }
3646    
3647   #if defined(MOZ_WIDGET_ANDROID)   #if defined(MOZ_WIDGET_ANDROID)
3648  @@ -749,16 +758,17 @@ ParseManifest(NSLocationType aType, File  @@ -762,16 +771,17 @@ ParseManifest(NSLocationType aType, File
3649       }       }
3650    
3651       if (!ok ||       if (!ok ||
# Line 3601  diff --git a/xpcom/components/ManifestPa Line 3666  diff --git a/xpcom/components/ManifestPa
3666  diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build  diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
3667  --- a/xpcom/components/moz.build  --- a/xpcom/components/moz.build
3668  +++ b/xpcom/components/moz.build  +++ b/xpcom/components/moz.build
3669  @@ -48,12 +48,13 @@ FINAL_LIBRARY = 'xul'  @@ -47,12 +47,13 @@ FINAL_LIBRARY = 'xul'
  GENERATED_INCLUDES += ['..']  
3670   LOCAL_INCLUDES += [   LOCAL_INCLUDES += [
3671         '!..',
3672       '../base',       '../base',
3673       '../build',       '../build',
3674       '../ds',       '../ds',
# Line 3618  diff --git a/xpcom/components/moz.build Line 3683  diff --git a/xpcom/components/moz.build
3683  diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp  diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
3684  --- a/xpcom/io/nsLocalFileUnix.cpp  --- a/xpcom/io/nsLocalFileUnix.cpp
3685  +++ b/xpcom/io/nsLocalFileUnix.cpp  +++ b/xpcom/io/nsLocalFileUnix.cpp
3686  @@ -44,16 +44,17 @@  @@ -47,16 +47,17 @@
3687   #include "prproces.h"   #include "prproces.h"
3688   #include "nsIDirectoryEnumerator.h"   #include "nsIDirectoryEnumerator.h"
3689   #include "nsISimpleEnumerator.h"   #include "nsISimpleEnumerator.h"
# Line 3636  diff --git a/xpcom/io/nsLocalFileUnix.cp Line 3701  diff --git a/xpcom/io/nsLocalFileUnix.cp
3701   #include "prmem.h"   #include "prmem.h"
3702   #include "plbase64.h"   #include "plbase64.h"
3703    
3704  @@ -1964,42 +1965,52 @@ nsLocalFile::SetPersistentDescriptor(con  @@ -1963,42 +1964,52 @@ nsLocalFile::SetPersistentDescriptor(con
3705     return InitWithNativePath(aPersistentDescriptor);     return InitWithNativePath(aPersistentDescriptor);
3706   #endif   #endif
3707   }   }
# Line 3695  diff --git a/xpcom/io/nsLocalFileUnix.cp Line 3760  diff --git a/xpcom/io/nsLocalFileUnix.cp
3760       return rv;       return rv;
3761     }     }
3762     return NS_ERROR_FAILURE;     return NS_ERROR_FAILURE;
3763  @@ -2007,16 +2018,22 @@ nsLocalFile::Reveal()  @@ -2006,16 +2017,22 @@ nsLocalFile::Reveal()
3764     return NS_ERROR_FAILURE;     return NS_ERROR_FAILURE;
3765   #endif   #endif
3766   }   }

Legend:
Removed from v.1050410  
changed lines
  Added in v.1050411

  ViewVC Help
Powered by ViewVC 1.1.30