begin Firefox 10 cycle
authorWolfgang Rosenauer <wr@rosenauer.org>
Sun, 25 Dec 2011 10:36:35 +0100
changeset 367 3fabd9f66322
parent 366 15d0aa5d4b63
child 368 8891dd9439a1
begin Firefox 10 cycle
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/create-tar.sh
MozillaFirefox/mozilla-ppc64.patch
firefox-kde.patch
mozilla-kde.patch
mozilla-nongnome-proxies.patch
mozilla-ntlm-full-path.patch
mozilla-ppc64.patch
mozilla-prefer_plugin_pref.patch
mozilla-shared-nss-db.patch
series
--- a/MozillaFirefox/MozillaFirefox.spec	Fri Dec 23 18:44:50 2011 +0100
+++ b/MozillaFirefox/MozillaFirefox.spec	Sun Dec 25 10:36:35 2011 +0100
@@ -17,7 +17,7 @@
 #
 
 %define major 9
-%define mainver %major.0
+%define mainver %major.99
 
 Name:           MozillaFirefox
 BuildRequires:  Mesa-devel
@@ -85,8 +85,7 @@
 Patch10:        mozilla-dump_syms-static.patch
 Patch11:        mozilla-sle11.patch
 Patch12:        mozilla-linux3.patch
-Patch13:        mozilla-ppc64.patch
-Patch14:        mozilla-a11y.patch
+Patch13:        mozilla-a11y.patch
 # Firefox/browser
 Patch31:        firefox-browser-css.patch
 Patch32:        firefox-cross-desktop.patch
@@ -203,7 +202,7 @@
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
-%patch5 -p1
+#%patch5 -p1
 %patch6 -p1
 %patch7 -p1
 %patch8 -p1
@@ -213,16 +212,15 @@
 %patch11 -p1
 %endif
 %patch12 -p1
-%patch13 -p1
-%patch14 -p1
+#%patch13 -p1
 #
 %patch31 -p1
 %patch32 -p1
 %if %suse_version >= 1110
-%patch33 -p1
+#%patch33 -p1
 %endif
 %if %suse_version >= 1140
-%patch34 -p1
+#%patch34 -p1
 %endif
 %patch38 -p1
 %patch39 -p1
@@ -277,7 +275,7 @@
 ac_add_options --disable-debug
 ac_add_options --enable-startup-notification
 #ac_add_options --enable-chrome-format=jar
-ac_add_options --enable-update-channel=default
+ac_add_options --enable-update-channel=beta
 EOF
 %if %suse_version > 1130
 cat << EOF >> $MOZCONFIG
--- a/MozillaFirefox/create-tar.sh	Fri Dec 23 18:44:50 2011 +0100
+++ b/MozillaFirefox/create-tar.sh	Sun Dec 25 10:36:35 2011 +0100
@@ -1,9 +1,9 @@
 #!/bin/bash
 
-CHANNEL="release"
+CHANNEL="beta"
 BRANCH="releases/mozilla-$CHANNEL"
-RELEASE_TAG="FIREFOX_9_0_1_RELEASE"
-VERSION="9.0.1"
+RELEASE_TAG="FIREFOX_10_0b1_RELEASE"
+VERSION="9.99"
 
 # mozilla
 hg clone http://hg.mozilla.org/$BRANCH mozilla
--- a/MozillaFirefox/mozilla-ppc64.patch	Fri Dec 23 18:44:50 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-ppc64.patch
\ No newline at end of file
--- a/firefox-kde.patch	Fri Dec 23 18:44:50 2011 +0100
+++ b/firefox-kde.patch	Sun Dec 25 10:36:35 2011 +0100
@@ -2,7 +2,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/browser/base/content/browser-kde.xul
-@@ -0,0 +1,1054 @@
+@@ -0,0 +1,1111 @@
 +#filter substitution
 +<?xml version="1.0"?>
 +# -*- Mode: HTML -*-
@@ -477,6 +477,7 @@
 +
 +      <toolbaritem id="unified-back-forward-button" class="chromeclass-toolbar-additional"
 +                   context="backForwardMenu" removable="true"
++                   forwarddisabled="true"
 +                   title="&backForwardItem.title;">
 +        <toolbarbutton id="back-button" class="toolbarbutton-1"
 +                       label="&backCmd.label;"
@@ -488,6 +489,13 @@
 +                       command="Browser:ForwardOrForwardDuplicate"
 +                       onclick="checkForMiddleClick(this, event);"
 +                       tooltip="forward-button-tooltip"/>
++        <dummyobservertarget hidden="true"
++                             onbroadcast="if (this.getAttribute('disabled') == 'true')
++                                            this.parentNode.setAttribute('forwarddisabled', 'true');
++                                          else
++                                            this.parentNode.removeAttribute('forwarddisabled');">
++          <observes element="Browser:ForwardOrForwardDuplicate" attribute="disabled"/>
++        </dummyobservertarget>
 +      </toolbaritem>
 +
 +      <toolbaritem id="urlbar-container" align="center" flex="400" persist="width" combined="true"
@@ -963,22 +971,63 @@
 +                  onclick="return contentAreaClick(event, false);"/>
 +      <statuspanel id="statusbar-display" inactive="true"/>
 +    </vbox>
++    <splitter id="devtools-side-splitter" hidden="true"/>
++    <vbox id="devtools-sidebar-box" hidden="true"
++          style="min-width: 18em; width: 22em; max-width: 42em;" persist="width">
++      <toolbar id="devtools-sidebar-toolbar" nowindowdrag="true"/>
++      <deck id="devtools-sidebar-deck" flex="1"/>
++    </vbox>
 +    <vbox id="browser-border-end" hidden="true" layer="true"/>
 +  </hbox>
 +
++  <hbox id="full-screen-warning-container" hidden="true" fadeout="true">
++    <hbox style="min-width: 100%;" pack="center"> <!-- Inner hbox needed due to bug 579776. -->
++      <hbox id="full-screen-warning-message">
++        <description id="full-screen-warning-text" value="&domFullScreenWarning.label;"></description>
++      </hbox>
++    </hbox>
++  </hbox>
++
 +  <vbox id="browser-bottombox" layer="true">
 +    <toolbar id="inspector-toolbar"
 +             nowindowdrag="true"
 +             hidden="true">
-+      <toolbarbutton id="inspector-inspect-toolbutton"
-+                     label="&inspectButton.label;"
-+                     accesskey="&inspectButton.accesskey;"
-+                     class="toolbarbutton-text"
-+                     command="Inspector:Inspect"/>
-+      <toolbarseparator />
-+      <hbox id="inspector-tools">
-+        <!-- registered tools go here -->
-+      </hbox>
++      <vbox flex="1">
++        <resizer id="inspector-top-resizer" flex="1" 
++                 class="inspector-resizer"
++                 dir="top" disabled="true"
++                 element="inspector-tree-box"/>
++        <hbox>
++#ifdef XP_MACOSX
++          <toolbarbutton id="highlighter-closebutton"
++                         oncommand="InspectorUI.closeInspectorUI(false);"
++                         tooltiptext="&inspectCloseButton.tooltiptext;"/>
++#endif
++          <toolbarbutton id="inspector-inspect-toolbutton"
++                         label="&inspectButton.label;"
++                         accesskey="&inspectButton.accesskey;"
++                         command="Inspector:Inspect"/>
++          <arrowscrollbox id="inspector-breadcrumbs"
++                          flex="1" orient="horizontal"
++                          clicktoscroll="true"/>
++          <hbox id="inspector-tools">
++            <toolbarbutton id="inspector-style-button"
++                           label="&inspectStyleButton.label;"
++                           accesskey="&inspectStyleButton.accesskey;"
++                           command="Inspector:Sidebar"/>
++            <!-- registered tools go here -->
++          </hbox>
++#ifndef XP_MACOSX
++          <toolbarbutton id="highlighter-closebutton"
++                         oncommand="InspectorUI.closeInspectorUI(false);"
++                         tooltiptext="&inspectCloseButton.tooltiptext;"/>
++#endif
++          <resizer id="inspector-end-resizer"
++                   class="inspector-resizer"
++                   dir="top" disabled="true"
++                   element="inspector-tree-box"/>
++        </hbox>
++      </vbox>
 +    </toolbar>
 +    <toolbar id="addon-bar"
 +             toolbarname="&addonBarCmd.label;" accesskey="&addonBarCmd.accesskey;"
