1
0

Accepting request 242772 from mozilla:Factory

- 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/request/show/242772
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/MozillaThunderbird?expand=0&rev=134
This commit is contained in:
Stephan Kulow 2014-08-01 05:07:43 +00:00 committed by Git OBS Bridge
commit 2d7c948234
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 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 %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 %define gstreamer_ver 0.10
%endif
%endif
%define with_kde 1 %define with_kde 1
Name: MozillaThunderbird Name: MozillaThunderbird
@ -41,16 +50,27 @@ BuildRequires: startup-notification-devel
BuildRequires: unzip BuildRequires: unzip
BuildRequires: update-desktop-files BuildRequires: update-desktop-files
BuildRequires: xorg-x11-libXt-devel BuildRequires: xorg-x11-libXt-devel
BuildRequires: xz
BuildRequires: yasm BuildRequires: yasm
BuildRequires: zip BuildRequires: zip
BuildRequires: pkgconfig(libpulse)
%if %suse_version > 1210 %if %suse_version > 1210
BuildRequires: pkgconfig(gstreamer-%gstreamer_ver) BuildRequires: pkgconfig(gstreamer-%gstreamer_ver)
BuildRequires: pkgconfig(gstreamer-app-%gstreamer_ver) BuildRequires: pkgconfig(gstreamer-app-%gstreamer_ver)
BuildRequires: pkgconfig(gstreamer-plugins-base-%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 %endif
Version: %{mainversion} Version: %{mainversion}
Release: 0 Release: 0
%define releasedate 2014072000 %define releasedate 2014072100
Provides: thunderbird = %{version} Provides: thunderbird = %{version}
%if %{with_kde} %if %{with_kde}
# this is needed to match this package with the kde4 helper package without the main package # 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 License: MPL-2.0
Group: Productivity/Networking/Email/Clients Group: Productivity/Networking/Email/Clients
Url: http://www.mozilla.org/products/thunderbird/ Url: http://www.mozilla.org/products/thunderbird/
Source: thunderbird-%{version}-source.tar.bz2 Source: thunderbird-%{version}-source.tar.xz
Source1: thunderbird.desktop Source1: thunderbird.desktop
Source2: add-plugins.sh.in Source2: add-plugins.sh.in
Source3: mozilla.sh.in Source3: mozilla.sh.in
Source4: l10n-%{version}.tar.bz2 Source4: l10n-%{version}.tar.xz
#Source5: shipped-locales #Source5: shipped-locales
Source6: suse-default-prefs.js Source6: suse-default-prefs.js
Source7: find-external-requires.sh Source7: find-external-requires.sh
Source8: thunderbird-rpmlintrc Source8: thunderbird-rpmlintrc
Source9: enigmail-1.7.tar.gz
Source10: create-tar.sh Source10: create-tar.sh
Source11: compare-locales.tar.bz2 Source11: compare-locales.tar.xz
Source12: kde.js Source12: kde.js
# Gecko/Toolkit # Gecko/Toolkit
Patch1: mozilla-shared-nss-db.patch Patch1: mozilla-shared-nss-db.patch
@ -82,9 +101,6 @@ Patch3: mozilla-nongnome-proxies.patch
Patch4: mozilla-kde.patch Patch4: mozilla-kde.patch
Patch5: mozilla-arm-disable-edsp.patch Patch5: mozilla-arm-disable-edsp.patch
Patch7: mozilla-ppc.patch Patch7: mozilla-ppc.patch
Patch8: libffi-ppc64le.patch
Patch9: xpcom-ppc64le.patch
Patch10: ppc64le-support.patch
# Thunderbird/mail # Thunderbird/mail
Patch20: tb-ssldap.patch Patch20: tb-ssldap.patch
Patch21: tb-develdirs.patch Patch21: tb-develdirs.patch
@ -93,7 +109,6 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: coreutils fileutils textutils /bin/sh PreReq: coreutils fileutils textutils /bin/sh
Recommends: libcanberra0 Recommends: libcanberra0
### build options ### build options
%define build_enigmail 0
%ifnarch ppc ppc64 ppc64le %arm %ifnarch ppc ppc64 ppc64le %arm
%define crashreporter 1 %define crashreporter 1
%else %else
@ -128,7 +143,6 @@ Mozilla application suite.
%package translations-common %package translations-common
Summary: Common translations for MozillaThunderbird Summary: Common translations for MozillaThunderbird
License: MPL-2.0
Group: System/Localization 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) 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} PreReq: %{name} = %{mainversion}
@ -141,7 +155,6 @@ of MozillaThunderbird.
%package translations-other %package translations-other
Summary: Extra translations for MozillaThunderbird Summary: Extra translations for MozillaThunderbird
License: MPL-2.0
Group: System/Localization 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) 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} PreReq: %{name} = %{mainversion}
@ -154,7 +167,6 @@ of MozillaThunderbird.
%package devel %package devel
Summary: Mozilla Thunderbird SDK Summary: Mozilla Thunderbird SDK
License: MPL-2.0
Group: Development/Libraries/Other Group: Development/Libraries/Other
Requires: mozilla-nspr-devel >= %(rpm -q --queryformat '%{VERSION}' mozilla-nspr-devel) Requires: mozilla-nspr-devel >= %(rpm -q --queryformat '%{VERSION}' mozilla-nspr-devel)
PreReq: mozilla-nss-devel >= %(rpm -q --queryformat '%{VERSION}' mozilla-nss-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 %package buildsymbols
Summary: Breakpad buildsymbols for %{name} Summary: Breakpad buildsymbols for %{name}
License: MPL-2.0
Group: Development/Debug Group: Development/Debug
%description buildsymbols %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. symbols meant for upload to Mozilla's crash collector database.
%endif %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 %prep
%if %build_enigmail
%setup -n thunderbird -q -b 4 -b 11 -b 9
%else
%setup -n thunderbird -q -b 4 -b 11 %setup -n thunderbird -q -b 4 -b 11
%endif
# xulrunner patches # xulrunner patches
pushd mozilla pushd mozilla
%patch1 -p1 %patch1 -p1
@ -212,9 +199,6 @@ pushd mozilla
%endif %endif
%patch5 -p1 %patch5 -p1
%patch7 -p1 %patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
popd popd
# comm-central patches # comm-central patches
%patch20 -p1 %patch20 -p1
@ -254,7 +238,7 @@ mk_add_options MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1 mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZ_MILESTONE_RELEASE=1 mk_add_options MOZ_MILESTONE_RELEASE=1
mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs} 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 --enable-application=mail
ac_add_options --prefix=%{_prefix} ac_add_options --prefix=%{_prefix}
ac_add_options --libdir=%{progdir} ac_add_options --libdir=%{progdir}
@ -276,51 +260,31 @@ ac_add_options --enable-startup-notification
ac_add_options --enable-official-branding ac_add_options --enable-official-branding
ac_add_options --disable-necko-wifi ac_add_options --disable-necko-wifi
ac_add_options --enable-update-channel=%{update_channel} 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 %if %suse_version > 1130
cat << EOF >> $MOZCONFIG
ac_add_options --disable-gnomevfs ac_add_options --disable-gnomevfs
ac_add_options --enable-gio ac_add_options --enable-gio
EOF
%endif %endif
%if %suse_version < 1220 %if %suse_version < 1220
cat << EOF >> $MOZCONFIG
ac_add_options --disable-gstreamer ac_add_options --disable-gstreamer
EOF
%endif %endif
%if %has_system_cairo %if %has_system_cairo
cat << EOF >> $MOZCONFIG
ac_add_options --enable-system-cairo ac_add_options --enable-system-cairo
EOF
%endif %endif
%if ! %crashreporter %if ! %crashreporter
cat << EOF >> $MOZCONFIG
ac_add_options --disable-crashreporter ac_add_options --disable-crashreporter
EOF
%endif %endif
# Disable neon for arm as it does not build correctly # Disable neon for arm as it does not build correctly
%ifarch %arm %ifarch %arm
cat << EOF >> $MOZCONFIG
ac_add_options --disable-neon ac_add_options --disable-neon
%endif
EOF EOF
%endif
make -f client.mk build 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 %install
cd ../obj cd $RPM_BUILD_DIR/obj
make -C mail/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0 make -C mail/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
# copy tree into RPM_BUILD_ROOT # copy tree into RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{progdir} 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/ # $RPM_BUILD_ROOT%{_libdir}/pkgconfig/
#rm $RPM_BUILD_ROOT%{_libdir}/pkgconfig/thunderbird-nss.pc #rm $RPM_BUILD_ROOT%{_libdir}/pkgconfig/thunderbird-nss.pc
#ln -sf nss.pc $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 # remove spurious executable bits
find $RPM_BUILD_ROOT/usr/include/%{progname} -type f -exec chmod a-x {} \; find $RPM_BUILD_ROOT/usr/include/%{progname} -type f -exec chmod a-x {} \;
@ -503,10 +437,6 @@ exit 0
%if %suse_version > 1130 %if %suse_version > 1130
%icon_theme_cache_post %icon_theme_cache_post
%endif %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 exit 0
%posttrans %posttrans
@ -581,16 +511,7 @@ exit 0
#%{_libdir}/pkgconfig/*.pc #%{_libdir}/pkgconfig/*.pc
%{_includedir}/%{progname}/ %{_includedir}/%{progname}/
%if %build_enigmail
%files -n enigmail
%defattr(-,root,root)
%dir %{_libdir}/mozilla
%{_libdir}/mozilla/extensions/
%endif
%if %crashreporter %if %crashreporter
%files buildsymbols %files buildsymbols
%defattr(-,root,root) %defattr(-,root,root)
%{_datadir}/mozilla/ %{_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 #!/bin/bash
CHANNEL="esr24" CHANNEL="esr31"
BRANCH="releases/comm-$CHANNEL" BRANCH="releases/comm-$CHANNEL"
RELEASE_TAG="THUNDERBIRD_24_7_0_RELEASE" RELEASE_TAG="THUNDERBIRD_31_0_RELEASE"
VERSION="24.7.0" VERSION="31.0"
echo "cloning $BRANCH..." echo "cloning $BRANCH..."
hg clone http://hg.mozilla.org/$BRANCH thunderbird 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 python client.py checkout --skip-chatzilla --skip-venkman $_extra
popd popd
echo "creating archive..." 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 # l10n
# http://l10n.mozilla.org/dashboard/?tree=tb30x -> shipped-locales # http://l10n.mozilla.org/dashboard/?tree=tb30x -> shipped-locales
@ -39,12 +39,12 @@ for locale in $(awk '{ print $1; }' $SHIPPED_LOCALES); do
esac esac
done done
echo "creating l10n archive..." 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=.hgtags --exclude=.hgignore --exclude=.hg --exclude=browser --exclude=calendar \
--exclude=suite \ --exclude=suite \
l10n l10n
# compare-locales # compare-locales
hg clone http://hg.mozilla.org/build/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 # HG changeset patch
# User Adrian Schröter <adrian@suse.de> # User Adrian Schröter <adrian@suse.de>
# Parent 5b26dbfe65bd4986ea3792f02bc025fec293b51f # Parent b945e0c3b145b6b2245f42bab52f911c2d1f6759
disable ESDP support (no BNC or BMO reference yet :-() disable ESDP support (no BNC or BMO reference yet :-()
diff --git a/xpcom/glue/arm.h b/xpcom/glue/arm.h diff --git a/mozglue/build/arm.h b/mozglue/build/arm.h
--- a/xpcom/glue/arm.h --- a/mozglue/build/arm.h
+++ b/xpcom/glue/arm.h +++ b/mozglue/build/arm.h
@@ -143,17 +143,17 @@ namespace mozilla { @@ -116,17 +116,17 @@ namespace mozilla {
extern bool NS_COM_GLUE neon_enabled; extern bool MFBT_DATA neon_enabled;
#endif #endif
#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 diff --git a/modules/libpref/src/Makefile.in b/modules/libpref/src/Makefile.in
--- a/modules/libpref/src/Makefile.in --- a/modules/libpref/src/Makefile.in
+++ b/modules/libpref/src/Makefile.in +++ b/modules/libpref/src/Makefile.in
@@ -49,14 +49,15 @@ endif @@ -21,13 +21,15 @@ endif
# Optimizer bug with GCC 3.2.2 on OS/2 ifdef MOZ_SERVICES_HEALTHREPORT
ifeq ($(OS_ARCH), OS2) ifneq (android,$(MOZ_WIDGET_TOOLKIT))
nsPrefService.$(OBJ_SUFFIX): nsPrefService.cpp grepref_files += $(topsrcdir)/services/healthreport/healthreport-prefs.js
$(REPORT_BUILD) else
@$(MAKE_DEPS_AUTO_CXX) grepref_files += $(topsrcdir)/mobile/android/chrome/content/healthreport-prefs.js
$(ELOG) $(CCC) $(OUTOPTION)$@ -c $(COMPILE_CXXFLAGS:-O2=-O1) $(_VPATH_SRCS) endif
endif endif
+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
+
greprefs.js: $(grepref_files) 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 libs:: greprefs.js
$(INSTALL) $^ $(DIST)/bin/ $(INSTALL) $^ $(DIST)/bin/
diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferences.cpp diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferences.cpp
--- a/modules/libpref/src/Preferences.cpp --- a/modules/libpref/src/Preferences.cpp
+++ b/modules/libpref/src/Preferences.cpp +++ b/modules/libpref/src/Preferences.cpp
@@ -23,16 +23,17 @@ @@ -27,16 +27,17 @@
#include "nsIStringEnumerator.h"
#include "nsIZipReader.h" #include "nsIZipReader.h"
#include "nsPrefBranch.h" #include "nsPrefBranch.h"
#include "nsXPIDLString.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 "nsCOMArray.h"
#include "nsXPCOMCID.h" #include "nsXPCOMCID.h"
#include "nsAutoPtr.h" #include "nsAutoPtr.h"
#include "nsPrintfCString.h"
+#include "nsKDEUtils.h" +#include "nsKDEUtils.h"
#include "nsQuickSort.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 "prefread.h"
#include "prefapi_private_data.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) 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()) { + if (nsKDEUtils::kdeSession()) {
+ for(int i = 0; + for(int i = 0;
+ i < NS_ARRAY_LENGTH(specialFiles); + i < MOZ_ARRAY_LENGTH(specialFiles);
+ ++i ) { + ++i ) {
+ if (*specialFiles[ i ] == '\0') { + if (*specialFiles[ i ] == '\0') {
+ specialFiles[ i ] = "kde.js"; + specialFiles[ i ] = "kde.js";
@ -79,7 +79,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
return NS_OK; return NS_OK;
bool hasMore; bool hasMore;
@@ -997,17 +1016,17 @@ static nsresult pref_LoadPrefsInDirList( @@ -1159,17 +1178,17 @@ static nsresult pref_LoadPrefsInDirList(
nsAutoCString leaf; nsAutoCString leaf;
path->GetNativeLeafName(leaf); path->GetNativeLeafName(leaf);
@ -89,7 +89,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
ReadExtensionPrefs(path); ReadExtensionPrefs(path);
else else
- pref_LoadPrefsInDir(path, nullptr, 0); - pref_LoadPrefsInDir(path, nullptr, 0);
+ pref_LoadPrefsInDir(path, specialFiles, NS_ARRAY_LENGTH(specialFiles)); + pref_LoadPrefsInDir(path, specialFiles, MOZ_ARRAY_LENGTH(specialFiles));
} }
return NS_OK; 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); nsZipItemPtr<char> manifest(jarReader, name, true);
NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE); 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 */ /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
static const char* specialFiles[] = { static const char* specialFiles[] = {
#if defined(XP_MACOSX) #if defined(XP_MACOSX)
@ -113,8 +113,6 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
#elif defined(_AIX) #elif defined(_AIX)
, "aix.js" , "aix.js"
#endif #endif
#elif defined(XP_OS2)
"os2pref.js"
#elif defined(XP_BEOS) #elif defined(XP_BEOS)
"beos.js" "beos.js"
#endif #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? + 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 < MOZ_ARRAY_LENGTH(specialFiles);
+ ++i ) { + ++i ) {
+ if( *specialFiles[ i ] == '\0' ) { + if( *specialFiles[ i ] == '\0' ) {
+ specialFiles[ i ] = "kde.js"; + 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 diff --git a/toolkit/components/downloads/Makefile.in b/toolkit/components/downloads/Makefile.in
--- a/toolkit/components/downloads/Makefile.in --- a/toolkit/components/downloads/Makefile.in
+++ b/toolkit/components/downloads/Makefile.in +++ b/toolkit/components/downloads/Makefile.in
@@ -23,9 +23,11 @@ ifndef MOZ_SUITE @@ -1,9 +1,9 @@
DISABLED_EXTRA_COMPONENTS = \ #
nsDownloadManagerUI.js \ # This Source Code Form is subject to the terms of the Mozilla Public
nsDownloadManagerUI.manifest \ # License, v. 2.0. If a copy of the MPL was not distributed with this
$(NULL) # file, You can obtain one at http://mozilla.org/MPL/2.0/.
endif
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk
+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
+
CXXFLAGS += $(TK_CFLAGS) CXXFLAGS += $(TK_CFLAGS)
-
+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp
--- a/toolkit/components/downloads/nsDownloadManager.cpp --- a/toolkit/components/downloads/nsDownloadManager.cpp
+++ b/toolkit/components/downloads/nsDownloadManager.cpp +++ b/toolkit/components/downloads/nsDownloadManager.cpp
@@ -38,16 +38,20 @@ @@ -43,16 +43,20 @@
#ifdef XP_WIN #ifdef XP_WIN
#include <shlobj.h> #include <shlobj.h>
#include "nsWindowsHelpers.h"
#ifdef DOWNLOAD_SCANNER #ifdef DOWNLOAD_SCANNER
#include "nsDownloadScanner.h" #include "nsDownloadScanner.h"
#endif #endif
@ -218,9 +215,9 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
#ifdef MOZ_WIDGET_ANDROID #ifdef MOZ_WIDGET_ANDROID
#include "AndroidBridge.h" #include "AndroidBridge.h"
using namespace mozilla::widget::android;
#endif #endif
@@ -2722,16 +2726,25 @@ nsDownload::SetState(DownloadState aStat
@@ -2609,16 +2613,25 @@ nsDownload::SetState(DownloadState aStat
nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID)); nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
// Master pref to control this function. // 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; int64_t goat = PR_Now() - mStartTime;
showTaskbarAlert = goat > alertIntervalUSec; showTaskbarAlert = goat > alertIntervalUSec;
@@ -2645,19 +2658,20 @@ nsDownload::SetState(DownloadState aStat @@ -2759,19 +2772,20 @@ nsDownload::SetState(DownloadState aStat
// retention policy, there's no reason to make the text clickable
// because if it is, they'll click open the download manager and // because if it is, they'll click open the download manager and
// the items they downloaded will have been removed. // the items they downloaded will have been removed.
alerts->ShowAlertNotification( alerts->ShowAlertNotification(
NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title, NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title,
message, !removeWhenDone, message, !removeWhenDone,
mPrivate ? NS_LITERAL_STRING("private") : NS_LITERAL_STRING("non-private"), 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<nsIFileURL> fileURL = do_QueryInterface(mTarget);
nsCOMPtr<nsIFile> file; nsCOMPtr<nsIFile> file;
nsAutoString path; 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 diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
--- a/toolkit/content/jar.mn --- a/toolkit/content/jar.mn
+++ b/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/viewZoomOverlay.js (viewZoomOverlay.js)
*+ content/global/bindings/autocomplete.xml (widgets/autocomplete.xml) *+ content/global/bindings/autocomplete.xml (widgets/autocomplete.xml)
content/global/bindings/browser.xml (widgets/browser.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/menulist.xml (widgets/menulist.xml)
content/global/bindings/notification.xml (widgets/notification.xml) content/global/bindings/notification.xml (widgets/notification.xml)
content/global/bindings/numberbox.xml (widgets/numberbox.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.xml (widgets/preferences.xml)
+*+ content/global/bindings/preferences-kde.xml (widgets/preferences-kde.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 +% 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 new file mode 100644
--- /dev/null --- /dev/null
+++ b/toolkit/content/widgets/dialog-kde.xml +++ b/toolkit/content/widgets/dialog-kde.xml
@@ -0,0 +1,451 @@ @@ -0,0 +1,449 @@
+<?xml version="1.0"?> +<?xml version="1.0"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public +<!-- 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 + - 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="cancel" class="dialog-button"/>
+ <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/> + <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
+#elif XP_UNIX +#elif XP_UNIX
+ pack="end"> + >
+ <xul:button dlgtype="help" class="dialog-button" hidden="true"/> + <xul:button dlgtype="help" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/> + <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
+ <xul:spacer anonid="spacer" flex="1" hidden="true"/> + <xul:spacer anonid="spacer" flex="1" hidden="true"/>
@ -729,8 +726,6 @@ new file mode 100644
+ </implementation> + </implementation>
+ +
+ <handlers> + <handlers>
+ <handler event="keypress" keycode="VK_ENTER"
+ group="system" action="this._hitEnter(event);"/>
+ <handler event="keypress" keycode="VK_RETURN" + <handler event="keypress" keycode="VK_RETURN"
+ group="system" action="this._hitEnter(event);"/> + group="system" action="this._hitEnter(event);"/>
+ <handler event="keypress" keycode="VK_ESCAPE" group="system"> + <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 new file mode 100644
--- /dev/null --- /dev/null
+++ b/toolkit/content/widgets/preferences-kde.xml +++ b/toolkit/content/widgets/preferences-kde.xml
@@ -0,0 +1,1339 @@ @@ -0,0 +1,1333 @@
+<?xml version="1.0"?> +<?xml version="1.0"?>
+ +
+<!DOCTYPE bindings [ +<!DOCTYPE bindings [
@ -1340,9 +1335,8 @@ new file mode 100644
+ <children includes="prefpane"/> + <children includes="prefpane"/>
+ </xul:deck> + </xul:deck>
+ </xul:hbox> + </xul:hbox>
+ <xul:hbox anonid="dlg-buttons" class="prefWindow-dlgbuttons" + <xul:hbox anonid="dlg-buttons" class="prefWindow-dlgbuttons" pack="end">
+#ifdef XP_UNIX_GNOME +#ifdef XP_UNIX_GNOME
+ >
+ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/> + <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="help" class="dialog-button" hidden="true" icon="help"/> + <xul:button dlgtype="help" class="dialog-button" hidden="true" icon="help"/>
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/> + <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="cancel" class="dialog-button" icon="cancel"/>
+ <xul:button dlgtype="accept" class="dialog-button" icon="accept"/> + <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
+#elif XP_UNIX +#elif XP_UNIX
+ pack="end"> + <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="help" class="dialog-button" hidden="true" icon="help"/> + <xul:spacer anonid="spacer" flex="1"/>
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/> + <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
+ <xul:spacer anonid="spacer" flex="1"/> + <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="accept" class="dialog-button" icon="accept"/> + <xul:button dlgtype="cancel" class="dialog-button" icon="cancel"/>
+ <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/> + <xul:button dlgtype="help" class="dialog-button" hidden="true" icon="help"/>
+ <xul:button dlgtype="cancel" class="dialog-button" icon="cancel"/> + <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
+#else +#else
+ pack="end">
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/> + <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
+ <xul:spacer anonid="spacer" flex="1"/> + <xul:spacer anonid="spacer" flex="1"/>
+ <xul:button dlgtype="accept" class="dialog-button" icon="accept"/> + <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
@ -1389,6 +1381,8 @@ new file mode 100644
+#ifdef XP_MACOSX +#ifdef XP_MACOSX
+ // no buttons on Mac except Help + // no buttons on Mac except Help
+ cancelButton.hidden = true; + cancelButton.hidden = true;
+ // Move Help button to the end
+ document.getAnonymousElementByAttribute(this, "anonid", "spacer").hidden = true;
+ // Also, don't fire onDialogAccept on enter + // Also, don't fire onDialogAccept on enter
+ acceptButton.disabled = true; + acceptButton.disabled = true;
+#else +#else
@ -1507,7 +1501,7 @@ new file mode 100644
+ +
+ this._selector.selectedItem = document.getAnonymousElementByAttribute(this, "pane", aPaneElement.id); + this._selector.selectedItem = document.getAnonymousElementByAttribute(this, "pane", aPaneElement.id);
+ if (!aPaneElement.loaded) { + if (!aPaneElement.loaded) {
+ function OverlayLoadObserver(aPane) + let OverlayLoadObserver = function(aPane)
+ { + {
+ this._pane = aPane; + this._pane = aPane;
+ } + }
@ -1808,8 +1802,9 @@ new file mode 100644
+ <handlers> + <handlers>
+ <handler event="dialogaccept"> + <handler event="dialogaccept">
+ <![CDATA[ + <![CDATA[
+ if (!this._fireEvent("beforeaccept", this)) + if (!this._fireEvent("beforeaccept", this)){
+ return; + return false;
+ }
+ +
+ if (this.type == "child" && window.opener) { + if (this.type == "child" && window.opener) {
+ var psvc = Components.classes["@mozilla.org/preferences-service;1"] + var psvc = Components.classes["@mozilla.org/preferences-service;1"]
@ -1873,6 +1868,8 @@ new file mode 100644
+ .getService(Components.interfaces.nsIPrefService); + .getService(Components.interfaces.nsIPrefService);
+ psvc.savePrefFile(null); + psvc.savePrefFile(null);
+ } + }
+
+ return true;
+ ]]> + ]]>
+ </handler> + </handler>
+ <handler event="command"> + <handler event="command">
@ -2069,7 +2066,8 @@ new file mode 100644
+ </handlers> + </handlers>
+ </binding> + </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> + <resources>
+ <stylesheet src="chrome://global/skin/preferences.css"/> + <stylesheet src="chrome://global/skin/preferences.css"/>
+ </resources> + </resources>
@ -2077,15 +2075,6 @@ new file mode 100644
+ <xul:image class="paneButtonIcon" xbl:inherits="src"/> + <xul:image class="paneButtonIcon" xbl:inherits="src"/>
+ <xul:label class="paneButtonLabel" xbl:inherits="value=label"/> + <xul:label class="paneButtonLabel" xbl:inherits="value=label"/>
+ </content> + </content>
+ <implementation implements="nsIAccessible">
+ <property name="accessibleType" readonly="true">
+ <getter>
+ <![CDATA[
+ return Components.interfaces.nsIAccessibleProvider.XULListitem;
+ ]]>
+ </getter>
+ </property>
+ </implementation>
+ </binding> + </binding>
+ +
+</bindings> +</bindings>
@ -2125,9 +2114,9 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
NS_DECL_ISUPPORTS NS_DECL_ISUPPORTS
NS_DECL_NSISYSTEMPROXYSETTINGS NS_DECL_NSISYSTEMPROXYSETTINGS
nsUnixSystemProxySettings() {} nsUnixSystemProxySettings()
nsresult Init(); : mSchemeProxySettings(5)
@@ -35,16 +37,17 @@ private: @@ -38,16 +40,17 @@ private:
nsCOMPtr<nsIGSettingsService> mGSettings; nsCOMPtr<nsIGSettingsService> mGSettings;
nsCOMPtr<nsIGSettingsCollection> mProxySettings; nsCOMPtr<nsIGSettingsCollection> mProxySettings;
nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings; 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); + nsresult GetProxyFromKDE(const nsACString& aScheme, const nsACString& aHost, PRInt32 aPort, nsACString& aResult);
}; };
NS_IMPL_ISUPPORTS1(nsUnixSystemProxySettings, nsISystemProxySettings) NS_IMPL_ISUPPORTS(nsUnixSystemProxySettings, nsISystemProxySettings)
NS_IMETHODIMP NS_IMETHODIMP
nsUnixSystemProxySettings::GetMainThreadOnly(bool *aMainThreadOnly) nsUnixSystemProxySettings::GetMainThreadOnly(bool *aMainThreadOnly)
{ {
// dbus prevents us from being threadsafe, but this routine should not block anyhow // 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 nsresult
nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec, nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec,
@ -2165,7 +2154,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
if (mGConf) if (mGConf)
return GetProxyFromGConf(aScheme, aHost, aPort, aResult); 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 = { static const mozilla::Module kUnixProxyModule = {
mozilla::Module::kVersion, 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 diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
--- a/toolkit/xre/moz.build --- a/toolkit/xre/moz.build
+++ b/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', 'nsNativeAppSupportQt.cpp',
'nsQAppInstance.cpp', 'nsQAppInstance.cpp',
] ]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'os2':
CPP_SOURCES += [
'nsNativeAppSupportOS2.cpp',
]
elif CONFIG['MOZ_ENABLE_GTK']: elif CONFIG['MOZ_ENABLE_GTK']:
+ EXPORTS += ['nsKDEUtils.h'] + EXPORTS += ['nsKDEUtils.h']
CPP_SOURCES += [ UNIFIED_SOURCES += [
+ 'nsKDEUtils.cpp',
'nsNativeAppSupportUnix.cpp', 'nsNativeAppSupportUnix.cpp',
+ 'nsKDEUtils.cpp'
] ]
else: else:
CPP_SOURCES += [ UNIFIED_SOURCES += [
'nsNativeAppSupportDefault.cpp', 'nsNativeAppSupportDefault.cpp',
] ]
if CONFIG['MOZ_X11']: if CONFIG['MOZ_X11']:
CPP_SOURCES += [
diff --git a/toolkit/xre/nsKDEUtils.cpp b/toolkit/xre/nsKDEUtils.cpp diff --git a/toolkit/xre/nsKDEUtils.cpp b/toolkit/xre/nsKDEUtils.cpp
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
@ -2624,11 +2612,11 @@ new file mode 100644
diff --git a/uriloader/exthandler/Makefile.in b/uriloader/exthandler/Makefile.in diff --git a/uriloader/exthandler/Makefile.in b/uriloader/exthandler/Makefile.in
--- a/uriloader/exthandler/Makefile.in --- a/uriloader/exthandler/Makefile.in
+++ b/uriloader/exthandler/Makefile.in +++ b/uriloader/exthandler/Makefile.in
@@ -86,9 +86,10 @@ EXTRA_COMPONENTS = \ @@ -6,9 +6,10 @@
# we don't want the shared lib, but we want to force the creation of a static lib. ifdef MOZ_ENABLE_DBUS
FORCE_STATIC_LIB = 1 OS_INCLUDES += $(TK_CFLAGS) $(MOZ_DBUS_CFLAGS)
include $(topsrcdir)/config/config.mk endif
include $(topsrcdir)/ipc/chromium/chromium-config.mk
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk
ifneq (,$(filter qt gtk2 gtk3, $(MOZ_WIDGET_TOOLKIT))) 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 diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
--- a/uriloader/exthandler/moz.build --- a/uriloader/exthandler/moz.build
+++ b/uriloader/exthandler/moz.build +++ b/uriloader/exthandler/moz.build
@@ -68,16 +68,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco @@ -80,17 +80,19 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
pass
else: else:
CPP_SOURCES += [ # These files can't be built in unified mode because they force NSPR logging.
'nsOSHelperAppService.cpp', SOURCES += [
osdir + '/nsOSHelperAppService.cpp',
] ]
if CONFIG['MOZ_ENABLE_GTK']: if CONFIG['MOZ_ENABLE_GTK']:
CPP_SOURCES += [ UNIFIED_SOURCES += [
+ 'nsCommonRegistry.cpp', + 'unix/nsCommonRegistry.cpp',
+ 'nsKDERegistry.cpp', 'unix/nsGNOMERegistry.cpp',
'nsGNOMERegistry.cpp', + 'unix/nsKDERegistry.cpp',
'nsMIMEInfoUnix.cpp', 'unix/nsMIMEInfoUnix.cpp',
] ]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android': elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
CPP_SOURCES += [ UNIFIED_SOURCES += [
'nsMIMEInfoAndroid.cpp', 'android/nsAndroidHandlerApp.cpp',
'nsAndroidHandlerApp.cpp', 'android/nsExternalSharingAppService.cpp',
'nsExternalSharingAppService.cpp', 'android/nsExternalURLHandlerService.cpp',
'android/nsMIMEInfoAndroid.cpp',
diff --git a/uriloader/exthandler/unix/nsCommonRegistry.cpp b/uriloader/exthandler/unix/nsCommonRegistry.cpp diff --git a/uriloader/exthandler/unix/nsCommonRegistry.cpp b/uriloader/exthandler/unix/nsCommonRegistry.cpp
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
@ -2874,7 +2863,7 @@ new file mode 100644
diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
--- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp --- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
+++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp +++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
@@ -16,30 +16,33 @@ @@ -10,30 +10,33 @@
#include <QString> #include <QString>
#if (MOZ_ENABLE_CONTENTACTION) #if (MOZ_ENABLE_CONTENTACTION)
#include <contentaction/contentaction.h> #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 = nsGNOMERegistry::LoadURL(aURI);
+ nsresult rv = nsCommonRegistry::LoadURL(aURI); + nsresult rv = nsCommonRegistry::LoadURL(aURI);
#if (MOZ_PLATFORM_MAEMO == 5) && defined (MOZ_ENABLE_GNOMEVFS) #ifdef MOZ_WIDGET_QT
if (NS_FAILED(rv)){ if (NS_FAILED(rv)) {
HildonURIAction *action = hildon_uri_get_default_action(mSchemeOrType.get(), nullptr); nsAutoCString spec;
if (action) { aURI->GetAsciiSpec(spec);
nsAutoCString spec; if (QDesktopServices::openUrl(QUrl(spec.get()))) {
aURI->GetAsciiSpec(spec); rv = NS_OK;
if (hildon_uri_open(spec.get(), action, nullptr)) }
@@ -67,22 +70,22 @@ nsMIMEInfoUnix::GetHasDefaultHandler(boo @@ -50,24 +53,24 @@ nsMIMEInfoUnix::GetHasDefaultHandler(boo
{
// if mDefaultApplication is set, it means the application has been set from
// either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to // either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to
// give the GNOME answer. // give the GNOME answer.
if (mDefaultApplication) if (mDefaultApplication)
return nsMIMEInfoImpl::GetHasDefaultHandler(_retval); return nsMIMEInfoImpl::GetHasDefaultHandler(_retval);
*_retval = false; *_retval = false;
- nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);
+ nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType); if (mClass == eProtocolInfo) {
if (!mimeInfo) { - *_retval = nsGNOMERegistry::HandlerExists(mSchemeOrType.get());
nsAutoCString ext; + *_retval = nsCommonRegistry::HandlerExists(mSchemeOrType.get());
nsresult rv = GetPrimaryExtension(ext); } else {
if (NS_SUCCEEDED(rv)) { - nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);
- mimeInfo = nsGNOMERegistry::GetFromExtension(ext); + nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType);
+ mimeInfo = nsCommonRegistry::GetFromExtension(ext); 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) if (*_retval)
return NS_OK; return NS_OK;
@@ -102,16 +105,33 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
@@ -130,16 +133,33 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
ContentAction::Action::defaultActionForFile(uri, QString(mSchemeOrType.get())); ContentAction::Action::defaultActionForFile(uri, QString(mSchemeOrType.get()));
if (action.isValid()) { if (action.isValid()) {
action.trigger(); 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); nsCOMPtr<nsIIOService> ioservice = do_GetService(NS_IOSERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIURI> uri; nsCOMPtr<nsIURI> uri;
@@ -157,17 +177,17 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns @@ -129,17 +149,17 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
/* Fallback to GnomeVFS */ /* Fallback to GnomeVFS */
nsCOMPtr<nsIGnomeVFSMimeApp> app; nsCOMPtr<nsIGnomeVFSMimeApp> app;
if (NS_SUCCEEDED(gnomevfs->GetAppForMimeType(mSchemeOrType, getter_AddRefs(app))) && 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 "nsXPIDLString.h"
#include "nsIURL.h" #include "nsIURL.h"
#include "nsIFileStreams.h" #include "nsIFileStreams.h"
@@ -1157,29 +1157,29 @@ nsresult nsOSHelperAppService::OSProtoco @@ -1146,26 +1146,26 @@ nsresult nsOSHelperAppService::OSProtoco
ContentAction::Action::defaultActionForScheme(QString(aProtocolScheme) + ':'); ContentAction::Action::defaultActionForScheme(QString(aProtocolScheme) + ':');
if (action.isValid()) 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 // Check the GConf registry for a protocol handler
- *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme); - *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme);
+ *aHandlerExists = nsCommonRegistry::HandlerExists(aProtocolScheme); + *aHandlerExists = nsCommonRegistry::HandlerExists(aProtocolScheme);
#if (MOZ_PLATFORM_MAEMO == 5) && defined (MOZ_ENABLE_GNOMEVFS)
*aHandlerExists = nsMIMEInfoUnix::HandlerExists(aProtocolScheme);
#endif
#endif #endif
return NS_OK; return NS_OK;
@ -3040,9 +3029,9 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
#endif #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, mime_types_description,
true); true);
@ -3061,7 +3050,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt),
majorType, majorType,
@@ -1389,17 +1389,17 @@ nsOSHelperAppService::GetFromType(const @@ -1372,17 +1372,17 @@ nsOSHelperAppService::GetFromType(const
#ifdef MOZ_WIDGET_GTK #ifdef MOZ_WIDGET_GTK
nsRefPtr<nsMIMEInfoBase> gnomeInfo; nsRefPtr<nsMIMEInfoBase> gnomeInfo;
if (handler.IsEmpty()) { if (handler.IsEmpty()) {
@ -3080,38 +3069,38 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
#endif #endif
// Now look up our extensions // Now look up our extensions
diff --git a/widget/gtk2/Makefile.in b/widget/gtk2/Makefile.in diff --git a/widget/gtk/Makefile.in b/widget/gtk/Makefile.in
--- a/widget/gtk2/Makefile.in --- a/widget/gtk/Makefile.in
+++ b/widget/gtk2/Makefile.in +++ b/widget/gtk/Makefile.in
@@ -67,11 +67,14 @@ DEFINES += -DCAIRO_GFX -DMOZ_APP_NAME=' @@ -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 +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
+ +
ifdef MOZ_X11 CFLAGS += $(TK_CFLAGS)
INCLUDES += -I$(srcdir)/../shared/x11 CXXFLAGS += $(TK_CFLAGS)
endif
diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
--- a/widget/gtk2/nsFilePicker.cpp --- a/widget/gtk/nsFilePicker.cpp
+++ b/widget/gtk2/nsFilePicker.cpp +++ b/widget/gtk/nsFilePicker.cpp
@@ -1,31 +1,33 @@ @@ -1,32 +1,34 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* -*- 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 /* 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 * 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/. */ * 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 <gtk/gtk.h>
+#include <gdk/gdkx.h> +#include <gdk/gdkx.h>
#include "nsGtkUtils.h"
#include "nsIFileURL.h" #include "nsIFileURL.h"
#include "nsIURI.h" #include "nsIURI.h"
#include "nsIWidget.h" #include "nsIWidget.h"
@ -3128,14 +3117,14 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
#include "nsFilePicker.h" #include "nsFilePicker.h"
+#include "nsKDEUtils.h" +#include "nsKDEUtils.h"
#if (MOZ_PLATFORM_MAEMO == 5)
#include <hildon-fm-2/hildon/hildon-file-chooser-dialog.h>
#endif
using namespace mozilla; using namespace mozilla;
#define MAX_PREVIEW_SIZE 180 #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); return nsBaseFilePicker::AppendFilters(aFilterMask);
} }
@ -3156,7 +3145,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
mFilters.AppendElement(filter); mFilters.AppendElement(filter);
mFilterNames.AppendElement(name); mFilterNames.AppendElement(name);
@@ -366,16 +370,32 @@ nsFilePicker::Show(int16_t *aReturn) @@ -351,16 +355,32 @@ nsFilePicker::Show(int16_t *aReturn)
NS_IMETHODIMP NS_IMETHODIMP
nsFilePicker::Open(nsIFilePickerShownCallback *aCallback) nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
@ -3189,7 +3178,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
GtkFileChooserAction action = GetGtkFileChooserAction(mMode); GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE) 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) { if (mCallback) {
mCallback->Done(result); mCallback->Done(result);
mCallback = nullptr; mCallback = nullptr;
@ -3425,10 +3414,10 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
+ return NS_OK; + return NS_OK;
+ } + }
+ +
diff --git a/widget/gtk2/nsFilePicker.h b/widget/gtk2/nsFilePicker.h diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
--- a/widget/gtk2/nsFilePicker.h --- a/widget/gtk/nsFilePicker.h
+++ b/widget/gtk2/nsFilePicker.h +++ b/widget/gtk/nsFilePicker.h
@@ -67,11 +67,17 @@ protected: @@ -66,11 +66,17 @@ protected:
nsString mDefault; nsString mDefault;
nsString mDefaultExtension; 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 diff --git a/xpcom/components/Makefile.in b/xpcom/components/Makefile.in
--- a/xpcom/components/Makefile.in --- a/xpcom/components/Makefile.in
+++ b/xpcom/components/Makefile.in +++ b/xpcom/components/Makefile.in
@@ -28,9 +28,10 @@ LOCAL_INCLUDES = \ @@ -2,9 +2,10 @@
FORCE_STATIC_LIB = 1 # 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 include $(topsrcdir)/config/rules.mk
DEFINES += -D_IMPL_NS_COM
ifdef MOZ_WIDGET_GTK ifdef MOZ_WIDGET_GTK
CXXFLAGS += $(TK_CFLAGS) CXXFLAGS += $(TK_CFLAGS)
+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre +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 diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp
--- a/xpcom/components/ManifestParser.cpp --- a/xpcom/components/ManifestParser.cpp
+++ b/xpcom/components/ManifestParser.cpp +++ b/xpcom/components/ManifestParser.cpp
@@ -30,16 +30,17 @@ @@ -31,16 +31,17 @@
#include "nsTextFormatter.h" #include "nsTextFormatter.h"
#include "nsVersionComparator.h" #include "nsVersionComparator.h"
#include "nsXPCOMCIDInternal.h" #include "nsXPCOMCIDInternal.h"
@ -3481,7 +3470,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
const char* directive; const char* directive;
int argc; 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(kPlatform, "platform");
NS_NAMED_LITERAL_STRING(kContentAccessible, "contentaccessible"); NS_NAMED_LITERAL_STRING(kContentAccessible, "contentaccessible");
NS_NAMED_LITERAL_STRING(kApplication, "application"); 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"); NS_NAMED_LITERAL_STRING(kXPCNativeWrappers, "xpcnativewrappers");
nsAutoString appID; nsAutoString appID;
@@ -444,41 +446,46 @@ ParseManifest(NSLocationType type, FileL @@ -445,42 +447,47 @@ ParseManifest(NSLocationType type, FileL
CopyUTF8toUTF16(s, abi); CopyUTF8toUTF16(s, abi);
abi.Insert(PRUnichar('_'), 0); abi.Insert(char16_t('_'), 0);
abi.Insert(osTarget, 0); abi.Insert(osTarget, 0);
} }
} }
@ -3510,24 +3499,25 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
nsAutoString osVersion; nsAutoString osVersion;
+ nsAutoString desktop; + nsAutoString desktop;
#if defined(XP_WIN) #if defined(XP_WIN)
#pragma warning(push)
#pragma warning(disable:4996) // VC12+ deprecates GetVersionEx
OSVERSIONINFO info = { sizeof(OSVERSIONINFO) }; OSVERSIONINFO info = { sizeof(OSVERSIONINFO) };
if (GetVersionEx(&info)) { if (GetVersionEx(&info)) {
nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(), nsTextFormatter::ssprintf(osVersion, MOZ_UTF16("%ld.%ld"),
info.dwMajorVersion, info.dwMajorVersion,
info.dwMinorVersion); info.dwMinorVersion);
} }
+ desktop = NS_LITERAL_STRING("win"); + desktop = NS_LITERAL_STRING("win");
#pragma warning(pop)
#elif defined(MOZ_WIDGET_COCOA) #elif defined(MOZ_WIDGET_COCOA)
SInt32 majorVersion, minorVersion; SInt32 majorVersion = nsCocoaFeatures::OSXVersionMajor();
if ((Gestalt(gestaltSystemVersionMajor, &majorVersion) == noErr) && SInt32 minorVersion = nsCocoaFeatures::OSXVersionMinor();
(Gestalt(gestaltSystemVersionMinor, &minorVersion) == noErr)) { nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(),
nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(), majorVersion,
majorVersion, minorVersion);
minorVersion);
}
+ desktop = NS_LITERAL_STRING("macosx"); + desktop = NS_LITERAL_STRING("macosx");
#elif defined(MOZ_WIDGET_GTK) #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_major_version,
gtk_minor_version); gtk_minor_version);
+ desktop = nsKDEUtils::kdeSession() ? NS_LITERAL_STRING("kde") : NS_LITERAL_STRING("gnome"); + 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; bool isTablet = false;
if (mozilla::AndroidBridge::Bridge()) { if (mozilla::AndroidBridge::Bridge()) {
mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build$VERSION", "RELEASE", osVersion); 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"); + desktop = NS_LITERAL_STRING("android");
#endif #endif
@ -3546,7 +3536,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
char *token; char *token;
char *newline = buf; char *newline = buf;
@@ -560,24 +567,26 @@ ParseManifest(NSLocationType type, FileL @@ -562,24 +569,26 @@ ParseManifest(NSLocationType type, FileL
TriState stOsVersion = eUnspecified; TriState stOsVersion = eUnspecified;
TriState stOs = eUnspecified; TriState stOs = eUnspecified;
TriState stABI = eUnspecified; TriState stABI = eUnspecified;
@ -3557,7 +3547,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
bool contentAccessible = false; bool contentAccessible = false;
+ TriState stDesktop = eUnspecified; + TriState stDesktop = eUnspecified;
while (NULL != (token = nsCRT::strtok(whitespace, kWhitespace, &whitespace)) && ok) { while (nullptr != (token = nsCRT::strtok(whitespace, kWhitespace, &whitespace)) && ok) {
ToLowerCase(token); ToLowerCase(token);
NS_ConvertASCIItoUTF16 wtoken(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) #if defined(MOZ_WIDGET_ANDROID)
bool tablet = false; bool tablet = false;
if (CheckFlag(kTablet, wtoken, tablet)) { if (CheckFlag(kTablet, wtoken, tablet)) {
@@ -606,16 +615,17 @@ ParseManifest(NSLocationType type, FileL @@ -608,16 +617,17 @@ ParseManifest(NSLocationType type, FileL
} }
if (!ok || if (!ok ||
@ -3591,36 +3581,14 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
if (directive->regfunc) { if (directive->regfunc) {
if (GeckoProcessType_Default != XRE_GetProcessType()) 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 diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
--- a/xpcom/io/nsLocalFileUnix.cpp --- a/xpcom/io/nsLocalFileUnix.cpp
+++ b/xpcom/io/nsLocalFileUnix.cpp +++ b/xpcom/io/nsLocalFileUnix.cpp
@@ -50,16 +50,17 @@ @@ -43,16 +43,17 @@
#include "prproces.h"
#include "nsIDirectoryEnumerator.h" #include "nsIDirectoryEnumerator.h"
#include "nsISimpleEnumerator.h" #include "nsISimpleEnumerator.h"
#include "private/pprio.h" #include "private/pprio.h"
#include "prlink.h"
#ifdef MOZ_WIDGET_GTK #ifdef MOZ_WIDGET_GTK
#include "nsIGIOService.h" #include "nsIGIOService.h"
@ -3634,7 +3602,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
#include "prmem.h" #include "prmem.h"
#include "plbase64.h" #include "plbase64.h"
@@ -1753,44 +1754,51 @@ nsLocalFile::SetPersistentDescriptor(con @@ -1816,46 +1817,52 @@ nsLocalFile::SetPersistentDescriptor(con
return InitWithNativePath(aPersistentDescriptor); return InitWithNativePath(aPersistentDescriptor);
#endif #endif
} }
@ -3653,6 +3621,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
if (NS_FAILED(IsDirectory(&isDirectory))) if (NS_FAILED(IsDirectory(&isDirectory)))
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
+ nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
if (isDirectory) { if (isDirectory) {
- if (giovfs) - if (giovfs)
- return giovfs->ShowURIForInput(mPath); - return giovfs->ShowURIForInput(mPath);
@ -3660,6 +3629,8 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
- /* Fallback to GnomeVFS */ - /* Fallback to GnomeVFS */
- return gnomevfs->ShowURIForInput(mPath); - return gnomevfs->ShowURIForInput(mPath);
+ url = mPath; + url = mPath;
} else if (giovfs && NS_SUCCEEDED(giovfs->OrgFreedesktopFileManager1ShowItems(mPath))) {
return NS_OK;
} else { } else {
nsCOMPtr<nsIFile> parentDir; nsCOMPtr<nsIFile> parentDir;
nsAutoCString dirPath; 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; + 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); + nsCOMPtr<nsIGnomeVFSService> gnomevfs = do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
+ if (!giovfs && !gnomevfs) + if (!giovfs && !gnomevfs)
+ return NS_ERROR_FAILURE; + return NS_ERROR_FAILURE;
@ -3691,7 +3661,6 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
+ return giovfs->ShowURIForInput(url); + return giovfs->ShowURIForInput(url);
+ else + else
+ return gnomevfs->ShowURIForInput(url); + return gnomevfs->ShowURIForInput(url);
+
#elif defined(MOZ_WIDGET_COCOA) #elif defined(MOZ_WIDGET_COCOA)
CFURLRef url; CFURLRef url;
if (NS_SUCCEEDED(GetCFURL(&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 rv;
} }
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
@@ -1816,16 +1824,23 @@ nsLocalFile::Launch() @@ -1863,16 +1870,23 @@ nsLocalFile::Reveal()
return NS_ERROR_FAILURE;
#endif
}
if (nullptr == connection) NS_IMETHODIMP
return NS_ERROR_FAILURE; nsLocalFile::Launch()
{
if (hildon_mime_open_file(connection, mPath.get()) != kHILDON_SUCCESS) #ifdef MOZ_WIDGET_GTK
return NS_ERROR_FAILURE;
return NS_OK;
#else
+ if( nsKDEUtils::kdeSupport()) { + if( nsKDEUtils::kdeSupport()) {
+ nsTArray<nsCString> command; + nsTArray<nsCString> command;
+ command.AppendElement( NS_LITERAL_CSTRING("OPEN") ); + command.AppendElement( NS_LITERAL_CSTRING("OPEN") );

View File

@ -1,12 +1,12 @@
# HG changeset patch # HG changeset patch
# User Wolfgang Rosenauer <wr@rosenauer.org> # User Wolfgang Rosenauer <wr@rosenauer.org>
# Parent df748bfc0eaca6dedf086cfd7167392416bfae27 # Parent 13eb644c1216aed92b29dbc63fc26ce66f98c66c
Bug 583793 - Firefox interface language set to LANG, ignores LANGUAGE Bug 583793 - Firefox interface language set to LANG, ignores LANGUAGE
diff --git a/intl/locale/src/nsLocaleService.cpp b/intl/locale/src/nsLocaleService.cpp diff --git a/intl/locale/src/nsLocaleService.cpp b/intl/locale/src/nsLocaleService.cpp
--- a/intl/locale/src/nsLocaleService.cpp --- a/intl/locale/src/nsLocaleService.cpp
+++ b/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()); nsRefPtr<nsLocale> resultLocale(new nsLocale());
NS_ENSURE_TRUE_VOID(resultLocale); 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++ ) { for( i = 0; i < LocaleListLength; i++ ) {
nsresult result; nsresult result;
@@ -155,16 +156,21 @@ nsLocaleService::nsLocaleService(void) @@ -150,16 +151,21 @@ nsLocaleService::nsLocaleService(void)
} else { } else {
CopyASCIItoUTF16(lang, platformLocale); CopyASCIItoUTF16(lang, platformLocale);
result = nsPosixLocale::GetXPLocale(lang, xpLocale); 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); mApplicationLocale = do_QueryInterface(resultLocale);
#endif // XP_UNIX #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 diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp --- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
+++ b/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 // dbus prevents us from being threadsafe, but this routine should not block anyhow
*aMainThreadOnly = true; *aMainThreadOnly = true;
return NS_OK; return NS_OK;
@ -18,7 +18,6 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
nsresult nsresult
nsUnixSystemProxySettings::Init() nsUnixSystemProxySettings::Init()
{ {
- mSchemeProxySettings.Init(5);
- mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID); - mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
- if (mGSettings) { - if (mGSettings) {
- mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"), - 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 + // only use GSettings if that is a GNOME session
+ const char* sessionType = PR_GetEnv("DESKTOP_SESSION"); + const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
+ if (sessionType && !strcmp(sessionType, "gnome")) { + if (sessionType && !strcmp(sessionType, "gnome")) {
+ mSchemeProxySettings.Init(5);
+ mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID); + mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
+ if (mGSettings) { + if (mGSettings) {
+ mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"), + mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),

View File

@ -2,7 +2,6 @@
# Parent 21d0e194954e451f0f1935d0ed68ee9eae432ddf # Parent 21d0e194954e451f0f1935d0ed68ee9eae432ddf
# User Wolfgang Rosenauer <wr@rosenauer.org> # User Wolfgang Rosenauer <wr@rosenauer.org>
Bug 746112 - RegExp hang on ppc64 in execute. 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 diff --git a/js/src/yarr/YarrInterpreter.h b/js/src/yarr/YarrInterpreter.h
--- a/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 * VM page size. It must divide the runtime CPU page size or the code
* will abort. * 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 diff --git a/configure.in b/configure.in
--- a/configure.in --- a/configure.in
+++ b/configure.in +++ b/configure.in
@@ -8330,16 +8330,31 @@ AC_SUBST(QCMS_LIBS) @@ -8231,16 +8231,31 @@ if test "$MOZ_ENABLE_SKIA"; then
MOZ_ENABLE_SKIA_GPU=1
dnl ======================================================== AC_DEFINE(USE_SKIA_GPU)
dnl HarfBuzz AC_SUBST(MOZ_ENABLE_SKIA_GPU)
dnl ======================================================== fi
MOZ_HARFBUZZ_LIBS='$(DEPTH)/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)' fi
AC_SUBST(MOZ_HARFBUZZ_LIBS) AC_SUBST(MOZ_ENABLE_SKIA)
dnl ======================================================== dnl ========================================================
+dnl Check for nss-shared-helper +dnl Check for nss-shared-helper
@ -31,31 +31,27 @@ diff --git a/configure.in b/configure.in
+AC_SUBST(NSSHELPER_LIBS) +AC_SUBST(NSSHELPER_LIBS)
+ +
+dnl ======================================================== +dnl ========================================================
dnl SIL Graphite dnl disable xul
dnl ========================================================
MOZ_GRAPHITE_LIBS='$(DEPTH)/gfx/graphite2/src/$(LIB_PREFIX)mozgraphite2.$(LIB_SUFFIX)'
AC_SUBST(MOZ_GRAPHITE_LIBS)
dnl ========================================================
dnl OTS
dnl ======================================================== 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 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 +++ b/security/manager/ssl/src/Makefile.in
@@ -18,10 +18,13 @@ LIBXUL_LIBRARY = 1 @@ -0,0 +1,8 @@
CSRCS += md4.c +#! gmake
+#
DEFINES += \ +# This Source Code Form is subject to the terms of the Mozilla Public
-DNSS_ENABLE_ECC \ +# License, v. 2.0. If a copy of the MPL was not distributed with this
-DDLL_PREFIX=\"$(DLL_PREFIX)\" \ +# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-DDLL_SUFFIX=\"$(DLL_SUFFIX)\" \ +
$(NULL)
+LOCAL_INCLUDES += $(NSSHELPER_CFLAGS) +LOCAL_INCLUDES += $(NSSHELPER_CFLAGS)
+EXTRA_DSO_LDOPTS += $(NSSHELPER_LIBS) +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 diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/src/nsNSSComponent.cpp
--- a/security/manager/ssl/src/nsNSSComponent.cpp --- a/security/manager/ssl/src/nsNSSComponent.cpp
+++ b/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 "nsNSSComponent.h"
#include "CertVerifier.h" #include "ExtendedValidation.h"
#include "NSSCertDBTrustDomain.h"
#include "mozilla/Telemetry.h"
#include "nsCertVerificationThread.h" #include "nsCertVerificationThread.h"
#include "nsAppDirectoryServiceDefs.h" #include "nsAppDirectoryServiceDefs.h"
#include "nsComponentManagerUtils.h" #include "nsComponentManagerUtils.h"
#include "nsDirectoryServiceDefs.h" @@ -1141,17 +1148,31 @@ nsNSSComponent::InitializeNSS()
#include "nsICertOverrideService.h" if (NS_FAILED(rv)) {
@@ -1132,18 +1139,34 @@ nsNSSComponent::InitializeNSS(bool showW nsPSMInitPanic::SetPanic();
ConfigureInternalPKCS11Token(); return NS_ERROR_NOT_AVAILABLE;
}
// The NSS_INIT_NOROOTINIT flag turns off the loading of the root certs SECStatus init_rv = SECFailure;
// module by NSS_Initialize because we will load it in InstallLoadableRoots if (!profileStr.IsEmpty()) {
// later. It also allows us to work around a bug in the system NSS in // First try to initialize the NSS DB in read/write mode.
// Ubuntu 8.04, which loads any nonexistent "<configdir>/libnssckbi.so" as - SECStatus init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false);
// "/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;
+#ifdef MOZ_ENABLE_NSSHELPER +#ifdef MOZ_ENABLE_NSSHELPER
+ if (PR_GetEnv("MOZ_TB_NO_NSSHELPER")) { + if (PR_GetEnv("MOZ_TB_NO_NSSHELPER")) {
+ init_rv = ::NSS_Initialize(profileStr.get(), "", "", + init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false);
+ SECMOD_DB, init_flags);
+ } else { + } 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) { + if (init_rv != SECSuccess) {
+ PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS using nsshelp_open_db in %s\n", profileStr.get())); + 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(), "", "", + init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false);
+ SECMOD_DB, init_flags);
+ } + }
+ } + }
+#else +#else
+ init_rv = ::NSS_Initialize(profileStr.get(), "", "", + init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false);
+ SECMOD_DB, init_flags);
+#endif +#endif
// If that fails, attempt read-only mode.
if (init_rv != SECSuccess) { 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) { ifdef MOZ_DIRECTSHOW
which_nss_problem = problem_none; OS_LIBS += $(call EXPAND_LIBNAME,dmoguids wmcodecdspuuid strmiids msdmo)
}
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
endif endif
EXTRA_DSO_LDOPTS += $(LIBS_DIR) EXTRA_DSO_LDOPTS += $(LIBS_DIR)
DEFINES += -DIMPL_XREAPI
-EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(MOZALLOC_LIB) -EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(MOZALLOC_LIB)
+EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(MOZALLOC_LIB) $(NSSHELPER_LIBS) +EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(MOZALLOC_LIB) $(NSSHELPER_LIBS)
ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa) ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
CXXFLAGS += $(TK_CFLAGS)
OS_LIBS += \ OS_LIBS += \
-framework SystemConfiguration \ $(TK_LIBS) \
-framework QTKit \ $(NULL)
-framework IOKit \ endif
-F/System/Library/PrivateFrameworks -framework CoreUI \
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 diff --git a/config/baseconfig.mk b/config/baseconfig.mk
index 636b9aa..b350c75 100644
--- a/config/baseconfig.mk --- a/config/baseconfig.mk
+++ b/config/baseconfig.mk +++ b/config/baseconfig.mk
@@ -1,7 +1,7 @@ @@ -1,10 +1,10 @@
INCLUDED_AUTOCONF_MK = 1
-includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) -includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) -idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+includedir := $(includedir)/$(MOZ_APP_NAME) +includedir := $(includedir)/$(MOZ_APP_NAME)
@ -12,3 +9,8 @@ index 636b9aa..b350c75 100644
installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
MOZILLA_SRCDIR = $(topsrcdir)/mozilla 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 diff --git a/mail/app/Makefile.in b/mail/app/Makefile.in
--- a/mail/app/Makefile.in --- a/mail/app/Makefile.in
+++ b/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) $(NULL)
DEFINES += -DXPCOM_GLUE DEFINES += -DXPCOM_GLUE
STL_FLAGS= STL_FLAGS=
LIBS += \ LIBS += \
$(EXTRA_DSO_LIBS) \
$(XPCOM_STANDALONE_GLUE_LDOPTS) \ $(XPCOM_STANDALONE_GLUE_LDOPTS) \
+ $(NSSHELPER_LIBS) \ + $(NSSHELPER_LIBS) \
$(NULL) $(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() \