1
0

- For openSUSE > 13.2, the build fails for i586 as it goes out of

memory. Prevent this from happening by disabing parallel build
  in this particular case (i.e. do not pass 
  mk_add_options MOZ_MAKE_FLAGS%{?jobs:-j%jobs}).

- update to Thunderbird 45.0
  * Add a Correspondents column combining Sender and Recipient
  * Much better support for XMPP chatrooms and commands
  * Remote content exceptions: Improved options to add exceptions
  * Implement option to always use HTML formatting to prevent
    unexpected format loss when converting messages to plain text
  * Use OpenStreetmap for maps (even allow the user to choose from
    list of map services)
  * Allow spell checking and dictionary selection in the subject line
  * Allow editing of From when composing a message
  * Add dropdown in compose to allow specific setting of font size
  * Return/Enter in composer will now insert a new paragraph by
    default (shift-Enter will insert a line break)
  * Allow copying of name and email address from the message header
    of an email
  * Mail.ru supports OAuth authentication

OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaThunderbird?expand=0&rev=314
This commit is contained in:
Wolfgang Rosenauer 2016-04-30 13:53:52 +00:00 committed by Git OBS Bridge
parent c7c14f778a
commit f244ebf410
17 changed files with 267 additions and 241 deletions

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Wed Apr 27 04:26:56 UTC 2016 - badshah400@gmail.com
- For openSUSE > 13.2, the build fails for i586 as it goes out of
memory. Prevent this from happening by disabing parallel build
in this particular case (i.e. do not pass
mk_add_options MOZ_MAKE_FLAGS%{?jobs:-j%jobs}).
-------------------------------------------------------------------
Sat Apr 16 08:11:14 UTC 2016 - wr@rosenauer.org
- update to Thunderbird 45.0
* Add a Correspondents column combining Sender and Recipient
* Much better support for XMPP chatrooms and commands
* Remote content exceptions: Improved options to add exceptions
* Implement option to always use HTML formatting to prevent
unexpected format loss when converting messages to plain text
* Use OpenStreetmap for maps (even allow the user to choose from
list of map services)
* Allow spell checking and dictionary selection in the subject line
* Allow editing of From when composing a message
* Add dropdown in compose to allow specific setting of font size
* Return/Enter in composer will now insert a new paragraph by
default (shift-Enter will insert a line break)
* Allow copying of name and email address from the message header
of an email
* Mail.ru supports OAuth authentication
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Apr 6 21:54:09 UTC 2016 - astieger@suse.com Wed Apr 6 21:54:09 UTC 2016 - astieger@suse.com

View File

