1
0

- update to Thunderbird 31.0

* based on Gecko 31
  * Autocompleting email addresses now matches against any part of
    the name or email
  * Composing a mail to a newsgroup will now autocomplete newsgroup
    names
  * Insecure NTLM (pre-NTLMv2) authentication disabled
- rebased patches
- removed enigmail entirely from source package
- removed obsolete patches
  * libffi-ppc64le.patch
  * ppc64le-support.patch
  * xpcom-ppc64le.patch
- use GStreamer 1.0 after 13.1
- switched source archives to use xz instead of bz2

OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaThunderbird?expand=0&rev=251
This commit is contained in:
Wolfgang Rosenauer 2014-07-28 13:29:31 +00:00 committed by Git OBS Bridge
parent 3eeadca128
commit c34ff70793
21 changed files with 332 additions and 4643 deletions

View File

@ -1,3 +1,22 @@
-------------------------------------------------------------------
Sun Jul 27 20:25:46 UTC 2014 - wr@rosenauer.org
- update to Thunderbird 31.0
* based on Gecko 31
* Autocompleting email addresses now matches against any part of
the name or email
* Composing a mail to a newsgroup will now autocomplete newsgroup
names
* Insecure NTLM (pre-NTLMv2) authentication disabled
- rebased patches
- removed enigmail entirely from source package
- removed obsolete patches
* libffi-ppc64le.patch
* ppc64le-support.patch
* xpcom-ppc64le.patch
- use GStreamer 1.0 after 13.1
- switched source archives to use xz instead of bz2
-------------------------------------------------------------------
Sun Jul 20 15:59:49 UTC 2014 - wr@rosenauer.org

View File