@@ -1007,6 +1056,10 @@
 +      <svg:rect x="0" y="0" width="1" height="1" fill="white"/>
 +      <svg:circle cx="-0.35" cy="0.5" r="0.58"/>
 +    </svg:mask>
++    <svg:mask id="winstripe-urlbar-back-button-mask" maskContentUnits="userSpaceOnUse">
++      <svg:rect x="0" y="0" width="10000" height="50" fill="white"/>
++      <svg:circle cx="-11" cy="13" r="15"/>
++    </svg:mask>
 +  </svg:svg>
 +#endif
 +#ifdef XP_MACOSX
@@ -1015,6 +1068,10 @@
 +      <svg:rect x="0" y="0" width="1" height="1" fill="white"/>
 +      <svg:circle cx="-0.41" cy="0.5" r="0.65"/>
 +    </svg:mask>
++    <svg:mask id="pinstripe-urlbar-back-button-mask" maskContentUnits="userSpaceOnUse">
++      <svg:rect x="0" y="-5" width="10000" height="55" fill="white"/>
++      <svg:circle cx="-9" cy="11" r="15"/>
++    </svg:mask>
 +    <svg:mask id="pinstripe-tab-ontop-left-curve-mask" maskContentUnits="userSpaceOnUse">
 +      <svg:circle cx="9" cy="3" r="3" fill="white"/>
 +      <svg:rect x="9" y="0" width="3" height="3" fill="white"/>
@@ -1142,7 +1199,7 @@
 diff --git a/browser/components/preferences/advanced.js b/browser/components/preferences/advanced.js
 --- a/browser/components/preferences/advanced.js
 +++ b/browser/components/preferences/advanced.js