@ -17,18 +17,16 @@
# #
%define mainversion 38.7.2 %define mainversion 45.0
%define update_channel release %define update_channel release
%define releasedate 2016040400 %define releasedate 2016041500
%if %suse_version > 1210
%if %suse_version > 1310 %if %suse_version > 1310
%define gstreamer_ver 1.0 %define gstreamer_ver 1.0
%define gstreamer 1 %define gstreamer 1
%else %else
%define gstreamer_ver 0.10 %define gstreamer_ver 0.10
%endif %endif
%endif
%bcond_without mozilla_tb_kde4 %bcond_without mozilla_tb_kde4
%bcond_with mozilla_tb_valgrind %bcond_with mozilla_tb_valgrind
@ -46,8 +44,8 @@ BuildRequires: libcurl-devel
BuildRequires: libgnomeui-devel BuildRequires: libgnomeui-devel
BuildRequires: libidl-devel BuildRequires: libidl-devel
BuildRequires: libnotify-devel BuildRequires: libnotify-devel
BuildRequires: mozilla-nspr-devel >= 4.10.10 BuildRequires: mozilla-nspr-devel >= 4.12
BuildRequires: mozilla-nss-devel >= 3.20.2 BuildRequires: mozilla-nss-devel >= 3.21.1
BuildRequires: python BuildRequires: python
BuildRequires: startup-notification-devel BuildRequires: startup-notification-devel
BuildRequires: unzip BuildRequires: unzip
@ -60,7 +58,6 @@ BuildRequires: pkgconfig(libpulse)
%if %{with mozilla_tb_valgrind} %if %{with mozilla_tb_valgrind}
BuildRequires: pkgconfig(valgrind) BuildRequires: pkgconfig(valgrind)
%endif %endif
%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)
@ -73,7 +70,6 @@ Requires: libgstreamer-0_10-0
Recommends: gstreamer-0_10-fluendo-mp3 Recommends: gstreamer-0_10-fluendo-mp3
Recommends: gstreamer-0_10-plugins-ffmpeg Recommends: gstreamer-0_10-plugins-ffmpeg
%endif %endif
%endif
Version: %{mainversion} Version: %{mainversion}
Release: 0 Release: 0
Provides: thunderbird = %{version} Provides: thunderbird = %{version}
@ -105,10 +101,8 @@ Source12: kde.js
Patch1: mozilla-language.patch Patch1: mozilla-language.patch
Patch2: mozilla-nongnome-proxies.patch Patch2: mozilla-nongnome-proxies.patch
Patch3: mozilla-kde.patch Patch3: mozilla-kde.patch
Patch4: mozilla-arm-disable-edsp.patch Patch4: mozilla-develdirs.patch
Patch5: mozilla-develdirs.patch Patch5: mozilla-no-stdcxx-check.patch
Patch6: mozilla-icu-strncat.patch
Patch7: mozilla-arm64-libjpeg-turbo.patch
# Thunderbird/mail # Thunderbird/mail
Patch20: tb-ssldap.patch Patch20: tb-ssldap.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -204,8 +198,6 @@ pushd mozilla
%endif %endif
%patch4 -p1 %patch4 -p1
%patch5 -p1 %patch5 -p1
%patch6 -p1
%patch7 -p1
popd popd
# comm-central patches # comm-central patches
%patch20 -p1 %patch20 -p1
@ -253,7 +245,13 @@ cat << EOF > $MOZCONFIG
mk_add_options MOZILLA_OFFICIAL=1 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
%if 0%{?suse_version} > 1320
%ifarch i586
mk_add_options MOZ_MAKE_FLAGS=-j1
%else
mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs} mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs}
%endif
%endif
mk_add_options MOZ_OBJDIR=$RPM_BUILD_DIR/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 --enable-calendar ac_add_options --enable-calendar
@ -280,9 +278,6 @@ ac_add_options --enable-update-channel=%{update_channel}
%if 0%{?gstreamer} == 1 %if 0%{?gstreamer} == 1
ac_add_options --enable-gstreamer=1.0 ac_add_options --enable-gstreamer=1.0
%endif %endif
%if %suse_version < 1220
ac_add_options --disable-gstreamer
%endif
%if %has_system_cairo %if %has_system_cairo
ac_add_options --enable-system-cairo ac_add_options --enable-system-cairo
%endif %endif
@ -455,15 +450,11 @@ rm -rf %{_tmppath}/translations.*
%endif %endif
%post %post
%if %suse_version > 1130
%icon_theme_cache_post %icon_theme_cache_post
%endif
exit 0 exit 0
%postun %postun
%if %suse_version > 1130
%icon_theme_cache_postun %icon_theme_cache_postun
%endif
exit 0 exit 0
%files %files
@ -472,7 +463,6 @@ exit 0
%dir %{progdir} %dir %{progdir}
%{progdir}/application.ini %{progdir}/application.ini
%{progdir}/blocklist.xml %{progdir}/blocklist.xml
%{progdir}/chrome.manifest
%{progdir}/dependentlibs.list %{progdir}/dependentlibs.list
%{progdir}/*.so %{progdir}/*.so
%{progdir}/omni.ja %{progdir}/omni.ja
@ -486,16 +476,14 @@ exit 0
%{progdir}/crashreporter.ini %{progdir}/crashreporter.ini
%{progdir}/Throbber-small.gif %{progdir}/Throbber-small.gif
%endif %endif
%{progdir}/components/
%dir %{progdir}/chrome/ %dir %{progdir}/chrome/
%{progdir}/chrome/icons/ %{progdir}/chrome/icons/
%dir %{progdir}/dictionaries/ %dir %{progdir}/dictionaries/
%{progdir}/distribution/ %{progdir}/distribution/
%{progdir}/defaults/ %{progdir}/defaults/
%dir %{progdir}/extensions/ %dir %{progdir}/extensions/
%{progdir}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} %{progdir}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
%{progdir}/isp/ %{progdir}/isp/
%{progdir}/searchplugins/
%{_datadir}/appdata/ %{_datadir}/appdata/
%{_datadir}/applications/%{desktop_file_name}.desktop %{_datadir}/applications/%{desktop_file_name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{progname}.png %{_datadir}/icons/hicolor/*/apps/%{progname}.png
@ -514,7 +502,6 @@ exit 0
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/%{progname}/*.a %{_libdir}/%{progname}/*.a
%{_libdir}/%{progname}/*.py %{_libdir}/%{progname}/*.py
%{_libdir}/%{progname}/*.pyc
%{_libdir}/%{progname}/ply/ %{_libdir}/%{progname}/ply/
%{_libdir}/%{progname}/xpcshell %{_libdir}/%{progname}/xpcshell
#%{_libdir}/pkgconfig/*.pc #%{_libdir}/pkgconfig/*.pc

View File

@ -2,7 +2,7 @@
<constraints> <constraints>
<hardware> <hardware>
<disk> <disk>
<size unit="G">11</size> <size unit="G">13</size>
</disk> </disk>
<memory> <memory>
<size unit="M">6000</size> <size unit="M">6000</size>

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:9ea4b3d27f97562219f732c8906eda3727ef59265f3a6d6b3da0e8957616a301 oid sha256:a8057e32507230b91977e44dffd7dba5969bf391a20f93af0e39786732246088
size 28432 size 28376

View File

@ -1,9 +1,9 @@
#!/bin/bash #!/bin/bash
CHANNEL="esr38" CHANNEL="esr45"
BRANCH="releases/comm-$CHANNEL" BRANCH="releases/comm-$CHANNEL"
RELEASE_TAG="THUNDERBIRD_38_7_2_RELEASE" RELEASE_TAG="THUNDERBIRD_45_0_RELEASE"
VERSION="38.7.2" VERSION="45.0"
echo "cloning $BRANCH..." echo "cloning $BRANCH..."
hg clone http://hg.mozilla.org/$BRANCH thunderbird hg clone http://hg.mozilla.org/$BRANCH thunderbird

View File

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

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

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

View File

@ -1,27 +0,0 @@
# HG changeset patch
# User Adrian Schröter <adrian@suse.de>
# Parent b945e0c3b145b6b2245f42bab52f911c2d1f6759
disable ESDP support (no BNC or BMO reference yet :-()
diff --git a/mozglue/build/arm.h b/mozglue/build/arm.h
--- a/mozglue/build/arm.h
+++ b/mozglue/build/arm.h
@@ -116,17 +116,17 @@ namespace mozilla {
extern bool MFBT_DATA neon_enabled;
#endif
#endif
}
#if defined(MOZILLA_PRESUME_EDSP)
# define MOZILLA_MAY_SUPPORT_EDSP 1
inline bool supports_edsp() { return true; }
-#elif defined(MOZILLA_MAY_SUPPORT_EDSP) \
+#elif 0 \
&& defined(MOZILLA_ARM_HAVE_CPUID_DETECTION)
inline bool supports_edsp() { return arm_private::edsp_enabled; }
#else
inline bool supports_edsp() { return false; }
#endif
#if defined(MOZILLA_PRESUME_ARMV6)
# define MOZILLA_MAY_SUPPORT_ARMV6 1

View File

@ -1,22 +0,0 @@
Index: mozilla/configure.in
===================================================================
--- mozilla.orig/configure.in
+++ mozilla/configure.in
@@ -6241,7 +6241,7 @@ fi
dnl If we're on an ARM system which supports libjpeg-turbo's asm routines and
dnl --disable-libjpeg-turbo wasn't passed, use the C compiler as the assembler.
-if test -n "$LIBJPEG_TURBO_ARM_ASM" ; then
+if test -n "$LIBJPEG_TURBO_ARM_ASM" -o -n "$LIBJPEG_TURBO_ARM64_ASM" ; then
echo "Using $AS as the assembler for ARM code."
LIBJPEG_TURBO_AS=$AS
fi
@@ -6252,6 +6252,8 @@ elif test -n "$LIBJPEG_TURBO_X64_ASM"; t
AC_DEFINE(LIBJPEG_TURBO_X64_ASM)
elif test -n "$LIBJPEG_TURBO_ARM_ASM"; then
AC_DEFINE(LIBJPEG_TURBO_ARM_ASM)
+elif test -n "$LIBJPEG_TURBO_ARM64_ASM"; then
+ AC_DEFINE(LIBJPEG_TURBO_ARM64_ASM)
elif test -n "$MOZ_LIBJPEG_TURBO"; then
dnl Warn if we're not building the optimized routines, even though the user
dnl didn't specify --disable-libjpeg-turbo.

View File

@ -1,20 +1,24 @@
diff --git a/config/baseconfig.mk b/config/baseconfig.mk diff --git a/config/baseconfig.mk b/config/baseconfig.mk
--- a/config/baseconfig.mk --- a/config/baseconfig.mk
+++ b/config/baseconfig.mk +++ b/config/baseconfig.mk
@@ -1,14 +1,14 @@ @@ -1,16 +1,16 @@
# This file is normally included by autoconf.mk, but it is also used # This file is normally included by autoconf.mk, but it is also used
# directly in python/mozbuild/mozbuild/base.py for gmake validation. # directly in python/mozbuild/mozbuild/base.py for gmake validation.
# We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending # We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending
# whether a normal build is happening or whether the check is running. # whether a normal build is happening or whether the check is running.
-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)
-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
+includedir := $(includedir)/$(MOZ_APP_NAME) +includedir := $(includedir)/$(MOZ_APP_NAME)
+idldir = $(datadir)/idl/$(MOZ_APP_NAME) +idldir = $(datadir)/idl/$(MOZ_APP_NAME)
installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) +installdir = $(libdir)/$(MOZ_APP_NAME)
sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) +sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
ifndef TOP_DIST ifeq (.,$(DEPTH))
TOP_DIST = dist DIST = dist
endif
ifneq (,$(filter /%,$(TOP_DIST)))
DIST = $(TOP_DIST)
else else
DIST = $(DEPTH)/dist
endif
# 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,35 +0,0 @@
# HG changeset patch
# Parent 29be2a4daa0f512d22bde85b97b5460839026571
# User Wolfgang Rosenauer <wr@rosenauer.org>
From: Jan Engelhardt <jengelh@inai.de>
Reference: http://bugs.icu-project.org/trac/ticket/7808
diff --git a/intl/icu/source/tools/pkgdata/pkgdata.cpp b/intl/icu/source/tools/pkgdata/pkgdata.cpp
--- a/intl/icu/source/tools/pkgdata/pkgdata.cpp
+++ b/intl/icu/source/tools/pkgdata/pkgdata.cpp
@@ -1975,22 +1975,22 @@ static void loadLists(UPKGOptions *o, UE
FILE *p = NULL;
size_t n;
static char buf[512] = "";
char cmdBuf[1024];
UErrorCode status = U_ZERO_ERROR;
const char cmd[] = "icu-config --incpkgdatafile";
/* #1 try the same path where pkgdata was called from. */
- findDirname(progname, cmdBuf, 1024, &status);
+ findDirname(progname, cmdBuf, sizeof(cmdBuf), &status);
if(U_SUCCESS(status)) {
if (cmdBuf[0] != 0) {
- uprv_strncat(cmdBuf, U_FILE_SEP_STRING, 1024);
+ uprv_strncat(cmdBuf, U_FILE_SEP_STRING, sizeof(cmdBuf)-1-strlen(cmdBuf));
}
- uprv_strncat(cmdBuf, cmd, 1024);
+ uprv_strncat(cmdBuf, cmd, sizeof(cmdBuf)-1-strlen(cmdBuf));
if(verbose) {
fprintf(stdout, "# Calling icu-config: %s\n", cmdBuf);
}
p = popen(cmdBuf, "r");
}
if(p == NULL || (n = fread(buf, 1, 511, p)) <= 0) {

View File

@ -1,34 +1,15 @@
# HG changeset patch # HG changeset patch
# Parent 879df970cffe74db62f72f5b815b559dab63418a # Parent 797d5f17b080f54439602f107ecaf6b09a0ef5c1
Description: Add KDE integration to Firefox (toolkit parts) Description: Add KDE integration to Firefox (toolkit parts)
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org> Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
Author: Lubos Lunak <lunak@suse.com> Author: Lubos Lunak <lunak@suse.com>
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751 Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751
https://bugzilla.novell.com/show_bug.cgi?id=170055 https://bugzilla.novell.com/show_bug.cgi?id=170055
diff --git a/modules/libpref/Makefile.in b/modules/libpref/Makefile.in
--- a/modules/libpref/Makefile.in
+++ b/modules/libpref/Makefile.in
@@ -21,13 +21,15 @@ endif
ifdef MOZ_SERVICES_HEALTHREPORT
ifneq (android,$(MOZ_WIDGET_TOOLKIT))
grepref_files += $(topsrcdir)/services/healthreport/healthreport-prefs.js
else
grepref_files += $(topsrcdir)/mobile/android/chrome/content/healthreport-prefs.js
endif
endif
+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
+
greprefs.js: $(grepref_files)
$(call py_action,preprocessor,$(PREF_PPFLAGS) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) $^ -o $@)
libs:: greprefs.js
$(INSTALL) $^ $(DIST)/bin/
diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
--- a/modules/libpref/Preferences.cpp --- a/modules/libpref/Preferences.cpp
+++ b/modules/libpref/Preferences.cpp +++ b/modules/libpref/Preferences.cpp
@@ -27,16 +27,17 @@ @@ -30,16 +30,17 @@
#include "nsIZipReader.h" #include "nsIZipReader.h"
#include "nsPrefBranch.h" #include "nsPrefBranch.h"
#include "nsXPIDLString.h" #include "nsXPIDLString.h"
@ -40,13 +21,13 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
+#include "nsKDEUtils.h" +#include "nsKDEUtils.h"
#include "nsQuickSort.h" #include "nsQuickSort.h"
#include "pldhash.h" #include "PLDHashTable.h"
#include "prefapi.h" #include "prefapi.h"
#include "prefread.h" #include "prefread.h"
#include "prefapi_private_data.h" #include "prefapi_private_data.h"
@@ -1165,16 +1166,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char @@ -1136,16 +1137,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
static nsresult pref_LoadPrefsInDirList(const char *listId) static nsresult pref_LoadPrefsInDirList(const char *listId)
{ {
@ -81,7 +62,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
return NS_OK; return NS_OK;
bool hasMore; bool hasMore;
@@ -1190,17 +1209,17 @@ static nsresult pref_LoadPrefsInDirList( @@ -1161,17 +1180,17 @@ static nsresult pref_LoadPrefsInDirList(
nsAutoCString leaf; nsAutoCString leaf;
path->GetNativeLeafName(leaf); path->GetNativeLeafName(leaf);
@ -100,7 +81,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
{ {
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);
@@ -1294,26 +1313,38 @@ static nsresult pref_InitInitialObjects( @@ -1265,26 +1284,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)
@ -137,12 +118,36 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
// Load jar:$app/omni.jar!/defaults/preferences/*.js // Load jar:$app/omni.jar!/defaults/preferences/*.js
// or jar:$gre/omni.jar!/defaults/preferences/*.js. // or jar:$gre/omni.jar!/defaults/preferences/*.js.
nsRefPtr<nsZipArchive> appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP); RefPtr<nsZipArchive> appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);
// GetReader(mozilla::Omnijar::APP) returns null when $app == $gre, in which // GetReader(mozilla::Omnijar::APP) returns null when $app == $gre, in which
diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
--- a/modules/libpref/moz.build
+++ b/modules/libpref/moz.build
@@ -31,16 +31,20 @@ UNIFIED_SOURCES += [
'prefread.cpp',
]
# prefapi.cpp cannot be built in unified mode because it uses plarena.h
SOURCES += [
'prefapi.cpp',
]
+LOCAL_INCLUDES += [
+ '/toolkit/xre'
+]
+
include('/ipc/chromium/chromium-config.mozbuild')
FINAL_LIBRARY = 'xul'
DEFINES['OS_ARCH'] = CONFIG['OS_ARCH']
DEFINES['MOZ_WIDGET_TOOLKIT'] = CONFIG['MOZ_WIDGET_TOOLKIT']
if CONFIG['GNU_CXX']:
diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py
--- a/python/mozbuild/mozpack/chrome/flags.py --- a/python/mozbuild/mozpack/chrome/flags.py
+++ b/python/mozbuild/mozpack/chrome/flags.py +++ b/python/mozbuild/mozpack/chrome/flags.py
@@ -209,16 +209,17 @@ class Flags(OrderedDict): @@ -211,16 +211,17 @@ class Flags(OrderedDict):
'contentaccessible': Flag, 'contentaccessible': Flag,
'os': StringFlag, 'os': StringFlag,
'osversion': VersionFlag, 'osversion': VersionFlag,
@ -163,7 +168,7 @@ diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/c
diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py
--- a/python/mozbuild/mozpack/chrome/manifest.py --- a/python/mozbuild/mozpack/chrome/manifest.py
+++ b/python/mozbuild/mozpack/chrome/manifest.py +++ b/python/mozbuild/mozpack/chrome/manifest.py
@@ -31,16 +31,17 @@ class ManifestEntry(object): @@ -33,16 +33,17 @@ class ManifestEntry(object):
'application', 'application',
'platformversion', 'platformversion',
'os', 'os',
@ -184,11 +189,11 @@ diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpac
diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build
--- a/toolkit/components/downloads/moz.build --- a/toolkit/components/downloads/moz.build
+++ b/toolkit/components/downloads/moz.build +++ b/toolkit/components/downloads/moz.build
@@ -52,14 +52,15 @@ if not CONFIG['MOZ_SUITE']: @@ -65,15 +65,16 @@ if not CONFIG['MOZ_SUITE']:
'nsDownloadManagerUI.js',
'nsDownloadManagerUI.manifest',
] ]
FAIL_ON_WARNINGS = True
FINAL_LIBRARY = 'xul' FINAL_LIBRARY = 'xul'
LOCAL_INCLUDES += [ LOCAL_INCLUDES += [
@ -199,12 +204,13 @@ diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloa
] ]
DEFINES['GOOGLE_PROTOBUF_NO_RTTI'] = True DEFINES['GOOGLE_PROTOBUF_NO_RTTI'] = True
DEFINES['GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER'] = True
CXXFLAGS += CONFIG['TK_CFLAGS'] CXXFLAGS += CONFIG['TK_CFLAGS']
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
@@ -46,16 +46,20 @@ @@ -51,16 +51,20 @@
#ifdef XP_WIN #ifdef XP_WIN
#include <shlobj.h> #include <shlobj.h>
#include "nsWindowsHelpers.h" #include "nsWindowsHelpers.h"
@ -225,7 +231,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
#include "AndroidBridge.h" #include "AndroidBridge.h"
#endif #endif
@@ -2716,16 +2720,25 @@ nsDownload::SetState(DownloadState aStat @@ -2719,16 +2723,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.
@ -251,7 +257,7 @@ 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;
@@ -2756,16 +2769,17 @@ nsDownload::SetState(DownloadState aStat @@ -2759,16 +2772,17 @@ nsDownload::SetState(DownloadState aStat
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"),
@ -272,8 +278,8 @@ 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
@@ -57,29 +57,33 @@ toolkit.jar: @@ -64,29 +64,33 @@ toolkit.jar:
content/global/viewZoomOverlay.js (viewZoomOverlay.js) content/global/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)
content/global/bindings/button.xml (widgets/button.xml) content/global/bindings/button.xml (widgets/button.xml)
@ -310,7 +316,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,455 @@ @@ -0,0 +1,460 @@
+<?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
@ -344,7 +350,7 @@ new file mode 100644
+ <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
+ > + >
+ <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"/> + <xul:spacer anonid="spacer" flex="1"/>
+ <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/> + <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
@ -426,11 +432,16 @@ new file mode 100644
+ sizeToContent(); + sizeToContent();
+ } + }
+ +
+ var xOffset = (opener.outerWidth - window.outerWidth) / 2; + if (opener) {
+ var yOffset = opener.outerHeight / 5; + var xOffset = (opener.outerWidth - window.outerWidth) / 2;
+ var yOffset = opener.outerHeight / 5;
+ +
+ var newX = opener.screenX + xOffset; + var newX = opener.screenX + xOffset;
+ var newY = opener.screenY + yOffset; + var newY = opener.screenY + yOffset;
+ } else {
+ newX = (screen.availWidth - window.outerWidth) / 2;
+ newY = (screen.availHeight - window.outerHeight) / 2;
+ }
+ +
+ // ensure the window is fully onscreen (if smaller than the screen) + // ensure the window is fully onscreen (if smaller than the screen)
+ if (newX < screen.availLeft) + if (newX < screen.availLeft)
@ -770,7 +781,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,1350 @@ @@ -0,0 +1,1403 @@
+<?xml version="1.0"?> +<?xml version="1.0"?>
+ +
+<!DOCTYPE bindings [ +<!DOCTYPE bindings [
@ -1394,9 +1405,11 @@ new file mode 100644
+ <constructor> + <constructor>
+ <![CDATA[ + <![CDATA[
+ if (this.type != "child") { + if (this.type != "child") {
+ var psvc = Components.classes["@mozilla.org/preferences-service;1"] + if (!this._instantApplyInitialized) {
+ .getService(Components.interfaces.nsIPrefBranch); + let psvc = Components.classes["@mozilla.org/preferences-service;1"]
+ this.instantApply = psvc.getBoolPref("browser.preferences.instantApply"); + .getService(Components.interfaces.nsIPrefBranch);
+ this.instantApply = psvc.getBoolPref("browser.preferences.instantApply");
+ }
+ if (this.instantApply) { + if (this.instantApply) {
+ var docElt = document.documentElement; + var docElt = document.documentElement;
+ var acceptButton = docElt.getButton("accept"); + var acceptButton = docElt.getButton("accept");
@ -1466,8 +1479,13 @@ new file mode 100644
+ ]]> + ]]>
+ </destructor> + </destructor>
+ +
+ <!-- Derived bindings can set this to true to cause us to skip
+ reading the browser.preferences.instantApply pref in the constructor.
+ Then they can set instantApply to their wished value. -->
+ <field name="_instantApplyInitialized">false</field>
+ <!-- Controls whether changed pref values take effect immediately. -->
+ <field name="instantApply">false</field> + <field name="instantApply">false</field>
+ +
+ <property name="preferencePanes" + <property name="preferencePanes"
+ onget="return this.getElementsByTagName('prefpane');"/> + onget="return this.getElementsByTagName('prefpane');"/>
+ +
@ -1949,6 +1967,10 @@ new file mode 100644
+ <body> + <body>
+ <![CDATA[ + <![CDATA[
+ // Write all values to preferences. + // Write all values to preferences.
+ if (this._deferredValueUpdateElements.size) {
+ this._finalizeDeferredElements();
+ }
+
+ var preferences = this.preferences; + var preferences = this.preferences;
+ for (var i = 0; i < preferences.length; ++i) { + for (var i = 0; i < preferences.length; ++i) {
+ var preference = preferences[i]; + var preference = preferences[i];
@ -2025,15 +2047,57 @@ new file mode 100644
+ </body> + </body>
+ </method> + </method>
+ +
+ <field name="DeferredTask" readonly="true">
+ let targetObj = {};
+ Components.utils.import("resource://gre/modules/DeferredTask.jsm", targetObj);
+ targetObj.DeferredTask;
+ </field>
+ <method name="_deferredValueUpdate">
+ <parameter name="aElement"/>
+ <body>
+ <![CDATA[
+ delete aElement._deferredValueUpdateTask;
+ let preference = document.getElementById(aElement.getAttribute("preference"));
+ let prefVal = preference.getElementValue(aElement);
+ preference.value = prefVal;
+ this._deferredValueUpdateElements.delete(aElement);
+ ]]>
+ </body>
+ </method>
+ <field name="_deferredValueUpdateElements">
+ new Set();
+ </field>
+ <method name="_finalizeDeferredElements">
+ <body>
+ <![CDATA[
+ for (let el of this._deferredValueUpdateElements) {
+ if (el._deferredValueUpdateTask) {
+ el._deferredValueUpdateTask.finalize();
+ }
+ }
+ ]]>
+ </body>
+ </method>
+ <method name="userChangedValue"> + <method name="userChangedValue">
+ <parameter name="aElement"/> + <parameter name="aElement"/>
+ <body> + <body>
+ <![CDATA[ + <![CDATA[
+ var element = this.getPreferenceElement(aElement); + let element = this.getPreferenceElement(aElement);
+ if (element.hasAttribute("preference")) { + if (element.hasAttribute("preference")) {
+ var preference = document.getElementById(element.getAttribute("preference")); + if (element.getAttribute("delayprefsave") != "true") {
+ var prefVal = preference.getElementValue(element); + var preference = document.getElementById(element.getAttribute("preference"));
+ preference.value = prefVal; + var prefVal = preference.getElementValue(element);
+ preference.value = prefVal;
+ } else {
+ if (!element._deferredValueUpdateTask) {
+ element._deferredValueUpdateTask = new this.DeferredTask(this._deferredValueUpdate.bind(this, element), 1000);
+ this._deferredValueUpdateElements.add(element);
+ } else {
+ // Each time the preference is changed, restart the delay.
+ element._deferredValueUpdateTask.disarm();
+ }
+ element._deferredValueUpdateTask.arm();
+ }
+ } + }
+ ]]> + ]]>
+ </body> + </body>
@ -2124,16 +2188,15 @@ new file mode 100644
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
@@ -14,16 +14,18 @@ @@ -15,16 +15,17 @@
#include "prenv.h"
#include "nsPrintfCString.h" #include "nsPrintfCString.h"
#include "nsNetCID.h"
#include "nsNetUtil.h" #include "nsNetUtil.h"
#include "nsISupportsPrimitives.h" #include "nsISupportsPrimitives.h"
#include "nsIGSettingsService.h" #include "nsIGSettingsService.h"
#include "nsInterfaceHashtable.h" #include "nsInterfaceHashtable.h"
#include "mozilla/Attributes.h" #include "mozilla/Attributes.h"
#include "nsIURI.h" #include "nsIURI.h"
+#include "nsVoidArray.h"
+#include "nsKDEUtils.h" +#include "nsKDEUtils.h"
class nsUnixSystemProxySettings final : public nsISystemProxySettings { class nsUnixSystemProxySettings final : public nsISystemProxySettings {
@ -2143,7 +2206,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
nsUnixSystemProxySettings() nsUnixSystemProxySettings()
: mSchemeProxySettings(4) : mSchemeProxySettings(4)
@@ -38,16 +40,17 @@ private: @@ -39,16 +40,17 @@ private:
nsCOMPtr<nsIGSettingsService> mGSettings; nsCOMPtr<nsIGSettingsService> mGSettings;
nsCOMPtr<nsIGSettingsCollection> mProxySettings; nsCOMPtr<nsIGSettingsCollection> mProxySettings;
nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings; nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings;
@ -2161,7 +2224,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
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
@@ -504,16 +507,19 @@ nsUnixSystemProxySettings::GetProxyFromG @@ -505,16 +507,19 @@ nsUnixSystemProxySettings::GetProxyFromG
nsresult nsresult
nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec, nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec,
@ -2181,7 +2244,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);
@@ -539,8 +545,34 @@ static const mozilla::Module::ContractID @@ -540,8 +545,34 @@ static const mozilla::Module::ContractID
static const mozilla::Module kUnixProxyModule = { static const mozilla::Module kUnixProxyModule = {
mozilla::Module::kVersion, mozilla::Module::kVersion,
@ -2219,11 +2282,11 @@ 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
@@ -45,17 +45,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt @@ -48,17 +48,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'ui
GENERATED_SOURCES += [ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
'moc_nsNativeAppSupportQt.cpp', EXPORTS += ['nsQAppInstance.h']
]
SOURCES += [ SOURCES += [
'!moc_nsNativeAppSupportQt.cpp',
'nsNativeAppSupportQt.cpp', 'nsNativeAppSupportQt.cpp',
'nsQAppInstance.cpp', 'nsQAppInstance.cpp',
] ]
@ -2445,12 +2508,12 @@ new file mode 100644
+ } + }
+ +
+ +
+bool nsKDEUtils::commandBlockUi( const nsTArray<nsCString>& command, const GtkWindow* parent, nsTArray<nsCString>* output ) +bool nsKDEUtils::commandBlockUi( const nsTArray<nsCString>& command, GtkWindow* parent, nsTArray<nsCString>* output )
+ { + {
+ return self()->internalCommand( command, parent, true, output ); + return self()->internalCommand( command, parent, true, output );
+ } + }
+ +
+bool nsKDEUtils::internalCommand( const nsTArray<nsCString>& command, const GtkWindow* parent, bool blockUi, +bool nsKDEUtils::internalCommand( const nsTArray<nsCString>& command, GtkWindow* parent, bool blockUi,
+ nsTArray<nsCString>* output ) + nsTArray<nsCString>* output )
+ { + {
+ if( !startHelper()) + if( !startHelper())
@ -2466,8 +2529,8 @@ new file mode 100644
+ { + {
+ data.loop = g_main_loop_new( NULL, FALSE ); + data.loop = g_main_loop_new( NULL, FALSE );
+ GtkWidget* window = gtk_window_new( GTK_WINDOW_TOPLEVEL ); + GtkWidget* window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
+ if( parent && parent->group ) + if( parent && gtk_window_get_group(parent) )
+ gtk_window_group_add_window( parent->group, GTK_WINDOW( window )); + gtk_window_group_add_window( gtk_window_get_group(parent), GTK_WINDOW( window ));
+ gtk_widget_realize( window ); + gtk_widget_realize( window );
+ gtk_widget_set_sensitive( window, TRUE ); + gtk_widget_set_sensitive( window, TRUE );
+ gtk_grab_add( window ); + gtk_grab_add( window );
@ -2620,7 +2683,7 @@ new file mode 100644
+ /* Like command(), but additionally blocks the parent widget like if there was + /* Like command(), but additionally blocks the parent widget like if there was
+ a modal dialog shown and enters the event loop (i.e. there are still paint updates, + a modal dialog shown and enters the event loop (i.e. there are still paint updates,
+ this is for commands that take long). */ + this is for commands that take long). */
+ static bool commandBlockUi( const nsTArray<nsCString>& command, const GtkWindow* parent, nsTArray<nsCString>* output = NULL ); + static bool commandBlockUi( const nsTArray<nsCString>& command, GtkWindow* parent, nsTArray<nsCString>* output = NULL );
+ +
+ private: + private:
+ nsKDEUtils(); + nsKDEUtils();
@ -2629,7 +2692,7 @@ new file mode 100644
+ bool startHelper(); + bool startHelper();
+ void closeHelper(); + void closeHelper();
+ void feedCommand( const nsTArray<nsCString>& command ); + void feedCommand( const nsTArray<nsCString>& command );
+ bool internalCommand( const nsTArray<nsCString>& command, const GtkWindow* parent, bool isParent, + bool internalCommand( const nsTArray<nsCString>& command, GtkWindow* parent, bool isParent,
+ nsTArray<nsCString>* output ); + nsTArray<nsCString>* output );
+ FILE* commandFile; + FILE* commandFile;
+ FILE* replyFile; + FILE* replyFile;
@ -2639,7 +2702,7 @@ new file mode 100644
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,17 +68,19 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco @@ -75,17 +75,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'ui
else: else:
# These files can't be built in unified mode because they redefine LOG. # These files can't be built in unified mode because they redefine LOG.
SOURCES += [ SOURCES += [
@ -2659,7 +2722,7 @@ diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
'android/nsExternalSharingAppService.cpp', 'android/nsExternalSharingAppService.cpp',
'android/nsExternalURLHandlerService.cpp', 'android/nsExternalURLHandlerService.cpp',
'android/nsMIMEInfoAndroid.cpp', 'android/nsMIMEInfoAndroid.cpp',
@@ -123,16 +125,17 @@ include('/ipc/chromium/chromium-config.m @@ -129,16 +131,17 @@ include('/ipc/chromium/chromium-config.m
FINAL_LIBRARY = 'xul' FINAL_LIBRARY = 'xul'
@ -2681,7 +2744,7 @@ diff --git a/uriloader/exthandler/unix/nsCommonRegistry.cpp b/uriloader/exthandl
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/uriloader/exthandler/unix/nsCommonRegistry.cpp +++ b/uriloader/exthandler/unix/nsCommonRegistry.cpp
@@ -0,0 +1,54 @@ @@ -0,0 +1,53 @@
+/* -*- 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
@ -2692,7 +2755,6 @@ new file mode 100644
+#include "nsGNOMERegistry.h" +#include "nsGNOMERegistry.h"
+#include "nsKDERegistry.h" +#include "nsKDERegistry.h"
+#include "nsString.h" +#include "nsString.h"
+#include "nsVoidArray.h"
+#include "nsKDEUtils.h" +#include "nsKDEUtils.h"
+ +
+/* static */ bool +/* static */ bool
@ -2851,7 +2913,7 @@ new file mode 100644
+ if( nsKDEUtils::command( command, &output ) && output.Length() == 3 ) + if( nsKDEUtils::command( command, &output ) && output.Length() == 3 )
+ { + {
+ nsCString mimetype = output[ 0 ]; + nsCString mimetype = output[ 0 ];
+ nsRefPtr<nsMIMEInfoUnix> mimeInfo = new nsMIMEInfoUnix( mimetype ); + RefPtr<nsMIMEInfoUnix> mimeInfo = new nsMIMEInfoUnix( mimetype );
+ NS_ENSURE_TRUE(mimeInfo, nullptr); + NS_ENSURE_TRUE(mimeInfo, nullptr);
+ nsCString description = output[ 1 ]; + nsCString description = output[ 1 ];
+ mimeInfo->SetDescription(NS_ConvertUTF8toUTF16(description)); + mimeInfo->SetDescription(NS_ConvertUTF8toUTF16(description));
@ -2954,8 +3016,8 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
- *_retval = nsGNOMERegistry::HandlerExists(mSchemeOrType.get()); - *_retval = nsGNOMERegistry::HandlerExists(mSchemeOrType.get());
+ *_retval = nsCommonRegistry::HandlerExists(mSchemeOrType.get()); + *_retval = nsCommonRegistry::HandlerExists(mSchemeOrType.get());
} else { } else {
- nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType); - RefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);
+ nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType); + RefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType);
if (!mimeInfo) { if (!mimeInfo) {
nsAutoCString ext; nsAutoCString ext;
nsresult rv = GetPrimaryExtension(ext); nsresult rv = GetPrimaryExtension(ext);
@ -3063,7 +3125,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
#ifdef MOZ_WIDGET_GTK #ifdef MOZ_WIDGET_GTK
LOG(("Looking in GNOME registry\n")); LOG(("Looking in GNOME registry\n"));
nsRefPtr<nsMIMEInfoBase> gnomeInfo = RefPtr<nsMIMEInfoBase> gnomeInfo =
- nsGNOMERegistry::GetFromExtension(aFileExt); - nsGNOMERegistry::GetFromExtension(aFileExt);
+ nsCommonRegistry::GetFromExtension(aFileExt); + nsCommonRegistry::GetFromExtension(aFileExt);
if (gnomeInfo) { if (gnomeInfo) {
@ -3083,8 +3145,8 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
#ifdef MOZ_WIDGET_GTK #ifdef MOZ_WIDGET_GTK
if (handler.IsEmpty()) { if (handler.IsEmpty()) {
- nsRefPtr<nsMIMEInfoBase> gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType); - RefPtr<nsMIMEInfoBase> gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType);
+ nsRefPtr<nsMIMEInfoBase> gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType); + RefPtr<nsMIMEInfoBase> gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType);
if (gnomeInfo) { if (gnomeInfo) {
LOG(("Got MIMEInfo from GNOME registry without extensions; setting them " LOG(("Got MIMEInfo from GNOME registry without extensions; setting them "
"to %s\n", NS_LossyConvertUTF16toASCII(extensions).get())); "to %s\n", NS_LossyConvertUTF16toASCII(extensions).get()));
@ -3096,7 +3158,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
--- a/widget/gtk/moz.build --- a/widget/gtk/moz.build
+++ b/widget/gtk/moz.build +++ b/widget/gtk/moz.build
@@ -79,16 +79,17 @@ else: @@ -86,16 +86,17 @@ else:
include('/ipc/chromium/chromium-config.mozbuild') include('/ipc/chromium/chromium-config.mozbuild')
FINAL_LIBRARY = 'xul' FINAL_LIBRARY = 'xul'
@ -3152,7 +3214,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
#define MAX_PREVIEW_SOURCE_SIZE 4096 #define MAX_PREVIEW_SOURCE_SIZE 4096
nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr; nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr;
@@ -243,17 +245,19 @@ nsFilePicker::AppendFilters(int32_t aFil @@ -246,17 +248,19 @@ nsFilePicker::AppendFilters(int32_t aFil
return nsBaseFilePicker::AppendFilters(aFilterMask); return nsBaseFilePicker::AppendFilters(aFilterMask);
} }
@ -3173,7 +3235,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
mFilters.AppendElement(filter); mFilters.AppendElement(filter);
mFilterNames.AppendElement(name); mFilterNames.AppendElement(name);
@@ -368,16 +372,32 @@ nsFilePicker::Show(int16_t *aReturn) @@ -371,16 +375,32 @@ nsFilePicker::Show(int16_t *aReturn)
NS_IMETHODIMP NS_IMETHODIMP
nsFilePicker::Open(nsIFilePickerShownCallback *aCallback) nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
@ -3206,7 +3268,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/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)
@@ -556,8 +576,235 @@ nsFilePicker::Done(GtkWidget* file_choos @@ -595,8 +615,235 @@ nsFilePicker::Done(GtkWidget* file_choos
if (mCallback) { if (mCallback) {
mCallback->Done(result); mCallback->Done(result);
mCallback = nullptr; mCallback = nullptr;
@ -3445,8 +3507,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
--- a/widget/gtk/nsFilePicker.h --- a/widget/gtk/nsFilePicker.h
+++ b/widget/gtk/nsFilePicker.h +++ b/widget/gtk/nsFilePicker.h
@@ -68,11 +68,17 @@ protected: @@ -69,14 +69,20 @@ protected:
nsString mDefault;
nsString mDefaultExtension; nsString mDefaultExtension;
nsTArray<nsCString> mFilters; nsTArray<nsCString> mFilters;
@ -3454,19 +3515,23 @@ diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
private: private:
static nsIFile *mPrevDisplayDirectory; static nsIFile *mPrevDisplayDirectory;
+
+ bool kdeRunning(); + bool kdeRunning();
+ bool getKdeRunning(); + bool getKdeRunning();
+ NS_IMETHODIMP kdeFileDialog(PRInt16 *aReturn); + NS_IMETHODIMP kdeFileDialog(PRInt16 *aReturn);
+ NS_IMETHODIMP kdeAppsDialog(PRInt16 *aReturn); + NS_IMETHODIMP kdeAppsDialog(PRInt16 *aReturn);
+ nsCString kdeMakeFilter( int index ); + nsCString kdeMakeFilter( int index );
+
#if (MOZ_WIDGET_GTK == 3)
GtkFileChooserWidget *mFileChooserDelegate;
#endif
}; };
#endif #endif
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
@@ -34,16 +34,17 @@ @@ -35,16 +35,17 @@
#include "nsIConsoleService.h" #include "nsIConsoleService.h"
#include "nsIScriptError.h" #include "nsIScriptError.h"
@ -3484,7 +3549,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
#define XPTONLY_MANIFEST nullptr #define XPTONLY_MANIFEST nullptr
#define XPTONLY_XPT nullptr #define XPTONLY_XPT nullptr
#endif #endif
@@ -489,16 +490,17 @@ ParseManifest(NSLocationType aType, File @@ -494,16 +495,17 @@ ParseManifest(NSLocationType aType, File
NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled"); NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");
NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired"); NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");
NS_NAMED_LITERAL_STRING(kApplication, "application"); NS_NAMED_LITERAL_STRING(kApplication, "application");
@ -3502,7 +3567,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
NS_NAMED_LITERAL_STRING(kMain, "main"); NS_NAMED_LITERAL_STRING(kMain, "main");
NS_NAMED_LITERAL_STRING(kContent, "content"); NS_NAMED_LITERAL_STRING(kContent, "content");
@@ -549,44 +551,49 @@ ParseManifest(NSLocationType aType, File @@ -554,44 +556,49 @@ ParseManifest(NSLocationType aType, File
CopyUTF8toUTF16(s, abi); CopyUTF8toUTF16(s, abi);
abi.Insert(char16_t('_'), 0); abi.Insert(char16_t('_'), 0);
abi.Insert(osTarget, 0); abi.Insert(osTarget, 0);
@ -3526,7 +3591,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
#elif defined(MOZ_WIDGET_COCOA) #elif defined(MOZ_WIDGET_COCOA)
SInt32 majorVersion = nsCocoaFeatures::OSXVersionMajor(); SInt32 majorVersion = nsCocoaFeatures::OSXVersionMajor();
SInt32 minorVersion = nsCocoaFeatures::OSXVersionMinor(); SInt32 minorVersion = nsCocoaFeatures::OSXVersionMinor();
nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(), nsTextFormatter::ssprintf(osVersion, MOZ_UTF16("%ld.%ld"),
majorVersion, majorVersion,
minorVersion); minorVersion);
+ desktop = NS_LITERAL_STRING("macosx"); + desktop = NS_LITERAL_STRING("macosx");
@ -3546,13 +3611,13 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
+ desktop = NS_LITERAL_STRING("android"); + desktop = NS_LITERAL_STRING("android");
#endif #endif
if (XRE_GetProcessType() == GeckoProcessType_Content) { if (XRE_IsContentProcess()) {
process = kContent; process = kContent;
} else { } else {
process = kMain; process = kMain;
} }
@@ -681,25 +688,27 @@ ParseManifest(NSLocationType aType, File @@ -694,25 +701,27 @@ ParseManifest(NSLocationType aType, File
TriState stOsVersion = eUnspecified; TriState stOsVersion = eUnspecified;
TriState stOs = eUnspecified; TriState stOs = eUnspecified;
TriState stABI = eUnspecified; TriState stABI = eUnspecified;
@ -3580,7 +3645,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
} }
#if defined(MOZ_WIDGET_ANDROID) #if defined(MOZ_WIDGET_ANDROID)
@@ -749,16 +758,17 @@ ParseManifest(NSLocationType aType, File @@ -762,16 +771,17 @@ ParseManifest(NSLocationType aType, File
} }
if (!ok || if (!ok ||
@ -3601,9 +3666,9 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
--- a/xpcom/components/moz.build --- a/xpcom/components/moz.build
+++ b/xpcom/components/moz.build +++ b/xpcom/components/moz.build
@@ -48,12 +48,13 @@ FINAL_LIBRARY = 'xul' @@ -47,12 +47,13 @@ FINAL_LIBRARY = 'xul'
GENERATED_INCLUDES += ['..']
LOCAL_INCLUDES += [ LOCAL_INCLUDES += [
'!..',
'../base', '../base',
'../build', '../build',
'../ds', '../ds',
@ -3618,7 +3683,7 @@ diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
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
@@ -44,16 +44,17 @@ @@ -47,16 +47,17 @@
#include "prproces.h" #include "prproces.h"
#include "nsIDirectoryEnumerator.h" #include "nsIDirectoryEnumerator.h"
#include "nsISimpleEnumerator.h" #include "nsISimpleEnumerator.h"
@ -3636,7 +3701,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"
@@ -1964,42 +1965,52 @@ nsLocalFile::SetPersistentDescriptor(con @@ -1963,42 +1964,52 @@ nsLocalFile::SetPersistentDescriptor(con
return InitWithNativePath(aPersistentDescriptor); return InitWithNativePath(aPersistentDescriptor);
#endif #endif
} }
@ -3695,7 +3760,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
return rv; return rv;
} }
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
@@ -2007,16 +2018,22 @@ nsLocalFile::Reveal() @@ -2006,16 +2017,22 @@ nsLocalFile::Reveal()
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
#endif #endif
} }

View File

@ -1,13 +1,14 @@
# HG changeset patch # HG changeset patch
# User Wolfgang Rosenauer <wr@rosenauer.org> # User Wolfgang Rosenauer <wr@rosenauer.org>
# Parent 5a29924228527f8882c83cf62d470963ea1ce62e # Parent 5a29924228527f8882c83cf62d470963ea1ce62e
# Parent 55b6ae7fd3ebf28f960031801f1948dfc1bd80d2
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/nsLocaleService.cpp b/intl/locale/nsLocaleService.cpp diff --git a/intl/locale/nsLocaleService.cpp b/intl/locale/nsLocaleService.cpp
--- a/intl/locale/nsLocaleService.cpp --- a/intl/locale/nsLocaleService.cpp
+++ b/intl/locale/nsLocaleService.cpp +++ b/intl/locale/nsLocaleService.cpp
@@ -122,16 +122,17 @@ nsLocaleService::nsLocaleService(void) @@ -122,16 +122,17 @@ nsLocaleService::nsLocaleService(void)
nsRefPtr<nsLocale> resultLocale(new nsLocale()); RefPtr<nsLocale> resultLocale(new nsLocale());
NS_ENSURE_TRUE_VOID(resultLocale); NS_ENSURE_TRUE_VOID(resultLocale);
#ifdef MOZ_WIDGET_QT #ifdef MOZ_WIDGET_QT
@ -24,7 +25,7 @@ diff --git a/intl/locale/nsLocaleService.cpp b/intl/locale/nsLocaleService.cpp
for( i = 0; i < LocaleListLength; i++ ) { for( i = 0; i < LocaleListLength; i++ ) {
nsresult result; nsresult result;
@@ -150,16 +151,21 @@ nsLocaleService::nsLocaleService(void) @@ -158,16 +159,21 @@ nsLocaleService::nsLocaleService(void)
} else { } else {
CopyASCIItoUTF16(lang, platformLocale); CopyASCIItoUTF16(lang, platformLocale);
result = nsPosixLocale::GetXPLocale(lang, xpLocale); result = nsPosixLocale::GetXPLocale(lang, xpLocale);

View File

@ -0,0 +1,25 @@
# HG changeset patch
# User Wolfgang Rosenauer <wr@rosenauer.org>
# Parent e96e9b3997ea31024687aaa1e9aa5ccf78bc0ee9
diff --git a/config/config.mk b/config/config.mk
--- a/config/config.mk
+++ b/config/config.mk
@@ -653,17 +653,16 @@ ifeq ($(MOZ_WIDGET_TOOLKIT),android)
# of the linker command line), if libmozglue.so ends up after libc.so, all
# hell breaks loose, so better safe than sorry, and check it's actually the
# case.
CHECK_MOZGLUE_ORDER = @$(TOOLCHAIN_PREFIX)readelf -d $(1) | grep NEEDED | awk '{ libs[$$NF] = ++n } END { if (libs["[libmozglue.so]"] && libs["[libc.so]"] < libs["[libmozglue.so]"]) { print "libmozglue.so must be linked before libc.so"; exit 1 } }'
endif
define CHECK_BINARY
$(call CHECK_GLIBC,$(1))
-$(call CHECK_STDCXX,$(1))
$(call CHECK_TEXTREL,$(1))
$(call LOCAL_CHECKS,$(1))
$(call CHECK_MOZGLUE_ORDER,$(1))
endef
# autoconf.mk sets OBJ_SUFFIX to an error to avoid use before including
# this file
OBJ_SUFFIX := $(_OBJ_SUFFIX)

View File

@ -1,21 +1,21 @@
diff --git a/mail/installer/package-manifest.in b/mail/installer/package-manifest.in diff --git a/mail/installer/package-manifest.in b/mail/installer/package-manifest.in
--- a/mail/installer/package-manifest.in --- a/mail/installer/package-manifest.in
+++ b/mail/installer/package-manifest.in +++ b/mail/installer/package-manifest.in
@@ -358,16 +358,17 @@ @@ -329,16 +329,17 @@
#ifdef XP_WIN32 @RESPATH@/components/mozldap.xpt
@BINPATH@/nsldap32v60@DLL_SUFFIX@ @RESPATH@/components/nsAbLDAPAttributeMap.js
@BINPATH@/nsldappr32v60@DLL_SUFFIX@ @RESPATH@/components/nsAbLDAPAutoCompleteSearch.js
@BINPATH@/nsldif32v60@DLL_SUFFIX@ @RESPATH@/components/nsLDAPProtocolHandler.js
#else @RESPATH@/components/ldapComponents.manifest
@BINPATH@/@DLL_PREFIX@ldap60@DLL_SUFFIX@ @BINPATH@/@DLL_PREFIX@ldap60@DLL_SUFFIX@
@BINPATH@/@DLL_PREFIX@ldif60@DLL_SUFFIX@ @BINPATH@/@DLL_PREFIX@ldif60@DLL_SUFFIX@
@BINPATH@/@DLL_PREFIX@prldap60@DLL_SUFFIX@ @BINPATH@/@DLL_PREFIX@prldap60@DLL_SUFFIX@
+@BINPATH@/@DLL_PREFIX@ssldap60@DLL_SUFFIX@ +@BINPATH@/@DLL_PREFIX@ssldap60@DLL_SUFFIX@
#endif
; login manager ; download progress for jsdownloads
@RESPATH@/components/loginmgr.xpt @RESPATH@/components/DownloadsStartup.js
@RESPATH@/components/nsLoginInfo.js
@RESPATH@/components/nsLoginManager.js ; Protocol/Content handling
@RESPATH@/components/nsLoginManagerPrompter.js @RESPATH@/components/nsSMTPProtocolHandler.js
@RESPATH@/components/passwordmgr.manifest @RESPATH@/components/nsSMTPProtocolHandler.manifest

View File

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

View File

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