@ -17,9 +17,18 @@
#
%define mainversion 24.7.0
%define mainversion 31.0
%define update_channel release
%if %suse_version > 1210
%if %suse_version > 1310
%define gstreamer_ver 1.0
%define gstreamer 1
%else
%define gstreamer_ver 0.10
%endif
%endif
%define with_kde 1
Name: MozillaThunderbird
@ -41,16 +50,27 @@ BuildRequires: startup-notification-devel
BuildRequires: unzip
BuildRequires: update-desktop-files
BuildRequires: xorg-x11-libXt-devel
BuildRequires: xz
BuildRequires: yasm
BuildRequires: zip
BuildRequires: pkgconfig(libpulse)
%if %suse_version > 1210
BuildRequires: pkgconfig(gstreamer-%gstreamer_ver)
BuildRequires: pkgconfig(gstreamer-app-%gstreamer_ver)
BuildRequires: pkgconfig(gstreamer-plugins-base-%gstreamer_ver)
%if 0%{?gstreamer} == 1
Requires: libgstreamer-1_0-0
Recommends: gstreamer-fluendo-mp3
Recommends: gstreamer-plugin-libav
%else
Requires: libgstreamer-0_10-0
Recommends: gstreamer-0_10-fluendo-mp3
Recommends: gstreamer-0_10-plugins-ffmpeg
%endif
%endif
Version: %{mainversion}
Release: 0
%define releasedate 2014072000
%define releasedate 2014072100
Provides: thunderbird = %{version}
%if %{with_kde}
# this is needed to match this package with the kde4 helper package without the main package
@ -62,18 +82,17 @@ Summary: The Stand-Alone Mozilla Mail Component
License: MPL-2.0
Group: Productivity/Networking/Email/Clients
Url: http://www.mozilla.org/products/thunderbird/
Source: thunderbird-%{version}-source.tar.bz2
Source: thunderbird-%{version}-source.tar.xz
Source1: thunderbird.desktop
Source2: add-plugins.sh.in
Source3: mozilla.sh.in
Source4: l10n-%{version}.tar.bz2
Source4: l10n-%{version}.tar.xz
#Source5: shipped-locales
Source6: suse-default-prefs.js
Source7: find-external-requires.sh
Source8: thunderbird-rpmlintrc
Source9: enigmail-1.7.tar.gz
Source10: create-tar.sh
Source11: compare-locales.tar.bz2
Source11: compare-locales.tar.xz
Source12: kde.js
# Gecko/Toolkit
Patch1: mozilla-shared-nss-db.patch
@ -82,9 +101,6 @@ Patch3: mozilla-nongnome-proxies.patch
Patch4: mozilla-kde.patch
Patch5: mozilla-arm-disable-edsp.patch
Patch7: mozilla-ppc.patch
Patch8: libffi-ppc64le.patch
Patch9: xpcom-ppc64le.patch
Patch10: ppc64le-support.patch
# Thunderbird/mail
Patch20: tb-ssldap.patch
Patch21: tb-develdirs.patch
@ -93,7 +109,6 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: coreutils fileutils textutils /bin/sh
Recommends: libcanberra0
### build options
%define build_enigmail 0
%ifnarch ppc ppc64 ppc64le %arm
%define crashreporter 1
%else
@ -128,7 +143,6 @@ Mozilla application suite.
%package translations-common
Summary: Common translations for MozillaThunderbird
License: MPL-2.0
Group: System/Localization
Provides: locale(%{name}:ar;ca;cs;da;de;el;en_GB;es_AR;es_ES;fi;fr;hu;it;ja;ko;nb_NO;nl;pl;pt_BR;pt_PT;ru;sv_SE;zh_CN;zh_TW)
PreReq: %{name} = %{mainversion}
@ -141,7 +155,6 @@ of MozillaThunderbird.
%package translations-other
Summary: Extra translations for MozillaThunderbird
License: MPL-2.0
Group: System/Localization
Provides: locale(%{name}:ast;be;bg;bn_BD;br;et;eu;fy_NL;ga_IE;gd;gl;he;hr;hy_AM;id;is;lt;nn_NO;pa_IN;rm;ro;si;sk;sl;sq;sr;ta_LK;tr;uk;vi)
PreReq: %{name} = %{mainversion}
@ -154,7 +167,6 @@ of MozillaThunderbird.
%package devel
Summary: Mozilla Thunderbird SDK
License: MPL-2.0
Group: Development/Libraries/Other
Requires: mozilla-nspr-devel >= %(rpm -q --queryformat '%{VERSION}' mozilla-nspr-devel)
PreReq: mozilla-nss-devel >= %(rpm -q --queryformat '%{VERSION}' mozilla-nss-devel)
@ -168,7 +180,6 @@ Software Development Kit to build plugins/extensions against Thunderbird.
%package buildsymbols
Summary: Breakpad buildsymbols for %{name}
License: MPL-2.0
Group: Development/Debug
%description buildsymbols
@ -176,32 +187,8 @@ This subpackage contains the Breakpad created and compatible debugging
symbols meant for upload to Mozilla's crash collector database.
%endif
%if %build_enigmail
%package -n enigmail
Version: 1.7.0+%{mainversion}
Release: 0
Summary: OpenPGP addon for Thunderbird and SeaMonkey
License: MPL-1.1 or GPL-2.0+
Group: Productivity/Networking/Email/Clients
Url: http://www.enigmail.net/
Requires: /usr/bin/gpg
%if %suse_version > 1110
Requires: pinentry-gui
%else
Requires: pinentry-dialog
%endif
Conflicts: thunderbird-esr
%description -n enigmail
This package contains the Enigmail OpenPGP Addon for Thunderbird and SeaMonkey.
%endif
%prep
%if %build_enigmail
%setup -n thunderbird -q -b 4 -b 11 -b 9
%else
%setup -n thunderbird -q -b 4 -b 11
%endif
# xulrunner patches
pushd mozilla
%patch1 -p1
@ -212,9 +199,6 @@ pushd mozilla
%endif
%patch5 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
popd
# comm-central patches
%patch20 -p1
@ -254,7 +238,7 @@ mk_add_options MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZ_MILESTONE_RELEASE=1
mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs}
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
mk_add_options MOZ_OBJDIR=$RPM_BUILD_DIR/obj
ac_add_options --enable-application=mail
ac_add_options --prefix=%{_prefix}
ac_add_options --libdir=%{progdir}
@ -276,51 +260,31 @@ ac_add_options --enable-startup-notification
ac_add_options --enable-official-branding
ac_add_options --disable-necko-wifi
ac_add_options --enable-update-channel=%{update_channel}
EOF
%if 0%{?gstreamer} == 1
ac_add_options --enable-gstreamer=1.0
%endif
%if %suse_version > 1130
cat << EOF >> $MOZCONFIG
ac_add_options --disable-gnomevfs
ac_add_options --enable-gio
EOF
%endif
%if %suse_version < 1220
cat << EOF >> $MOZCONFIG
ac_add_options --disable-gstreamer
EOF
%endif
%if %has_system_cairo
cat << EOF >> $MOZCONFIG
ac_add_options --enable-system-cairo
EOF
%endif
%if ! %crashreporter
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
%endif
EOF
%endif
make -f client.mk build
#
### enigmail build
%if %build_enigmail
cp -r $RPM_BUILD_DIR/enigmail $RPM_BUILD_DIR/thunderbird/mailnews/extensions/
pushd $RPM_BUILD_DIR/thunderbird/mailnews/extensions/enigmail
./makemake -r -o '../../../../obj'
popd
pushd $RPM_BUILD_DIR/obj/mailnews/extensions/enigmail
make
make xpi
popd
%endif
%install
cd ../obj
cd $RPM_BUILD_DIR/obj
make -C mail/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
# copy tree into RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{progdir}
@ -409,37 +373,7 @@ cp -rL mozilla/dist/include/* $RPM_BUILD_ROOT%{_includedir}/%{progname}/
# $RPM_BUILD_ROOT%{_libdir}/pkgconfig/
#rm $RPM_BUILD_ROOT%{_libdir}/pkgconfig/thunderbird-nss.pc
#ln -sf nss.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig/thunderbird-nss.pc
##########
# ADDONS
#
# install enigmail to extension dir
%if %build_enigmail
cp -L mozilla/dist/bin/enigmail-*.xpi $RPM_BUILD_ROOT%{progdir}
# Thunderbird location
_enig_dir=$RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/\{3550f703-e582-4d05-9a08-453d09bdfdc6\}/\{847b3a00-7ab1-11d4-8f02-006008948af5\}
mkdir -p $_enig_dir
(cd $_enig_dir; unzip $RPM_BUILD_ROOT%{progdir}/enigmail-*.xpi)
# SeaMonkey location
mkdir -p $RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/\{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a\}
(cd $RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/\{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a\}; \
ln -s ../\{3550f703-e582-4d05-9a08-453d09bdfdc6\}/\{847b3a00-7ab1-11d4-8f02-006008948af5\} )
# remove unwanted build artifacts
rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail.jar
rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail-locale.jar
rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail-en-US.jar
rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail-skin.jar
rm -f $RPM_BUILD_ROOT%{progdir}/chrome/installed-chrome.txt
rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmime.jar
rm -f $RPM_BUILD_ROOT%{progdir}/components/libenigmime.so
rm -f $RPM_BUILD_ROOT%{progdir}/components/ipc.xpt
rm -f $RPM_BUILD_ROOT%{progdir}/components/enig*
rm -f $RPM_BUILD_ROOT%{progdir}/components/libenigmime.so
rm -f $RPM_BUILD_ROOT%{progdir}/components/ipc.xpt
rm -rf $RPM_BUILD_ROOT%{progdir}/defaults/preferences/
rm -rf $RPM_BUILD_ROOT%{progdir}/platform/
rm -rf $RPM_BUILD_ROOT%{progdir}/wrappers/
rm -f $RPM_BUILD_ROOT%{progdir}/enigmail*.xpi
%endif
#
# remove spurious executable bits
find $RPM_BUILD_ROOT/usr/include/%{progname} -type f -exec chmod a-x {} \;
@ -503,10 +437,6 @@ exit 0
%if %suse_version > 1130
%icon_theme_cache_post
%endif
# remove enigmail on updates
if [ -e %progdir/extensions/\{847b3a00-7ab1-11d4-8f02-006008948af5\} ]; then
rm -rf %progdir/extensions/\{847b3a00-7ab1-11d4-8f02-006008948af5\}
fi
exit 0
%posttrans
@ -581,16 +511,7 @@ exit 0
#%{_libdir}/pkgconfig/*.pc
%{_includedir}/%{progname}/
%if %build_enigmail
%files -n enigmail
%defattr(-,root,root)
%dir %{_libdir}/mozilla
%{_libdir}/mozilla/extensions/
%endif
%if %crashreporter
%files buildsymbols
%defattr(-,root,root)
%{_datadir}/mozilla/

View File

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

3
compare-locales.tar.xz Normal file
View File

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

View File

@ -1,9 +1,9 @@
#!/bin/bash
CHANNEL="esr24"
CHANNEL="esr31"
BRANCH="releases/comm-$CHANNEL"
RELEASE_TAG="THUNDERBIRD_24_7_0_RELEASE"
VERSION="24.7.0"
RELEASE_TAG="THUNDERBIRD_31_0_RELEASE"
VERSION="31.0"
echo "cloning $BRANCH..."
hg clone http://hg.mozilla.org/$BRANCH thunderbird
@ -16,7 +16,7 @@ _extra="--mozilla-repo=http://hg.mozilla.org/releases/mozilla-$CHANNEL $_extra"
python client.py checkout --skip-chatzilla --skip-venkman $_extra
popd
echo "creating archive..."
tar cjf thunderbird-$VERSION-source.tar.bz2 --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS thunderbird
tar cJf thunderbird-$VERSION-source.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS thunderbird
# l10n
# http://l10n.mozilla.org/dashboard/?tree=tb30x -> shipped-locales
@ -39,12 +39,12 @@ for locale in $(awk '{ print $1; }' $SHIPPED_LOCALES); do
esac
done
echo "creating l10n archive..."
tar cjf l10n-$VERSION.tar.bz2 \
tar cJf l10n-$VERSION.tar.xz \
--exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=browser --exclude=calendar \
--exclude=suite \
l10n
# compare-locales
hg clone http://hg.mozilla.org/build/compare-locales
tar cjf compare-locales.tar.bz2 --exclude=.hgtags --exclude=.hgignore --exclude=.hg compare-locales
tar cJf compare-locales.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg compare-locales

View File

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

View File

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

3
l10n-31.0.tar.xz Normal file
View File

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

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,13 @@
# HG changeset patch
# User Adrian Schröter <adrian@suse.de>
# Parent 5b26dbfe65bd4986ea3792f02bc025fec293b51f
# Parent b945e0c3b145b6b2245f42bab52f911c2d1f6759
disable ESDP support (no BNC or BMO reference yet :-()
diff --git a/xpcom/glue/arm.h b/xpcom/glue/arm.h
--- a/xpcom/glue/arm.h
+++ b/xpcom/glue/arm.h
@@ -143,17 +143,17 @@ namespace mozilla {
extern bool NS_COM_GLUE neon_enabled;
diff --git a/mozglue/build/arm.h b/mozglue/build/arm.h
--- a/mozglue/build/arm.h
+++ b/mozglue/build/arm.h
@@ -116,17 +116,17 @@ namespace mozilla {
extern bool MFBT_DATA neon_enabled;
#endif
#endif
}

View File

@ -7,27 +7,26 @@ Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751
diff --git a/modules/libpref/src/Makefile.in b/modules/libpref/src/Makefile.in
--- a/modules/libpref/src/Makefile.in
+++ b/modules/libpref/src/Makefile.in
@@ -49,14 +49,15 @@ endif
# Optimizer bug with GCC 3.2.2 on OS/2
ifeq ($(OS_ARCH), OS2)
nsPrefService.$(OBJ_SUFFIX): nsPrefService.cpp
$(REPORT_BUILD)
@$(MAKE_DEPS_AUTO_CXX)
$(ELOG) $(CCC) $(OUTOPTION)$@ -c $(COMPILE_CXXFLAGS:-O2=-O1) $(_VPATH_SRCS)
@@ -21,13 +21,15 @@ endif
ifdef MOZ_SERVICES_HEALTHREPORT
ifneq (android,$(MOZ_WIDGET_TOOLKIT))
grepref_files += $(topsrcdir)/services/healthreport/healthreport-prefs.js
else
grepref_files += $(topsrcdir)/mobile/android/chrome/content/healthreport-prefs.js
endif
endif
+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
+
greprefs.js: $(grepref_files)
$(PYTHON) $(topsrcdir)/config/Preprocessor.py $(PREF_PPFLAGS) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) $^ > $@
$(call py_action,preprocessor,$(PREF_PPFLAGS) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) $^ -o $@)
libs:: greprefs.js
$(INSTALL) $^ $(DIST)/bin/
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
@@ -23,16 +23,17 @@
#include "nsIStringEnumerator.h"
@@ -27,16 +27,17 @@
#include "nsIZipReader.h"
#include "nsPrefBranch.h"
#include "nsXPIDLString.h"
@ -35,6 +34,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
#include "nsCOMArray.h"
#include "nsXPCOMCID.h"
#include "nsAutoPtr.h"
#include "nsPrintfCString.h"
+#include "nsKDEUtils.h"
#include "nsQuickSort.h"
@ -44,7 +44,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
#include "prefread.h"
#include "prefapi_private_data.h"
@@ -972,16 +973,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
@@ -1134,16 +1135,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
static nsresult pref_LoadPrefsInDirList(const char *listId)
{
@ -62,7 +62,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
+
+ if (nsKDEUtils::kdeSession()) {
+ for(int i = 0;
+ i < NS_ARRAY_LENGTH(specialFiles);
+ i < MOZ_ARRAY_LENGTH(specialFiles);
+ ++i ) {
+ if (*specialFiles[ i ] == '\0') {
+ specialFiles[ i ] = "kde.js";
@ -79,7 +79,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
return NS_OK;
bool hasMore;
@@ -997,17 +1016,17 @@ static nsresult pref_LoadPrefsInDirList(
@@ -1159,17 +1178,17 @@ static nsresult pref_LoadPrefsInDirList(
nsAutoCString leaf;
path->GetNativeLeafName(leaf);
@ -89,7 +89,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
ReadExtensionPrefs(path);
else
- pref_LoadPrefsInDir(path, nullptr, 0);
+ pref_LoadPrefsInDir(path, specialFiles, NS_ARRAY_LENGTH(specialFiles));
+ pref_LoadPrefsInDir(path, specialFiles, MOZ_ARRAY_LENGTH(specialFiles));
}
return NS_OK;
}
@ -98,7 +98,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
{
nsZipItemPtr<char> manifest(jarReader, name, true);
NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
@@ -1101,28 +1120,40 @@ static nsresult pref_InitInitialObjects(
@@ -1263,26 +1282,38 @@ 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)
@ -113,8 +113,6 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
#elif defined(_AIX)
, "aix.js"
#endif
#elif defined(XP_OS2)
"os2pref.js"
#elif defined(XP_BEOS)
"beos.js"
#endif
@ -122,7 +120,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;
+ i < NS_ARRAY_LENGTH(specialFiles);
+ i < MOZ_ARRAY_LENGTH(specialFiles);
+ ++i ) {
+ if( *specialFiles[ i ] == '\0' ) {
+ specialFiles[ i ] = "kde.js";
@ -184,25 +182,24 @@ diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpac
diff --git a/toolkit/components/downloads/Makefile.in b/toolkit/components/downloads/Makefile.in
--- a/toolkit/components/downloads/Makefile.in
+++ b/toolkit/components/downloads/Makefile.in
@@ -23,9 +23,11 @@ ifndef MOZ_SUITE
DISABLED_EXTRA_COMPONENTS = \
nsDownloadManagerUI.js \
nsDownloadManagerUI.manifest \
$(NULL)
endif
@@ -1,9 +1,9 @@
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
include $(topsrcdir)/config/rules.mk
+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
+
CXXFLAGS += $(TK_CFLAGS)
-
+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
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
@@ -38,16 +38,20 @@
@@ -43,16 +43,20 @@
#ifdef XP_WIN
#include <shlobj.h>
#include "nsWindowsHelpers.h"
#ifdef DOWNLOAD_SCANNER
#include "nsDownloadScanner.h"
#endif
@ -218,9 +215,9 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
#ifdef MOZ_WIDGET_ANDROID
#include "AndroidBridge.h"
using namespace mozilla::widget::android;
#endif
@@ -2609,16 +2613,25 @@ nsDownload::SetState(DownloadState aStat
@@ -2722,16 +2726,25 @@ nsDownload::SetState(DownloadState aStat
nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
// Master pref to control this function.
@ -246,22 +243,22 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
int64_t goat = PR_Now() - mStartTime;
showTaskbarAlert = goat > alertIntervalUSec;
@@ -2645,19 +2658,20 @@ nsDownload::SetState(DownloadState aStat
// retention policy, there's no reason to make the text clickable
@@ -2759,19 +2772,20 @@ nsDownload::SetState(DownloadState aStat
// because if it is, they'll click open the download manager and
// the items they downloaded will have been removed.
alerts->ShowAlertNotification(
NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title,
message, !removeWhenDone,
mPrivate ? NS_LITERAL_STRING("private") : NS_LITERAL_STRING("non-private"),
mDownloadManager, EmptyString(), NS_LITERAL_STRING("auto"), EmptyString());
mDownloadManager, EmptyString(), NS_LITERAL_STRING("auto"),
EmptyString(), nullptr);
- }
+ }
}
}
+ }
#if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_ANDROID) || defined(MOZ_WIDGET_GTK2)
#if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_ANDROID) || defined(MOZ_WIDGET_GTK)
nsCOMPtr<nsIFileURL> fileURL = do_QueryInterface(mTarget);
nsCOMPtr<nsIFile> file;
nsAutoString path;
@ -271,7 +268,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
--- a/toolkit/content/jar.mn
+++ b/toolkit/content/jar.mn
@@ -50,29 +50,33 @@ toolkit.jar:
@@ -58,29 +58,33 @@ toolkit.jar:
content/global/viewZoomOverlay.js (viewZoomOverlay.js)
*+ content/global/bindings/autocomplete.xml (widgets/autocomplete.xml)
content/global/bindings/browser.xml (widgets/browser.xml)
@ -293,7 +290,7 @@ diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
content/global/bindings/menulist.xml (widgets/menulist.xml)
content/global/bindings/notification.xml (widgets/notification.xml)
content/global/bindings/numberbox.xml (widgets/numberbox.xml)
content/global/bindings/popup.xml (widgets/popup.xml)
* content/global/bindings/popup.xml (widgets/popup.xml)
*+ content/global/bindings/preferences.xml (widgets/preferences.xml)
+*+ content/global/bindings/preferences-kde.xml (widgets/preferences-kde.xml)
+% override chrome://global/content/bindings/preferences.xml chrome://global/content/bindings/preferences-kde.xml desktop=kde
@ -309,7 +306,7 @@ diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/di
new file mode 100644
--- /dev/null
+++ b/toolkit/content/widgets/dialog-kde.xml
@@ -0,0 +1,451 @@
@@ -0,0 +1,449 @@
+<?xml version="1.0"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
@ -342,7 +339,7 @@ new file mode 100644
+ <xul:button dlgtype="cancel" class="dialog-button"/>
+ <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
+#elif XP_UNIX
+ pack="end">
+ >
+ <xul:button dlgtype="help" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
+ <xul:spacer anonid="spacer" flex="1" hidden="true"/>
@ -729,8 +726,6 @@ new file mode 100644
+ </implementation>
+
+ <handlers>
+ <handler event="keypress" keycode="VK_ENTER"
+ group="system" action="this._hitEnter(event);"/>
+ <handler event="keypress" keycode="VK_RETURN"
+ group="system" action="this._hitEnter(event);"/>
+ <handler event="keypress" keycode="VK_ESCAPE" group="system">
@ -765,7 +760,7 @@ diff --git a/toolkit/content/widgets/preferences-kde.xml b/toolkit/content/widge
new file mode 100644
--- /dev/null
+++ b/toolkit/content/widgets/preferences-kde.xml
@@ -0,0 +1,1339 @@
@@ -0,0 +1,1333 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE bindings [
@ -1340,9 +1335,8 @@ new file mode 100644
+ <children includes="prefpane"/>
+ </xul:deck>
+ </xul:hbox>
+ <xul:hbox anonid="dlg-buttons" class="prefWindow-dlgbuttons"
+ <xul:hbox anonid="dlg-buttons" class="prefWindow-dlgbuttons" pack="end">
+#ifdef XP_UNIX_GNOME
+ >
+ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="help" class="dialog-button" hidden="true" icon="help"/>
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
@ -1351,16 +1345,14 @@ new file mode 100644
+ <xul:button dlgtype="cancel" class="dialog-button" icon="cancel"/>
+ <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
+#elif XP_UNIX
+ pack="end">
+ <xul:button dlgtype="help" class="dialog-button" hidden="true" icon="help"/>
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
+ <xul:spacer anonid="spacer" flex="1"/>
+ <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
+ <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="cancel" class="dialog-button" icon="cancel"/>
+ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
+ <xul:spacer anonid="spacer" flex="1"/>
+ <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
+ <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="cancel" class="dialog-button" icon="cancel"/>
+ <xul:button dlgtype="help" class="dialog-button" hidden="true" icon="help"/>
+ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
+#else
+ pack="end">
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
+ <xul:spacer anonid="spacer" flex="1"/>
+ <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
@ -1389,6 +1381,8 @@ new file mode 100644
+#ifdef XP_MACOSX
+ // no buttons on Mac except Help
+ cancelButton.hidden = true;
+ // Move Help button to the end
+ document.getAnonymousElementByAttribute(this, "anonid", "spacer").hidden = true;
+ // Also, don't fire onDialogAccept on enter
+ acceptButton.disabled = true;
+#else
@ -1507,7 +1501,7 @@ new file mode 100644
+
+ this._selector.selectedItem = document.getAnonymousElementByAttribute(this, "pane", aPaneElement.id);
+ if (!aPaneElement.loaded) {
+ function OverlayLoadObserver(aPane)
+ let OverlayLoadObserver = function(aPane)
+ {
+ this._pane = aPane;
+ }
@ -1808,9 +1802,10 @@ new file mode 100644
+ <handlers>
+ <handler event="dialogaccept">
+ <![CDATA[
+ if (!this._fireEvent("beforeaccept", this))
+ return;
+
+ if (!this._fireEvent("beforeaccept", this)){
+ return false;
+ }
+
+ if (this.type == "child" && window.opener) {
+ var psvc = Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefBranch);
@ -1873,6 +1868,8 @@ new file mode 100644
+ .getService(Components.interfaces.nsIPrefService);
+ psvc.savePrefFile(null);
+ }
+
+ return true;
+ ]]>
+ </handler>
+ <handler event="command">
@ -2069,7 +2066,8 @@ new file mode 100644
+ </handlers>
+ </binding>
+
+ <binding id="panebutton" extends="chrome://global/content/bindings/radio.xml#radio">
+ <binding id="panebutton" role="xul:listitem"
+ extends="chrome://global/content/bindings/radio.xml#radio">
+ <resources>
+ <stylesheet src="chrome://global/skin/preferences.css"/>
+ </resources>
@ -2077,15 +2075,6 @@ new file mode 100644
+ <xul:image class="paneButtonIcon" xbl:inherits="src"/>
+ <xul:label class="paneButtonLabel" xbl:inherits="value=label"/>
+ </content>
+ <implementation implements="nsIAccessible">
+ <property name="accessibleType" readonly="true">
+ <getter>
+ <![CDATA[
+ return Components.interfaces.nsIAccessibleProvider.XULListitem;
+ ]]>
+ </getter>
+ </property>
+ </implementation>
+ </binding>
+
+</bindings>
@ -2125,9 +2114,9 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
NS_DECL_ISUPPORTS
NS_DECL_NSISYSTEMPROXYSETTINGS
nsUnixSystemProxySettings() {}
nsresult Init();
@@ -35,16 +37,17 @@ private:
nsUnixSystemProxySettings()
: mSchemeProxySettings(5)
@@ -38,16 +40,17 @@ private:
nsCOMPtr<nsIGSettingsService> mGSettings;
nsCOMPtr<nsIGSettingsCollection> mProxySettings;
nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings;
@ -2139,13 +2128,13 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
+ nsresult GetProxyFromKDE(const nsACString& aScheme, const nsACString& aHost, PRInt32 aPort, nsACString& aResult);
};
NS_IMPL_ISUPPORTS1(nsUnixSystemProxySettings, nsISystemProxySettings)
NS_IMPL_ISUPPORTS(nsUnixSystemProxySettings, nsISystemProxySettings)
NS_IMETHODIMP
nsUnixSystemProxySettings::GetMainThreadOnly(bool *aMainThreadOnly)
{
// dbus prevents us from being threadsafe, but this routine should not block anyhow
@@ -496,16 +499,19 @@ nsUnixSystemProxySettings::GetProxyFromG
@@ -504,16 +507,19 @@ nsUnixSystemProxySettings::GetProxyFromG
nsresult
nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec,
@ -2165,7 +2154,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
if (mGConf)
return GetProxyFromGConf(aScheme, aHost, aPort, aResult);
@@ -531,8 +537,34 @@ static const mozilla::Module::ContractID
@@ -539,8 +545,34 @@ static const mozilla::Module::ContractID
static const mozilla::Module kUnixProxyModule = {
mozilla::Module::kVersion,
@ -2203,27 +2192,26 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
--- a/toolkit/xre/moz.build
+++ b/toolkit/xre/moz.build
@@ -38,18 +38,20 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt
@@ -43,17 +43,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt
GENERATED_SOURCES += [
'moc_nsNativeAppSupportQt.cpp',
]
SOURCES += [
'nsNativeAppSupportQt.cpp',
'nsQAppInstance.cpp',
]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'os2':
CPP_SOURCES += [
'nsNativeAppSupportOS2.cpp',
]
elif CONFIG['MOZ_ENABLE_GTK']:
+ EXPORTS += ['nsKDEUtils.h']
CPP_SOURCES += [
UNIFIED_SOURCES += [
+ 'nsKDEUtils.cpp',
'nsNativeAppSupportUnix.cpp',
+ 'nsKDEUtils.cpp'
]
else:
CPP_SOURCES += [
UNIFIED_SOURCES += [
'nsNativeAppSupportDefault.cpp',
]
if CONFIG['MOZ_X11']:
CPP_SOURCES += [
diff --git a/toolkit/xre/nsKDEUtils.cpp b/toolkit/xre/nsKDEUtils.cpp
new file mode 100644
--- /dev/null
@ -2624,11 +2612,11 @@ new file mode 100644
diff --git a/uriloader/exthandler/Makefile.in b/uriloader/exthandler/Makefile.in
--- a/uriloader/exthandler/Makefile.in
+++ b/uriloader/exthandler/Makefile.in
@@ -86,9 +86,10 @@ EXTRA_COMPONENTS = \
# we don't want the shared lib, but we want to force the creation of a static lib.
FORCE_STATIC_LIB = 1
include $(topsrcdir)/config/config.mk
include $(topsrcdir)/ipc/chromium/chromium-config.mk
@@ -6,9 +6,10 @@
ifdef MOZ_ENABLE_DBUS
OS_INCLUDES += $(TK_CFLAGS) $(MOZ_DBUS_CFLAGS)
endif
include $(topsrcdir)/config/rules.mk
ifneq (,$(filter qt gtk2 gtk3, $(MOZ_WIDGET_TOOLKIT)))
@ -2638,25 +2626,26 @@ diff --git a/uriloader/exthandler/Makefile.in b/uriloader/exthandler/Makefile.in
diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
--- a/uriloader/exthandler/moz.build
+++ b/uriloader/exthandler/moz.build
@@ -68,16 +68,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
pass
@@ -80,17 +80,19 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
else:
CPP_SOURCES += [
'nsOSHelperAppService.cpp',
# These files can't be built in unified mode because they force NSPR logging.
SOURCES += [
osdir + '/nsOSHelperAppService.cpp',
]
if CONFIG['MOZ_ENABLE_GTK']:
CPP_SOURCES += [
+ 'nsCommonRegistry.cpp',
+ 'nsKDERegistry.cpp',
'nsGNOMERegistry.cpp',
'nsMIMEInfoUnix.cpp',
UNIFIED_SOURCES += [
+ 'unix/nsCommonRegistry.cpp',
'unix/nsGNOMERegistry.cpp',
+ 'unix/nsKDERegistry.cpp',
'unix/nsMIMEInfoUnix.cpp',
]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
CPP_SOURCES += [
'nsMIMEInfoAndroid.cpp',
'nsAndroidHandlerApp.cpp',
'nsExternalSharingAppService.cpp',
UNIFIED_SOURCES += [
'android/nsAndroidHandlerApp.cpp',
'android/nsExternalSharingAppService.cpp',
'android/nsExternalURLHandlerService.cpp',
'android/nsMIMEInfoAndroid.cpp',
diff --git a/uriloader/exthandler/unix/nsCommonRegistry.cpp b/uriloader/exthandler/unix/nsCommonRegistry.cpp
new file mode 100644
--- /dev/null
@ -2874,7 +2863,7 @@ new file mode 100644
diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
--- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
+++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
@@ -16,30 +16,33 @@
@@ -10,30 +10,33 @@
#include <QString>
#if (MOZ_ENABLE_CONTENTACTION)
#include <contentaction/contentaction.h>
@ -2903,39 +2892,42 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
- nsresult rv = nsGNOMERegistry::LoadURL(aURI);
+ nsresult rv = nsCommonRegistry::LoadURL(aURI);
#if (MOZ_PLATFORM_MAEMO == 5) && defined (MOZ_ENABLE_GNOMEVFS)
if (NS_FAILED(rv)){
HildonURIAction *action = hildon_uri_get_default_action(mSchemeOrType.get(), nullptr);
if (action) {
nsAutoCString spec;
aURI->GetAsciiSpec(spec);
if (hildon_uri_open(spec.get(), action, nullptr))
@@ -67,22 +70,22 @@ nsMIMEInfoUnix::GetHasDefaultHandler(boo
{
// if mDefaultApplication is set, it means the application has been set from
#ifdef MOZ_WIDGET_QT
if (NS_FAILED(rv)) {
nsAutoCString spec;
aURI->GetAsciiSpec(spec);
if (QDesktopServices::openUrl(QUrl(spec.get()))) {
rv = NS_OK;
}
@@ -50,24 +53,24 @@ nsMIMEInfoUnix::GetHasDefaultHandler(boo
// either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to
// give the GNOME answer.
if (mDefaultApplication)
return nsMIMEInfoImpl::GetHasDefaultHandler(_retval);
*_retval = false;
- nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);
+ nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType);
if (!mimeInfo) {
nsAutoCString ext;
nsresult rv = GetPrimaryExtension(ext);
if (NS_SUCCEEDED(rv)) {
- mimeInfo = nsGNOMERegistry::GetFromExtension(ext);
+ mimeInfo = nsCommonRegistry::GetFromExtension(ext);
if (mClass == eProtocolInfo) {
- *_retval = nsGNOMERegistry::HandlerExists(mSchemeOrType.get());
+ *_retval = nsCommonRegistry::HandlerExists(mSchemeOrType.get());
} else {
- nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);
+ nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType);
if (!mimeInfo) {
nsAutoCString ext;
nsresult rv = GetPrimaryExtension(ext);
if (NS_SUCCEEDED(rv)) {
- mimeInfo = nsGNOMERegistry::GetFromExtension(ext);
+ mimeInfo = nsCommonRegistry::GetFromExtension(ext);
}
}
if (mimeInfo)
*_retval = true;
}
if (mimeInfo)
*_retval = true;
if (*_retval)
return NS_OK;
@@ -130,16 +133,33 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
@@ -102,16 +105,33 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
ContentAction::Action::defaultActionForFile(uri, QString(mSchemeOrType.get()));
if (action.isValid()) {
action.trigger();
@ -2969,7 +2961,7 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
nsCOMPtr<nsIIOService> ioservice = do_GetService(NS_IOSERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIURI> uri;
@@ -157,17 +177,17 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
@@ -129,17 +149,17 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
/* Fallback to GnomeVFS */
nsCOMPtr<nsIGnomeVFSMimeApp> app;
if (NS_SUCCEEDED(gnomevfs->GetAppForMimeType(mSchemeOrType, getter_AddRefs(app))) && app)
@ -3010,7 +3002,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
#include "nsXPIDLString.h"
#include "nsIURL.h"
#include "nsIFileStreams.h"
@@ -1157,29 +1157,29 @@ nsresult nsOSHelperAppService::OSProtoco
@@ -1146,26 +1146,26 @@ nsresult nsOSHelperAppService::OSProtoco
ContentAction::Action::defaultActionForScheme(QString(aProtocolScheme) + ':');
if (action.isValid())
@ -3021,9 +3013,6 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
// Check the GConf registry for a protocol handler
- *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme);
+ *aHandlerExists = nsCommonRegistry::HandlerExists(aProtocolScheme);
#if (MOZ_PLATFORM_MAEMO == 5) && defined (MOZ_ENABLE_GNOMEVFS)
*aHandlerExists = nsMIMEInfoUnix::HandlerExists(aProtocolScheme);
#endif
#endif
return NS_OK;
@ -3040,14 +3029,14 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
#endif
}
nsresult nsOSHelperAppService::GetFileTokenForPath(const PRUnichar * platformAppPath, nsIFile ** aFile)
nsresult nsOSHelperAppService::GetFileTokenForPath(const char16_t * platformAppPath, nsIFile ** aFile)
{
@@ -1266,17 +1266,17 @@ nsOSHelperAppService::GetFromExtension(c
@@ -1252,17 +1252,17 @@ nsOSHelperAppService::GetFromExtension(c
mime_types_description,
true);
if (NS_FAILED(rv) || majorType.IsEmpty()) {
#ifdef MOZ_WIDGET_GTK
LOG(("Looking in GNOME registry\n"));
nsRefPtr<nsMIMEInfoBase> gnomeInfo =
@ -3061,14 +3050,14 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt),
majorType,
@@ -1389,17 +1389,17 @@ nsOSHelperAppService::GetFromType(const
@@ -1372,17 +1372,17 @@ nsOSHelperAppService::GetFromType(const
#ifdef MOZ_WIDGET_GTK
nsRefPtr<nsMIMEInfoBase> gnomeInfo;
if (handler.IsEmpty()) {
// No useful data yet. Check the GNOME registry. Unfortunately, newer
// GNOME versions no longer have type-to-extension mappings, so we might
// get back a MIMEInfo without any extensions set. In that case we'll have
// to look in our mime.types files for the extensions.
// to look in our mime.types files for the extensions.
LOG(("Looking in GNOME registry\n"));
- gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType);
+ gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType);
@ -3080,38 +3069,38 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
#endif
// Now look up our extensions
diff --git a/widget/gtk2/Makefile.in b/widget/gtk2/Makefile.in
--- a/widget/gtk2/Makefile.in
+++ b/widget/gtk2/Makefile.in
@@ -67,11 +67,14 @@ DEFINES += -DCAIRO_GFX -DMOZ_APP_NAME='
diff --git a/widget/gtk/Makefile.in b/widget/gtk/Makefile.in
--- a/widget/gtk/Makefile.in
+++ b/widget/gtk/Makefile.in
@@ -3,11 +3,13 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
include $(topsrcdir)/config/rules.mk
CFLAGS += $(MOZ_STARTUP_NOTIFICATION_CFLAGS)
CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(MOZ_STARTUP_NOTIFICATION_CFLAGS)
INCLUDES += \
-I$(srcdir)/../xpwidgets \
-I$(srcdir)/../shared \
-I$(topsrcdir)/layout/generic \
-I$(topsrcdir)/layout/xul/base/src \
-I$(topsrcdir)/other-licenses/atk-1.0 \
$(NULL)
+
+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
+
ifdef MOZ_X11
INCLUDES += -I$(srcdir)/../shared/x11
endif
diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
--- a/widget/gtk2/nsFilePicker.cpp
+++ b/widget/gtk2/nsFilePicker.cpp
@@ -1,31 +1,33 @@
CFLAGS += $(TK_CFLAGS)
CXXFLAGS += $(TK_CFLAGS)
diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
--- a/widget/gtk/nsFilePicker.cpp
+++ b/widget/gtk/nsFilePicker.cpp
@@ -1,32 +1,34 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "mozilla/Util.h"
#include "mozilla/Types.h"
#include <gtk/gtk.h>
+#include <gdk/gdkx.h>
#include "nsGtkUtils.h"
#include "nsIFileURL.h"
#include "nsIURI.h"
#include "nsIWidget.h"
@ -3128,14 +3117,14 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
#include "nsFilePicker.h"
+#include "nsKDEUtils.h"
#if (MOZ_PLATFORM_MAEMO == 5)
#include <hildon-fm-2/hildon/hildon-file-chooser-dialog.h>
#endif
using namespace mozilla;
#define MAX_PREVIEW_SIZE 180
@@ -242,17 +244,19 @@ nsFilePicker::AppendFilters(int32_t aFil
nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr;
void
@@ -226,17 +228,19 @@ nsFilePicker::AppendFilters(int32_t aFil
return nsBaseFilePicker::AppendFilters(aFilterMask);
}
@ -3156,7 +3145,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
mFilters.AppendElement(filter);
mFilterNames.AppendElement(name);
@@ -366,16 +370,32 @@ nsFilePicker::Show(int16_t *aReturn)
@@ -351,16 +355,32 @@ nsFilePicker::Show(int16_t *aReturn)
NS_IMETHODIMP
nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
@ -3189,7 +3178,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE)
@@ -567,8 +587,235 @@ nsFilePicker::Done(GtkWidget* file_choos
@@ -539,8 +559,235 @@ nsFilePicker::Done(GtkWidget* file_choos
if (mCallback) {
mCallback->Done(result);
mCallback = nullptr;
@ -3425,10 +3414,10 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
+ return NS_OK;
+ }
+
diff --git a/widget/gtk2/nsFilePicker.h b/widget/gtk2/nsFilePicker.h
--- a/widget/gtk2/nsFilePicker.h
+++ b/widget/gtk2/nsFilePicker.h
@@ -67,11 +67,17 @@ protected:
diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
--- a/widget/gtk/nsFilePicker.h
+++ b/widget/gtk/nsFilePicker.h
@@ -66,11 +66,17 @@ protected:
nsString mDefault;
nsString mDefaultExtension;
@ -3449,13 +3438,13 @@ diff --git a/widget/gtk2/nsFilePicker.h b/widget/gtk2/nsFilePicker.h
diff --git a/xpcom/components/Makefile.in b/xpcom/components/Makefile.in
--- a/xpcom/components/Makefile.in
+++ b/xpcom/components/Makefile.in
@@ -28,9 +28,10 @@ LOCAL_INCLUDES = \
FORCE_STATIC_LIB = 1
@@ -2,9 +2,10 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
include $(topsrcdir)/config/rules.mk
DEFINES += -D_IMPL_NS_COM
ifdef MOZ_WIDGET_GTK
CXXFLAGS += $(TK_CFLAGS)
+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
@ -3463,7 +3452,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
@@ -30,16 +30,17 @@
@@ -31,16 +31,17 @@
#include "nsTextFormatter.h"
#include "nsVersionComparator.h"
#include "nsXPCOMCIDInternal.h"
@ -3481,7 +3470,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
const char* directive;
int argc;
@@ -397,16 +398,17 @@ ParseManifest(NSLocationType type, FileL
@@ -398,16 +399,17 @@ ParseManifest(NSLocationType type, FileL
NS_NAMED_LITERAL_STRING(kPlatform, "platform");
NS_NAMED_LITERAL_STRING(kContentAccessible, "contentaccessible");
NS_NAMED_LITERAL_STRING(kApplication, "application");
@ -3499,9 +3488,9 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
NS_NAMED_LITERAL_STRING(kXPCNativeWrappers, "xpcnativewrappers");
nsAutoString appID;
@@ -444,41 +446,46 @@ ParseManifest(NSLocationType type, FileL
@@ -445,42 +447,47 @@ ParseManifest(NSLocationType type, FileL
CopyUTF8toUTF16(s, abi);
abi.Insert(PRUnichar('_'), 0);
abi.Insert(char16_t('_'), 0);
abi.Insert(osTarget, 0);
}
}
@ -3510,24 +3499,25 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
nsAutoString osVersion;
+ nsAutoString desktop;
#if defined(XP_WIN)
#pragma warning(push)
#pragma warning(disable:4996) // VC12+ deprecates GetVersionEx
OSVERSIONINFO info = { sizeof(OSVERSIONINFO) };
if (GetVersionEx(&info)) {
nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(),
nsTextFormatter::ssprintf(osVersion, MOZ_UTF16("%ld.%ld"),
info.dwMajorVersion,
info.dwMinorVersion);
}
+ desktop = NS_LITERAL_STRING("win");
#pragma warning(pop)
#elif defined(MOZ_WIDGET_COCOA)
SInt32 majorVersion, minorVersion;
if ((Gestalt(gestaltSystemVersionMajor, &majorVersion) == noErr) &&
(Gestalt(gestaltSystemVersionMinor, &minorVersion) == noErr)) {
nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(),
majorVersion,
minorVersion);
}
SInt32 majorVersion = nsCocoaFeatures::OSXVersionMajor();
SInt32 minorVersion = nsCocoaFeatures::OSXVersionMinor();
nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(),
majorVersion,
minorVersion);
+ desktop = NS_LITERAL_STRING("macosx");
#elif defined(MOZ_WIDGET_GTK)
nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(),
nsTextFormatter::ssprintf(osVersion, MOZ_UTF16("%ld.%ld"),
gtk_major_version,
gtk_minor_version);
+ desktop = nsKDEUtils::kdeSession() ? NS_LITERAL_STRING("kde") : NS_LITERAL_STRING("gnome");
@ -3535,7 +3525,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
bool isTablet = false;
if (mozilla::AndroidBridge::Bridge()) {
mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build$VERSION", "RELEASE", osVersion);
isTablet = mozilla::AndroidBridge::Bridge()->IsTablet();
isTablet = mozilla::widget::android::GeckoAppShell::IsTablet();
}
+ desktop = NS_LITERAL_STRING("android");
#endif
@ -3546,7 +3536,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
char *token;
char *newline = buf;
@@ -560,24 +567,26 @@ ParseManifest(NSLocationType type, FileL
@@ -562,24 +569,26 @@ ParseManifest(NSLocationType type, FileL
TriState stOsVersion = eUnspecified;
TriState stOs = eUnspecified;
TriState stABI = eUnspecified;
@ -3557,7 +3547,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
bool contentAccessible = false;
+ TriState stDesktop = eUnspecified;
while (NULL != (token = nsCRT::strtok(whitespace, kWhitespace, &whitespace)) && ok) {
while (nullptr != (token = nsCRT::strtok(whitespace, kWhitespace, &whitespace)) && ok) {
ToLowerCase(token);
NS_ConvertASCIItoUTF16 wtoken(token);
@ -3573,7 +3563,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
#if defined(MOZ_WIDGET_ANDROID)
bool tablet = false;
if (CheckFlag(kTablet, wtoken, tablet)) {
@@ -606,16 +615,17 @@ ParseManifest(NSLocationType type, FileL
@@ -608,16 +617,17 @@ ParseManifest(NSLocationType type, FileL
}
if (!ok ||
@ -3591,36 +3581,14 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
if (directive->regfunc) {
if (GeckoProcessType_Default != XRE_GetProcessType())
diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in
--- a/xpcom/io/Makefile.in
+++ b/xpcom/io/Makefile.in
@@ -43,17 +43,17 @@ include $(topsrcdir)/ipc/chromium/chromi
DEFINES += -D_IMPL_NS_COM
ifeq ($(OS_ARCH),Linux)
ifneq (,$(findstring lib64,$(libdir)))
DEFINES += -DHAVE_USR_LIB64_DIR
endif
endif
-LOCAL_INCLUDES += -I..
+LOCAL_INCLUDES += -I.. -I$(topsrcdir)/toolkit/xre
ifeq ($(MOZ_PLATFORM_MAEMO),5)
CFLAGS += $(MOZ_DBUS_CFLAGS)
CXXFLAGS += $(MOZ_DBUS_CFLAGS)
endif
ifdef MOZ_PLATFORM_MAEMO
CFLAGS += $(MOZ_PLATFORM_MAEMO_CFLAGS) $(MOZ_QT_CFLAGS)
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
--- a/xpcom/io/nsLocalFileUnix.cpp
+++ b/xpcom/io/nsLocalFileUnix.cpp
@@ -50,16 +50,17 @@
#include "prproces.h"
@@ -43,16 +43,17 @@
#include "nsIDirectoryEnumerator.h"
#include "nsISimpleEnumerator.h"
#include "private/pprio.h"
#include "prlink.h"
#ifdef MOZ_WIDGET_GTK
#include "nsIGIOService.h"
@ -3634,7 +3602,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
#include "prmem.h"
#include "plbase64.h"
@@ -1753,44 +1754,51 @@ nsLocalFile::SetPersistentDescriptor(con
@@ -1816,46 +1817,52 @@ nsLocalFile::SetPersistentDescriptor(con
return InitWithNativePath(aPersistentDescriptor);
#endif
}
@ -3653,6 +3621,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
if (NS_FAILED(IsDirectory(&isDirectory)))
return NS_ERROR_FAILURE;
+ nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
if (isDirectory) {
- if (giovfs)
- return giovfs->ShowURIForInput(mPath);
@ -3660,6 +3629,8 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
- /* Fallback to GnomeVFS */
- return gnomevfs->ShowURIForInput(mPath);
+ url = mPath;
} else if (giovfs && NS_SUCCEEDED(giovfs->OrgFreedesktopFileManager1ShowItems(mPath))) {
return NS_OK;
} else {
nsCOMPtr<nsIFile> parentDir;
nsAutoCString dirPath;
@ -3682,7 +3653,6 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
+ }
+
+ nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
+ nsCOMPtr<nsIGnomeVFSService> gnomevfs = do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
+ if (!giovfs && !gnomevfs)
+ return NS_ERROR_FAILURE;
@ -3691,7 +3661,6 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
+ return giovfs->ShowURIForInput(url);
+ else
+ return gnomevfs->ShowURIForInput(url);
+
#elif defined(MOZ_WIDGET_COCOA)
CFURLRef url;
if (NS_SUCCEEDED(GetCFURL(&url))) {
@ -3700,15 +3669,15 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
return rv;
}
return NS_ERROR_FAILURE;
@@ -1816,16 +1824,23 @@ nsLocalFile::Launch()
@@ -1863,16 +1870,23 @@ nsLocalFile::Reveal()
return NS_ERROR_FAILURE;
#endif
}
if (nullptr == connection)
return NS_ERROR_FAILURE;
if (hildon_mime_open_file(connection, mPath.get()) != kHILDON_SUCCESS)
return NS_ERROR_FAILURE;
return NS_OK;
#else
NS_IMETHODIMP
nsLocalFile::Launch()
{
#ifdef MOZ_WIDGET_GTK
+ if( nsKDEUtils::kdeSupport()) {
+ nsTArray<nsCString> command;
+ command.AppendElement( NS_LITERAL_CSTRING("OPEN") );

View File

@ -1,12 +1,12 @@
# HG changeset patch
# User Wolfgang Rosenauer <wr@rosenauer.org>
# Parent df748bfc0eaca6dedf086cfd7167392416bfae27
# Parent 13eb644c1216aed92b29dbc63fc26ce66f98c66c
Bug 583793 - Firefox interface language set to LANG, ignores LANGUAGE
diff --git a/intl/locale/src/nsLocaleService.cpp b/intl/locale/src/nsLocaleService.cpp
--- a/intl/locale/src/nsLocaleService.cpp
+++ b/intl/locale/src/nsLocaleService.cpp
@@ -127,16 +127,17 @@ nsLocaleService::nsLocaleService(void)
@@ -122,16 +122,17 @@ nsLocaleService::nsLocaleService(void)
nsRefPtr<nsLocale> resultLocale(new nsLocale());
NS_ENSURE_TRUE_VOID(resultLocale);
@ -24,7 +24,7 @@ diff --git a/intl/locale/src/nsLocaleService.cpp b/intl/locale/src/nsLocaleServi
for( i = 0; i < LocaleListLength; i++ ) {
nsresult result;
@@ -155,16 +156,21 @@ nsLocaleService::nsLocaleService(void)
@@ -150,16 +151,21 @@ nsLocaleService::nsLocaleService(void)
} else {
CopyASCIItoUTF16(lang, platformLocale);
result = nsPosixLocale::GetXPLocale(lang, xpLocale);
@ -45,4 +45,4 @@ diff --git a/intl/locale/src/nsLocaleService.cpp b/intl/locale/src/nsLocaleServi
mApplicationLocale = do_QueryInterface(resultLocale);
#endif // XP_UNIX
#ifdef XP_OS2

View File

@ -9,7 +9,7 @@ retrieving revision 1.1
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
@@ -50,24 +50,28 @@ nsUnixSystemProxySettings::GetMainThread
@@ -53,23 +53,27 @@ nsUnixSystemProxySettings::GetMainThread
// dbus prevents us from being threadsafe, but this routine should not block anyhow
*aMainThreadOnly = true;
return NS_OK;
@ -18,7 +18,6 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
nsresult
nsUnixSystemProxySettings::Init()
{
- mSchemeProxySettings.Init(5);
- mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
- if (mGSettings) {
- mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
@ -29,7 +28,6 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
+ // only use GSettings if that is a GNOME session
+ const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
+ if (sessionType && !strcmp(sessionType, "gnome")) {
+ mSchemeProxySettings.Init(5);
+ mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
+ if (mGSettings) {
+ mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),

View File

@ -2,7 +2,6 @@
# Parent 21d0e194954e451f0f1935d0ed68ee9eae432ddf
# User Wolfgang Rosenauer <wr@rosenauer.org>
Bug 746112 - RegExp hang on ppc64 in execute.
Bug 750620 - Make double-conversion portable to exotic architectures. TM: mozilla15
diff --git a/js/src/yarr/YarrInterpreter.h b/js/src/yarr/YarrInterpreter.h
--- a/js/src/yarr/YarrInterpreter.h
@ -89,25 +88,3 @@ diff --git a/memory/mozjemalloc/jemalloc.c b/memory/mozjemalloc/jemalloc.c
/*
* VM page size. It must divide the runtime CPU page size or the code
* will abort.
diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h
--- a/mfbt/double-conversion/utils.h
+++ b/mfbt/double-conversion/utils.h
@@ -50,17 +50,17 @@
// the result is equal to 89255e-22.
// The best way to test this, is to create a division-function and to compare
// the output of the division with the expected result. (Inlining must be
// disabled.)
// On Linux,x86 89255e-22 != Div_double(89255.0/1e22)
#if defined(_M_X64) || defined(__x86_64__) || \
defined(__ARMEL__) || defined(__avr32__) || \
defined(__hppa__) || defined(__ia64__) || \
- defined(__mips__) || defined(__powerpc__) || \
+ defined(__mips__) || defined(__powerpc__) || defined(__powerpc64__) || \
defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
defined(__SH4__) || defined(__alpha__) || \
defined(_MIPS_ARCH_MIPS32R2)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
#if defined(_WIN32)
// Windows uses a 64bit wide floating point stack.
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1

View File

@ -7,13 +7,13 @@ References:
diff --git a/configure.in b/configure.in
--- a/configure.in
+++ b/configure.in
@@ -8330,16 +8330,31 @@ AC_SUBST(QCMS_LIBS)
dnl ========================================================
dnl HarfBuzz
dnl ========================================================
MOZ_HARFBUZZ_LIBS='$(DEPTH)/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)'
AC_SUBST(MOZ_HARFBUZZ_LIBS)
@@ -8231,16 +8231,31 @@ if test "$MOZ_ENABLE_SKIA"; then
MOZ_ENABLE_SKIA_GPU=1
AC_DEFINE(USE_SKIA_GPU)
AC_SUBST(MOZ_ENABLE_SKIA_GPU)
fi
fi
AC_SUBST(MOZ_ENABLE_SKIA)
dnl ========================================================
+dnl Check for nss-shared-helper
@ -31,31 +31,27 @@ diff --git a/configure.in b/configure.in
+AC_SUBST(NSSHELPER_LIBS)
+
+dnl ========================================================
dnl SIL Graphite
dnl ========================================================
MOZ_GRAPHITE_LIBS='$(DEPTH)/gfx/graphite2/src/$(LIB_PREFIX)mozgraphite2.$(LIB_SUFFIX)'
AC_SUBST(MOZ_GRAPHITE_LIBS)
dnl ========================================================
dnl OTS
dnl disable xul
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(xul,
[ --disable-xul Disable XUL],
MOZ_XUL= )
if test "$MOZ_XUL"; then
AC_DEFINE(MOZ_XUL)
else
diff --git a/security/manager/ssl/src/Makefile.in b/security/manager/ssl/src/Makefile.in
--- a/security/manager/ssl/src/Makefile.in
new file mode 100644
--- /dev/null
+++ b/security/manager/ssl/src/Makefile.in
@@ -18,10 +18,13 @@ LIBXUL_LIBRARY = 1
CSRCS += md4.c
DEFINES += \
-DNSS_ENABLE_ECC \
-DDLL_PREFIX=\"$(DLL_PREFIX)\" \
-DDLL_SUFFIX=\"$(DLL_SUFFIX)\" \
$(NULL)
@@ -0,0 +1,8 @@
+#! gmake
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+LOCAL_INCLUDES += $(NSSHELPER_CFLAGS)
+EXTRA_DSO_LDOPTS += $(NSSHELPER_LIBS)
+
include $(topsrcdir)/config/rules.mk
diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/src/nsNSSComponent.cpp
--- a/security/manager/ssl/src/nsNSSComponent.cpp
+++ b/security/manager/ssl/src/nsNSSComponent.cpp
@ -77,68 +73,64 @@ diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/
+
#include "nsNSSComponent.h"
#include "CertVerifier.h"
#include "ExtendedValidation.h"
#include "NSSCertDBTrustDomain.h"
#include "mozilla/Telemetry.h"
#include "nsCertVerificationThread.h"
#include "nsAppDirectoryServiceDefs.h"
#include "nsComponentManagerUtils.h"
#include "nsDirectoryServiceDefs.h"
#include "nsICertOverrideService.h"
@@ -1132,18 +1139,34 @@ nsNSSComponent::InitializeNSS(bool showW
ConfigureInternalPKCS11Token();
@@ -1141,17 +1148,31 @@ nsNSSComponent::InitializeNSS()
if (NS_FAILED(rv)) {
nsPSMInitPanic::SetPanic();
return NS_ERROR_NOT_AVAILABLE;
}
// The NSS_INIT_NOROOTINIT flag turns off the loading of the root certs
// module by NSS_Initialize because we will load it in InstallLoadableRoots
// later. It also allows us to work around a bug in the system NSS in
// Ubuntu 8.04, which loads any nonexistent "<configdir>/libnssckbi.so" as
// "/usr/lib/nss/libnssckbi.so".
uint32_t init_flags = NSS_INIT_NOROOTINIT | NSS_INIT_OPTIMIZESPACE;
- SECStatus init_rv = ::NSS_Initialize(profileStr.get(), "", "",
- SECMOD_DB, init_flags);
+ SECStatus init_rv = SECFailure;
SECStatus init_rv = SECFailure;
if (!profileStr.IsEmpty()) {
// First try to initialize the NSS DB in read/write mode.
- SECStatus init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false);
+#ifdef MOZ_ENABLE_NSSHELPER
+ if (PR_GetEnv("MOZ_TB_NO_NSSHELPER")) {
+ init_rv = ::NSS_Initialize(profileStr.get(), "", "",
+ SECMOD_DB, init_flags);
+ init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false);
+ } else {
+ init_rv = ::nsshelp_open_db ("Thunderbird", profileStr.get(), init_flags);
+ uint32_t flags = NSS_INIT_NOROOTINIT | NSS_INIT_OPTIMIZESPACE;
+ init_rv = ::nsshelp_open_db ("Thunderbird", profileStr.get(), flags);
+
+ if (init_rv != SECSuccess) {
+ PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS using nsshelp_open_db in %s\n", profileStr.get()));
+ init_rv = ::NSS_Initialize(profileStr.get(), "", "",
+ SECMOD_DB, init_flags);
+ init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false);
+ }
+ }
+#else
+ init_rv = ::NSS_Initialize(profileStr.get(), "", "",
+ SECMOD_DB, init_flags);
+ init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false);
+#endif
// If that fails, attempt read-only mode.
if (init_rv != SECSuccess) {
PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS r/w in %s\n", profileStr.get()));
PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("could not init NSS r/w in %s\n", profileStr.get()));
init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), true);
}
if (init_rv != SECSuccess) {
PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("could not init in r/o either\n"));
}
diff --git a/toolkit/library/libxul.mk b/toolkit/library/libxul.mk
--- a/toolkit/library/libxul.mk
+++ b/toolkit/library/libxul.mk
@@ -146,17 +146,17 @@ OS_LIBS += $(call EXPAND_LIBNAME,mfuuid
endif
if (supress_warning_preference) {
which_nss_problem = problem_none;
}
else {
diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
--- a/toolkit/library/Makefile.in
+++ b/toolkit/library/Makefile.in
@@ -490,17 +490,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
endif
endif
ifdef MOZ_DIRECTSHOW
OS_LIBS += $(call EXPAND_LIBNAME,dmoguids wmcodecdspuuid strmiids msdmo)
endif
EXTRA_DSO_LDOPTS += $(LIBS_DIR)
DEFINES += -DIMPL_XREAPI
-EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(MOZALLOC_LIB)
+EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(MOZALLOC_LIB) $(NSSHELPER_LIBS)
ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
CXXFLAGS += $(TK_CFLAGS)
OS_LIBS += \
-framework SystemConfiguration \
-framework QTKit \
-framework IOKit \
-F/System/Library/PrivateFrameworks -framework CoreUI \
$(TK_LIBS) \
$(NULL)
endif
ifeq (OpenBSD,$(OS_ARCH))

View File

@ -1,159 +0,0 @@
Index: mozilla/configure.in
===================================================================
--- mozilla.orig/configure.in
+++ mozilla/configure.in
@@ -1084,7 +1084,7 @@ case "$OS_TEST" in
CPU_ARCH=x86
;;
-powerpc64 | ppc64)
+powerpc64 | ppc64 | powerpc64le | ppc64le)
CPU_ARCH=ppc64
;;
Index: mozilla/js/src/configure.in
===================================================================
--- mozilla.orig/js/src/configure.in
+++ mozilla/js/src/configure.in
@@ -915,7 +915,7 @@ case "$OS_TEST" in
CPU_ARCH=x86
;;
-powerpc64 | ppc64)
+powerpc64 | ppc64 | powerpc64le | ppc64le)
CPU_ARCH=ppc64
;;
Index: mozilla/mfbt/Endian.h
===================================================================
--- mozilla.orig/mfbt/Endian.h
+++ mozilla/mfbt/Endian.h
@@ -91,7 +91,7 @@
# else
# error "CPU type is unknown"
# endif
-#elif defined(__APPLE__)
+#elif defined(__APPLE__) || defined(__powerpc__) || defined(__ppc__)
# if __LITTLE_ENDIAN__
# define MOZ_LITTLE_ENDIAN 1
# elif __BIG_ENDIAN__
@@ -119,8 +119,7 @@
* cases.
*/
#elif defined(__sparc) || defined(__sparc__) || \
- defined(_POWER) || defined(__powerpc__) || \
- defined(__ppc__) || defined(__hppa) || \
+ defined(_POWER) || defined(__hppa) || \
defined(_MIPSEB) || defined(__ARMEB__) || \
defined(__s390__) || \
(defined(__sh__) && defined(__LITTLE_ENDIAN__)) || \
Index: mozilla/js/src/jscpucfg.h
===================================================================
--- mozilla.orig/js/src/jscpucfg.h
+++ mozilla/js/src/jscpucfg.h
@@ -31,7 +31,7 @@
# define JS_BYTES_PER_WORD 4
# define JS_BITS_PER_WORD_LOG2 5
-#elif defined(__APPLE__)
+#elif defined(__APPLE__) || defined(__powerpc__) || defined(__ppc__)
# if __LITTLE_ENDIAN__
# define IS_LITTLE_ENDIAN 1
# undef IS_BIG_ENDIAN
@@ -93,8 +93,7 @@
# endif
#elif defined(__sparc) || defined(__sparc__) || \
- defined(_POWER) || defined(__powerpc__) || \
- defined(__ppc__) || defined(__hppa) || \
+ defined(_POWER) || defined(__hppa) || \
defined(_MIPSEB) || defined(_BIG_ENDIAN)
/* IA64 running HP-UX will have _BIG_ENDIAN defined.
* IA64 running Linux will have endian.h and be handled above.
Index: mozilla/js/src/assembler/wtf/Platform.h
===================================================================
--- mozilla.orig/js/src/assembler/wtf/Platform.h
+++ mozilla/js/src/assembler/wtf/Platform.h
@@ -165,16 +165,22 @@
|| defined(__POWERPC__) \
|| defined(_M_PPC) \
|| defined(__PPC)
+#if !defined(__ppc64__) && !defined(__PPC64__)
#define WTF_CPU_PPC 1
+#endif
+#if !defined(__LITTLE_ENDIAN__)
#define WTF_CPU_BIG_ENDIAN 1
#endif
+#endif
/* WTF_CPU_PPC64 - PowerPC 64-bit */
#if defined(__ppc64__) \
|| defined(__PPC64__)
#define WTF_CPU_PPC64 1
+#if !defined(__LITTLE_ENDIAN__)
#define WTF_CPU_BIG_ENDIAN 1
#endif
+#endif
/* WTF_CPU_SH4 - SuperH SH-4 */
#if defined(__SH4__)
Index: mozilla/nsprpub/pr/include/md/_linux.cfg
===================================================================
--- mozilla.orig/nsprpub/pr/include/md/_linux.cfg
+++ mozilla/nsprpub/pr/include/md/_linux.cfg
@@ -29,8 +29,13 @@
#ifdef __powerpc64__
+#ifdef __LITTLE_ENDIAN__
+#define IS_LITTLE_ENDIAN 1
+#undef IS_BIG_ENDIAN
+#else
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1
+#endif
#define IS_64
#define PR_BYTES_PER_BYTE 1
@@ -75,8 +80,13 @@
#elif defined(__powerpc__)
+#ifdef __LITTLE_ENDIAN__
+#define IS_LITTLE_ENDIAN 1
+#undef IS_BIG_ENDIAN
+#else
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1
+#endif
#define PR_BYTES_PER_BYTE 1
#define PR_BYTES_PER_SHORT 2
Index: mozilla/media/webrtc/trunk/webrtc/typedefs.h
===================================================================
--- mozilla.orig/media/webrtc/trunk/webrtc/typedefs.h
+++ mozilla/media/webrtc/trunk/webrtc/typedefs.h
@@ -52,13 +52,23 @@
#elif defined(__powerpc64__)
#define WEBRTC_ARCH_PPC64 1
#define WEBRTC_ARCH_64_BITS 1
+#ifdef __LITTLE_ENDIAN__
+#define WEBRTC_ARCH_LITTLE_ENDIAN
+#define WEBRTC_LITTLE_ENDIAN
+#else
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
+#endif
#elif defined(__ppc__) || defined(__powerpc__)
#define WEBRTC_ARCH_PPC 1
#define WEBRTC_ARCH_32_BITS 1
+#ifdef __LITTLE_ENDIAN__
+#define WEBRTC_ARCH_LITTLE_ENDIAN
+#define WEBRTC_LITTLE_ENDIAN
+#else
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
+#endif
#elif defined(__sparc64__)
#define WEBRTC_ARCH_SPARC 1
#define WEBRTC_ARCH_64_BITS 1

View File

@ -1,10 +1,7 @@
diff --git a/config/baseconfig.mk b/config/baseconfig.mk
index 636b9aa..b350c75 100644
--- a/config/baseconfig.mk
+++ b/config/baseconfig.mk
@@ -1,7 +1,7 @@
INCLUDED_AUTOCONF_MK = 1
@@ -1,10 +1,10 @@
-includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+includedir := $(includedir)/$(MOZ_APP_NAME)
@ -12,3 +9,8 @@ index 636b9aa..b350c75 100644
installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
MOZILLA_SRCDIR = $(topsrcdir)/mozilla
MOZDEPTH = $(DEPTH)/mozilla
DIST = $(MOZDEPTH)/dist
# We do magic with OBJ_SUFFIX in config.mk, the following ensures we don't
# manually use it before config.mk inclusion

View File

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

View File

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

View File

@ -7,14 +7,14 @@ References:
diff --git a/mail/app/Makefile.in b/mail/app/Makefile.in
--- a/mail/app/Makefile.in
+++ b/mail/app/Makefile.in
@@ -61,16 +61,17 @@ LOCAL_INCLUDES += \
@@ -54,16 +54,17 @@ LOCAL_INCLUDES += \
-I$(MOZILLA_SRCDIR)/xpcom/build \
$(NULL)
DEFINES += -DXPCOM_GLUE
STL_FLAGS=
LIBS += \
$(EXTRA_DSO_LIBS) \
$(XPCOM_STANDALONE_GLUE_LDOPTS) \
+ $(NSSHELPER_LIBS) \
$(NULL)

View File

@ -1,277 +0,0 @@
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/moz.build
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/moz.build
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/moz.build
@@ -198,6 +198,13 @@ if CONFIG['OS_TEST'] == 'powerpc64':
'xptcstubs_ppc64_linux.cpp',
]
+if CONFIG['OS_TEST'] == 'powerpc64le':
+ if CONFIG['OS_ARCH'] == 'Linux':
+ CPP_SOURCES += [
+ 'xptcinvoke_ppc64_linux.cpp',
+ 'xptcstubs_ppc64_linux.cpp',
+ ]
+
if CONFIG['OS_TEST'] in ('macppc', 'bebox', 'ofppc', 'prep', 'amigappc'):
if CONFIG['OS_ARCH'] == 'NetBSD':
CPP_SOURCES += [
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
@@ -166,7 +166,7 @@ endif
#
# Linux/PPC64
#
-ifneq (,$(filter Linuxpowerpc64 FreeBSDpowerpc64,$(OS_ARCH)$(OS_TEST)))
+ifneq (,$(filter Linuxpowerpc64 Linuxpowerpc64le FreeBSDpowerpc64,$(OS_ARCH)$(OS_TEST)))
ASFILES := xptcinvoke_asm_ppc64_linux.s xptcstubs_asm_ppc64_linux.s
AS := $(CC) -c -x assembler-with-cpp
endif
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s
@@ -17,12 +17,29 @@
.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
.set f30,30; .set f31,31
+#if _CALL_ELF == 2
+#define STACK_TOC 28
+#define STACK_PARAMS 96
+#else
+#define STACK_TOC 40
+#define STACK_PARAMS 112
+#endif
#
# NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
# uint32_t paramCount, nsXPTCVariant* params)
#
+#if _CALL_ELF == 2
+ .section ".text"
+ .type NS_InvokeByIndex,@function
+ .globl NS_InvokeByIndex
+ .align 2
+NS_InvokeByIndex:
+0: addis 2,12,(.TOC.-0b)@ha
+ addi 2,2,(.TOC.-0b)@l
+ .localentry NS_InvokeByIndex,.-NS_InvokeByIndex
+#else
.section ".toc","aw"
.section ".text"
.align 2
@@ -34,6 +51,7 @@ NS_InvokeByIndex:
.previous
.type NS_InvokeByIndex,@function
.NS_InvokeByIndex:
+#endif
mflr 0
std 0,16(r1)
@@ -56,7 +74,7 @@ NS_InvokeByIndex:
# (-23*8).(-16*8).(-3*8)..(r31)
# +stack frame, -unused stack params, +regs storage, +1 for alignment
- addi r7,r5,((112/8)-7+7+13+3+1)
+ addi r7,r5,((STACK_PARAMS/8)-7+7+13+3+1)
rldicr r7,r7,3,59 # multiply by 8 and mask with ~15
neg r7,r7
stdux r1,r1,r7
@@ -72,7 +90,7 @@ NS_InvokeByIndex:
subi r3,r31,(23*8) # r3 --> GPRS
subi r4,r31,(16*8) # r4 --> FPRS
- addi r7,r1,112 # r7 --> params
+ addi r7,r1,STACK_PARAMS # r7 --> params
bl invoke_copy_to_stack
nop
@@ -83,14 +101,18 @@ NS_InvokeByIndex:
sldi r30,r30,3 # Find function descriptor
add r9,r9,r30
- ld r9,0(r9)
+ ld r12,0(r9)
- ld r0,0(r9) # Actual address from fd.
- std r2,40(r1) # Save r2 (TOC pointer)
+ std r2,STACK_TOC(r1) # Save r2 (TOC pointer)
+#if _CALL_ELF == 2
+ mtctr r12
+#else
+ ld r0,0(r12) # Actual address from fd.
mtctr 0
- ld r11,16(r9) # Environment pointer from fd.
- ld r2,8(r9) # TOC pointer from fd.
+ ld r11,16(r12) # Environment pointer from fd.
+ ld r2,8(r12) # TOC pointer from fd.
+#endif
# Load FP and GP registers as required
ld r4, -(23*8)(r31)
@@ -117,7 +139,7 @@ NS_InvokeByIndex:
bctrl # Do it
- ld r2,40(r1) # Load our own TOC pointer
+ ld r2,STACK_TOC(r1) # Load our own TOC pointer
ld r1,0(r1) # Revert stack frame
ld 0,16(r1) # Reload lr
ld 29,-24(r1) # Restore NVGPRS
@@ -126,7 +148,11 @@ NS_InvokeByIndex:
mtlr 0
blr
+#if _CALL_ELF == 2
+ .size NS_InvokeByIndex,.-NS_InvokeByIndex
+#else
.size NS_InvokeByIndex,.-.NS_InvokeByIndex
+#endif
# Magic indicating no need for an executable stack
.section .note.GNU-stack, "", @progbits ; .previous
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp
@@ -74,7 +74,9 @@ invoke_copy_to_stack(uint64_t* gpregs,
fpregs[i] = s->val.f; // if passed in registers, floats are promoted to doubles
} else {
float *p = (float *)d;
+#ifndef __LITTLE_ENDIAN__
p++;
+#endif
*p = s->val.f;
}
}
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s
@@ -17,6 +17,27 @@
.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
.set f30,30; .set f31,31
+#if _CALL_ELF == 2
+#define STACK_PARAMS 96
+#else
+#define STACK_PARAMS 112
+#endif
+
+#if _CALL_ELF == 2
+ .section ".text"
+ .type SharedStub,@function
+ .globl SharedStub
+ # Make the symbol hidden so that the branch from the stub does
+ # not go via a PLT. This is not only better for performance,
+ # but may be necessary to avoid linker errors since there is
+ # no place to restore the TOC register in a sibling call.
+ .hidden SharedStub
+ .align 2
+SharedStub:
+0: addis 2,12,(.TOC.-0b)@ha
+ addi 2,2,(.TOC.-0b)@l
+ .localentry SharedStub,.-SharedStub
+#else
.section ".text"
.align 2
.globl SharedStub
@@ -29,6 +50,7 @@ SharedStub:
.type SharedStub,@function
.SharedStub:
+#endif
mflr r0
std r4, -56(r1) # Save all GPRS
@@ -55,7 +77,7 @@ SharedStub:
subi r6,r1,56 # r6 --> gprData
subi r7,r1,160 # r7 --> fprData
- addi r5,r1,112 # r5 --> extra stack args
+ addi r5,r1,STACK_PARAMS # r5 --> extra stack args
std r0, 16(r1)
@@ -75,7 +97,11 @@ SharedStub:
mtlr r0
blr
+#if _CALL_ELF == 2
+ .size SharedStub,.-SharedStub
+#else
.size SharedStub,.-.SharedStub
+#endif
# Magic indicating no need for an executable stack
.section .note.GNU-stack, "", @progbits ; .previous
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp
@@ -83,7 +83,9 @@ PrepareAndDispatch(nsXPTCStubBase* self,
dp->val.f = (float) fprData[i]; // in registers floats are passed as doubles
else {
float *p = (float *)ap;
+#ifndef __LITTLE_ENDIAN__
p++;
+#endif
dp->val.f = *p;
}
} else { /* integer type or pointer */
@@ -153,6 +155,43 @@ PrepareAndDispatch(nsXPTCStubBase* self,
// etc.
// Use assembler directives to get the names right...
+#if _CALL_ELF == 2
+# define STUB_ENTRY(n) \
+__asm__ ( \
+ ".section \".text\" \n\t" \
+ ".align 2 \n\t" \
+ ".if "#n" < 10 \n\t" \
+ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \
+ "0: addis 2,12,.TOC.-0b@ha \n\t" \
+ "addi 2,2,.TOC.-0b@l \n\t" \
+ ".localentry _ZN14nsXPTCStubBase5Stub"#n"Ev,.-_ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
+ \
+ ".elseif "#n" < 100 \n\t" \
+ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \
+ "0: addis 2,12,.TOC.-0b@ha \n\t" \
+ "addi 2,2,.TOC.-0b@l \n\t" \
+ ".localentry _ZN14nsXPTCStubBase6Stub"#n"Ev,.-_ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
+ \
+ ".elseif "#n" < 1000 \n\t" \
+ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \
+ "0: addis 2,12,.TOC.-0b@ha \n\t" \
+ "addi 2,2,.TOC.-0b@l \n\t" \
+ ".localentry _ZN14nsXPTCStubBase7Stub"#n"Ev,.-_ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
+ \
+ ".else \n\t" \
+ ".err \"stub number "#n" >= 1000 not yet supported\"\n" \
+ ".endif \n\t" \
+ \
+ "li 11,"#n" \n\t" \
+ "b SharedStub \n" \
+);
+#else
# define STUB_ENTRY(n) \
__asm__ ( \
".section \".toc\",\"aw\" \n\t" \
@@ -195,6 +234,7 @@ __asm__ (
"li 11,"#n" \n\t" \
"b SharedStub \n" \
);
+#endif
#define SENTINEL_ENTRY(n) \
nsresult nsXPTCStubBase::Sentinel##n() \