mozilla-kde.patch
changeset 880 349bcaa18df4
parent 869 0dd25a92df97
child 881 1268ddc9dc16
equal deleted inserted replaced
879:3b986c9dbc5f 880:349bcaa18df4
     1 # HG changeset patch
     1 # HG changeset patch
     2 # Parent  214f99f3ce4f1f8ae9b3d18da44e5d66b3105663
     2 # Parent  5f8cbb078ab0d5696255c2f514c6333666b47da9
     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 @@ -1165,16 +1166,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
    49 @@ -1154,16 +1155,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 @@ -1190,17 +1209,17 @@ static nsresult pref_LoadPrefsInDirList(
    84 @@ -1179,17 +1198,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 @@ -1294,26 +1313,38 @@ static nsresult pref_InitInitialObjects(
   103 @@ -1283,26 +1302,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)
   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 @@ -52,14 +52,15 @@ if not CONFIG['MOZ_SUITE']:
   187 @@ -67,14 +67,15 @@ 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'
   223  
   223  
   224  #ifdef MOZ_WIDGET_ANDROID
   224  #ifdef MOZ_WIDGET_ANDROID
   225  #include "AndroidBridge.h"
   225  #include "AndroidBridge.h"
   226  #endif
   226  #endif
   227  
   227  
   228 @@ -2716,16 +2720,25 @@ nsDownload::SetState(DownloadState aStat
   228 @@ -2711,16 +2715,25 @@ nsDownload::SetState(DownloadState aStat
   229        nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
   229        nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
   230  
   230  
   231        // Master pref to control this function.
   231        // Master pref to control this function.
   232        bool showTaskbarAlert = true;
   232        bool showTaskbarAlert = true;
   233        if (pref)
   233        if (pref)
   249  
   249  
   250          int64_t alertIntervalUSec = alertInterval * PR_USEC_PER_MSEC;
   250          int64_t alertIntervalUSec = alertInterval * PR_USEC_PER_MSEC;
   251          int64_t goat = PR_Now() - mStartTime;
   251          int64_t goat = PR_Now() - mStartTime;
   252          showTaskbarAlert = goat > alertIntervalUSec;
   252          showTaskbarAlert = goat > alertIntervalUSec;
   253  
   253  
   254 @@ -2756,16 +2769,17 @@ nsDownload::SetState(DownloadState aStat
   254 @@ -2751,16 +2764,17 @@ nsDownload::SetState(DownloadState aStat
   255                    NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title,
   255                    NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title,
   256                    message, !removeWhenDone,
   256                    message, !removeWhenDone,
   257                    mPrivate ? NS_LITERAL_STRING("private") : NS_LITERAL_STRING("non-private"),
   257                    mPrivate ? NS_LITERAL_STRING("private") : NS_LITERAL_STRING("non-private"),
   258                    mDownloadManager, EmptyString(), NS_LITERAL_STRING("auto"),
   258                    mDownloadManager, EmptyString(), NS_LITERAL_STRING("auto"),
   259                    EmptyString(), EmptyString(), nullptr, mPrivate);
   259                    EmptyString(), EmptyString(), nullptr, mPrivate);
   270        if (fileURL &&
   270        if (fileURL &&
   271            NS_SUCCEEDED(fileURL->GetFile(getter_AddRefs(file))) &&
   271            NS_SUCCEEDED(fileURL->GetFile(getter_AddRefs(file))) &&
   272 diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
   272 diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
   273 --- a/toolkit/content/jar.mn
   273 --- a/toolkit/content/jar.mn
   274 +++ b/toolkit/content/jar.mn
   274 +++ b/toolkit/content/jar.mn
   275 @@ -57,29 +57,33 @@ toolkit.jar:
   275 @@ -60,29 +60,33 @@ toolkit.jar:
   276     content/global/viewZoomOverlay.js          (viewZoomOverlay.js)
   276     content/global/viewZoomOverlay.js          (viewZoomOverlay.js)
   277  *+ content/global/bindings/autocomplete.xml    (widgets/autocomplete.xml)
   277  *+ content/global/bindings/autocomplete.xml    (widgets/autocomplete.xml)
   278     content/global/bindings/browser.xml         (widgets/browser.xml)
   278     content/global/bindings/browser.xml         (widgets/browser.xml)
   279     content/global/bindings/button.xml          (widgets/button.xml)
   279     content/global/bindings/button.xml          (widgets/button.xml)
   280     content/global/bindings/checkbox.xml        (widgets/checkbox.xml)
   280     content/global/bindings/checkbox.xml        (widgets/checkbox.xml)
   308     content/global/bindings/scrollbox.xml       (widgets/scrollbox.xml)
   308     content/global/bindings/scrollbox.xml       (widgets/scrollbox.xml)
   309 diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/dialog-kde.xml
   309 diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/dialog-kde.xml
   310 new file mode 100644
   310 new file mode 100644
   311 --- /dev/null
   311 --- /dev/null
   312 +++ b/toolkit/content/widgets/dialog-kde.xml
   312 +++ b/toolkit/content/widgets/dialog-kde.xml
   313 @@ -0,0 +1,455 @@
   313 @@ -0,0 +1,460 @@
   314 +<?xml version="1.0"?>
   314 +<?xml version="1.0"?>
   315 +<!-- This Source Code Form is subject to the terms of the Mozilla Public
   315 +<!-- This Source Code Form is subject to the terms of the Mozilla Public
   316 +   - License, v. 2.0. If a copy of the MPL was not distributed with this
   316 +   - License, v. 2.0. If a copy of the MPL was not distributed with this
   317 +   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
   317 +   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
   318 +
   318 +
   342 +        <xul:spacer anonid="spacer" flex="1"/>
   342 +        <xul:spacer anonid="spacer" flex="1"/>
   343 +        <xul:button dlgtype="cancel" class="dialog-button"/>
   343 +        <xul:button dlgtype="cancel" class="dialog-button"/>
   344 +        <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
   344 +        <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
   345 +#elif XP_UNIX
   345 +#elif XP_UNIX
   346 +                >
   346 +                >
   347 +        <xul:button dlgtype="help" class="dialog-button" hidden="true"/>
   347 +	<xul:button dlgtype="help" class="dialog-button" hidden="true"/>
   348 +	<xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
   348 +	<xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
   349 +	<xul:spacer anonid="spacer" flex="1"/>
   349 +	<xul:spacer anonid="spacer" flex="1"/>
   350 +	<xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
   350 +	<xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
   351 +	<xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
   351 +	<xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
   352 +	<xul:button dlgtype="cancel" class="dialog-button"/>
   352 +	<xul:button dlgtype="cancel" class="dialog-button"/>
   424 +          if (window.outerWidth == 1) {
   424 +          if (window.outerWidth == 1) {
   425 +            dump("Trying to position a sizeless window; caller should have called sizeToContent() or sizeTo(). See bug 75649.\n");
   425 +            dump("Trying to position a sizeless window; caller should have called sizeToContent() or sizeTo(). See bug 75649.\n");
   426 +            sizeToContent();
   426 +            sizeToContent();
   427 +          }
   427 +          }
   428 +
   428 +
   429 +          var xOffset = (opener.outerWidth - window.outerWidth) / 2;
   429 +          if (opener) {
   430 +          var yOffset = opener.outerHeight / 5;
   430 +            var xOffset = (opener.outerWidth - window.outerWidth) / 2;
   431 +
   431 +            var yOffset = opener.outerHeight / 5;
   432 +          var newX = opener.screenX + xOffset;
   432 +
   433 +          var newY = opener.screenY + yOffset;
   433 +            var newX = opener.screenX + xOffset;
       
   434 +            var newY = opener.screenY + yOffset;
       
   435 +          } else {
       
   436 +            newX = (screen.availWidth - window.outerWidth) / 2;
       
   437 +            newY = (screen.availHeight - window.outerHeight) / 2;
       
   438 +          }
   434 +
   439 +
   435 +          // ensure the window is fully onscreen (if smaller than the screen)
   440 +          // ensure the window is fully onscreen (if smaller than the screen)
   436 +          if (newX < screen.availLeft)
   441 +          if (newX < screen.availLeft)
   437 +            newX = screen.availLeft + 20;
   442 +            newX = screen.availLeft + 20;
   438 +          if ((newX + window.outerWidth) > (screen.availLeft + screen.availWidth))
   443 +          if ((newX + window.outerWidth) > (screen.availLeft + screen.availWidth))
   768 +</bindings>
   773 +</bindings>
   769 diff --git a/toolkit/content/widgets/preferences-kde.xml b/toolkit/content/widgets/preferences-kde.xml
   774 diff --git a/toolkit/content/widgets/preferences-kde.xml b/toolkit/content/widgets/preferences-kde.xml
   770 new file mode 100644
   775 new file mode 100644
   771 --- /dev/null
   776 --- /dev/null
   772 +++ b/toolkit/content/widgets/preferences-kde.xml
   777 +++ b/toolkit/content/widgets/preferences-kde.xml
   773 @@ -0,0 +1,1350 @@
   778 @@ -0,0 +1,1357 @@
   774 +<?xml version="1.0"?>
   779 +<?xml version="1.0"?>
   775 +
   780 +
   776 +<!DOCTYPE bindings [
   781 +<!DOCTYPE bindings [
   777 +  <!ENTITY % preferencesDTD SYSTEM "chrome://global/locale/preferences.dtd">
   782 +  <!ENTITY % preferencesDTD SYSTEM "chrome://global/locale/preferences.dtd">
   778 +  %preferencesDTD;
   783 +  %preferencesDTD;
  1392 +    </content>
  1397 +    </content>
  1393 +    <implementation implements="nsITimerCallback">
  1398 +    <implementation implements="nsITimerCallback">
  1394 +      <constructor>
  1399 +      <constructor>
  1395 +      <![CDATA[
  1400 +      <![CDATA[
  1396 +        if (this.type != "child") {
  1401 +        if (this.type != "child") {
  1397 +          var psvc = Components.classes["@mozilla.org/preferences-service;1"]
  1402 +          if (!this._instantApplyInitialized) {
  1398 +                               .getService(Components.interfaces.nsIPrefBranch);
  1403 +            let psvc = Components.classes["@mozilla.org/preferences-service;1"]
  1399 +          this.instantApply = psvc.getBoolPref("browser.preferences.instantApply");
  1404 +                                 .getService(Components.interfaces.nsIPrefBranch);
       
  1405 +            this.instantApply = psvc.getBoolPref("browser.preferences.instantApply");
       
  1406 +          }
  1400 +          if (this.instantApply) {
  1407 +          if (this.instantApply) {
  1401 +            var docElt = document.documentElement;
  1408 +            var docElt = document.documentElement;
  1402 +            var acceptButton = docElt.getButton("accept");
  1409 +            var acceptButton = docElt.getButton("accept");
  1403 +            acceptButton.hidden = true;
  1410 +            acceptButton.hidden = true;
  1404 +            var cancelButton  = docElt.getButton("cancel");
  1411 +            var cancelButton  = docElt.getButton("cancel");
  1464 +          this._fadeTimer = null;
  1471 +          this._fadeTimer = null;
  1465 +        }
  1472 +        }
  1466 +      ]]>
  1473 +      ]]>
  1467 +      </destructor>
  1474 +      </destructor>
  1468 +
  1475 +
       
  1476 +      <!-- Derived bindings can set this to true to cause us to skip
       
  1477 +           reading the browser.preferences.instantApply pref in the constructor.
       
  1478 +           Then they can set instantApply to their wished value. -->
       
  1479 +      <field name="_instantApplyInitialized">false</field>
       
  1480 +      <!-- Controls whether changed pref values take effect immediately. -->
  1469 +      <field name="instantApply">false</field>
  1481 +      <field name="instantApply">false</field>
  1470 +      
  1482 +
  1471 +      <property name="preferencePanes"
  1483 +      <property name="preferencePanes"
  1472 +                onget="return this.getElementsByTagName('prefpane');"/>
  1484 +                onget="return this.getElementsByTagName('prefpane');"/>
  1473 +
  1485 +
  1474 +      <property name="type" onget="return this.getAttribute('type');"/>
  1486 +      <property name="type" onget="return this.getAttribute('type');"/>
  1475 +      <property name="_paneDeck"
  1487 +      <property name="_paneDeck"
  2122 +#    PrefWindow I   (June 4, 1999)
  2134 +#    PrefWindow I   (June 4, 1999)
  2123 +#
  2135 +#
  2124 diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
  2136 diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
  2125 --- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
  2137 --- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
  2126 +++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
  2138 +++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
  2127 @@ -14,16 +14,18 @@
  2139 @@ -14,16 +14,17 @@
  2128  #include "prenv.h"
  2140  #include "prenv.h"
  2129  #include "nsPrintfCString.h"
  2141  #include "nsPrintfCString.h"
  2130  #include "nsNetUtil.h"
  2142  #include "nsNetUtil.h"
  2131  #include "nsISupportsPrimitives.h"
  2143  #include "nsISupportsPrimitives.h"
  2132  #include "nsIGSettingsService.h"
  2144  #include "nsIGSettingsService.h"
  2133  #include "nsInterfaceHashtable.h"
  2145  #include "nsInterfaceHashtable.h"
  2134  #include "mozilla/Attributes.h"
  2146  #include "mozilla/Attributes.h"
  2135  #include "nsIURI.h"
  2147  #include "nsIURI.h"
  2136 +#include "nsVoidArray.h"
       
  2137 +#include "nsKDEUtils.h"
  2148 +#include "nsKDEUtils.h"
  2138  
  2149  
  2139  class nsUnixSystemProxySettings final : public nsISystemProxySettings {
  2150  class nsUnixSystemProxySettings final : public nsISystemProxySettings {
  2140  public:
  2151  public:
  2141    NS_DECL_ISUPPORTS
  2152    NS_DECL_ISUPPORTS
  2142    NS_DECL_NSISYSTEMPROXYSETTINGS
  2153    NS_DECL_NSISYSTEMPROXYSETTINGS
  2143  
  2154  
  2144    nsUnixSystemProxySettings()
  2155    nsUnixSystemProxySettings()
  2145      : mSchemeProxySettings(4)
  2156      : mSchemeProxySettings(4)
  2146 @@ -38,16 +40,17 @@ private:
  2157 @@ -38,16 +39,17 @@ private:
  2147    nsCOMPtr<nsIGSettingsService> mGSettings;
  2158    nsCOMPtr<nsIGSettingsService> mGSettings;
  2148    nsCOMPtr<nsIGSettingsCollection> mProxySettings;
  2159    nsCOMPtr<nsIGSettingsCollection> mProxySettings;
  2149    nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings;
  2160    nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings;
  2150    bool IsProxyMode(const char* aMode);
  2161    bool IsProxyMode(const char* aMode);
  2151    nsresult SetProxyResultFromGConf(const char* aKeyBase, const char* aType, nsACString& aResult);
  2162    nsresult SetProxyResultFromGConf(const char* aKeyBase, const char* aType, nsACString& aResult);
  2159  
  2170  
  2160  NS_IMETHODIMP
  2171  NS_IMETHODIMP
  2161  nsUnixSystemProxySettings::GetMainThreadOnly(bool *aMainThreadOnly)
  2172  nsUnixSystemProxySettings::GetMainThreadOnly(bool *aMainThreadOnly)
  2162  {
  2173  {
  2163    // dbus prevents us from being threadsafe, but this routine should not block anyhow
  2174    // dbus prevents us from being threadsafe, but this routine should not block anyhow
  2164 @@ -504,16 +507,19 @@ nsUnixSystemProxySettings::GetProxyFromG
  2175 @@ -504,16 +506,19 @@ nsUnixSystemProxySettings::GetProxyFromG
  2165  
  2176  
  2166  nsresult
  2177  nsresult
  2167  nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec,
  2178  nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec,
  2168                                            const nsACString & aScheme,
  2179                                            const nsACString & aScheme,
  2169                                            const nsACString & aHost,
  2180                                            const nsACString & aHost,
  2179        return rv;
  2190        return rv;
  2180    }
  2191    }
  2181    if (mGConf)
  2192    if (mGConf)
  2182      return GetProxyFromGConf(aScheme, aHost, aPort, aResult);
  2193      return GetProxyFromGConf(aScheme, aHost, aPort, aResult);
  2183  
  2194  
  2184 @@ -539,8 +545,34 @@ static const mozilla::Module::ContractID
  2195 @@ -539,8 +544,34 @@ static const mozilla::Module::ContractID
  2185  
  2196  
  2186  static const mozilla::Module kUnixProxyModule = {
  2197  static const mozilla::Module kUnixProxyModule = {
  2187    mozilla::Module::kVersion,
  2198    mozilla::Module::kVersion,
  2188    kUnixProxyCIDs,
  2199    kUnixProxyCIDs,
  2189    kUnixProxyContracts
  2200    kUnixProxyContracts
  2679      CXXFLAGS += CONFIG['TK_CFLAGS']
  2690      CXXFLAGS += CONFIG['TK_CFLAGS']
  2680 diff --git a/uriloader/exthandler/unix/nsCommonRegistry.cpp b/uriloader/exthandler/unix/nsCommonRegistry.cpp
  2691 diff --git a/uriloader/exthandler/unix/nsCommonRegistry.cpp b/uriloader/exthandler/unix/nsCommonRegistry.cpp
  2681 new file mode 100644
  2692 new file mode 100644
  2682 --- /dev/null
  2693 --- /dev/null
  2683 +++ b/uriloader/exthandler/unix/nsCommonRegistry.cpp
  2694 +++ b/uriloader/exthandler/unix/nsCommonRegistry.cpp
  2684 @@ -0,0 +1,54 @@
  2695 @@ -0,0 +1,53 @@
  2685 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2696 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2686 +/* This Source Code Form is subject to the terms of the Mozilla Public
  2697 +/* This Source Code Form is subject to the terms of the Mozilla Public
  2687 + * License, v. 2.0. If a copy of the MPL was not distributed with this
  2698 + * License, v. 2.0. If a copy of the MPL was not distributed with this
  2688 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  2699 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  2689 +
  2700 +
  2690 +#include "nsCommonRegistry.h"
  2701 +#include "nsCommonRegistry.h"
  2691 +
  2702 +
  2692 +#include "nsGNOMERegistry.h"
  2703 +#include "nsGNOMERegistry.h"
  2693 +#include "nsKDERegistry.h"
  2704 +#include "nsKDERegistry.h"
  2694 +#include "nsString.h"
  2705 +#include "nsString.h"
  2695 +#include "nsVoidArray.h"
       
  2696 +#include "nsKDEUtils.h"
  2706 +#include "nsKDEUtils.h"
  2697 +
  2707 +
  2698 +/* static */ bool
  2708 +/* static */ bool
  2699 +nsCommonRegistry::HandlerExists(const char *aProtocolScheme)
  2709 +nsCommonRegistry::HandlerExists(const char *aProtocolScheme)
  2700 +{
  2710 +{
  3464  
  3474  
  3465  #endif
  3475  #endif
  3466 diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp
  3476 diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp
  3467 --- a/xpcom/components/ManifestParser.cpp
  3477 --- a/xpcom/components/ManifestParser.cpp
  3468 +++ b/xpcom/components/ManifestParser.cpp
  3478 +++ b/xpcom/components/ManifestParser.cpp
  3469 @@ -34,16 +34,17 @@
  3479 @@ -35,16 +35,17 @@
  3470  
  3480  
  3471  #include "nsIConsoleService.h"
  3481  #include "nsIConsoleService.h"
  3472  #include "nsIScriptError.h"
  3482  #include "nsIScriptError.h"
  3473  #include "nsIXULAppInfo.h"
  3483  #include "nsIXULAppInfo.h"
  3474  #include "nsIXULRuntime.h"
  3484  #include "nsIXULRuntime.h"
  3482  #define XPTONLY_XPT &nsComponentManagerImpl::XPTOnlyManifestXPT
  3492  #define XPTONLY_XPT &nsComponentManagerImpl::XPTOnlyManifestXPT
  3483  #else
  3493  #else
  3484  #define XPTONLY_MANIFEST nullptr
  3494  #define XPTONLY_MANIFEST nullptr
  3485  #define XPTONLY_XPT nullptr
  3495  #define XPTONLY_XPT nullptr
  3486  #endif
  3496  #endif
  3487 @@ -489,16 +490,17 @@ ParseManifest(NSLocationType aType, File
  3497 @@ -494,16 +495,17 @@ ParseManifest(NSLocationType aType, File
  3488    NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");
  3498    NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");
  3489    NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");
  3499    NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");
  3490    NS_NAMED_LITERAL_STRING(kApplication, "application");
  3500    NS_NAMED_LITERAL_STRING(kApplication, "application");
  3491    NS_NAMED_LITERAL_STRING(kAppVersion, "appversion");
  3501    NS_NAMED_LITERAL_STRING(kAppVersion, "appversion");
  3492    NS_NAMED_LITERAL_STRING(kGeckoVersion, "platformversion");
  3502    NS_NAMED_LITERAL_STRING(kGeckoVersion, "platformversion");
  3500  #endif
  3510  #endif
  3501  
  3511  
  3502    NS_NAMED_LITERAL_STRING(kMain, "main");
  3512    NS_NAMED_LITERAL_STRING(kMain, "main");
  3503    NS_NAMED_LITERAL_STRING(kContent, "content");
  3513    NS_NAMED_LITERAL_STRING(kContent, "content");
  3504  
  3514  
  3505 @@ -549,44 +551,49 @@ ParseManifest(NSLocationType aType, File
  3515 @@ -554,44 +556,49 @@ ParseManifest(NSLocationType aType, File
  3506          CopyUTF8toUTF16(s, abi);
  3516          CopyUTF8toUTF16(s, abi);
  3507          abi.Insert(char16_t('_'), 0);
  3517          abi.Insert(char16_t('_'), 0);
  3508          abi.Insert(osTarget, 0);
  3518          abi.Insert(osTarget, 0);
  3509        }
  3519        }
  3510      }
  3520      }
  3550      process = kContent;
  3560      process = kContent;
  3551    } else {
  3561    } else {
  3552      process = kMain;
  3562      process = kMain;
  3553    }
  3563    }
  3554  
  3564  
  3555 @@ -681,25 +688,27 @@ ParseManifest(NSLocationType aType, File
  3565 @@ -694,25 +701,27 @@ ParseManifest(NSLocationType aType, File
  3556      TriState stOsVersion = eUnspecified;
  3566      TriState stOsVersion = eUnspecified;
  3557      TriState stOs = eUnspecified;
  3567      TriState stOs = eUnspecified;
  3558      TriState stABI = eUnspecified;
  3568      TriState stABI = eUnspecified;
  3559      TriState stProcess = eUnspecified;
  3569      TriState stProcess = eUnspecified;
  3560  #if defined(MOZ_WIDGET_ANDROID)
  3570  #if defined(MOZ_WIDGET_ANDROID)
  3578            CheckVersionFlag(kGeckoVersion, wtoken, geckoVersion, stGeckoVersion)) {
  3588            CheckVersionFlag(kGeckoVersion, wtoken, geckoVersion, stGeckoVersion)) {
  3579          continue;
  3589          continue;
  3580        }
  3590        }
  3581  
  3591  
  3582  #if defined(MOZ_WIDGET_ANDROID)
  3592  #if defined(MOZ_WIDGET_ANDROID)
  3583 @@ -749,16 +758,17 @@ ParseManifest(NSLocationType aType, File
  3593 @@ -762,16 +771,17 @@ ParseManifest(NSLocationType aType, File
  3584      }
  3594      }
  3585  
  3595  
  3586      if (!ok ||
  3596      if (!ok ||
  3587          stApp == eBad ||
  3597          stApp == eBad ||
  3588          stAppVersion == eBad ||
  3598          stAppVersion == eBad ||
  3599      }
  3609      }
  3600  
  3610  
  3601 diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
  3611 diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
  3602 --- a/xpcom/components/moz.build
  3612 --- a/xpcom/components/moz.build
  3603 +++ b/xpcom/components/moz.build
  3613 +++ b/xpcom/components/moz.build
  3604 @@ -48,12 +48,13 @@ FINAL_LIBRARY = 'xul'
  3614 @@ -46,12 +46,13 @@ FINAL_LIBRARY = 'xul'
  3605  GENERATED_INCLUDES += ['..']
  3615  GENERATED_INCLUDES += ['..']
  3606  LOCAL_INCLUDES += [
  3616  LOCAL_INCLUDES += [
  3607      '../base',
  3617      '../base',
  3608      '../build',
  3618      '../build',
  3609      '../ds',
  3619      '../ds',
  3634  #include <Carbon/Carbon.h>
  3644  #include <Carbon/Carbon.h>
  3635  #include "CocoaFileUtils.h"
  3645  #include "CocoaFileUtils.h"
  3636  #include "prmem.h"
  3646  #include "prmem.h"
  3637  #include "plbase64.h"
  3647  #include "plbase64.h"
  3638  
  3648  
  3639 @@ -1964,42 +1965,52 @@ nsLocalFile::SetPersistentDescriptor(con
  3649 @@ -1960,42 +1961,52 @@ nsLocalFile::SetPersistentDescriptor(con
  3640    return InitWithNativePath(aPersistentDescriptor);
  3650    return InitWithNativePath(aPersistentDescriptor);
  3641  #endif
  3651  #endif
  3642  }
  3652  }
  3643  
  3653  
  3644  NS_IMETHODIMP
  3654  NS_IMETHODIMP
  3693      nsresult rv = CocoaFileUtils::RevealFileInFinder(url);
  3703      nsresult rv = CocoaFileUtils::RevealFileInFinder(url);
  3694      ::CFRelease(url);
  3704      ::CFRelease(url);
  3695      return rv;
  3705      return rv;
  3696    }
  3706    }
  3697    return NS_ERROR_FAILURE;
  3707    return NS_ERROR_FAILURE;
  3698 @@ -2007,16 +2018,22 @@ nsLocalFile::Reveal()
  3708 @@ -2003,16 +2014,22 @@ nsLocalFile::Reveal()
  3699    return NS_ERROR_FAILURE;
  3709    return NS_ERROR_FAILURE;
  3700  #endif
  3710  #endif
  3701  }
  3711  }
  3702  
  3712  
  3703  NS_IMETHODIMP
  3713  NS_IMETHODIMP