mozilla-kde.patch
changeset 686 ab25aac2aa83
parent 680 be770d3cbc02
child 691 18c2dc922e51
equal deleted inserted replaced
680:be770d3cbc02 686:ab25aac2aa83
     5      https://bugzilla.novell.com/show_bug.cgi?id=170055
     5      https://bugzilla.novell.com/show_bug.cgi?id=170055
     6 
     6 
     7 diff --git a/modules/libpref/src/Makefile.in b/modules/libpref/src/Makefile.in
     7 diff --git a/modules/libpref/src/Makefile.in b/modules/libpref/src/Makefile.in
     8 --- a/modules/libpref/src/Makefile.in
     8 --- a/modules/libpref/src/Makefile.in
     9 +++ b/modules/libpref/src/Makefile.in
     9 +++ b/modules/libpref/src/Makefile.in
    10 @@ -49,14 +49,15 @@ endif
    10 @@ -35,14 +35,15 @@ endif
    11  # Optimizer bug with GCC 3.2.2 on OS/2
    11  # Optimizer bug with GCC 3.2.2 on OS/2
    12  ifeq ($(OS_ARCH), OS2)
    12  ifeq ($(OS_ARCH), OS2)
    13  nsPrefService.$(OBJ_SUFFIX): nsPrefService.cpp
    13  nsPrefService.$(OBJ_SUFFIX): nsPrefService.cpp
    14  	$(REPORT_BUILD)
    14  	$(REPORT_BUILD)
    15  	@$(MAKE_DEPS_AUTO_CXX)
    15  	@$(MAKE_DEPS_AUTO_CXX)
    24  libs:: greprefs.js
    24  libs:: greprefs.js
    25  	$(INSTALL) $^ $(DIST)/bin/
    25  	$(INSTALL) $^ $(DIST)/bin/
    26 diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferences.cpp
    26 diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferences.cpp
    27 --- a/modules/libpref/src/Preferences.cpp
    27 --- a/modules/libpref/src/Preferences.cpp
    28 +++ b/modules/libpref/src/Preferences.cpp
    28 +++ b/modules/libpref/src/Preferences.cpp
    29 @@ -24,16 +24,17 @@
    29 @@ -26,16 +26,17 @@
    30  #include "nsIStringEnumerator.h"
       
    31  #include "nsIZipReader.h"
    30  #include "nsIZipReader.h"
    32  #include "nsPrefBranch.h"
    31  #include "nsPrefBranch.h"
    33  #include "nsXPIDLString.h"
    32  #include "nsXPIDLString.h"
    34  #include "nsCRT.h"
    33  #include "nsCRT.h"
    35  #include "nsCOMArray.h"
    34  #include "nsCOMArray.h"
    36  #include "nsXPCOMCID.h"
    35  #include "nsXPCOMCID.h"
    37  #include "nsAutoPtr.h"
    36  #include "nsAutoPtr.h"
       
    37  #include "nsPrintfCString.h"
    38 +#include "nsKDEUtils.h"
    38 +#include "nsKDEUtils.h"
    39  
    39  
    40  #include "nsQuickSort.h"
    40  #include "nsQuickSort.h"
    41  #include "pldhash.h"
    41  #include "pldhash.h"
    42  
    42  
    43  #include "prefapi.h"
    43  #include "prefapi.h"
    44  #include "prefread.h"
    44  #include "prefread.h"
    45  #include "prefapi_private_data.h"
    45  #include "prefapi_private_data.h"
    46  
    46  
    47 @@ -973,16 +974,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
    47 @@ -1098,16 +1099,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
    48  
    48  
    49  static nsresult pref_LoadPrefsInDirList(const char *listId)
    49  static nsresult pref_LoadPrefsInDirList(const char *listId)
    50  {
    50  {
    51    nsresult rv;
    51    nsresult rv;
    52    nsCOMPtr<nsIProperties> dirSvc(do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv));
    52    nsCOMPtr<nsIProperties> dirSvc(do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv));
    77                getter_AddRefs(list));
    77                getter_AddRefs(list));
    78    if (!list)
    78    if (!list)
    79      return NS_OK;
    79      return NS_OK;
    80  
    80  
    81    bool hasMore;
    81    bool hasMore;
    82 @@ -998,17 +1017,17 @@ static nsresult pref_LoadPrefsInDirList(
    82 @@ -1123,17 +1142,17 @@ static nsresult pref_LoadPrefsInDirList(
    83  
    83  
    84      nsAutoCString leaf;
    84      nsAutoCString leaf;
    85      path->GetNativeLeafName(leaf);
    85      path->GetNativeLeafName(leaf);
    86  
    86  
    87      // Do we care if a file provided by this process fails to load?
    87      // Do we care if a file provided by this process fails to load?
    96  
    96  
    97  static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name)
    97  static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name)
    98  {
    98  {
    99    nsZipItemPtr<char> manifest(jarReader, name, true);
    99    nsZipItemPtr<char> manifest(jarReader, name, true);
   100    NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
   100    NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
   101 @@ -1102,28 +1121,40 @@ static nsresult pref_InitInitialObjects(
   101 @@ -1227,28 +1246,40 @@ static nsresult pref_InitInitialObjects(
   102    /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
   102    /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
   103    static const char* specialFiles[] = {
   103    static const char* specialFiles[] = {
   104  #if defined(XP_MACOSX)
   104  #if defined(XP_MACOSX)
   105      "macprefs.js"
   105      "macprefs.js"
   106  #elif defined(XP_WIN)
   106  #elif defined(XP_WIN)
   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/Makefile.in b/toolkit/components/downloads/Makefile.in
   184 diff --git a/toolkit/components/downloads/Makefile.in b/toolkit/components/downloads/Makefile.in
   185 --- a/toolkit/components/downloads/Makefile.in
   185 --- a/toolkit/components/downloads/Makefile.in
   186 +++ b/toolkit/components/downloads/Makefile.in
   186 +++ b/toolkit/components/downloads/Makefile.in
   187 @@ -11,13 +11,15 @@ VPATH = @srcdir@
   187 @@ -4,9 +4,10 @@
   188  include $(DEPTH)/config/autoconf.mk
   188  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
   189  
       
   190  LIBRARY_NAME = download_s
       
   191  LIBXUL_LIBRARY = 1
       
   192  FAIL_ON_WARNINGS = 1
       
   193  
   189  
   194  include $(topsrcdir)/config/rules.mk
   190  include $(topsrcdir)/config/rules.mk
   195  
   191  
   196 +
       
   197  CXXFLAGS += $(TK_CFLAGS) -DGOOGLE_PROTOBUF_NO_RTTI
   192  CXXFLAGS += $(TK_CFLAGS) -DGOOGLE_PROTOBUF_NO_RTTI
   198  
   193  
   199  LOCAL_INCLUDES += \
   194  LOCAL_INCLUDES += \
   200    -I$(srcdir)/../protobuf \
   195    -I$(srcdir)/../protobuf \
   201 +  -I$(topsrcdir)/toolkit/xre \
   196 +  -I$(topsrcdir)/toolkit/xre \
   202    $(NULL)
   197    $(NULL)
   203 diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp
   198 diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp
   204 --- a/toolkit/components/downloads/nsDownloadManager.cpp
   199 --- a/toolkit/components/downloads/nsDownloadManager.cpp
   205 +++ b/toolkit/components/downloads/nsDownloadManager.cpp
   200 +++ b/toolkit/components/downloads/nsDownloadManager.cpp
   206 @@ -38,16 +38,20 @@
   201 @@ -41,16 +41,20 @@
   207  
       
   208  #ifdef XP_WIN
   202  #ifdef XP_WIN
   209  #include <shlobj.h>
   203  #include <shlobj.h>
       
   204  #include "nsWindowsHelpers.h"
   210  #ifdef DOWNLOAD_SCANNER
   205  #ifdef DOWNLOAD_SCANNER
   211  #include "nsDownloadScanner.h"
   206  #include "nsDownloadScanner.h"
   212  #endif
   207  #endif
   213  #endif
   208  #endif
   214  
   209  
   222  
   217  
   223  #ifdef MOZ_WIDGET_ANDROID
   218  #ifdef MOZ_WIDGET_ANDROID
   224  #include "AndroidBridge.h"
   219  #include "AndroidBridge.h"
   225  #endif
   220  #endif
   226  
   221  
   227 @@ -2609,16 +2613,25 @@ nsDownload::SetState(DownloadState aStat
   222 @@ -2686,16 +2690,25 @@ nsDownload::SetState(DownloadState aStat
   228        nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
   223        nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
   229  
   224  
   230        // Master pref to control this function.
   225        // Master pref to control this function.
   231        bool showTaskbarAlert = true;
   226        bool showTaskbarAlert = true;
   232        if (pref)
   227        if (pref)
   248  
   243  
   249          int64_t alertIntervalUSec = alertInterval * PR_USEC_PER_MSEC;
   244          int64_t alertIntervalUSec = alertInterval * PR_USEC_PER_MSEC;
   250          int64_t goat = PR_Now() - mStartTime;
   245          int64_t goat = PR_Now() - mStartTime;
   251          showTaskbarAlert = goat > alertIntervalUSec;
   246          showTaskbarAlert = goat > alertIntervalUSec;
   252  
   247  
   253 @@ -2645,19 +2658,20 @@ nsDownload::SetState(DownloadState aStat
   248 @@ -2722,19 +2735,20 @@ nsDownload::SetState(DownloadState aStat
   254                // retention policy, there's no reason to make the text clickable
   249                // retention policy, there's no reason to make the text clickable
   255                // because if it is, they'll click open the download manager and
   250                // because if it is, they'll click open the download manager and
   256                // the items they downloaded will have been removed.
   251                // the items they downloaded will have been removed.
   257                alerts->ShowAlertNotification(
   252                alerts->ShowAlertNotification(
   258                    NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title,
   253                    NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title,
   263 +          }
   258 +          }
   264          }
   259          }
   265        }
   260        }
   266 +      }
   261 +      }
   267  
   262  
   268  #if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_ANDROID) || defined(MOZ_WIDGET_GTK2)
   263  #if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_ANDROID) || defined(MOZ_WIDGET_GTK)
   269        nsCOMPtr<nsIFileURL> fileURL = do_QueryInterface(mTarget);
   264        nsCOMPtr<nsIFileURL> fileURL = do_QueryInterface(mTarget);
   270        nsCOMPtr<nsIFile> file;
   265        nsCOMPtr<nsIFile> file;
   271        nsAutoString path;
   266        nsAutoString path;
   272  
   267  
   273        if (fileURL &&
   268        if (fileURL &&
   274            NS_SUCCEEDED(fileURL->GetFile(getter_AddRefs(file))) &&
   269            NS_SUCCEEDED(fileURL->GetFile(getter_AddRefs(file))) &&
   275 diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
   270 diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
   276 --- a/toolkit/content/jar.mn
   271 --- a/toolkit/content/jar.mn
   277 +++ b/toolkit/content/jar.mn
   272 +++ b/toolkit/content/jar.mn
   278 @@ -50,29 +50,33 @@ toolkit.jar:
   273 @@ -53,29 +53,33 @@ toolkit.jar:
   279     content/global/viewZoomOverlay.js          (viewZoomOverlay.js)
   274     content/global/viewZoomOverlay.js          (viewZoomOverlay.js)
   280  *+ content/global/bindings/autocomplete.xml    (widgets/autocomplete.xml)
   275  *+ content/global/bindings/autocomplete.xml    (widgets/autocomplete.xml)
   281     content/global/bindings/browser.xml         (widgets/browser.xml)
   276     content/global/bindings/browser.xml         (widgets/browser.xml)
   282     content/global/bindings/button.xml          (widgets/button.xml)
   277     content/global/bindings/button.xml          (widgets/button.xml)
   283     content/global/bindings/checkbox.xml        (widgets/checkbox.xml)
   278     content/global/bindings/checkbox.xml        (widgets/checkbox.xml)
   767 +</bindings>
   762 +</bindings>
   768 diff --git a/toolkit/content/widgets/preferences-kde.xml b/toolkit/content/widgets/preferences-kde.xml
   763 diff --git a/toolkit/content/widgets/preferences-kde.xml b/toolkit/content/widgets/preferences-kde.xml
   769 new file mode 100644
   764 new file mode 100644
   770 --- /dev/null
   765 --- /dev/null
   771 +++ b/toolkit/content/widgets/preferences-kde.xml
   766 +++ b/toolkit/content/widgets/preferences-kde.xml
   772 @@ -0,0 +1,1339 @@
   767 @@ -0,0 +1,1332 @@
   773 +<?xml version="1.0"?>
   768 +<?xml version="1.0"?>
   774 +
   769 +
   775 +<!DOCTYPE bindings [
   770 +<!DOCTYPE bindings [
   776 +  <!ENTITY % preferencesDTD SYSTEM "chrome://global/locale/preferences.dtd">
   771 +  <!ENTITY % preferencesDTD SYSTEM "chrome://global/locale/preferences.dtd">
   777 +  %preferencesDTD;
   772 +  %preferencesDTD;
  1353 +        <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
  1348 +        <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
  1354 +        <xul:spacer anonid="spacer" flex="1"/>
  1349 +        <xul:spacer anonid="spacer" flex="1"/>
  1355 +        <xul:button dlgtype="cancel" class="dialog-button" icon="cancel"/>
  1350 +        <xul:button dlgtype="cancel" class="dialog-button" icon="cancel"/>
  1356 +        <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
  1351 +        <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
  1357 +#elif XP_UNIX
  1352 +#elif XP_UNIX
  1358 +                pack="end">
  1353 +	        pack="end">
  1359 +	<xul:button dlgtype="help" class="dialog-button" hidden="true" icon="help"/>
  1354 +        <xul:button dlgtype="help" class="dialog-button" hidden="true" icon="help"/>
  1360 +	<xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
  1355 +        <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
  1361 +	<xul:spacer anonid="spacer" flex="1"/>
  1356 +        <xul:spacer anonid="spacer" flex="1"/>
  1362 +	<xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
  1357 +        <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
  1363 +	<xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
  1358 +        <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
  1364 +	<xul:button dlgtype="cancel" class="dialog-button" icon="cancel"/>
  1359 +        <xul:button dlgtype="cancel" class="dialog-button" icon="cancel"/>
  1365 +	<xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
  1360 +        <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
       
  1361 +	
  1366 +#else
  1362 +#else
  1367 +                pack="end">
  1363 +                pack="end">
  1368 +        <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
  1364 +        <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
  1369 +        <xul:spacer anonid="spacer" flex="1"/>
  1365 +        <xul:spacer anonid="spacer" flex="1"/>
  1370 +        <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
  1366 +        <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
  1509 +          if (!aPaneElement)
  1505 +          if (!aPaneElement)
  1510 +            return;
  1506 +            return;
  1511 +
  1507 +
  1512 +          this._selector.selectedItem = document.getAnonymousElementByAttribute(this, "pane", aPaneElement.id);
  1508 +          this._selector.selectedItem = document.getAnonymousElementByAttribute(this, "pane", aPaneElement.id);
  1513 +          if (!aPaneElement.loaded) {
  1509 +          if (!aPaneElement.loaded) {
  1514 +            function OverlayLoadObserver(aPane)
  1510 +            let OverlayLoadObserver = function(aPane)
  1515 +            {
  1511 +            {
  1516 +              this._pane = aPane;
  1512 +              this._pane = aPane;
  1517 +            }
  1513 +            }
  1518 +            OverlayLoadObserver.prototype = { 
  1514 +            OverlayLoadObserver.prototype = { 
  1519 +              _outer: this,
  1515 +              _outer: this,
  2071 +      ]]>      
  2067 +      ]]>      
  2072 +      </handler>
  2068 +      </handler>
  2073 +    </handlers>
  2069 +    </handlers>
  2074 +  </binding>
  2070 +  </binding>
  2075 +          
  2071 +          
  2076 +  <binding id="panebutton" extends="chrome://global/content/bindings/radio.xml#radio">
  2072 +  <binding id="panebutton" role="xul:listitem"
       
  2073 +           extends="chrome://global/content/bindings/radio.xml#radio">
  2077 +    <resources>
  2074 +    <resources>
  2078 +      <stylesheet src="chrome://global/skin/preferences.css"/>
  2075 +      <stylesheet src="chrome://global/skin/preferences.css"/>
  2079 +    </resources>
  2076 +    </resources>
  2080 +    <content>
  2077 +    <content>
  2081 +      <xul:image class="paneButtonIcon" xbl:inherits="src"/>
  2078 +      <xul:image class="paneButtonIcon" xbl:inherits="src"/>
  2082 +      <xul:label class="paneButtonLabel" xbl:inherits="value=label"/>
  2079 +      <xul:label class="paneButtonLabel" xbl:inherits="value=label"/>
  2083 +    </content>
  2080 +    </content>
  2084 +    <implementation implements="nsIAccessible">
       
  2085 +      <property name="accessibleType" readonly="true">
       
  2086 +        <getter>
       
  2087 +          <![CDATA[
       
  2088 +            return Components.interfaces.nsIAccessibleProvider.XULListitem;
       
  2089 +          ]]>
       
  2090 +        </getter>
       
  2091 +      </property>
       
  2092 +    </implementation>
       
  2093 +  </binding>
  2081 +  </binding>
  2094 +
  2082 +
  2095 +</bindings>
  2083 +</bindings>
  2096 +
  2084 +
  2097 +# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  2085 +# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  2127  class nsUnixSystemProxySettings MOZ_FINAL : public nsISystemProxySettings {
  2115  class nsUnixSystemProxySettings MOZ_FINAL : public nsISystemProxySettings {
  2128  public:
  2116  public:
  2129    NS_DECL_ISUPPORTS
  2117    NS_DECL_ISUPPORTS
  2130    NS_DECL_NSISYSTEMPROXYSETTINGS
  2118    NS_DECL_NSISYSTEMPROXYSETTINGS
  2131  
  2119  
  2132    nsUnixSystemProxySettings() {}
  2120    nsUnixSystemProxySettings()
  2133    nsresult Init();
  2121      : mSchemeProxySettings(5)
  2134 @@ -35,16 +37,17 @@ private:
  2122 @@ -38,16 +40,17 @@ private:
  2135    nsCOMPtr<nsIGSettingsService> mGSettings;
  2123    nsCOMPtr<nsIGSettingsService> mGSettings;
  2136    nsCOMPtr<nsIGSettingsCollection> mProxySettings;
  2124    nsCOMPtr<nsIGSettingsCollection> mProxySettings;
  2137    nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings;
  2125    nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings;
  2138    bool IsProxyMode(const char* aMode);
  2126    bool IsProxyMode(const char* aMode);
  2139    nsresult SetProxyResultFromGConf(const char* aKeyBase, const char* aType, nsACString& aResult);
  2127    nsresult SetProxyResultFromGConf(const char* aKeyBase, const char* aType, nsACString& aResult);
  2147  
  2135  
  2148  NS_IMETHODIMP
  2136  NS_IMETHODIMP
  2149  nsUnixSystemProxySettings::GetMainThreadOnly(bool *aMainThreadOnly)
  2137  nsUnixSystemProxySettings::GetMainThreadOnly(bool *aMainThreadOnly)
  2150  {
  2138  {
  2151    // dbus prevents us from being threadsafe, but this routine should not block anyhow
  2139    // dbus prevents us from being threadsafe, but this routine should not block anyhow
  2152 @@ -496,16 +499,19 @@ nsUnixSystemProxySettings::GetProxyFromG
  2140 @@ -498,16 +501,19 @@ nsUnixSystemProxySettings::GetProxyFromG
  2153  
  2141  
  2154  nsresult
  2142  nsresult
  2155  nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec,
  2143  nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec,
  2156                                            const nsACString & aScheme,
  2144                                            const nsACString & aScheme,
  2157                                            const nsACString & aHost,
  2145                                            const nsACString & aHost,
  2167        return rv;
  2155        return rv;
  2168    }
  2156    }
  2169    if (mGConf)
  2157    if (mGConf)
  2170      return GetProxyFromGConf(aScheme, aHost, aPort, aResult);
  2158      return GetProxyFromGConf(aScheme, aHost, aPort, aResult);
  2171  
  2159  
  2172 @@ -531,8 +537,34 @@ static const mozilla::Module::ContractID
  2160 @@ -533,8 +539,34 @@ static const mozilla::Module::ContractID
  2173  
  2161  
  2174  static const mozilla::Module kUnixProxyModule = {
  2162  static const mozilla::Module kUnixProxyModule = {
  2175    mozilla::Module::kVersion,
  2163    mozilla::Module::kVersion,
  2176    kUnixProxyCIDs,
  2164    kUnixProxyCIDs,
  2177    kUnixProxyContracts
  2165    kUnixProxyContracts
  2205 +}
  2193 +}
  2206 +
  2194 +
  2207 diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
  2195 diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
  2208 --- a/toolkit/xre/moz.build
  2196 --- a/toolkit/xre/moz.build
  2209 +++ b/toolkit/xre/moz.build
  2197 +++ b/toolkit/xre/moz.build
  2210 @@ -38,18 +38,20 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt
  2198 @@ -44,18 +44,20 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt
  2211          'nsNativeAppSupportQt.cpp',
  2199          'nsNativeAppSupportQt.cpp',
  2212          'nsQAppInstance.cpp',
  2200          'nsQAppInstance.cpp',
  2213      ]
  2201      ]
  2214  elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'os2':
  2202  elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'os2':
  2215      CPP_SOURCES += [
  2203      CPP_SOURCES += [
  2626 +
  2614 +
  2627 +#endif // nsKDEUtils
  2615 +#endif // nsKDEUtils
  2628 diff --git a/uriloader/exthandler/Makefile.in b/uriloader/exthandler/Makefile.in
  2616 diff --git a/uriloader/exthandler/Makefile.in b/uriloader/exthandler/Makefile.in
  2629 --- a/uriloader/exthandler/Makefile.in
  2617 --- a/uriloader/exthandler/Makefile.in
  2630 +++ b/uriloader/exthandler/Makefile.in
  2618 +++ b/uriloader/exthandler/Makefile.in
  2631 @@ -77,9 +77,10 @@ endif
  2619 @@ -45,9 +45,10 @@ ifdef MOZ_ENABLE_DBUS
       
  2620  LOCAL_INCLUDES   += $(TK_CFLAGS) $(MOZ_DBUS_CFLAGS)
  2632  endif
  2621  endif
  2633  
  2622  
  2634  include $(topsrcdir)/config/config.mk
       
  2635  include $(topsrcdir)/config/rules.mk
  2623  include $(topsrcdir)/config/rules.mk
  2636  include $(topsrcdir)/ipc/chromium/chromium-config.mk
  2624  include $(topsrcdir)/ipc/chromium/chromium-config.mk
  2637  
  2625  
  2638  ifneq (,$(filter qt gtk2 gtk3, $(MOZ_WIDGET_TOOLKIT)))
  2626  ifneq (,$(filter qt gtk2 gtk3, $(MOZ_WIDGET_TOOLKIT)))
  2639  CXXFLAGS += $(TK_CFLAGS) $(MOZ_DBUS_GLIB_CFLAGS)
  2627  CXXFLAGS += $(TK_CFLAGS) $(MOZ_DBUS_GLIB_CFLAGS)
  2640 +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
  2628 +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
  2641  endif
  2629  endif
  2642 diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
  2630 diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
  2643 --- a/uriloader/exthandler/moz.build
  2631 --- a/uriloader/exthandler/moz.build
  2644 +++ b/uriloader/exthandler/moz.build
  2632 +++ b/uriloader/exthandler/moz.build
  2645 @@ -68,16 +68,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
  2633 @@ -73,16 +73,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
  2646      pass
  2634      ]
  2647  else:
  2635  else:
  2648      CPP_SOURCES += [
  2636      CPP_SOURCES += [
  2649          'nsOSHelperAppService.cpp',
  2637          'nsOSHelperAppService.cpp',
  2650      ]
  2638      ]
  2651  
  2639  
  2876 +
  2864 +
  2877 +};
  2865 +};
  2878 diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
  2866 diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
  2879 --- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
  2867 --- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
  2880 +++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
  2868 +++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
  2881 @@ -16,30 +16,33 @@
  2869 @@ -10,30 +10,33 @@
  2882  #include <QString>
  2870  #include <QString>
  2883  #if (MOZ_ENABLE_CONTENTACTION)
  2871  #if (MOZ_ENABLE_CONTENTACTION)
  2884  #include <contentaction/contentaction.h>
  2872  #include <contentaction/contentaction.h>
  2885  #include "nsContentHandlerApp.h"
  2873  #include "nsContentHandlerApp.h"
  2886  #endif
  2874  #endif
  2905  nsMIMEInfoUnix::LoadUriInternal(nsIURI * aURI)
  2893  nsMIMEInfoUnix::LoadUriInternal(nsIURI * aURI)
  2906  {
  2894  {
  2907 -  nsresult rv = nsGNOMERegistry::LoadURL(aURI);
  2895 -  nsresult rv = nsGNOMERegistry::LoadURL(aURI);
  2908 +  nsresult rv = nsCommonRegistry::LoadURL(aURI);
  2896 +  nsresult rv = nsCommonRegistry::LoadURL(aURI);
  2909  
  2897  
  2910  #if (MOZ_PLATFORM_MAEMO == 5) && defined (MOZ_ENABLE_GNOMEVFS)
  2898  #ifdef MOZ_WIDGET_QT
  2911    if (NS_FAILED(rv)){
  2899    if (NS_FAILED(rv)) {
  2912      HildonURIAction *action = hildon_uri_get_default_action(mSchemeOrType.get(), nullptr);
  2900      nsAutoCString spec;
  2913      if (action) {
  2901      aURI->GetAsciiSpec(spec);
  2914        nsAutoCString spec;
  2902      if (QDesktopServices::openUrl(QUrl(spec.get()))) {
  2915        aURI->GetAsciiSpec(spec);
  2903        rv = NS_OK;
  2916        if (hildon_uri_open(spec.get(), action, nullptr))
  2904      }
  2917 @@ -67,22 +70,22 @@ nsMIMEInfoUnix::GetHasDefaultHandler(boo
  2905 @@ -48,22 +51,22 @@ nsMIMEInfoUnix::GetHasDefaultHandler(boo
  2918  {
  2906  {
  2919    // if mDefaultApplication is set, it means the application has been set from
  2907    // if mDefaultApplication is set, it means the application has been set from
  2920    // either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to
  2908    // either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to
  2921    // give the GNOME answer.
  2909    // give the GNOME answer.
  2922    if (mDefaultApplication)
  2910    if (mDefaultApplication)
  2937      *_retval = true;
  2925      *_retval = true;
  2938  
  2926  
  2939    if (*_retval)
  2927    if (*_retval)
  2940      return NS_OK;
  2928      return NS_OK;
  2941  
  2929  
  2942 @@ -130,16 +133,33 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
  2930 @@ -97,16 +100,33 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
  2943      ContentAction::Action::defaultActionForFile(uri, QString(mSchemeOrType.get()));
  2931      ContentAction::Action::defaultActionForFile(uri, QString(mSchemeOrType.get()));
  2944    if (action.isValid()) {
  2932    if (action.isValid()) {
  2945      action.trigger();
  2933      action.trigger();
  2946      return NS_OK;
  2934      return NS_OK;
  2947    }
  2935    }
  2971      // nsGIOMimeApp->Launch wants a URI string instead of local file
  2959      // nsGIOMimeApp->Launch wants a URI string instead of local file
  2972      nsresult rv;
  2960      nsresult rv;
  2973      nsCOMPtr<nsIIOService> ioservice = do_GetService(NS_IOSERVICE_CONTRACTID, &rv);
  2961      nsCOMPtr<nsIIOService> ioservice = do_GetService(NS_IOSERVICE_CONTRACTID, &rv);
  2974      NS_ENSURE_SUCCESS(rv, rv);
  2962      NS_ENSURE_SUCCESS(rv, rv);
  2975      nsCOMPtr<nsIURI> uri;
  2963      nsCOMPtr<nsIURI> uri;
  2976 @@ -157,17 +177,17 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
  2964 @@ -124,17 +144,17 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
  2977      /* Fallback to GnomeVFS */
  2965      /* Fallback to GnomeVFS */
  2978      nsCOMPtr<nsIGnomeVFSMimeApp> app;
  2966      nsCOMPtr<nsIGnomeVFSMimeApp> app;
  2979      if (NS_SUCCEEDED(gnomevfs->GetAppForMimeType(mSchemeOrType, getter_AddRefs(app))) && app)
  2967      if (NS_SUCCEEDED(gnomevfs->GetAppForMimeType(mSchemeOrType, getter_AddRefs(app))) && app)
  2980        return app->Launch(nativePath);
  2968        return app->Launch(nativePath);
  2981    }
  2969    }
  3012  #include "nsReadableUtils.h"
  3000  #include "nsReadableUtils.h"
  3013  #include "nsUnicharUtils.h"
  3001  #include "nsUnicharUtils.h"
  3014  #include "nsXPIDLString.h"
  3002  #include "nsXPIDLString.h"
  3015  #include "nsIURL.h"
  3003  #include "nsIURL.h"
  3016  #include "nsIFileStreams.h"
  3004  #include "nsIFileStreams.h"
  3017 @@ -1157,29 +1157,29 @@ nsresult nsOSHelperAppService::OSProtoco
  3005 @@ -1157,26 +1157,26 @@ nsresult nsOSHelperAppService::OSProtoco
  3018      ContentAction::Action::defaultActionForScheme(QString(aProtocolScheme) + ':');
  3006      ContentAction::Action::defaultActionForScheme(QString(aProtocolScheme) + ':');
  3019  
  3007  
  3020    if (action.isValid())
  3008    if (action.isValid())
  3021      *aHandlerExists = true;
  3009      *aHandlerExists = true;
  3022  #endif
  3010  #endif
  3023  
  3011  
  3024  #ifdef MOZ_WIDGET_GTK
  3012  #ifdef MOZ_WIDGET_GTK
  3025    // Check the GConf registry for a protocol handler
  3013    // Check the GConf registry for a protocol handler
  3026 -  *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme);
  3014 -  *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme);
  3027 +  *aHandlerExists = nsCommonRegistry::HandlerExists(aProtocolScheme);
  3015 +  *aHandlerExists = nsCommonRegistry::HandlerExists(aProtocolScheme);
  3028  #if (MOZ_PLATFORM_MAEMO == 5) && defined (MOZ_ENABLE_GNOMEVFS)
       
  3029    *aHandlerExists = nsMIMEInfoUnix::HandlerExists(aProtocolScheme);
       
  3030  #endif
       
  3031  #endif
  3016  #endif
  3032  
  3017  
  3033    return NS_OK;
  3018    return NS_OK;
  3034  }
  3019  }
  3035  
  3020  
  3044  #endif
  3029  #endif
  3045  }
  3030  }
  3046  
  3031  
  3047  nsresult nsOSHelperAppService::GetFileTokenForPath(const PRUnichar * platformAppPath, nsIFile ** aFile)
  3032  nsresult nsOSHelperAppService::GetFileTokenForPath(const PRUnichar * platformAppPath, nsIFile ** aFile)
  3048  {
  3033  {
  3049 @@ -1266,17 +1266,17 @@ nsOSHelperAppService::GetFromExtension(c
  3034 @@ -1263,17 +1263,17 @@ nsOSHelperAppService::GetFromExtension(c
  3050                                           mime_types_description,
  3035                                           mime_types_description,
  3051                                           true);
  3036                                           true);
  3052  
  3037  
  3053    if (NS_FAILED(rv) || majorType.IsEmpty()) {
  3038    if (NS_FAILED(rv) || majorType.IsEmpty()) {
  3054      
  3039      
  3063      }
  3048      }
  3064  #endif
  3049  #endif
  3065  
  3050  
  3066      rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt),
  3051      rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt),
  3067                                    majorType,
  3052                                    majorType,
  3068 @@ -1389,17 +1389,17 @@ nsOSHelperAppService::GetFromType(const 
  3053 @@ -1386,17 +1386,17 @@ nsOSHelperAppService::GetFromType(const 
  3069  #ifdef MOZ_WIDGET_GTK
  3054  #ifdef MOZ_WIDGET_GTK
  3070    nsRefPtr<nsMIMEInfoBase> gnomeInfo;
  3055    nsRefPtr<nsMIMEInfoBase> gnomeInfo;
  3071    if (handler.IsEmpty()) {
  3056    if (handler.IsEmpty()) {
  3072      // No useful data yet.  Check the GNOME registry.  Unfortunately, newer
  3057      // No useful data yet.  Check the GNOME registry.  Unfortunately, newer
  3073      // GNOME versions no longer have type-to-extension mappings, so we might
  3058      // GNOME versions no longer have type-to-extension mappings, so we might
  3085  
  3070  
  3086    // Now look up our extensions
  3071    // Now look up our extensions
  3087 diff --git a/widget/gtk2/Makefile.in b/widget/gtk2/Makefile.in
  3072 diff --git a/widget/gtk2/Makefile.in b/widget/gtk2/Makefile.in
  3088 --- a/widget/gtk2/Makefile.in
  3073 --- a/widget/gtk2/Makefile.in
  3089 +++ b/widget/gtk2/Makefile.in
  3074 +++ b/widget/gtk2/Makefile.in
  3090 @@ -68,11 +68,14 @@ DEFINES		+= -DCAIRO_GFX -DMOZ_APP_NAME='
  3075 @@ -38,11 +38,14 @@ DEFINES		+= -DCAIRO_GFX -DMOZ_APP_NAME='
  3091  
  3076  
  3092  INCLUDES	+= \
  3077  INCLUDES	+= \
  3093  		-I$(srcdir)/../xpwidgets \
  3078  		-I$(srcdir)/../xpwidgets \
  3094  		-I$(srcdir)/../shared \
  3079  		-I$(srcdir)/../shared \
  3095  		-I$(topsrcdir)/layout/generic \
  3080  		-I$(topsrcdir)/layout/generic \
  3131  #include "mozcontainer.h"
  3116  #include "mozcontainer.h"
  3132  
  3117  
  3133  #include "nsFilePicker.h"
  3118  #include "nsFilePicker.h"
  3134 +#include "nsKDEUtils.h"
  3119 +#include "nsKDEUtils.h"
  3135  
  3120  
  3136  #if (MOZ_PLATFORM_MAEMO == 5)
       
  3137  #include <hildon-fm-2/hildon/hildon-file-chooser-dialog.h>
       
  3138  #endif
       
  3139  
       
  3140  using namespace mozilla;
  3121  using namespace mozilla;
  3141  
  3122  
  3142  #define MAX_PREVIEW_SIZE 180
  3123  #define MAX_PREVIEW_SIZE 180
  3143 @@ -232,17 +234,19 @@ nsFilePicker::AppendFilters(int32_t aFil
  3124  
       
  3125  nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr;
       
  3126  
       
  3127  void
       
  3128 @@ -225,17 +227,19 @@ nsFilePicker::AppendFilters(int32_t aFil
  3144    return nsBaseFilePicker::AppendFilters(aFilterMask);
  3129    return nsBaseFilePicker::AppendFilters(aFilterMask);
  3145  }
  3130  }
  3146  
  3131  
  3147  NS_IMETHODIMP
  3132  NS_IMETHODIMP
  3148  nsFilePicker::AppendFilter(const nsAString& aTitle, const nsAString& aFilter)
  3133  nsFilePicker::AppendFilter(const nsAString& aTitle, const nsAString& aFilter)
  3159    CopyUTF16toUTF8(aFilter, filter);
  3144    CopyUTF16toUTF8(aFilter, filter);
  3160    CopyUTF16toUTF8(aTitle, name);
  3145    CopyUTF16toUTF8(aTitle, name);
  3161  
  3146  
  3162    mFilters.AppendElement(filter);
  3147    mFilters.AppendElement(filter);
  3163    mFilterNames.AppendElement(name);
  3148    mFilterNames.AppendElement(name);
  3164 @@ -356,16 +360,32 @@ nsFilePicker::Show(int16_t *aReturn)
  3149 @@ -349,16 +353,32 @@ nsFilePicker::Show(int16_t *aReturn)
  3165  
  3150  
  3166  NS_IMETHODIMP
  3151  NS_IMETHODIMP
  3167  nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
  3152  nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
  3168  {
  3153  {
  3169    // Can't show two dialogs concurrently with the same filepicker
  3154    // Can't show two dialogs concurrently with the same filepicker
  3192    GtkWindow *parent_widget =
  3177    GtkWindow *parent_widget =
  3193      GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET));
  3178      GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET));
  3194  
  3179  
  3195    GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
  3180    GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
  3196    const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE)
  3181    const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE)
  3197 @@ -553,8 +573,235 @@ nsFilePicker::Done(GtkWidget* file_choos
  3182 @@ -537,8 +557,235 @@ nsFilePicker::Done(GtkWidget* file_choos
  3198    if (mCallback) {
  3183    if (mCallback) {
  3199      mCallback->Done(result);
  3184      mCallback->Done(result);
  3200      mCallback = nullptr;
  3185      mCallback = nullptr;
  3201    } else {
  3186    } else {
  3202      mResult = result;
  3187      mResult = result;
  3431 +    }
  3416 +    }
  3432 +
  3417 +
  3433 diff --git a/widget/gtk2/nsFilePicker.h b/widget/gtk2/nsFilePicker.h
  3418 diff --git a/widget/gtk2/nsFilePicker.h b/widget/gtk2/nsFilePicker.h
  3434 --- a/widget/gtk2/nsFilePicker.h
  3419 --- a/widget/gtk2/nsFilePicker.h
  3435 +++ b/widget/gtk2/nsFilePicker.h
  3420 +++ b/widget/gtk2/nsFilePicker.h
  3436 @@ -67,11 +67,17 @@ protected:
  3421 @@ -66,11 +66,17 @@ protected:
  3437    nsString  mDefault;
  3422    nsString  mDefault;
  3438    nsString  mDefaultExtension;
  3423    nsString  mDefaultExtension;
  3439  
  3424  
  3440    nsTArray<nsCString> mFilters;
  3425    nsTArray<nsCString> mFilters;
  3441    nsTArray<nsCString> mFilterNames;
  3426    nsTArray<nsCString> mFilterNames;
  3452  
  3437  
  3453  #endif
  3438  #endif
  3454 diff --git a/xpcom/components/Makefile.in b/xpcom/components/Makefile.in
  3439 diff --git a/xpcom/components/Makefile.in b/xpcom/components/Makefile.in
  3455 --- a/xpcom/components/Makefile.in
  3440 --- a/xpcom/components/Makefile.in
  3456 +++ b/xpcom/components/Makefile.in
  3441 +++ b/xpcom/components/Makefile.in
  3457 @@ -23,9 +23,10 @@ LOCAL_INCLUDES	= \
  3442 @@ -14,9 +14,10 @@ LOCAL_INCLUDES	= \
  3458  	-I$(topsrcdir)/chrome/src \
  3443  	-I$(topsrcdir)/chrome/src \
  3459  	-I$(topsrcdir)/modules/libjar \
  3444  	-I$(topsrcdir)/modules/libjar \
  3460  	$(NULL)
  3445  	$(NULL)
  3461  
  3446  
  3462  include $(topsrcdir)/config/rules.mk
  3447  include $(topsrcdir)/config/rules.mk
  3597      if (directive->regfunc) {
  3582      if (directive->regfunc) {
  3598        if (GeckoProcessType_Default != XRE_GetProcessType())
  3583        if (GeckoProcessType_Default != XRE_GetProcessType())
  3599 diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in
  3584 diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in
  3600 --- a/xpcom/io/Makefile.in
  3585 --- a/xpcom/io/Makefile.in
  3601 +++ b/xpcom/io/Makefile.in
  3586 +++ b/xpcom/io/Makefile.in
  3602 @@ -26,17 +26,17 @@ include $(topsrcdir)/config/rules.mk
  3587 @@ -7,9 +7,9 @@ include $(topsrcdir)/config/rules.mk
  3603  include $(topsrcdir)/ipc/chromium/chromium-config.mk
  3588  include $(topsrcdir)/ipc/chromium/chromium-config.mk
  3604  
  3589  
  3605  ifeq ($(OS_ARCH),Linux)
  3590  ifeq ($(OS_ARCH),Linux)
  3606  ifneq (,$(findstring lib64,$(libdir)))
  3591  ifneq (,$(findstring lib64,$(libdir)))
  3607  DEFINES     += -DHAVE_USR_LIB64_DIR
  3592  DEFINES     += -DHAVE_USR_LIB64_DIR
  3608  endif
  3593  endif
  3609  endif
  3594  endif
  3610  
  3595  
  3611 -LOCAL_INCLUDES	+= -I..
  3596 -LOCAL_INCLUDES	+= -I..
  3612 +LOCAL_INCLUDES	+= -I.. -I$(topsrcdir)/toolkit/xre
  3597 +LOCAL_INCLUDES	+= -I.. -I$(topsrcdir)/toolkit/xre
  3613  
       
  3614  ifeq ($(MOZ_PLATFORM_MAEMO),5)
       
  3615  CFLAGS          += $(MOZ_DBUS_CFLAGS)
       
  3616  CXXFLAGS        += $(MOZ_DBUS_CFLAGS)
       
  3617  endif
       
  3618  
       
  3619  ifdef MOZ_PLATFORM_MAEMO
       
  3620  CFLAGS          += $(MOZ_PLATFORM_MAEMO_CFLAGS) $(MOZ_QT_CFLAGS)
       
  3621 diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
  3598 diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
  3622 --- a/xpcom/io/nsLocalFileUnix.cpp
  3599 --- a/xpcom/io/nsLocalFileUnix.cpp
  3623 +++ b/xpcom/io/nsLocalFileUnix.cpp
  3600 +++ b/xpcom/io/nsLocalFileUnix.cpp
  3624 @@ -50,16 +50,17 @@
  3601 @@ -42,16 +42,17 @@
  3625  #include "prproces.h"
  3602  #include "prproces.h"
  3626  #include "nsIDirectoryEnumerator.h"
  3603  #include "nsIDirectoryEnumerator.h"
  3627  #include "nsISimpleEnumerator.h"
  3604  #include "nsISimpleEnumerator.h"
  3628  #include "private/pprio.h"
  3605  #include "private/pprio.h"
  3629  
  3606  
  3637  #include <Carbon/Carbon.h>
  3614  #include <Carbon/Carbon.h>
  3638  #include "CocoaFileUtils.h"
  3615  #include "CocoaFileUtils.h"
  3639  #include "prmem.h"
  3616  #include "prmem.h"
  3640  #include "plbase64.h"
  3617  #include "plbase64.h"
  3641  
  3618  
  3642 @@ -1753,44 +1754,51 @@ nsLocalFile::SetPersistentDescriptor(con
  3619 @@ -1727,44 +1728,51 @@ nsLocalFile::SetPersistentDescriptor(con
  3643      return InitWithNativePath(aPersistentDescriptor);
  3620      return InitWithNativePath(aPersistentDescriptor);
  3644  #endif
  3621  #endif
  3645  }
  3622  }
  3646  
  3623  
  3647  NS_IMETHODIMP
  3624  NS_IMETHODIMP
  3703        nsresult rv = CocoaFileUtils::RevealFileInFinder(url);
  3680        nsresult rv = CocoaFileUtils::RevealFileInFinder(url);
  3704        ::CFRelease(url);
  3681        ::CFRelease(url);
  3705        return rv;
  3682        return rv;
  3706      }
  3683      }
  3707      return NS_ERROR_FAILURE;
  3684      return NS_ERROR_FAILURE;
  3708 @@ -1816,16 +1824,23 @@ nsLocalFile::Launch()
  3685 @@ -1772,16 +1780,23 @@ nsLocalFile::Reveal()
  3709  
  3686      return NS_ERROR_FAILURE;
  3710      if (nullptr == connection)
  3687  #endif
  3711        return NS_ERROR_FAILURE;
  3688  }
  3712  
  3689  
  3713      if (hildon_mime_open_file(connection, mPath.get()) != kHILDON_SUCCESS)
  3690  NS_IMETHODIMP
  3714        return NS_ERROR_FAILURE;
  3691  nsLocalFile::Launch()
  3715      return NS_OK;
  3692  {
  3716  #else
  3693  #ifdef MOZ_WIDGET_GTK
  3717 +    if( nsKDEUtils::kdeSupport()) {
  3694 +    if( nsKDEUtils::kdeSupport()) {
  3718 +      nsTArray<nsCString> command;
  3695 +      nsTArray<nsCString> command;
  3719 +      command.AppendElement( NS_LITERAL_CSTRING("OPEN") );
  3696 +      command.AppendElement( NS_LITERAL_CSTRING("OPEN") );
  3720 +      command.AppendElement( mPath );
  3697 +      command.AppendElement( mPath );
  3721 +      return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
  3698 +      return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;