-@@ -683,24 +683,42 @@ var gAdvancedPane = {
+@@ -690,24 +690,42 @@ var gAdvancedPane = {
      var brandBundle = document.getElementById("bundleBrand");
      var shellBundle = document.getElementById("bundleShell");
      var brandShortName = brandBundle.getString("brandShortName");
@@ -1271,33 +1328,33 @@
 +NS_IMPL_ISUPPORTS1(nsKDEShellService, nsIShellService)
 +
 +NS_IMETHODIMP
-+nsKDEShellService::IsDefaultBrowser(PRBool aStartupCheck,
-+                                      PRBool* aIsDefaultBrowser)
++nsKDEShellService::IsDefaultBrowser(bool aStartupCheck,
++                                    bool* aIsDefaultBrowser)
 +    {
 +    *aIsDefaultBrowser = PR_FALSE;
 +    if (aStartupCheck)
 +        mCheckedThisSession = PR_TRUE;
-+    nsCStringArray command;
-+    command.AppendCString( NS_LITERAL_CSTRING( "ISDEFAULTBROWSER" ));
++    nsTArray<nsCString> command;
++    command.AppendElement( NS_LITERAL_CSTRING( "ISDEFAULTBROWSER" ));
 +    if( nsKDEUtils::command( command ))
 +        *aIsDefaultBrowser = PR_TRUE;
 +    return NS_OK;
 +    }
 +
 +NS_IMETHODIMP
-+nsKDEShellService::SetDefaultBrowser(PRBool aClaimAllTypes,
-+                                       PRBool aForAllUsers)
++nsKDEShellService::SetDefaultBrowser(bool aClaimAllTypes,
++                                     bool aForAllUsers)
 +    {
-+    nsCStringArray command;
-+    command.AppendCString( NS_LITERAL_CSTRING( "SETDEFAULTBROWSER" ));
-+    command.AppendCString( aClaimAllTypes ? NS_LITERAL_CSTRING( "ALLTYPES" ) : NS_LITERAL_CSTRING( "NORMAL" ));
++    nsTArray<nsCString> command;
++    command.AppendElement( NS_LITERAL_CSTRING( "SETDEFAULTBROWSER" ));
++    command.AppendElement( aClaimAllTypes ? NS_LITERAL_CSTRING( "ALLTYPES" ) : NS_LITERAL_CSTRING( "NORMAL" ));
 +    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
 +    }
 +
 +NS_IMETHODIMP
-+nsKDEShellService::GetShouldCheckDefaultBrowser(PRBool* aResult)
++nsKDEShellService::GetShouldCheckDefaultBrowser(bool* aResult)
 +{
-+  // If we've already checked, the browser has been started and this is a 
++  // If we've already checked, the browser has been started and this is a
 +  // new window open, and we don't want to check again.
 +  if (mCheckedThisSession) {
 +    *aResult = PR_FALSE;
@@ -1316,7 +1373,7 @@
 +}
 +
 +NS_IMETHODIMP
-+nsKDEShellService::SetShouldCheckDefaultBrowser(PRBool aShouldCheck)
++nsKDEShellService::SetShouldCheckDefaultBrowser(bool aShouldCheck)
 +{
 +  nsCOMPtr<nsIPrefBranch> prefs;
 +  nsCOMPtr<nsIPrefService> pserve(do_GetService(NS_PREFSERVICE_CONTRACTID));
@@ -1351,11 +1408,11 @@
 +NS_IMETHODIMP
 +nsKDEShellService::OpenApplication(PRInt32 aApplication)
 +    {
-+    nsCStringArray command;
++    nsTArray<nsCString> command;
 +    if( aApplication == APPLICATION_MAIL )
-+        command.AppendCString( NS_LITERAL_CSTRING( "OPENMAIL" ));
++        command.AppendElement( NS_LITERAL_CSTRING( "OPENMAIL" ));
 +    else if( aApplication == APPLICATION_NEWS )
-+        command.AppendCString( NS_LITERAL_CSTRING( "OPENNEWS" ));
++        command.AppendElement( NS_LITERAL_CSTRING( "OPENNEWS" ));
 +    else
 +        return NS_ERROR_NOT_IMPLEMENTED;
 +    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
@@ -1364,13 +1421,13 @@
 +NS_IMETHODIMP
 +nsKDEShellService::OpenApplicationWithURI(nsILocalFile* aApplication, const nsACString& aURI)
 +    {
-+    nsCStringArray command;
-+    command.AppendCString( NS_LITERAL_CSTRING( "RUN" ));
++    nsTArray<nsCString> command;
++    command.AppendElement( NS_LITERAL_CSTRING( "RUN" ));
 +    nsCString app;
 +    nsresult rv = aApplication->GetNativePath( app );
 +    NS_ENSURE_SUCCESS( rv, rv );
-+    command.AppendCString( app );
-+    command.AppendCString( aURI );
++    command.AppendElement( app );
++    command.AppendElement( aURI );
 +    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
 +    }
 +
@@ -1379,14 +1436,14 @@
 +    {
 +    *_retval = nsnull;
 +
-+    nsCStringArray command;
-+    command.AppendCString( NS_LITERAL_CSTRING( "GETDEFAULTFEEDREADER" ));
-+    nsCStringArray output;
-+    if( !nsKDEUtils::command( command, &output ) || output.Count() != 1 )
++    nsTArray<nsCString> command;
++    command.AppendElement( NS_LITERAL_CSTRING( "GETDEFAULTFEEDREADER" ));
++    nsTArray<nsCString> output;
++    if( !nsKDEUtils::command( command, &output ) || output.Length() != 1 )
 +        return NS_ERROR_FAILURE;
 +
 +    nsCString path;
-+    path = *output[ 0 ];
++    path = output[ 0 ];
 +    if (path.IsEmpty())
 +        return NS_ERROR_FAILURE;
 +
@@ -1398,7 +1455,7 @@
 +    rv = defaultReader->InitWithNativePath(path);
 +    NS_ENSURE_SUCCESS(rv, rv);
 +
-+    PRBool exists;
++    bool exists;
 +    rv = defaultReader->Exists(&exists);
 +    NS_ENSURE_SUCCESS(rv, rv);
 +    if (!exists)
@@ -1581,7 +1638,7 @@
 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
 --- a/browser/installer/package-manifest.in
 +++ b/browser/installer/package-manifest.in
-@@ -424,16 +424,17 @@
+@@ -426,16 +426,17 @@
  #endif
  #endif
  
--- a/mozilla-kde.patch	Fri Dec 23 18:44:50 2011 +0100
+++ b/mozilla-kde.patch	Sun Dec 25 10:36:35 2011 +0100
@@ -21,7 +21,7 @@
 diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferences.cpp
 --- a/modules/libpref/src/Preferences.cpp
 +++ b/modules/libpref/src/Preferences.cpp
-@@ -53,16 +53,17 @@
+@@ -56,16 +56,17 @@
  #include "nsIStringEnumerator.h"
  #include "nsIZipReader.h"
  #include "nsPrefBranch.h"
@@ -39,7 +39,7 @@
  #include "prefapi.h"
  #include "prefread.h"
  #include "prefapi_private_data.h"
-@@ -956,30 +957,48 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
+@@ -935,30 +936,48 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
  }
  
  static nsresult pref_LoadPrefsInDirList(const char *listId)
@@ -71,7 +71,7 @@
                NS_GET_IID(nsISimpleEnumerator),
                getter_AddRefs(dirList));
    if (dirList) {
-     PRBool hasMore;
+     bool hasMore;
      while (NS_SUCCEEDED(dirList->HasMoreElements(&hasMore)) && hasMore) {
        nsCOMPtr<nsISupports> elem;
        dirList->GetNext(getter_AddRefs(elem));
@@ -89,7 +89,7 @@
  }
  
  static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name)
-@@ -1072,28 +1091,40 @@ static nsresult pref_InitInitialObjects(
+@@ -1051,28 +1070,40 @@ static nsresult pref_InitInitialObjects(
    /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
    static const char* specialFiles[] = {
  #if defined(XP_MACOSX)
@@ -112,7 +112,7 @@
    };
  
 +  if(nsKDEUtils::kdeSession()) { // TODO what if some setup actually requires the helper?
-+    for( int i = 0;
++    for(int i = 0;
 +        i < NS_ARRAY_LENGTH(specialFiles);
 +        ++i ) {
 +      if( *specialFiles[ i ] == '\0' ) {
@@ -122,7 +122,7 @@
 +    }
 +  }
 +
-   rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles));
+   rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, ArrayLength(specialFiles));
    if (NS_FAILED(rv))
      NS_WARNING("Error parsing application default preferences.");
  
@@ -147,7 +147,7 @@
 diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp
 --- a/toolkit/components/downloads/nsDownloadManager.cpp
 +++ b/toolkit/components/downloads/nsDownloadManager.cpp
-@@ -71,16 +71,20 @@
+@@ -74,16 +74,20 @@
  
  #ifdef XP_WIN
  #include <shlobj.h>
@@ -168,22 +168,22 @@
  #include "AndroidBridge.h"
  #endif
  
-@@ -2203,16 +2207,25 @@ nsDownload::SetState(DownloadState aStat
+@@ -2214,16 +2218,25 @@ nsDownload::SetState(DownloadState aStat
        nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
  
        // Master pref to control this function.
-       PRBool showTaskbarAlert = PR_TRUE;
+       bool showTaskbarAlert = true;
        if (pref)
          pref->GetBoolPref(PREF_BDM_SHOWALERTONCOMPLETE, &showTaskbarAlert);
  
        if (showTaskbarAlert) {
 +        if( nsKDEUtils::kdeSupport()) {
-+            nsCStringArray command;
-+            command.AppendCString( NS_LITERAL_CSTRING( "DOWNLOADFINISHED" ));
-+            nsAutoString displayName;
-+            GetDisplayName( displayName );
-+            command.AppendCString( nsCAutoString( ToNewUTF8String( displayName )));
-+            nsKDEUtils::command( command );
++          nsTArray<nsCString> command;
++          command.AppendElement( NS_LITERAL_CSTRING( "DOWNLOADFINISHED" ));
++          nsAutoString displayName;
++          GetDisplayName( displayName );
++          command.AppendElement( nsCAutoString( ToNewUTF8String( displayName )));
++          nsKDEUtils::command( command );
 +        } else {
 +        // begin non-KDE block
          PRInt32 alertInterval = 2000;
@@ -194,7 +194,7 @@
          PRInt64 goat = PR_Now() - mStartTime;
          showTaskbarAlert = goat > alertIntervalUSec;
  
-@@ -2236,19 +2249,20 @@ nsDownload::SetState(DownloadState aStat
+@@ -2247,19 +2260,20 @@ nsDownload::SetState(DownloadState aStat
                // If downloads are automatically removed per the user's
                // retention policy, there's no reason to make the text clickable
                // because if it is, they'll click open the download manager and
@@ -2110,7 +2110,7 @@
    ~nsUnixSystemProxySettings() {}
    
    nsCOMPtr<nsIGConfService> mGConf;
-   PRBool IsProxyMode(const char* aMode);
+   bool IsProxyMode(const char* aMode);
    nsresult SetProxyResultFromGConf(const char* aKeyBase, const char* aType, nsACString& aResult);
    nsresult GetProxyFromGConf(const nsACString& aScheme, const nsACString& aHost, PRInt32 aPort, nsACString& aResult);
 +  nsresult GetProxyFromKDE(const nsACString& aScheme, const nsACString& aHost, PRInt32 aPort, nsACString& aResult);
@@ -2121,8 +2121,8 @@
  nsresult
  nsUnixSystemProxySettings::Init()
  {
-   // If this is a GNOME session, load gconf and try to use its preferences.
-@@ -407,16 +410,19 @@ nsUnixSystemProxySettings::GetProxyForUR
+   mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
+@@ -408,16 +411,19 @@ nsUnixSystemProxySettings::GetProxyForUR
    nsCAutoString host;
    rv = aURI->GetHost(host);
    NS_ENSURE_SUCCESS(rv, rv);
@@ -2142,7 +2142,7 @@
  
  #define NS_UNIXSYSTEMPROXYSERVICE_CID  /* 0fa3158c-d5a7-43de-9181-a285e74cf1d4 */\
       { 0x0fa3158c, 0xd5a7, 0x43de, \
-@@ -437,8 +443,34 @@ static const mozilla::Module::ContractID
+@@ -438,8 +444,34 @@ static const mozilla::Module::ContractID
  
  static const mozilla::Module kUnixProxyModule = {
    mozilla::Module::kVersion,
@@ -2167,10 +2167,10 @@
 +    url += ":";
 +    url += nsPrintfCString("%d", aPort);
 +  }
-+  nsCStringArray command;
-+  command.AppendCString( NS_LITERAL_CSTRING( "GETPROXY" ));
-+  command.AppendCString( url );
-+  nsCStringArray result;
++  nsTArray<nsCString> command;
++  command.AppendElement( NS_LITERAL_CSTRING( "GETPROXY" ));
++  command.AppendElement( url );
++  nsTArray<nsCString> result;
 +  if( !nsKDEUtils::command( command, &result ) || result.Count() != 1 )
 +    return NS_ERROR_FAILURE;
 +  aResult = *result[ 0 ];
@@ -2180,10 +2180,10 @@
 diff --git a/toolkit/xre/Makefile.in b/toolkit/xre/Makefile.in
 --- a/toolkit/xre/Makefile.in
 +++ b/toolkit/xre/Makefile.in
-@@ -94,17 +94,18 @@ EXPORTS = nsWindowsDllInterceptor.h
- else
+@@ -95,17 +95,18 @@ else
  ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
  CMMSRCS = nsNativeAppSupportCocoa.mm
+ EXPORTS = MacQuirks.h
  else
  ifeq ($(MOZ_WIDGET_TOOLKIT),os2)
  CPPSRCS += nsNativeAppSupportOS2.cpp
@@ -2195,16 +2195,16 @@
  else
  ifeq ($(MOZ_WIDGET_TOOLKIT),qt)
  MOCSRCS += moc_nsNativeAppSupportQt.cpp
-   $(NULL)
  CPPSRCS += $(MOCSRCS)
  CPPSRCS += nsNativeAppSupportQt.cpp
  CPPSRCS += nsQAppInstance.cpp
  EXPORTS += nsQAppInstance.h
+ else
 diff --git a/toolkit/xre/nsKDEUtils.cpp b/toolkit/xre/nsKDEUtils.cpp
 new file mode 100644
 --- /dev/null
 +++ b/toolkit/xre/nsKDEUtils.cpp
-@@ -0,0 +1,328 @@
+@@ -0,0 +1,330 @@
 +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 +/* ***** BEGIN LICENSE BLOCK *****
 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
@@ -2299,10 +2299,10 @@
 +
 +static bool getKdeSupport()
 +    {
-+    nsCStringArray command;
-+    command.AppendCString( NS_LITERAL_CSTRING( "CHECK" ));
-+    command.AppendCString( NS_LITERAL_CSTRING( MAKE_STR( KMOZILLAHELPER_VERSION )));
-+    bool kde = nsKDEUtils::command( command );
++    nsTArray<nsCString> command;
++    command.AppendElement( NS_LITERAL_CSTRING( "CHECK" ));
++    command.AppendElement( NS_LITERAL_CSTRING( MAKE_STR( KMOZILLAHELPER_VERSION )));
++    bool kde = nsKDEUtils::command( command.get() );
 +#ifdef DEBUG_KDE
 +    fprintf( stderr, "KDE RUNNING %d\n", kde );
 +#endif
@@ -2344,7 +2344,7 @@
 +struct nsKDECommandData
 +    {
 +    FILE* file;
-+    nsCStringArray* output;
++    nsTArray<nsCString>* output;
 +    GMainLoop* loop;
 +    bool success;
 +    };
@@ -2368,7 +2368,7 @@
 +        line.ReplaceSubstring( "\\n", "\n" );
 +        line.ReplaceSubstring( "\\" "\\", "\\" ); //  \\ -> \ , i.e. unescape
 +        if( p->output && !( command_done || command_failed ))
-+            p->output->AppendCString( nsCString( buf )); // TODO utf8?
++            p->output->AppendElement( nsCString( buf )); // TODO utf8?
 +        }
 +    bool quit = false;
 +    if( feof( p->file ) || command_failed )
@@ -2390,22 +2390,24 @@
 +    return TRUE;
 +    }
 +
-+bool nsKDEUtils::command( const nsCStringArray& command, nsCStringArray* output )
++bool nsKDEUtils::command( const nsTArray<nsCString>& command, nsTArray<nsCString>* output )
 +    {
 +    return self()->internalCommand( command, NULL, false, output );
 +    }
 +
-+bool nsKDEUtils::commandBlockUi( const nsCStringArray& command, const GtkWindow* parent, nsCStringArray* output )
++bool nsKDEUtils::commandBlockUi( const nsTArray<nsCString>& command, const GtkWindow* parent, nsTArray<nsCString>* output )
 +    {
 +    return self()->internalCommand( command, parent, true, output );
 +    }
 +
-+bool nsKDEUtils::internalCommand( const nsCStringArray& command, const GtkWindow* parent, bool blockUi,
-+    nsCStringArray* output )
++bool nsKDEUtils::internalCommand( const nsTArray<nsCString>& command, const GtkWindow* parent, bool blockUi,
++    nsTArray<nsCString>* output )
 +    {
++    nsCString internal_command;
++    internal_command.AssignLiteral(command);
 +    if( !startHelper())
 +        return false;
-+    feedCommand( command );
++    feedCommand(internal_command);
 +    // do not store the data in 'this' but in extra structure, just in case there
 +    // is reentrancy (can there be? the event loop is re-entered)
 +    nsKDECommandData data;
@@ -2515,13 +2517,13 @@
 +    helperRunning = false;
 +    }
 +
-+void nsKDEUtils::feedCommand( const nsCStringArray& command )
++void nsKDEUtils::feedCommand( const nsTArray<nsCString>& command )
 +    {
 +    for( int i = 0;
-+         i < command.Count();
++         i < command.Length();
 +         ++i )
 +        {
-+        nsCString line = *command[ i ];
++        nsCString line = command[ i ];
 +        line.ReplaceSubstring( "\\", "\\" "\\" ); // \ -> \\ , i.e. escape
 +        line.ReplaceSubstring( "\n", "\\n" );
 +#ifdef DEBUG_KDE
@@ -2537,7 +2539,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/toolkit/xre/nsKDEUtils.h
-@@ -0,0 +1,77 @@
+@@ -0,0 +1,78 @@
 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 + *
 + * ***** BEGIN LICENSE BLOCK *****
@@ -2580,7 +2582,7 @@
 +#define nsKDEUtils_h__
 +
 +#include "nsStringGlue.h"
-+#include "nsVoidArray.h"
++#include "nsTArray.h"
 +#include <stdio.h>
 +
 +typedef struct _GtkWindow GtkWindow;
@@ -2596,20 +2598,21 @@
 +           for Firefox. This should be used everywhere where the external helper is needed. */
 +        static bool kdeSupport();
 +        /* Executes the given helper command, returns true if helper returned success. */
-+        static bool command( const nsCStringArray& command, nsCStringArray* output = NULL );
++        static bool command( const nsTArray<nsCString>& command, nsTArray<nsCString>* output = NULL );
 +        /* Like command(), but additionally blocks the parent widget like if there was
 +           a modal dialog shown and enters the event loop (i.e. there are still paint updates,
 +           this is for commands that take long). */
-+        static bool commandBlockUi( const nsCStringArray& command, const GtkWindow* parent, nsCStringArray* output = NULL );
++        static bool commandBlockUi( const nsTArray<nsCString>& command, const GtkWindow* parent, nsTArray<nsCString>* output = NULL );
++
 +    private:
 +        nsKDEUtils();
 +        ~nsKDEUtils();
 +        static nsKDEUtils* self();
 +        bool startHelper();
 +        void closeHelper();
-+        void feedCommand( const nsCStringArray& command );
-+        bool internalCommand( const nsCStringArray& command, const GtkWindow* parent, bool isParent,
-+            nsCStringArray* output );
++        void feedCommand( const nsTArray<nsCString>& command );
++        bool internalCommand( const nsTArray<nsCString>& command, const GtkWindow* parent, bool isParent,
++            nsTArray<nsCString>* output );
 +        FILE* commandFile;
 +        FILE* replyFile;
 +    };
@@ -2847,20 +2850,20 @@
 +/* static */ PRBool
 +nsKDERegistry::HandlerExists(const char *aProtocolScheme)
 +{
-+    nsCStringArray command;
-+    command.AppendCString( NS_LITERAL_CSTRING( "HANDLEREXISTS" ));
-+    command.AppendCString( nsCAutoString( aProtocolScheme ));
++    nsTArray<nsCString> command;
++    command.AppendElement( NS_LITERAL_CSTRING( "HANDLEREXISTS" ));
++    command.AppendElement( nsCAutoString( aProtocolScheme ));
 +    return nsKDEUtils::command( command );
 +}
 +
 +/* static */ nsresult
 +nsKDERegistry::LoadURL(nsIURI *aURL)
 +{
-+    nsCStringArray command;
-+    command.AppendCString( NS_LITERAL_CSTRING( "OPEN" ));
++    nsTArray<nsCString> command;
++    command.AppendElement( NS_LITERAL_CSTRING( "OPEN" ));
 +    nsCString url;
 +    aURL->GetSpec( url );
-+    command.AppendCString( url );
++    command.AppendElement( url );
 +    return nsKDEUtils::command( command );
 +}
 +
@@ -2868,12 +2871,12 @@
 +nsKDERegistry::GetAppDescForScheme(const nsACString& aScheme,
 +                                     nsAString& aDesc)
 +{
-+    nsCStringArray command;
-+    command.AppendCString( NS_LITERAL_CSTRING( "GETAPPDESCFORSCHEME" ));
-+    command.AppendCString( aScheme );
-+    nsCStringArray output;
-+    if( nsKDEUtils::command( command, &output ) && output.Count() == 1 )
-+        CopyUTF8toUTF16( *output[ 0 ], aDesc );
++    nsTArray<nsCString> command;
++    command.AppendElement( NS_LITERAL_CSTRING( "GETAPPDESCFORSCHEME" ));
++    command.AppendElement( aScheme );
++    nsTArray<nsCString> output;
++    if( nsKDEUtils::command( command, &output ) && output.Length() == 1 )
++        CopyUTF8toUTF16( output[ 0 ], aDesc );
 +}
 +
 +
@@ -2881,33 +2884,33 @@
 +nsKDERegistry::GetFromExtension(const nsACString& aFileExt)
 +{
 +    NS_ASSERTION(aFileExt[0] != '.', "aFileExt shouldn't start with a dot");
-+    nsCStringArray command;
-+    command.AppendCString( NS_LITERAL_CSTRING( "GETFROMEXTENSION" ));
-+    command.AppendCString( aFileExt );
++    nsTArray<nsCString> command;
++    command.AppendElement( NS_LITERAL_CSTRING( "GETFROMEXTENSION" ));
++    command.AppendElement( aFileExt );
 +    return GetFromHelper( command );
 +}
 +
 +/* static */ already_AddRefed<nsMIMEInfoBase>
 +nsKDERegistry::GetFromType(const nsACString& aMIMEType)
 +{
-+    nsCStringArray command;
-+    command.AppendCString( NS_LITERAL_CSTRING( "GETFROMTYPE" ));
-+    command.AppendCString( aMIMEType );
++    nsTArray<nsCString> command;
++    command.AppendElement( NS_LITERAL_CSTRING( "GETFROMTYPE" ));
++    command.AppendElement( aMIMEType );
 +    return GetFromHelper( command );
 +}
 +
 +/* static */ already_AddRefed<nsMIMEInfoBase>
-+nsKDERegistry::GetFromHelper(const nsCStringArray& command)
++nsKDERegistry::GetFromHelper(const nsTArray<nsCString>& command)
 +{
-+    nsCStringArray output;
-+    if( nsKDEUtils::command( command, &output ) && output.Count() == 3 )
++    nsTArray<nsCString> output;
++    if( nsKDEUtils::command( command, &output ) && output.Length() == 3 )
 +        {
-+        nsCString mimetype = *output[ 0 ];
++        nsCString mimetype = output[ 0 ];
 +        nsRefPtr<nsMIMEInfoUnix> mimeInfo = new nsMIMEInfoUnix( mimetype );
 +        NS_ENSURE_TRUE(mimeInfo, nsnull);
-+        nsCString description = *output[ 1 ];
++        nsCString description = output[ 1 ];
 +        mimeInfo->SetDescription(NS_ConvertUTF8toUTF16(description));
-+        nsCString handlerAppName = *output[ 2 ];
++        nsCString handlerAppName = output[ 2 ];
 +        mimeInfo->SetDefaultDescription(NS_ConvertUTF8toUTF16(handlerAppName));
 +        mimeInfo->SetPreferredAction(nsIMIMEInfo::useSystemDefault);
 +        nsMIMEInfoBase* retval;
@@ -2920,7 +2923,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/uriloader/exthandler/unix/nsKDERegistry.h
-@@ -0,0 +1,61 @@
+@@ -0,0 +1,62 @@
 +/* ***** BEGIN LICENSE BLOCK *****
 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 + *
@@ -2960,10 +2963,11 @@
 +
 +#include "nsIURI.h"
 +#include "nsCOMPtr.h"
++#include "nsTArray.h"
 +
 +class nsMIMEInfoBase;
 +class nsCAutoString;
-+class nsCStringArray;
++class nsCString;
 +
 +class nsKDERegistry
 +{
@@ -2979,7 +2983,7 @@
 +
 +  static already_AddRefed<nsMIMEInfoBase> GetFromType(const nsACString& aMIMEType);
 + private:
-+  static already_AddRefed<nsMIMEInfoBase> GetFromHelper(const nsCStringArray& command);
++  static already_AddRefed<nsMIMEInfoBase> GetFromHelper(const nsTArray<nsCString>& command);
 +
 +};
 diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
@@ -3027,9 +3031,9 @@
  }
  
  NS_IMETHODIMP
- nsMIMEInfoUnix::GetHasDefaultHandler(PRBool *_retval)
+ nsMIMEInfoUnix::GetHasDefaultHandler(bool *_retval)
  {
-   *_retval = PR_FALSE;
+   *_retval = false;
 -  nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);
 +  nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType);
    if (!mimeInfo) {
@@ -3041,7 +3045,7 @@
      }
    }
    if (mimeInfo)
-     *_retval = PR_TRUE;
+     *_retval = true;
  
    if (*_retval)
      return NS_OK;
@@ -3056,13 +3060,13 @@
  #endif
  
 +  if( nsKDEUtils::kdeSupport()) {
-+    PRBool supports;
++    bool supports;
 +    if( NS_SUCCEEDED( GetHasDefaultHandler( &supports )) && supports ) {
-+      nsCStringArray command;
-+      command.AppendCString( NS_LITERAL_CSTRING( "OPEN" ));
-+      command.AppendCString( nativePath );
-+      command.AppendCString( NS_LITERAL_CSTRING( "MIMETYPE" ));
-+      command.AppendCString( mSchemeOrType );
++      nsTArray<nsCString> command;
++      command.AppendElement( NS_LITERAL_CSTRING( "OPEN" ));
++      command.AppendElement( nativePath );
++      command.AppendElement( NS_LITERAL_CSTRING( "MIMETYPE" ));
++      command.AppendElement( mSchemeOrType );
 +      if( nsKDEUtils::command( command ))
 +        return NS_OK;
 +    }
@@ -3125,7 +3129,7 @@
      ContentAction::Action::defaultActionForScheme(QString(aProtocolScheme) + ':');
  
    if (action.isValid())
-     *aHandlerExists = PR_TRUE;
+     *aHandlerExists = true;
  #endif
  
  #ifdef MOZ_WIDGET_GTK2
@@ -3156,7 +3160,7 @@
 @@ -1299,17 +1299,17 @@ nsOSHelperAppService::GetFromExtension(c
                                           minorType,
                                           mime_types_description,
-                                          PR_TRUE);
+                                          true);
  
    if (NS_FAILED(rv) || majorType.IsEmpty()) {
      
@@ -3212,14 +3216,14 @@
 diff --git a/widget/src/gtk2/nsFilePicker.cpp b/widget/src/gtk2/nsFilePicker.cpp
 --- a/widget/src/gtk2/nsFilePicker.cpp
 +++ b/widget/src/gtk2/nsFilePicker.cpp
-@@ -31,16 +31,17 @@
-  * decision by deleting the provisions above and replace them with the notice
-  * and other provisions required by the GPL or the LGPL. If you do not delete
+@@ -33,16 +33,17 @@
   * the provisions above, a recipient may use your version of this file under
   * the terms of any one of the MPL, the GPL or the LGPL.
   *
   * ***** END LICENSE BLOCK ***** */
  
+ #include "mozilla/Util.h"
+ 
  #include <gtk/gtk.h>
 +#include <gdk/gdkx.h>
  
@@ -3230,7 +3234,7 @@
  #include "nsIStringBundle.h"
  
  #include "nsArrayEnumerator.h"
-@@ -49,16 +50,17 @@
+@@ -51,16 +52,17 @@
  #include "nsNetUtil.h"
  #include "nsReadableUtils.h"
  #include "mozcontainer.h"
@@ -3245,10 +3249,10 @@
  #include <hildon-fm-2/hildon/hildon-file-chooser-dialog.h>
  #endif
  
- #define MAX_PREVIEW_SIZE 180
+ using namespace mozilla;
  
- nsILocalFile *nsFilePicker::mPrevDisplayDirectory = nsnull;
-@@ -281,17 +283,19 @@ nsFilePicker::AppendFilters(PRInt32 aFil
+ #define MAX_PREVIEW_SIZE 180
+@@ -285,17 +287,19 @@ nsFilePicker::AppendFilters(PRInt32 aFil
    return nsBaseFilePicker::AppendFilters(aFilterMask);
  }
  
@@ -3269,7 +3273,7 @@
  
    mFilters.AppendElement(filter);
    mFilterNames.AppendElement(name);
-@@ -429,16 +433,19 @@ confirm_overwrite_file(GtkWidget *parent
+@@ -433,16 +437,19 @@ confirm_overwrite_file(GtkWidget *parent
    gtk_widget_destroy(dialog);
  
    return result;
@@ -3289,7 +3293,7 @@
    GtkWindow *parent_widget = get_gtk_window_for_nsiwidget(mParentWidget);
  
    GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
-@@ -579,8 +586,234 @@ nsFilePicker::Show(PRInt16 *aReturn)
+@@ -583,8 +590,234 @@ nsFilePicker::Show(PRInt16 *aReturn)
      *aReturn = nsIFilePicker::returnCancel;
      break;
    }
@@ -3403,47 +3407,47 @@
 +            }
 +        }
 +
-+    nsCStringArray command;
-+    command.AppendCString( nsCAutoString( arg ));
-+    command.AppendCString( startdir );
++    nsTArray<nsCString> command;
++    command.AppendElement( nsCAutoString( arg ));
++    command.AppendElement( startdir );
 +    if( mMode != nsIFilePicker::modeGetFolder )
 +        {
-+        command.AppendCString( filters );
++        command.AppendElement( filters );
 +        nsCAutoString selected;
 +        selected.AppendInt( mSelectedType );
-+        command.AppendCString( selected );
++        command.AppendElement( selected );
 +        }
-+    command.AppendCString( title );
++    command.AppendElement( title );
 +    if( mMode == nsIFilePicker::modeOpenMultiple )
-+        command.AppendCString( NS_LITERAL_CSTRING( "MULTIPLE" ));
++        command.AppendElement( NS_LITERAL_CSTRING( "MULTIPLE" ));
 +    if( PRInt32 xid = windowToXid( mParentWidget ))
 +        {
-+        command.AppendCString( NS_LITERAL_CSTRING( "PARENT" ));
++        command.AppendElement( NS_LITERAL_CSTRING( "PARENT" ));
 +        nsCAutoString parent;
 +        parent.AppendInt( xid );
-+        command.AppendCString( parent );
++        command.AppendElement( parent );
 +        }
 +
-+    nsCStringArray output;
++    nsTArray<nsCString> output;
 +    if( nsKDEUtils::commandBlockUi( command, get_gtk_window_for_nsiwidget( mParentWidget ), &output ))
 +        {
 +        *aReturn = nsIFilePicker::returnOK;
 +        mFiles.Clear();
 +        if( mMode != nsIFilePicker::modeGetFolder )
 +            {
-+            mSelectedType = atoi( output[ 0 ]->get());
-+            output.RemoveCStringAt( 0 );
++            mSelectedType = atoi( output[ 0 ].get());
++            output.RemoveElementAt( 0 );
 +            }
 +        if (mMode == nsIFilePicker::modeOpenMultiple)
 +            {
 +            mFileURL.Truncate();
-+            PRUint32 count = output.Count();
++            PRUint32 count = output.Length();
 +            for( PRUint32 i = 0;
 +                 i < count;
 +                 ++i )
 +                {
 +                nsCOMPtr<nsILocalFile> localfile;
-+                nsresult rv = NS_NewNativeLocalFile( *output[ i ],
++                nsresult rv = NS_NewNativeLocalFile( output[ i ],
 +                                      PR_FALSE,
 +                                      getter_AddRefs(localfile));
 +                if (NS_SUCCEEDED(rv))
@@ -3452,14 +3456,14 @@
 +            }
 +        else
 +            {
-+            if( output.Count() == 0 )
++            if( output.Length() == 0 )
 +                mFileURL = nsCString();
 +            else if( mAllowURLs )
-+                mFileURL = *output[ 0 ];
++                mFileURL = output[ 0 ];
 +            else // GetFile() actually requires it to be url even for local files :-/
 +                {
 +                mFileURL = nsCString( "file://" );
-+                mFileURL.Append( *output[ 0 ] );
++                mFileURL.Append( output[ 0 ] );
 +                }
 +            }
 +  // Remember last used directory.
@@ -3479,7 +3483,7 @@
 +            GetFile(getter_AddRefs(file));
 +            if (file)
 +                {
-+                PRBool exists = PR_FALSE;
++                bool exists = false;
 +                file->Exists(&exists);
 +                if (exists) // TODO do overwrite check in the helper app
 +                    *aReturn = nsIFilePicker::returnReplace;
@@ -3501,22 +3505,22 @@
 +    nsXPIDLCString title;
 +    title.Adopt(ToNewUTF8String(mTitle));
 +
-+    nsCStringArray command;
-+    command.AppendCString( NS_LITERAL_CSTRING( "APPSDIALOG" ));
-+    command.AppendCString( title );
++    nsTArray<nsCString> command;
++    command.AppendElement( NS_LITERAL_CSTRING( "APPSDIALOG" ));
++    command.AppendElement( title );
 +    if( PRInt32 xid = windowToXid( mParentWidget ))
 +        {
-+        command.AppendCString( NS_LITERAL_CSTRING( "PARENT" ));
++        command.AppendElement( NS_LITERAL_CSTRING( "PARENT" ));
 +        nsCAutoString parent;
 +        parent.AppendInt( xid );
-+        command.AppendCString( parent );
++        command.AppendElement( parent );
 +        }
 +
-+    nsCStringArray output;
++    nsTArray<nsCString> output;
 +    if( nsKDEUtils::commandBlockUi( command, get_gtk_window_for_nsiwidget( mParentWidget ), &output ))
 +        {
 +        *aReturn = nsIFilePicker::returnOK;
-+        mFileURL = output.Count() > 0 ? *output[ 0 ] : nsCString();
++        mFileURL = output.Length() > 0 ? output[ 0 ] : nsCString();
 +        }
 +    else
 +        {
@@ -3563,7 +3567,7 @@
 diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp
 --- a/xpcom/components/ManifestParser.cpp
 +++ b/xpcom/components/ManifestParser.cpp
-@@ -60,16 +60,17 @@
+@@ -62,16 +62,17 @@
  #include "nsTextFormatter.h"
  #include "nsVersionComparator.h"
  #include "nsXPCOMCIDInternal.h"
@@ -3574,14 +3578,14 @@
  #include "nsIXULRuntime.h"
 +#include "nsKDEUtils.h"
  
+ using namespace mozilla;
+ 
  struct ManifestDirective
  {
    const char* directive;
    int argc;
  
-   // Some directives should only be delivered for NS_COMPONENT_LOCATION
-   // manifests.
-@@ -430,16 +431,17 @@ ParseManifestCommon(NSLocationType aType
+@@ -434,16 +435,17 @@ ParseManifestCommon(NSLocationType aType
    NS_NAMED_LITERAL_STRING(kPlatform, "platform");
    NS_NAMED_LITERAL_STRING(kContentAccessible, "contentaccessible");
    NS_NAMED_LITERAL_STRING(kApplication, "application");
@@ -3599,7 +3603,7 @@
    nsAutoString appVersion;
    nsAutoString geckoVersion;
    nsAutoString osTarget;
-@@ -474,39 +476,44 @@ ParseManifestCommon(NSLocationType aType
+@@ -478,39 +480,44 @@ ParseManifestCommon(NSLocationType aType
          CopyUTF8toUTF16(s, abi);
          abi.Insert(PRUnichar('_'), 0);
          abi.Insert(osTarget, 0);
@@ -3644,7 +3648,7 @@
  
    char *token;
    char *newline = buf;
-@@ -585,24 +592,26 @@ ParseManifestCommon(NSLocationType aType
+@@ -589,24 +596,26 @@ ParseManifestCommon(NSLocationType aType
      TriState stAppVersion = eUnspecified;
      TriState stGeckoVersion = eUnspecified;
      TriState stApp = eUnspecified;
@@ -3671,7 +3675,7 @@
        if (directive->contentflags &&
            (CheckFlag(kPlatform, wtoken, platform) ||
             CheckFlag(kContentAccessible, wtoken, contentAccessible)))
-@@ -623,16 +632,17 @@ ParseManifestCommon(NSLocationType aType
+@@ -627,16 +636,17 @@ ParseManifestCommon(NSLocationType aType
      }
  
      if (!ok ||
@@ -3714,11 +3718,11 @@
 diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
 --- a/xpcom/io/nsLocalFileUnix.cpp
 +++ b/xpcom/io/nsLocalFileUnix.cpp
-@@ -87,16 +87,17 @@
- #include "nsXPIDLString.h"
+@@ -90,16 +90,17 @@
  #include "prproces.h"
  #include "nsIDirectoryEnumerator.h"
  #include "nsISimpleEnumerator.h"
+ #include "private/pprio.h"
  
  #ifdef MOZ_WIDGET_GTK2
  #include "nsIGIOService.h"
@@ -3726,13 +3730,13 @@
 +#include "nsKDEUtils.h"
  #endif
  
- #ifdef XP_MACOSX
+ #ifdef MOZ_WIDGET_COCOA
  #include <Carbon/Carbon.h>
  #include "CocoaFileUtils.h"
  #include "prmem.h"
  #include "plbase64.h"
  
-@@ -1785,44 +1786,50 @@ nsLocalFile::SetPersistentDescriptor(con
+@@ -1795,44 +1796,51 @@ nsLocalFile::SetPersistentDescriptor(con
      return InitWithNativePath(aPersistentDescriptor);
  #endif
  }
@@ -3747,7 +3751,7 @@
 -        return NS_ERROR_FAILURE;
 -
 +    nsCAutoString url;
-     PRBool isDirectory;
+     bool isDirectory;
      if (NS_FAILED(IsDirectory(&isDirectory)))
          return NS_ERROR_FAILURE;
  
@@ -3774,9 +3778,9 @@
      }
 +
 +    if(nsKDEUtils::kdeSupport()) {
-+      nsCStringArray command;
-+      command.AppendCString( NS_LITERAL_CSTRING( "OPEN" ));
-+      command.AppendCString( url );
++      nsTArray<nsCString> command;
++      command.AppendElement( NS_LITERAL_CSTRING("OPEN") );
++      command.AppendElement( url );
 +      return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
 +    }
 +
@@ -3789,7 +3793,8 @@
 +      return giovfs->ShowURIForInput(url);
 +    else
 +      return gnomevfs->ShowURIForInput(url);
- #elif defined(XP_MACOSX)
++
+ #elif defined(MOZ_WIDGET_COCOA)
      CFURLRef url;
      if (NS_SUCCEEDED(GetCFURL(&url))) {
        nsresult rv = CocoaFileUtils::RevealFileInFinder(url);
@@ -3797,7 +3802,7 @@
        return rv;
      }
      return NS_ERROR_FAILURE;
-@@ -1848,16 +1855,23 @@ nsLocalFile::Launch()
+@@ -1858,16 +1866,23 @@ nsLocalFile::Launch()
  
      if (nsnull == connection)
        return NS_ERROR_FAILURE;
@@ -3807,9 +3812,9 @@
      return NS_OK;
  #else
 +    if( nsKDEUtils::kdeSupport()) {
-+      nsCStringArray command;
-+      command.AppendCString( NS_LITERAL_CSTRING( "OPEN" ));
-+      command.AppendCString( mPath );
++      nsTArray<nsCString> command;
++      command.AppendElement( NS_LITERAL_CSTRING("OPEN") );
++      command.AppendElement( mPath );
 +      return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
 +    }
 +
--- a/mozilla-nongnome-proxies.patch	Fri Dec 23 18:44:50 2011 +0100
+++ b/mozilla-nongnome-proxies.patch	Sun Dec 25 10:36:35 2011 +0100
@@ -5,17 +5,19 @@
 ===================================================================
 RCS file: /cvsroot/mozilla/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp,v
 retrieving revision 1.1
-diff -u -p -6 -r1.1 nsUnixSystemProxySettings.cpp
---- toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp	29 Jan 2008 15:58:41 -0000	1.1
-+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp	17 Apr 2008 19:02:19 -0000
-@@ -69,13 +69,19 @@ private:
+
+diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
+--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
++++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
+@@ -68,16 +68,23 @@ private:
+ };
  
  NS_IMPL_ISUPPORTS1(nsUnixSystemProxySettings, nsISystemProxySettings)
  
  nsresult
  nsUnixSystemProxySettings::Init()
  {
--  mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
+   mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
 +  // If this is a GNOME session, load gconf and try to use its preferences.
 +  // If gconf is not available (which would be stupid) we'll proceed as if
 +  // this was not a GNOME session, using *_PROXY environment variables.
@@ -26,6 +28,8 @@
    return NS_OK;
  }
  
- PRBool
+ bool
  nsUnixSystemProxySettings::IsProxyMode(const char* aMode)
  {
+   nsCAutoString mode;
+   return NS_SUCCEEDED(mGConf->GetString(NS_LITERAL_CSTRING("/system/proxy/mode"), mode)) &&
--- a/mozilla-ntlm-full-path.patch	Fri Dec 23 18:44:50 2011 +0100
+++ b/mozilla-ntlm-full-path.patch	Sun Dec 25 10:36:35 2011 +0100
@@ -1,6 +1,6 @@
 # HG changeset patch
 # User Petr Cerny <pcerny@novell.com>
-# Parent 971259052418fda3b7fc81da75be4557ea5d82bc
+# Parent a843037ea4cee813a68dd529e7a503d1e40b81e4
 Bug 634334 - call to the ntlm_auth helper fails
 
 diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
@@ -23,5 +23,5 @@
          nsnull
      };
  
-     PRBool isOK = SpawnIOChild(args, &mChildPID, &mFromChildFD, &mToChildFD);
+     bool isOK = SpawnIOChild(args, &mChildPID, &mFromChildFD, &mToChildFD);
      if (!isOK)  
--- a/mozilla-ppc64.patch	Fri Dec 23 18:44:50 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-# HG changeset patch
-# Parent 928a29c4a79c9041d6b9f68e24de8f5aab15cc5d
-From: upstream
-Subject: Fix PPC64 build
-https://bugzilla.mozilla.org/show_bug.cgi?id=670719
-https://bugzilla.mozilla.org/show_bug.cgi?id=654056
-
-diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h
---- a/ipc/chromium/src/build/build_config.h
-+++ b/ipc/chromium/src/build/build_config.h
-@@ -54,16 +54,19 @@
- #define ARCH_CPU_X86_FAMILY 1
- #define ARCH_CPU_X86 1
- #define ARCH_CPU_32_BITS 1
- #elif defined(__ARMEL__)
- #define ARCH_CPU_ARM_FAMILY 1
- #define ARCH_CPU_ARMEL 1
- #define ARCH_CPU_32_BITS 1
- #define WCHAR_T_IS_UNSIGNED 1
-+#elif defined(__powerpc64__)
-+#define ARCH_CPU_PPC64 1
-+#define ARCH_CPU_64_BITS 1
- #elif defined(__ppc__) || defined(__powerpc__)
- #define ARCH_CPU_PPC 1
- #define ARCH_CPU_32_BITS 1
- #elif defined(__sparc64__)
- #define ARCH_CPU_SPARC 1
- #define ARCH_CPU_64_BITS 1
- #else
- #error Please add support for your architecture in build/build_config.h
--- a/mozilla-prefer_plugin_pref.patch	Fri Dec 23 18:44:50 2011 +0100
+++ b/mozilla-prefer_plugin_pref.patch	Sun Dec 25 10:36:35 2011 +0100
@@ -4,8 +4,8 @@
 diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp
 --- a/dom/plugins/base/nsPluginHost.cpp
 +++ b/dom/plugins/base/nsPluginHost.cpp
-@@ -1637,17 +1637,48 @@ nsPluginHost::FindPluginForType(const ch
-                                 PRBool aCheckEnabled)
+@@ -1580,17 +1580,48 @@ nsPluginHost::FindPluginForType(const ch
+                                 bool aCheckEnabled)
  {
    if (!aMimeType) {
      return nsnull;
--- a/mozilla-shared-nss-db.patch	Fri Dec 23 18:44:50 2011 +0100
+++ b/mozilla-shared-nss-db.patch	Sun Dec 25 10:36:35 2011 +0100
@@ -7,7 +7,7 @@
 diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in
 --- a/config/autoconf.mk.in
 +++ b/config/autoconf.mk.in
-@@ -571,16 +571,20 @@ MOZ_LIBNOTIFY_LIBS	= @MOZ_LIBNOTIFY_LIBS
+@@ -567,16 +567,20 @@ MOZ_LIBNOTIFY_LIBS	= @MOZ_LIBNOTIFY_LIBS
  MOZ_ENABLE_LIBNOTIFY	= @MOZ_ENABLE_LIBNOTIFY@
  
  MOZ_ALSA_LIBS           = @MOZ_ALSA_LIBS@
@@ -31,7 +31,7 @@
 diff --git a/configure.in b/configure.in
 --- a/configure.in
 +++ b/configure.in
-@@ -8016,16 +8016,31 @@ AC_SUBST(QCMS_LIBS)
+@@ -8093,16 +8093,31 @@ AC_SUBST(QCMS_LIBS)
  
  dnl ========================================================
  dnl HarfBuzz
@@ -61,12 +61,12 @@
  AC_SUBST(MOZ_OTS_LIBS)
  
  dnl ========================================================
- dnl disable xul
+ dnl Skia 
  dnl ========================================================
 diff --git a/security/manager/ssl/src/Makefile.in b/security/manager/ssl/src/Makefile.in
 --- a/security/manager/ssl/src/Makefile.in
 +++ b/security/manager/ssl/src/Makefile.in
-@@ -113,12 +113,14 @@ CSRCS += md4.c
+@@ -114,12 +114,14 @@ CSRCS += md4.c
  
  
  EXTRA_DEPS = $(NSS_DEP_LIBS)
@@ -109,7 +109,7 @@
  
  #include "nsNetUtil.h"
  #include "nsAppDirectoryServiceDefs.h"
-@@ -1727,18 +1734,34 @@ nsNSSComponent::InitializeNSS(PRBool sho
+@@ -1725,18 +1732,34 @@ nsNSSComponent::InitializeNSS(bool showW
      ConfigureInternalPKCS11Token();
  
      // The NSS_INIT_NOROOTINIT flag turns off the loading of the root certs
@@ -149,8 +149,8 @@
 diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
 --- a/toolkit/library/Makefile.in
 +++ b/toolkit/library/Makefile.in
-@@ -138,17 +138,17 @@ ifdef MOZ_DEBUG
- EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
+@@ -126,17 +126,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
+ endif
  endif
  endif
  
--- a/series	Fri Dec 23 18:44:50 2011 +0100
+++ b/series	Sun Dec 25 10:36:35 2011 +0100
@@ -16,8 +16,7 @@
 mozilla-dump_syms-static.patch
 mozilla-sle11.patch
 mozilla-linux3.patch
-mozilla-ppc64.patch
-mozilla-a11y.patch
+#mozilla-a11y.patch
 
 # Firefox patches
 firefox-browser-css.patch