- update to Firefox 10.0 (bnc#744275)

* MFSA 2012-01/CVE-2012-0442/CVE-2012-0443
    Miscellaneous memory safety hazards
  * MFSA 2012-03/CVE-2012-0445 (bmo#701071)
    <iframe> element exposed across domains via name attribute
  * MFSA 2012-04/CVE-2011-3659 (bmo#708198)
    Child nodes from nsDOMAttribute still accessible after removal
    of nodes
  * MFSA 2012-05/CVE-2012-0446 (bmo#705651)
    Frame scripts calling into untrusted objects bypass security
    checks
  * MFSA 2012-06/CVE-2012-0447 (bmo#710079)
    Uninitialized memory appended when encoding icon images may
    cause information disclosure
  * MFSA 2012-07/CVE-2012-0444 (bmo#719612)
    Potential Memory Corruption When Decoding Ogg Vorbis files
  * MFSA 2012-08/CVE-2012-0449 (bmo#701806, bmo#702466)
    Crash with malformed embedded XSLT stylesheets
- KDE integration has been disabled since it needs refactoring
- removed obsolete ppc64 patch

- Disable neon for arm as it doesn't build correctly

OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=252
This commit is contained in:
Wolfgang Rosenauer 2012-02-01 13:37:15 +00:00 committed by Git OBS Bridge
parent c620b38147
commit e98217a6c3
18 changed files with 551 additions and 324 deletions

View File

@ -1,3 +1,32 @@
-------------------------------------------------------------------
Mon Jan 30 09:41:59 UTC 2012 - wr@rosenauer.org
- update to Firefox 10.0 (bnc#744275)
* MFSA 2012-01/CVE-2012-0442/CVE-2012-0443
Miscellaneous memory safety hazards
* MFSA 2012-03/CVE-2012-0445 (bmo#701071)
<iframe> element exposed across domains via name attribute
* MFSA 2012-04/CVE-2011-3659 (bmo#708198)
Child nodes from nsDOMAttribute still accessible after removal
of nodes
* MFSA 2012-05/CVE-2012-0446 (bmo#705651)
Frame scripts calling into untrusted objects bypass security
checks
* MFSA 2012-06/CVE-2012-0447 (bmo#710079)
Uninitialized memory appended when encoding icon images may
cause information disclosure
* MFSA 2012-07/CVE-2012-0444 (bmo#719612)
Potential Memory Corruption When Decoding Ogg Vorbis files
* MFSA 2012-08/CVE-2012-0449 (bmo#701806, bmo#702466)
Crash with malformed embedded XSLT stylesheets
- KDE integration has been disabled since it needs refactoring
- removed obsolete ppc64 patch
-------------------------------------------------------------------
Sun Jan 22 12:08:07 UTC 2012 - joop.boonen@opensuse.org
- Disable neon for arm as it doesn't build correctly
-------------------------------------------------------------------
Fri Dec 23 17:02:01 UTC 2011 - wr@rosenauer.org

View File

@ -1,8 +1,8 @@
#
# spec file for package MozillaFirefox
#
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
# 2006-2011 Wolfgang Rosenauer
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
# 2006-2012 Wolfgang Rosenauer
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -17,7 +17,7 @@
#
%define major 9
%define major 10
%define mainver %major.0
Name: MozillaFirefox
@ -45,9 +45,9 @@ BuildRequires: wireless-tools
BuildRequires: mozilla-nspr-devel >= 4.8.9
BuildRequires: mozilla-nss-devel >= 3.13.1
BuildRequires: nss-shared-helper-devel
Version: %{mainver}.1
Version: %{mainver}
Release: 0
%define releasedate 2011122000
%define releasedate 2012012900
Provides: web_browser
Provides: firefox = %{version}-%{release}
Provides: firefox = %{mainver}
@ -86,8 +86,8 @@ Patch9: mozilla-repo.patch
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
Patch14: mozilla-disable-neon-option.patch
# Firefox/browser
Patch31: firefox-browser-css.patch
Patch32: firefox-cross-desktop.patch
@ -204,7 +204,7 @@ cd $RPM_BUILD_DIR/mozilla
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
#%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
@ -220,10 +220,10 @@ cd $RPM_BUILD_DIR/mozilla
%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
@ -236,11 +236,11 @@ DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\""
TIME="\"$(date -d "${modified}" "+%%R")\""
find . -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
#
kdehelperversion=$(cat toolkit/xre/nsKDEUtils.cpp | grep '#define KMOZILLAHELPER_VERSION' | cut -d ' ' -f 3)
if test "$kdehelperversion" != %{kde_helper_version}; then
echo fix kde helper version in the .spec file
exit 1
fi
#kdehelperversion=$(cat toolkit/xre/nsKDEUtils.cpp | grep '#define KMOZILLAHELPER_VERSION' | cut -d ' ' -f 3)
#if test "$kdehelperversion" != %{kde_helper_version}; then
# echo fix kde helper version in the .spec file
# exit 1
#fi
source %{SOURCE5}
export MOZ_SOURCE_STAMP=$REV
export SOURCE_REPO=$REPO
@ -278,7 +278,7 @@ ac_add_options --disable-tests
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=release
EOF
%if %suse_version > 1130
cat << EOF >> $MOZCONFIG
@ -301,6 +301,12 @@ cat << EOF >> $MOZCONFIG
ac_add_options --disable-crashreporter
EOF
%endif
# Disable neon for arm as it does not build correctly
%ifarch %arm
cat << EOF >> $MOZCONFIG
ac_add_options --disable-neon
EOF
%endif
make -f client.mk build
%install
@ -517,7 +523,6 @@ exit 0
%{progdir}/distribution/extensions/
%{progdir}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}
%{progdir}/icons/
%{progdir}/hyphenation/
%{progdir}/searchplugins/
%attr(755,root,root) %{progdir}/%{progname}.sh
%{progdir}/firefox-bin
@ -527,7 +532,7 @@ exit 0
%{progdir}/dependentlibs.list
%{progdir}/*.so
%{progdir}/mozilla-xremote-client
%{progdir}/omni.jar
%{progdir}/omni.ja
%{progdir}/platform.ini
%{progdir}/plugin-container
%if %crashreporter

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9b1a2ea89395fa658ce6b9688f98d8e84f59f3da97169853e174fa0bae7ca21d
size 25683
oid sha256:d9aef9aa9921cbc4a36c72e5912597e4a0e524a1fb747ce194b5b74c2ec52ee2
size 25675

View File

@ -2,8 +2,8 @@
CHANNEL="release"
BRANCH="releases/mozilla-$CHANNEL"
RELEASE_TAG="FIREFOX_9_0_1_RELEASE"
VERSION="9.0.1"
RELEASE_TAG="FIREFOX_10_0_RELEASE"
VERSION="10.0"
# mozilla
hg clone http://hg.mozilla.org/$BRANCH mozilla

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1bf91f66f9532cb18186579566ffd32a7f4c17694aa17429a1d63458a73552ef
size 75327593

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ca6509506664f43d4aa3b5893e0561ac3434e9f9147a0e9fb9c7050ecf74c166
size 74055986

View File

@ -2,7 +2,7 @@ diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser
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 @@ new file mode 100644
+
+ <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 @@ new file mode 100644
+ 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 @@ new file mode 100644
+ 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 @@ new file mode 100644
+ <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 @@ new file mode 100644
+ <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/build/nsModule.cpp b/browser/components/build/ns
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 @@ new file mode 100644
+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 @@ new file mode 100644
+}
+
+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 @@ new file mode 100644
+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 @@ new file mode 100644
+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 @@ new file mode 100644
+ {
+ *_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 @@ new file mode 100644
+ 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 @@ new file mode 100644
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

3
l10n-10.0.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d2a0da109a6f9a06f19672e9d79a8f7d33542f4c9cb265f882bbc0fd225a020f
size 45585003

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e93c8f889f6ac6fac3b05365b03543956877919c49b5f75d12a606f1a7562970
size 44581546

View File

@ -1,6 +1,6 @@
# HG changeset patch
# User Michael Gorse <mgorse@suse.com>
# Parent d02253d1e8217008dfa26e6e2a901b6a8b75e989
# Parent 2c115988d04c0a0a8cb75b3a597ecdb2c4c001c9
a11y only enabled from Gnome 2's GConf setting
https://bugzilla.novell.com/show_bug.cgi?id=732898
https://bugzilla.mozilla.org/show_bug.cgi?id=693343
@ -31,7 +31,7 @@ diff --git a/accessible/src/atk/Makefile.in b/accessible/src/atk/Makefile.in
diff --git a/accessible/src/atk/nsApplicationAccessibleWrap.cpp b/accessible/src/atk/nsApplicationAccessibleWrap.cpp
--- a/accessible/src/atk/nsApplicationAccessibleWrap.cpp
+++ b/accessible/src/atk/nsApplicationAccessibleWrap.cpp
@@ -47,29 +47,27 @@
@@ -47,29 +47,29 @@
#include "nsIPrefBranch.h"
#include "nsIServiceManager.h"
#include "nsAutoPtr.h"
@ -40,14 +40,15 @@ diff --git a/accessible/src/atk/nsApplicationAccessibleWrap.cpp b/accessible/src
#include <gtk/gtk.h>
#include <atk/atk.h>
+#ifdef MOZ_ENABLE_DBUS
+#include <dbus/dbus.h>
+#endif
+
+using namespace mozilla::a11y;
typedef GType (* AtkGetTypeType) (void);
GType g_atk_hyperlink_impl_type = G_TYPE_INVALID;
-static bool sATKChecked = false;
+static PRBool sATKChecked = PR_FALSE;
static bool sATKChecked = false;
static PRLibrary *sATKLib = nsnull;
static const char sATKLibName[] = "libatk-1.0.so.0";
static const char sATKHyperlinkImplGetTypeSymbol[] =
@ -65,13 +66,13 @@ diff --git a/accessible/src/atk/nsApplicationAccessibleWrap.cpp b/accessible/src
static void (* gail_remove_key_event_listener) (guint remove_listener);
static AtkObject * (*gail_get_root) (void);
@@ -609,36 +607,17 @@ toplevel_event_watcher(GSignalInvocation
@@ -609,36 +609,17 @@ toplevel_event_watcher(GSignalInvocation
}
return TRUE;
}
PRBool
bool
nsApplicationAccessibleWrap::Init()
{
- // XXX following code is copied from widget/src/gtk2/nsWindow.cpp
@ -79,7 +80,7 @@ diff --git a/accessible/src/atk/nsApplicationAccessibleWrap.cpp b/accessible/src
- // see bug 390761
-
- // check if accessibility enabled/disabled by environment variable
- PRBool isGnomeATEnabled = PR_FALSE;
- bool isGnomeATEnabled = false;
- const char *envValue = PR_GetEnv(sAccEnv);
- if (envValue) {
- isGnomeATEnabled = !!atoi(envValue);
@ -103,7 +104,7 @@ diff --git a/accessible/src/atk/nsApplicationAccessibleWrap.cpp b/accessible/src
else {
MAI_LOG_DEBUG(("Fail to load lib: %s\n", sGail.libName));
}
@@ -877,8 +856,129 @@ LoadGtkModule(GnomeAccessibilityModule&
@@ -877,8 +858,129 @@ LoadGtkModule(GnomeAccessibilityModule&
aModule.init ? aModule.shutdownName : aModule.initName,
aModule.libName));
PR_UnloadLibrary(aModule.lib);
@ -117,22 +118,22 @@ diff --git a/accessible/src/atk/nsApplicationAccessibleWrap.cpp b/accessible/src
+namespace a11y {
+
+#ifdef MOZ_ENABLE_DBUS
+static DBusPendingCall *a11yPendingCall = NULL;
+ static DBusPendingCall *a11yPendingCall = NULL;
+#endif
+
+void
+PreInit()
+{
+ static PRBool sChecked = FALSE;
+ static bool sChecked = false;
+ if (sChecked)
+ return;
+ sChecked = TRUE;
+ sChecked = true;
+ DBusError error;
+ dbus_error_init(&error);
+ DBusConnection* bus = dbus_bus_get(DBUS_BUS_SESSION, &error);
+ if (!bus)
+ return;
+ dbus_connection_set_exit_on_disconnect(bus, FALSE);
+ dbus_connection_set_exit_on_disconnect(bus, false);
+
+ DBusMessage *message;
+ message = dbus_message_new_method_call("org.a11y.Bus", "/org/a11y/bus",
@ -155,14 +156,14 @@ diff --git a/accessible/src/atk/nsApplicationAccessibleWrap.cpp b/accessible/src
+ dbus_error_free(&error);
+}
+
+PRBool
+bool
+ShouldA11yBeEnabled()
+{
+ static PRBool sChecked = PR_FALSE, sShouldEnable = PR_FALSE;
+ static bool sChecked = false, sShouldEnable = false;
+ if (sChecked)
+ return sShouldEnable;
+
+ sChecked = PR_TRUE;
+ sChecked = true;
+
+ // check if accessibility enabled/disabled by environment variable
+ static const char sAccEnv [] = "GNOME_ACCESSIBILITY";
@ -172,7 +173,7 @@ diff --git a/accessible/src/atk/nsApplicationAccessibleWrap.cpp b/accessible/src
+
+#ifdef MOZ_ENABLE_DBUS
+ PreInit();
+ PRBool dbusSuccess = PR_FALSE;
+ bool dbusSuccess = false;
+ DBusMessage *reply = nsnull;
+ if (a11yPendingCall) {
+ dbus_pending_call_block(a11yPendingCall);
@ -236,47 +237,44 @@ diff --git a/accessible/src/atk/nsApplicationAccessibleWrap.cpp b/accessible/src
diff --git a/accessible/src/base/nsAccessibilityService.h b/accessible/src/base/nsAccessibilityService.h
--- a/accessible/src/base/nsAccessibilityService.h
+++ b/accessible/src/base/nsAccessibilityService.h
@@ -41,16 +41,36 @@
@@ -46,16 +46,33 @@
#include "nsIAccessibilityService.h"
#include "a11yGeneric.h"
#include "nsAccDocManager.h"
#include "mozilla/a11y/FocusManager.h"
#include "nsIObserver.h"
+namespace mozilla {
+namespace a11y {
namespace mozilla {
namespace a11y {
+#ifdef MOZ_ACCESSIBILITY_ATK
+/**
+ * Perform initialization that should be done as soon as possible, in order
+ * to minimize startup time.
+ * XXX: this function and the next defined in nsApplicationAccessibleWrap.cpp
+ */
+ * + * Perform initialization that should be done as soon as possible, in
+ * order
+ * + * to minimize startup time.
+ * + * XXX: this function and the next defined in
+ * nsApplicationAccessibleWrap.cpp
+ * + */
+void PreInit();
+
+/**
+ * Is platform accessibility enabled.
+ * Only used on linux with atk for now.
+ */
+PRBool ShouldA11yBeEnabled();
+ * + * Is platform accessibility enabled.
+ * + * Only used on linux with atk for now.
+ * + */
+bool ShouldA11yBeEnabled();
+#endif
+
+} // namespace a11y
+} // namespace mozilla
+
class nsAccessibilityService : public nsAccDocManager,
public nsIAccessibilityService,
public nsIObserver
{
public:
virtual ~nsAccessibilityService();
/**
* Return focus manager.
*/
FocusManager* FocusMgr();
} // namespace a11y
} // namespace mozilla
NS_DECL_ISUPPORTS_INHERITED
diff --git a/widget/src/gtk2/nsWindow.cpp b/widget/src/gtk2/nsWindow.cpp
--- a/widget/src/gtk2/nsWindow.cpp
+++ b/widget/src/gtk2/nsWindow.cpp
@@ -103,29 +103,20 @@
@@ -105,29 +105,21 @@
#include "nsIStringBundle.h"
#include "nsGfxCIID.h"
#include "nsIObserverService.h"
@ -292,10 +290,10 @@ diff --git a/widget/src/gtk2/nsWindow.cpp b/widget/src/gtk2/nsWindow.cpp
-#include "stdlib.h"
using namespace mozilla;
-
-static PRBool sAccessibilityChecked = PR_FALSE;
-static bool sAccessibilityChecked = false;
-/* static */
-PRBool nsWindow::sAccessibilityEnabled = PR_FALSE;
-bool nsWindow::sAccessibilityEnabled = false;
-static const char sSysPrefService [] = "@mozilla.org/system-preference-service;1";
-static const char sAccEnv [] = "GNOME_ACCESSIBILITY";
-static const char sAccessibilityKey [] = "config.use_system_prefs.accessibility";
@ -307,11 +305,11 @@ diff --git a/widget/src/gtk2/nsWindow.cpp b/widget/src/gtk2/nsWindow.cpp
#include "nsIFile.h"
#include "nsILocalFile.h"
@@ -1109,19 +1100,18 @@ nsWindow::Show(PRBool aState)
@@ -1111,19 +1103,18 @@ nsWindow::Show(bool aState)
NativeResize(mBounds.x, mBounds.y, mBounds.width, mBounds.height,
PR_FALSE);
false);
} else if (mNeedsResize) {
NativeResize(mBounds.width, mBounds.height, PR_FALSE);
NativeResize(mBounds.width, mBounds.height, false);
}
}
@ -328,7 +326,7 @@ diff --git a/widget/src/gtk2/nsWindow.cpp b/widget/src/gtk2/nsWindow.cpp
}
NS_IMETHODIMP
@@ -3887,16 +3877,21 @@ nsWindow::Create(nsIWidget *aPare
@@ -3885,16 +3876,21 @@ nsWindow::Create(nsIWidget *aPare
nsIWidget *baseParent = aInitData &&
(aInitData->mWindowType == eWindowType_dialog ||
aInitData->mWindowType == eWindowType_toplevel ||
@ -342,27 +340,27 @@ diff --git a/widget/src/gtk2/nsWindow.cpp b/widget/src/gtk2/nsWindow.cpp
+ a11y::PreInit();
+#endif
+
// Ensure that the toolkit is created.
nsGTKToolkit::GetToolkit();
// initialize all the common bits of this class
BaseCreate(baseParent, aRect, aHandleEventFunction, aContext,
aAppShell, aToolkit, aInitData);
BaseCreate(baseParent, aRect, aHandleEventFunction, aContext, aInitData);
// Do we need to listen for resizes?
PRBool listenForResizes = PR_FALSE;;
if (aNativeParent || (aInitData && aInitData->mListenForResizes))
listenForResizes = PR_TRUE;
@@ -4278,43 +4273,16 @@ nsWindow::Create(nsIWidget *aPare
bool listenForResizes = false;;
@@ -4278,43 +4274,16 @@ nsWindow::Create(nsIWidget *aPare
LOG(("\tmGdkWindow %p %lx\n", (void *)mGdkWindow,
gdk_x11_window_get_xid(mGdkWindow)));
}
// resize so that everything is set to the right dimensions
if (!mIsTopLevel)
Resize(mBounds.x, mBounds.y, mBounds.width, mBounds.height, PR_FALSE);
Resize(mBounds.x, mBounds.y, mBounds.width, mBounds.height, false);
-#ifdef ACCESSIBILITY
- nsresult rv;
- if (!sAccessibilityChecked) {
- sAccessibilityChecked = PR_TRUE;
- sAccessibilityChecked = true;
-
- //check if accessibility enabled/disabled by environment variable
- const char *envValue = PR_GetEnv(sAccEnv);
@ -394,7 +392,7 @@ diff --git a/widget/src/gtk2/nsWindow.cpp b/widget/src/gtk2/nsWindow.cpp
if (mDFB)
mDFB->GetDisplayLayer( mDFB, DLID_PRIMARY, &mDFBLayer );
@@ -6504,19 +6472,18 @@ nsWindow::DispatchAccessibleEvent()
@@ -6504,19 +6473,18 @@ nsWindow::DispatchAccessibleEvent()
DispatchEvent(&event, status);
return event.mAccessible;

View File

@ -0,0 +1,157 @@
# HG changeset patch
# User Joop Boonen <joop.boonen@opensuse.org>
# Parent be20a0ae420eb2b3584ce2c5d241e2817bac8593
Add configure option to allow disabling of neon.
diff --git a/configure.in b/configure.in
--- a/configure.in
+++ b/configure.in
@@ -1674,41 +1674,47 @@ if test -n "$all_flags"; then
ASFLAGS="$ASFLAGS $all_flags"
if test -n "$thumb_flag"; then
LDFLAGS="$LDFLAGS $thumb_flag"
fi
fi
AC_SUBST(MOZ_THUMB2)
-if test "$CPU_ARCH" = "arm"; then
- AC_MSG_CHECKING(for ARM SIMD support in compiler)
- # We try to link so that this also fails when
- # building with LTO.
- AC_TRY_LINK([],
- [asm("uqadd8 r1, r1, r2");],
- result="yes", result="no")
- AC_MSG_RESULT("$result")
- if test "$result" = "yes"; then
- AC_DEFINE(HAVE_ARM_SIMD)
- HAVE_ARM_SIMD=1
- fi
-
- AC_MSG_CHECKING(for ARM NEON support in compiler)
- # We try to link so that this also fails when
- # building with LTO.
- AC_TRY_LINK([],
- [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
- result="yes", result="no")
- AC_MSG_RESULT("$result")
- if test "$result" = "yes"; then
- AC_DEFINE(HAVE_ARM_NEON)
- HAVE_ARM_NEON=1
- fi
-fi # CPU_ARCH = arm
+MOZ_ARG_DISABLE_BOOL(neon,
+[ --disable-neon Disable neon extensions],
+ NS_DISABLE_NEON=1,
+ NS_DISABLE_NEON= )
+if test "$NS_DISABLE_NEON" != "1"; then
+ if test "$CPU_ARCH" = "arm"; then
+ AC_MSG_CHECKING(for ARM SIMD support in compiler)
+ # We try to link so that this also fails when
+ # building with LTO.
+ AC_TRY_LINK([],
+ [asm("uqadd8 r1, r1, r2");],
+ result="yes", result="no")
+ AC_MSG_RESULT("$result")
+ if test "$result" = "yes"; then
+ AC_DEFINE(HAVE_ARM_SIMD)
+ HAVE_ARM_SIMD=1
+ fi
+
+ AC_MSG_CHECKING(for ARM NEON support in compiler)
+ # We try to link so that this also fails when
+ # building with LTO.
+ AC_TRY_LINK([],
+ [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
+ result="yes", result="no")
+ AC_MSG_RESULT("$result")
+ if test "$result" = "yes"; then
+ AC_DEFINE(HAVE_ARM_NEON)
+ HAVE_ARM_NEON=1
+ fi
+ fi # CPU_ARCH = arm
+fi
AC_SUBST(HAVE_ARM_SIMD)
AC_SUBST(HAVE_ARM_NEON)
dnl ========================================================
dnl Android libstdc++, placed here so it can use MOZ_ARCH
dnl computed above.
dnl ========================================================
diff --git a/js/src/configure.in b/js/src/configure.in
--- a/js/src/configure.in
+++ b/js/src/configure.in
@@ -1604,41 +1604,47 @@ if test -n "$all_flags"; then
ASFLAGS="$ASFLAGS $all_flags"
if test -n "$thumb_flag"; then
LDFLAGS="$LDFLAGS $thumb_flag"
fi
fi
AC_SUBST(MOZ_THUMB2)
-if test "$CPU_ARCH" = "arm"; then
- AC_MSG_CHECKING(for ARM SIMD support in compiler)
- # We try to link so that this also fails when
- # building with LTO.
- AC_TRY_LINK([],
- [asm("uqadd8 r1, r1, r2");],
- result="yes", result="no")
- AC_MSG_RESULT("$result")
- if test "$result" = "yes"; then
- AC_DEFINE(HAVE_ARM_SIMD)
- HAVE_ARM_SIMD=1
- fi
-
- AC_MSG_CHECKING(for ARM NEON support in compiler)
- # We try to link so that this also fails when
- # building with LTO.
- AC_TRY_LINK([],
- [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
- result="yes", result="no")
- AC_MSG_RESULT("$result")
- if test "$result" = "yes"; then
- AC_DEFINE(HAVE_ARM_NEON)
- HAVE_ARM_NEON=1
- fi
-fi # CPU_ARCH = arm
+MOZ_ARG_DISABLE_BOOL(neon,
+[ --disable-neon Disable neon extensions],
+ NS_DISABLE_NEON=1,
+ NS_DISABLE_NEON= )
+if test "$NS_DISABLE_NEON" != "1"; then
+ if test "$CPU_ARCH" = "arm"; then
+ AC_MSG_CHECKING(for ARM SIMD support in compiler)
+ # We try to link so that this also fails when
+ # building with LTO.
+ AC_TRY_LINK([],
+ [asm("uqadd8 r1, r1, r2");],
+ result="yes", result="no")
+ AC_MSG_RESULT("$result")
+ if test "$result" = "yes"; then
+ AC_DEFINE(HAVE_ARM_SIMD)
+ HAVE_ARM_SIMD=1
+ fi
+
+ AC_MSG_CHECKING(for ARM NEON support in compiler)
+ # We try to link so that this also fails when
+ # building with LTO.
+ AC_TRY_LINK([],
+ [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
+ result="yes", result="no")
+ AC_MSG_RESULT("$result")
+ if test "$result" = "yes"; then
+ AC_DEFINE(HAVE_ARM_NEON)
+ HAVE_ARM_NEON=1
+ fi
+ fi # CPU_ARCH = arm
+fi
AC_SUBST(HAVE_ARM_SIMD)
AC_SUBST(HAVE_ARM_NEON)
dnl ========================================================
dnl Android libstdc++, placed here so it can use MOZ_ARCH
dnl computed above.
dnl ========================================================

View File

@ -21,7 +21,7 @@ diff --git a/modules/libpref/src/Makefile.in b/modules/libpref/src/Makefile.in
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 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
#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 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
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 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
}
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 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
};
+ 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 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
+ }
+ }
+
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/Makefile.in b/toolkit/components/downl
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 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
#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 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
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 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
~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 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
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 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
#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 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
+ 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/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
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 @@ diff --git a/toolkit/xre/Makefile.in b/toolkit/xre/Makefile.in
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 @@ new file mode 100644
+
+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 @@ new file mode 100644
+struct nsKDECommandData
+ {
+ FILE* file;
+ nsCStringArray* output;
+ nsTArray<nsCString>* output;
+ GMainLoop* loop;
+ bool success;
+ };
@ -2368,7 +2368,7 @@ new file mode 100644
+ 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 @@ new file mode 100644
+ 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 @@ new file mode 100644
+ 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 @@ diff --git a/toolkit/xre/nsKDEUtils.h b/toolkit/xre/nsKDEUtils.h
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 @@ new file mode 100644
+#define nsKDEUtils_h__
+
+#include "nsStringGlue.h"
+#include "nsVoidArray.h"
+#include "nsTArray.h"
+#include <stdio.h>
+
+typedef struct _GtkWindow GtkWindow;
@ -2596,20 +2598,21 @@ new file mode 100644
+ 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 @@ new file mode 100644
+/* 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 @@ new file mode 100644
+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 @@ new file mode 100644
+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 @@ diff --git a/uriloader/exthandler/unix/nsKDERegistry.h b/uriloader/exthandler/un
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 @@ new file mode 100644
+
+#include "nsIURI.h"
+#include "nsCOMPtr.h"
+#include "nsTArray.h"
+
+class nsMIMEInfoBase;
+class nsCAutoString;
+class nsCStringArray;
+class nsCString;
+
+class nsKDERegistry
+{
@ -2979,7 +2983,7 @@ new file mode 100644
+
+ 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 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
}
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 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
}
}
if (mimeInfo)
*_retval = PR_TRUE;
*_retval = true;
if (*_retval)
return NS_OK;
@ -3056,13 +3060,13 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
#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 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
ContentAction::Action::defaultActionForScheme(QString(aProtocolScheme) + ':');
if (action.isValid())
*aHandlerExists = PR_TRUE;
*aHandlerExists = true;
#endif
#ifdef MOZ_WIDGET_GTK2
@ -3156,7 +3160,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
@@ -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/Makefile.in b/widget/src/gtk2/Makefile.in
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 @@ diff --git a/widget/src/gtk2/nsFilePicker.cpp b/widget/src/gtk2/nsFilePicker.cpp
#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 @@ diff --git a/widget/src/gtk2/nsFilePicker.cpp b/widget/src/gtk2/nsFilePicker.cpp
#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 @@ diff --git a/widget/src/gtk2/nsFilePicker.cpp b/widget/src/gtk2/nsFilePicker.cpp
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 @@ diff --git a/widget/src/gtk2/nsFilePicker.cpp b/widget/src/gtk2/nsFilePicker.cpp
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 @@ diff --git a/widget/src/gtk2/nsFilePicker.cpp b/widget/src/gtk2/nsFilePicker.cpp
+ }
+ }
+
+ 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 @@ diff --git a/widget/src/gtk2/nsFilePicker.cpp b/widget/src/gtk2/nsFilePicker.cpp
+ }
+ 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 @@ diff --git a/widget/src/gtk2/nsFilePicker.cpp b/widget/src/gtk2/nsFilePicker.cpp
+ 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 @@ diff --git a/widget/src/gtk2/nsFilePicker.cpp b/widget/src/gtk2/nsFilePicker.cpp
+ 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/Makefile.in b/xpcom/components/Makefile.in
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 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
#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");
@ -3591,15 +3595,15 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
NS_NAMED_LITERAL_STRING(kOsVersion, "osversion");
NS_NAMED_LITERAL_STRING(kABI, "abi");
+ NS_NAMED_LITERAL_STRING(kDesktop, "desktop");
#if defined(ANDROID)
NS_NAMED_LITERAL_STRING(kTablet, "tablet");
#endif
// Obsolete
NS_NAMED_LITERAL_STRING(kXPCNativeWrappers, "xpcnativewrappers");
nsAutoString appID;
nsAutoString appVersion;
nsAutoString geckoVersion;
nsAutoString osTarget;
@@ -474,39 +476,44 @@ ParseManifestCommon(NSLocationType aType
@@ -481,41 +483,46 @@ ParseManifestCommon(NSLocationType aType
CopyUTF8toUTF16(s, abi);
abi.Insert(PRUnichar('_'), 0);
abi.Insert(osTarget, 0);
@ -3632,8 +3636,10 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
gtk_minor_version);
+ desktop = nsKDEUtils::kdeSession() ? NS_LITERAL_STRING("kde") : NS_LITERAL_STRING("gnome");
#elif defined(ANDROID)
bool isTablet = false;
if (mozilla::AndroidBridge::Bridge()) {
mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build$VERSION", "RELEASE", osVersion);
isTablet = mozilla::AndroidBridge::Bridge()->IsTablet();
}
+ desktop = NS_LITERAL_STRING("android");
#endif
@ -3644,13 +3650,13 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
char *token;
char *newline = buf;
@@ -585,24 +592,26 @@ ParseManifestCommon(NSLocationType aType
TriState stAppVersion = eUnspecified;
TriState stGeckoVersion = eUnspecified;
TriState stApp = eUnspecified;
@@ -597,24 +604,26 @@ ParseManifestCommon(NSLocationType aType
TriState stOsVersion = eUnspecified;
TriState stOs = eUnspecified;
TriState stABI = eUnspecified;
#if defined(ANDROID)
TriState stTablet = eUnspecified;
#endif
bool platform = false;
bool contentAccessible = false;
+ TriState stDesktop = eUnspecified;
@ -3668,10 +3674,10 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
CheckVersionFlag(kGeckoVersion, wtoken, geckoVersion, stGeckoVersion))
continue;
if (directive->contentflags &&
(CheckFlag(kPlatform, wtoken, platform) ||
CheckFlag(kContentAccessible, wtoken, contentAccessible)))
@@ -623,16 +632,17 @@ ParseManifestCommon(NSLocationType aType
#if defined(ANDROID)
bool tablet = false;
if (CheckFlag(kTablet, wtoken, tablet)) {
@@ -643,16 +652,17 @@ ParseManifestCommon(NSLocationType aType
}
if (!ok ||
@ -3681,14 +3687,14 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
stOs == eBad ||
stOsVersion == eBad ||
+ stDesktop == eBad ||
#ifdef ANDROID
stTablet == eBad ||
#endif
stABI == eBad)
continue;
if (directive->regfunc) {
if (GeckoProcessType_Default != XRE_GetProcessType())
continue;
if (!nsChromeRegistry::gChromeRegistry) {
diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in
--- a/xpcom/io/Makefile.in
+++ b/xpcom/io/Makefile.in
@ -3714,11 +3720,11 @@ diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in
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 +3732,13 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
+#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 +3753,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
- return NS_ERROR_FAILURE;
-
+ nsCAutoString url;
PRBool isDirectory;
bool isDirectory;
if (NS_FAILED(IsDirectory(&isDirectory)))
return NS_ERROR_FAILURE;
@ -3774,9 +3780,9 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
}
+
+ 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 +3795,8 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
+ 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 +3804,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
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 +3814,9 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
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;
+ }
+

View File

@ -5,17 +5,19 @@ Index: toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
===================================================================
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 @@ diff -u -p -6 -r1.1 nsUnixSystemProxySettings.cpp
return NS_OK;
}
PRBool
bool
nsUnixSystemProxySettings::IsProxyMode(const char* aMode)
{
nsCAutoString mode;
return NS_SUCCEEDED(mGConf->GetString(NS_LITERAL_CSTRING("/system/proxy/mode"), mode)) &&

View File

@ -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 @@ diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNT
nsnull
};
PRBool isOK = SpawnIOChild(args, &mChildPID, &mFromChildFD, &mToChildFD);
bool isOK = SpawnIOChild(args, &mChildPID, &mFromChildFD, &mToChildFD);
if (!isOK)

View File

@ -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

View File

@ -4,8 +4,8 @@ Subject: introduce a pref to prefer certain plugins for mime-types
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;

View File

@ -7,7 +7,7 @@ References:
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/config/autoconf.mk.in b/config/autoconf.mk.in
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 @@ diff --git a/configure.in b/configure.in
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 @@ diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/
#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/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/
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

View File

@ -1,2 +1,2 @@
REV=c4405d7a95f6
REV=baefae4b6685
REPO=http://hg.mozilla.org/releases/mozilla-release