- Mozilla Thunderbird 68.1.0
add-on is required for this account type. IMAP still exists as alternative. * several bugfixes MFSA 2019-30 * CVE-2019-11739 (bmo#1571481) Covert Content Attack on S/MIME encryption using a crafted multipart/alternative message * CVE-2019-11746 (bmo#1564449) Use-after-free while manipulating video * CVE-2019-11744 (bmo#1562033) XSS by breaking out of title and textarea elements using innerHTML * CVE-2019-11742 (bmo#1559715) Same-origin policy violation with SVG filters and canvas to steal * CVE-2019-11752 (bmo#1501152) Use-after-free while extracting a key value in IndexedDB * CVE-2019-11743 (bmo#1560495) Cross-origin access to unload event attributes * CVE-2019-11740 (bmo#1563133,bmo#1573160) Memory safety bugs fixed in Firefox 69, Firefox ESR 68.1, and Firefox ESR 60.9, Thunderbird 68.1, and Thunderbird 60.9 - removed upstreamed fix-build-after-y2038-changes-in-glibc.patch - added thunderbird-locale-build.patch to fix locale build - Add -L flag to the stat call for checking file size of %{SOURCE4}. - Add fix-missing-return-warning.patch to silence a compiler warning. - Mozilla Thunderbird 68.0 * based on Firefox ESR 68 * File link attachments can now be linked to again instead of OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaThunderbird?expand=0&rev=483
This commit is contained in:
parent
b26a281145
commit
08fe2a30d3
@ -1,26 +1,69 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 6 12:09:27 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
Tue Sep 10 07:33:52 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
|
||||
- Mozilla Thunderbird 60.9.0
|
||||
- Mozilla Thunderbird 68.1.0
|
||||
* Offer to configure Exchange accounts for Office365. A third-party
|
||||
add-on is required for this account type. IMAP still exists as alternative.
|
||||
MFSA 2019-27
|
||||
* Use-after-free while manipulating video
|
||||
CVE-2019-11746 (bmo#1564449)
|
||||
* XSS by breaking out of title and textarea elements using innerHTML
|
||||
CVE-2019-11744 (bmo#1562033)
|
||||
* Same-origin policy violation with SVG filters and canvas to steal
|
||||
add-on is required for this account type. IMAP still exists as
|
||||
alternative.
|
||||
* several bugfixes
|
||||
MFSA 2019-30
|
||||
* CVE-2019-11739 (bmo#1571481)
|
||||
Covert Content Attack on S/MIME encryption using a crafted
|
||||
multipart/alternative message
|
||||
* CVE-2019-11746 (bmo#1564449)
|
||||
Use-after-free while manipulating video
|
||||
* CVE-2019-11744 (bmo#1562033)
|
||||
XSS by breaking out of title and textarea elements using innerHTML
|
||||
* CVE-2019-11742 (bmo#1559715)
|
||||
Same-origin policy violation with SVG filters and canvas to steal
|
||||
cross-origin images
|
||||
CVE-2019-11742 (bmo#1559715)
|
||||
* Use-after-free while extracting a key value in IndexedDB
|
||||
CVE-2019-11752 (bmo#1501152)
|
||||
* Sandbox escape through Firefox Sync
|
||||
CVE-2019-9812 (bmo#1538008, bmo#1538015)
|
||||
* Cross-origin access to unload event attributes
|
||||
CVE-2019-11743 (bmo#1560495)
|
||||
Navigation-Timing Level 2 specification
|
||||
* Memory safety bugs fixed in Firefox 69, Firefox ESR 68.1, and Firefox ESR 60.9
|
||||
CVE-2019-11740 (bmo#1563133, bmo#1573160)
|
||||
* CVE-2019-11752 (bmo#1501152)
|
||||
Use-after-free while extracting a key value in IndexedDB
|
||||
* CVE-2019-11743 (bmo#1560495)
|
||||
Cross-origin access to unload event attributes
|
||||
* CVE-2019-11740 (bmo#1563133,bmo#1573160)
|
||||
Memory safety bugs fixed in Firefox 69, Firefox ESR 68.1, and Firefox
|
||||
ESR 60.9, Thunderbird 68.1, and Thunderbird 60.9
|
||||
- removed upstreamed fix-build-after-y2038-changes-in-glibc.patch
|
||||
- added thunderbird-locale-build.patch to fix locale build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 30 07:25:15 UTC 2019 - Manfred Hollstein <manfred.h@gmx.net>
|
||||
|
||||
- Add -L flag to the stat call for checking file size of %{SOURCE4}.
|
||||
- Add fix-missing-return-warning.patch to silence a compiler warning.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 28 12:27:34 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
|
||||
- Mozilla Thunderbird 68.0
|
||||
* based on Firefox ESR 68
|
||||
* File link attachments can now be linked to again instead of
|
||||
uploading them again
|
||||
* Mark all folders of an account as read
|
||||
* Run filters periodically. Improved filter logging
|
||||
* OAuth2 authentication for Yandex
|
||||
* Language packs can now be selected in the Advanced Options.
|
||||
Preference intl.multilingual.enabled needs to be set (and possily
|
||||
also extensions.langpacks.signatures.required needs to be set to false)
|
||||
* Added a policy engine that allows customized Thunderbird deployments
|
||||
in enterprise environments, using Windows Group Policy or a
|
||||
cross-platform JSON file
|
||||
* TCP keepalive for IMAP protocol
|
||||
* Full Unicode support for MAPI interfaces: New support for MAPISendMailW
|
||||
* Calendar: Time zone data can now include past and future changes.
|
||||
All known time zone changes from 2018 to 2022 are included.
|
||||
* Chat: In each conversation an individual spellcheck language can
|
||||
be selected now
|
||||
- removed obsolete patches
|
||||
* mozilla-bmo1463035.patch
|
||||
* mozilla-i586-domPrefs.patch
|
||||
* mozilla-bmo1464766.patch
|
||||
* mozilla-bmo1519629.patch
|
||||
* mozilla-i586-DecoderDoctorLogger.patch
|
||||
* mozilla-bmo1375074.patch
|
||||
- added fix-build-after-y2038-changes-in-glibc.patch to fix build
|
||||
in Tumbleweed (patch already upstream for next release)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 1 11:12:05 UTC 2019 - Tristan Miller <psychonaut@nothingisreal.com>
|
||||
|
@ -17,15 +17,44 @@
|
||||
#
|
||||
|
||||
|
||||
%define mainversion 60.9.0
|
||||
# changed with every update
|
||||
%define major 68
|
||||
%define mainver %major.1.0
|
||||
%define version_postfix %{nil}
|
||||
%define update_channel release
|
||||
%define releasedate 20190902145622
|
||||
%define releasedate 20190909201201
|
||||
%define source_prefix thunderbird-%{mainver}
|
||||
|
||||
# always build with GCC as SUSE Security Team requires that
|
||||
# TODO: Deactivate this as the next step
|
||||
%define clang_build 1
|
||||
|
||||
# PIE, full relro
|
||||
%define build_hardened 1
|
||||
|
||||
%bcond_without mozilla_tb_kde4
|
||||
%bcond_with mozilla_tb_valgrind
|
||||
%bcond_without mozilla_tb_optimize_for_size
|
||||
|
||||
Name: MozillaThunderbird
|
||||
# general build definitions
|
||||
%define progname thunderbird
|
||||
%define pkgname MozillaThunderbird
|
||||
%define appname Thunderbird
|
||||
%define progdir %{_prefix}/%_lib/%{progname}
|
||||
%define gnome_dir %{_prefix}
|
||||
%define desktop_file_name %{progname}
|
||||
%define __provides_exclude ^lib.*\\.so.*$
|
||||
%define __requires_exclude ^(libmoz.*|liblgpllibs.*|libxul.*|libldap.*|libldif.*|libprldap.*)$
|
||||
%define localize 1
|
||||
%ifarch %ix86 x86_64
|
||||
%define crashreporter 1
|
||||
%else
|
||||
%define crashreporter 0
|
||||
%endif
|
||||
|
||||
%define has_system_cairo 0
|
||||
|
||||
Name: %{pkgname}
|
||||
BuildRequires: Mesa-devel
|
||||
BuildRequires: alsa-devel
|
||||
BuildRequires: autoconf213
|
||||
@ -36,21 +65,22 @@ BuildRequires: gcc7-c++
|
||||
%else
|
||||
BuildRequires: gcc-c++
|
||||
%endif
|
||||
BuildRequires: cargo
|
||||
BuildRequires: cargo >= 1.34
|
||||
#BuildRequires: hunspell-devel
|
||||
BuildRequires: libXcomposite-devel
|
||||
BuildRequires: libcurl-devel
|
||||
BuildRequires: libidl-devel
|
||||
BuildRequires: libnotify-devel
|
||||
BuildRequires: memory-constraints
|
||||
BuildRequires: mozilla-nspr-devel >= 4.19
|
||||
BuildRequires: mozilla-nss-devel >= 3.36.8
|
||||
BuildRequires: python
|
||||
BuildRequires: mozilla-nspr-devel >= 4.21
|
||||
BuildRequires: mozilla-nss-devel >= 3.44.1
|
||||
BuildRequires: nasm >= 2.13
|
||||
BuildRequires: nodejs >= 8.11
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: python2-xml
|
||||
BuildRequires: rust >= 1.24
|
||||
%if 0%{?suse_version} <= 1500
|
||||
BuildRequires: rust-std
|
||||
%endif
|
||||
BuildRequires: python3 >= 3.5
|
||||
BuildRequires: rust >= 1.34
|
||||
BuildRequires: rust-cbindgen >= 0.8.7
|
||||
BuildRequires: startup-notification-devel
|
||||
BuildRequires: unzip
|
||||
BuildRequires: update-desktop-files
|
||||
@ -84,7 +114,7 @@ BuildRequires: clang4-devel
|
||||
# therefore the Packman version is required
|
||||
# minimum version of libavcodec is 53
|
||||
Recommends: libavcodec-full >= 0.10.16
|
||||
Version: %{mainversion}
|
||||
Version: %{mainver}
|
||||
Release: 0
|
||||
Provides: MozillaThunderbird-devel = %version
|
||||
Obsoletes: MozillaThunderbird-devel < %version
|
||||
@ -101,7 +131,7 @@ Summary: An integrated email, news feeds, chat, and newsgroups client
|
||||
License: MPL-2.0
|
||||
Group: Productivity/Networking/Email/Clients
|
||||
Url: https://www.thunderbird.net/
|
||||
Source: http://ftp.mozilla.org/pub/thunderbird/releases/%{version}/source/thunderbird-%{version}.source.tar.xz
|
||||
Source: http://ftp.mozilla.org/pub/%{progname}/releases/%{version}%{version_postfix}/source/%{progname}-%{version}%{version_postfix}.source.tar.xz
|
||||
Source1: thunderbird.desktop
|
||||
Source3: mozilla.sh.in
|
||||
Source4: l10n-%{version}.tar.xz
|
||||
@ -114,15 +144,11 @@ Source12: kde.js
|
||||
Source13: https://ftp.mozilla.org/pub/thunderbird/releases/%{version}/source/thunderbird-%{version}.source.tar.xz.asc
|
||||
Source14: http://ftp.mozilla.org/pub/thunderbird/releases/%{version}/KEY#/%{name}.keyring
|
||||
# Gecko/Toolkit
|
||||
Patch2: mozilla-nongnome-proxies.patch
|
||||
Patch3: mozilla-kde.patch
|
||||
Patch6: mozilla-aarch64-startup-crash.patch
|
||||
Patch7: mozilla-bmo1375074.patch
|
||||
Patch8: mozilla-bmo1464766.patch
|
||||
Patch9: mozilla-i586-DecoderDoctorLogger.patch
|
||||
Patch10: mozilla-i586-domPrefs.patch
|
||||
Patch11: mozilla-bmo1463035.patch
|
||||
Patch12: mozilla-bmo1519629.patch
|
||||
Patch1: mozilla-nongnome-proxies.patch
|
||||
Patch2: mozilla-kde.patch
|
||||
Patch3: mozilla-aarch64-startup-crash.patch
|
||||
Patch4: fix-missing-return-warning.patch
|
||||
Patch5: thunderbird-locale-build.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
PreReq: coreutils fileutils textutils /bin/sh
|
||||
Recommends: libcanberra0
|
||||
@ -137,17 +163,13 @@ ExcludeArch: ppc ppc64 s390 s390x
|
||||
%define crashreporter 1
|
||||
%endif
|
||||
%define has_system_cairo 0
|
||||
%define localize 1
|
||||
### build options end
|
||||
%define __provides_exclude ^lib.*\\.so.*$
|
||||
%define __requires_exclude ^(libmoz.*|liblgpllibs.*|libxul.*|libldap.*|libldif.*|libprldap.*)$
|
||||
Requires: mozilla-nspr >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nspr)
|
||||
Requires: mozilla-nss >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nss)
|
||||
Conflicts: thunderbird-esr
|
||||
%define progname thunderbird
|
||||
%define progdir %{_prefix}/%_lib/thunderbird
|
||||
%define libgssapi libgssapi_krb5.so.2
|
||||
%define desktop_file_name thunderbird
|
||||
|
||||
%description
|
||||
Thunderbird is a free, open-source, cross-platform application for
|
||||
@ -158,32 +180,31 @@ yet easy to use.
|
||||
%if %localize
|
||||
|
||||
%package translations-common
|
||||
Summary: Common translations for MozillaThunderbird
|
||||
Summary: Common translations for %{appname}
|
||||
Group: System/Localization
|
||||
Provides: locale(%{name}:ar;ca;cs;da;de;el;en_GB;es_AR;es_ES;fi;fr;hu;it;ja;ko;nb_NO;nl;pl;pt_BR;pt_PT;ru;sv_SE;zh_CN;zh_TW)
|
||||
PreReq: %{name} = %{mainversion}
|
||||
Provides: locale(%{name}:ar;ca;cs;da;de;el;en_GB;es_AR;es_CL;es_ES;fi;fr;hu;it;ja;ko;nb_NO;nl;pl;pt_BR;pt_PT;ru;sv_SE;zh_CN;zh_TW)
|
||||
Requires: %{name} = %{version}
|
||||
Obsoletes: %{name}-translations < %{version}-%{release}
|
||||
|
||||
%description translations-common
|
||||
This package contains several optional languages for the user interface
|
||||
of MozillaThunderbird.
|
||||
|
||||
This package contains several common languages for the user interface
|
||||
of %{appname}.
|
||||
|
||||
%package translations-other
|
||||
Summary: Extra translations for MozillaThunderbird
|
||||
Summary: Extra translations for %{appname}
|
||||
Group: System/Localization
|
||||
Provides: locale(%{name}:ast;be;bg;bn_BD;br;et;eu;fy_NL;ga_IE;gd;gl;he;hr;hy_AM;id;is;lt;nn_NO;pa_IN;rm;ro;si;sk;sl;sq;sr;ta_LK;tr;uk;vi)
|
||||
PreReq: %{name} = %{mainversion}
|
||||
Requires: %{name} = %{version}
|
||||
Obsoletes: %{name}-translations < %{version}-%{release}
|
||||
|
||||
%description translations-other
|
||||
This package contains several optional languages for the user interface
|
||||
of MozillaThunderbird.
|
||||
This package contains rarely used languages for the user interface
|
||||
of %{appname}.
|
||||
%endif
|
||||
|
||||
%if %crashreporter
|
||||
%package buildsymbols
|
||||
Summary: Breakpad buildsymbols for %{name}
|
||||
Summary: Breakpad buildsymbols for %{appname}
|
||||
Group: Development/Debug
|
||||
|
||||
%description buildsymbols
|
||||
@ -192,23 +213,30 @@ symbols meant for upload to Mozilla's crash collector database.
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%setup -n thunderbird-%{version} -q -b 4 -b 11
|
||||
# xulrunner patches
|
||||
%patch2 -p1
|
||||
%if %localize
|
||||
# If generated incorrectly, the tarball will be ~270B in
|
||||
# size, so 1MB seems like good enough limit to check.
|
||||
MINSIZE=1048576
|
||||
if (( $(stat -Lc%s "%{SOURCE4}") < MINSIZE)); then
|
||||
echo "Translations tarball %{SOURCE7} not generated properly."
|
||||
exit 1
|
||||
fi
|
||||
%setup -q -n %{source_prefix} -b 4 -b 11
|
||||
%else
|
||||
%setup -q -n %{source_prefix}
|
||||
%endif
|
||||
%patch1 -p1
|
||||
%if %{with mozilla_tb_kde4}
|
||||
%patch2 -p1
|
||||
%endif
|
||||
%patch3 -p1
|
||||
%endif
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%ifarch %ix86
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%endif
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
|
||||
%build
|
||||
#
|
||||
# Limit RAM usage to avoid OOM
|
||||
|
||||
%define _lto_cflags %{nil}
|
||||
# no need to add build time to binaries
|
||||
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
|
||||
@ -223,6 +251,7 @@ if test "$kdehelperversion" != %{kde_helper_version}; then
|
||||
exit 1
|
||||
fi
|
||||
%endif
|
||||
|
||||
export SUSE_ASNEEDED=0
|
||||
export MOZ_BUILD_DATE=%{releasedate}
|
||||
export MOZILLA_OFFICIAL=1
|
||||
@ -232,33 +261,34 @@ export MOZ_ESR=1
|
||||
%endif
|
||||
%if 0%{?suse_version} <= 1320
|
||||
export CC=gcc-7
|
||||
%else
|
||||
%if 0%{?clang_build} == 0
|
||||
export CC=gcc
|
||||
export CXX=g++
|
||||
%endif
|
||||
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
|
||||
%if 0%{?suse_version} > 1320
|
||||
export CFLAGS="$CFLAGS -fno-delete-null-pointer-checks"
|
||||
%endif
|
||||
%ifarch ppc64 ppc64le
|
||||
export CFLAGS="$CFLAGS -mminimal-toc"
|
||||
%endif
|
||||
%ifarch %arm
|
||||
export CFLAGS="${CFLAGS/-g / }"
|
||||
%endif
|
||||
%ifarch %ix86 %arm
|
||||
%ifarch %arm %ix86
|
||||
# Limit RAM usage during link
|
||||
export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
|
||||
%endif
|
||||
%if 0%{?build_hardened}
|
||||
export LDFLAGS="${LDFLAGS} -fPIC -Wl,-z,relro,-z,now"
|
||||
%endif
|
||||
%ifarch ppc64 ppc64le
|
||||
%if 0%{?clang_build} == 0
|
||||
export CFLAGS="$CFLAGS -mminimal-toc"
|
||||
%endif
|
||||
%endif
|
||||
export CXXFLAGS="$CFLAGS"
|
||||
%ifarch %{arm}
|
||||
%ifarch %{arm} aarch64
|
||||
export RUSTFLAGS="-Cdebuginfo=0"
|
||||
%endif
|
||||
export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
|
||||
%limit_build -m 2000
|
||||
# -g might be part of RPM_OPT_FLAGS, depending on the debuginfo setting in prj config
|
||||
# gcc lacks a an explicit -noop, so use something similar to make sure -g
|
||||
# is not forced into CFLAGS
|
||||
export MOZ_DEBUG_FLAGS="-pipe"
|
||||
#
|
||||
# Limit RAM usage to avoid OOM
|
||||
%limit_build -m 1500
|
||||
cat << EOF > $MOZCONFIG
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
mk_add_options BUILD_OFFICIAL=1
|
||||
@ -279,30 +309,23 @@ ac_add_options --includedir=%{_includedir}
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --disable-debug
|
||||
ac_add_options --enable-alsa
|
||||
# gcc7 (boo#104105)
|
||||
%if 0%{?suse_version} > 1320
|
||||
ac_add_options --enable-optimize="-g -O2"
|
||||
%endif
|
||||
%ifarch %ix86 %arm
|
||||
%if 0%{?suse_version} > 1230
|
||||
#ac_add_options --disable-optimize
|
||||
%endif
|
||||
%endif
|
||||
%ifarch %arm
|
||||
ac_add_options --disable-elf-hack
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
%if 0%{?suse_version} >= 1550
|
||||
ac_add_options --disable-elf-hack
|
||||
%endif
|
||||
%endif
|
||||
ac_add_options --enable-default-toolkit=cairo-gtk3
|
||||
%if 0%{?suse_version} >= 1550
|
||||
ac_add_options --disable-gconf
|
||||
%endif
|
||||
# bmo#1441155 - Disable the generation of Rust debug symbols on Linux32
|
||||
%ifarch %ix86 %arm
|
||||
ac_add_options --disable-debug-symbols
|
||||
%else
|
||||
ac_add_options --enable-debug-symbols
|
||||
%endif
|
||||
%if 0%{?suse_version} > 1549
|
||||
%ifnarch aarch64 ppc64 ppc64le s390x
|
||||
ac_add_options --disable-elf-hack
|
||||
%endif
|
||||
%endif
|
||||
ac_add_options --with-system-nspr
|
||||
ac_add_options --with-system-nss
|
||||
ac_add_options --with-system-jpeg
|
||||
ac_add_options --with-system-zlib
|
||||
ac_add_options --with-l10n-base=$RPM_BUILD_DIR/l10n
|
||||
ac_add_options --disable-updater
|
||||
@ -330,8 +353,8 @@ cd $RPM_BUILD_DIR/obj
|
||||
make -C comm/mail/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
|
||||
# copy tree into RPM_BUILD_ROOT
|
||||
mkdir -p %{buildroot}%{progdir}
|
||||
cp -rf $RPM_BUILD_DIR/obj/dist/thunderbird/* \
|
||||
%{buildroot}%{progdir}
|
||||
cp -rf $RPM_BUILD_DIR/obj/dist/thunderbird/* %{buildroot}%{progdir}
|
||||
install -m 644 %{SOURCE13} %{buildroot}%{progdir}/defaults/pref/
|
||||
%if %{with mozilla_tb_kde4}
|
||||
# install kde.js
|
||||
install -m 644 %{SOURCE12} %{buildroot}%{progdir}/defaults/pref/kde.js
|
||||
@ -341,25 +364,26 @@ echo 'pref("browser.preferences.instantApply", true);' > %{buildroot}%{progdir}/
|
||||
%endif
|
||||
# build additional locales
|
||||
%if %localize
|
||||
mkdir -p %{buildroot}%{progdir}/extensions/
|
||||
truncate -s 0 %{_tmppath}/translations.{common,other}
|
||||
sed -r '/^(ja-JP-mac|en-US|$)/d;s/ .*$//' $RPM_BUILD_DIR/thunderbird-%{version}/comm/mail/locales/shipped-locales \
|
||||
sed -r '/^(ja-JP-mac|en-US|$)/d;s/ .*$//' $RPM_BUILD_DIR/%{source_prefix}/comm/mail/locales/shipped-locales \
|
||||
| xargs -n 1 -I {} /bin/sh -c '
|
||||
locale=$1
|
||||
pushd $RPM_BUILD_DIR/compare-locales
|
||||
PYTHONPATH=lib \
|
||||
scripts/compare-locales -m ../l10n-merged/$locale \
|
||||
../thunderbird-%{version}/comm/mail/locales/l10n.ini ../l10n $locale
|
||||
popd
|
||||
LOCALE_MERGEDIR=$RPM_BUILD_DIR/l10n-merged/$locale \
|
||||
locale=$1
|
||||
pushd $RPM_BUILD_DIR/compare-locales
|
||||
PYTHONPATH=lib \
|
||||
scripts/compare-locales -m ../l10n-merged/$locale \
|
||||
../%{source_prefix}/comm/mail/locales/l10n.ini ../l10n $locale
|
||||
popd
|
||||
LOCALE_MERGEDIR=$RPM_BUILD_DIR/l10n-merged/$locale \
|
||||
make -C comm/mail/locales langpack-$locale
|
||||
cp -rL dist/xpi-stage/locale-$locale \
|
||||
%{buildroot}%{progdir}/extensions/langpack-$locale@thunderbird.mozilla.org
|
||||
# remove prefs and profile defaults from langpack
|
||||
rm -rf %{buildroot}%{progdir}/extensions/langpack-$locale@thunderbird.mozilla.org/defaults
|
||||
# remove prefs and profile defaults from langpack
|
||||
rm -rf %{buildroot}%{progdir}/extensions/langpack-$locale@thunderbird.mozilla.org/defaults
|
||||
# check against the fixed common list and sort into the right filelist
|
||||
_matched=0
|
||||
for _match in ar ca cs da de el en-GB es-AR es-CL es-ES fi fr hu it ja ko nb-NO nl pl pt-BR pt-PT ru sv-SE zh-CN zh-TW; do
|
||||
[ "$_match" = "$locale" ] && _matched=1
|
||||
[ "$_match" = "$locale" ] && _matched=1
|
||||
done
|
||||
[ $_matched -eq 1 ] && _l10ntarget=common || _l10ntarget=other
|
||||
echo %{progdir}/extensions/langpack-$locale@thunderbird.mozilla.org \
|
||||
@ -375,7 +399,7 @@ s:%%PROFILE:.thunderbird:g" \
|
||||
%{SOURCE3} > %{buildroot}%{progdir}/%{progname}.sh
|
||||
chmod 755 %{buildroot}%{progdir}/%{progname}.sh
|
||||
ln -sf ../..%{progdir}/%{progname}.sh %{buildroot}%{_bindir}/%{progname}
|
||||
# freedesktop definition
|
||||
# desktop file
|
||||
mkdir -p %{buildroot}%{_datadir}/applications
|
||||
install -m 644 %{SOURCE1} \
|
||||
%{buildroot}%{_datadir}/applications/%{desktop_file_name}.desktop
|
||||
@ -425,7 +449,7 @@ rm -f %{buildroot}%{progdir}/nspr-config
|
||||
%fdupes %{buildroot}%{_libdir}/mozilla
|
||||
%fdupes %{buildroot}%{_datadir}
|
||||
%if %crashreporter
|
||||
SYMBOLS_NAME="thunderbird-%{mainversion}-%{release}.%{_arch}-%{suse_version}-symbols"
|
||||
SYMBOLS_NAME="thunderbird-%{version}-%{release}.%{_arch}-%{suse_version}-symbols"
|
||||
make buildsymbols \
|
||||
SYMBOL_INDEX_NAME="$SYMBOLS_NAME.txt" \
|
||||
SYMBOL_ARCHIVE_BASENAME="$SYMBOLS_NAME"
|
||||
@ -477,11 +501,8 @@ exit 0
|
||||
%endif
|
||||
%dir %{progdir}/chrome/
|
||||
%{progdir}/chrome/icons/
|
||||
%dir %{progdir}/dictionaries/
|
||||
%{progdir}/distribution/
|
||||
%{progdir}/defaults/
|
||||
%dir %{progdir}/extensions/
|
||||
%{progdir}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
|
||||
%{progdir}/features/
|
||||
%{progdir}/isp/
|
||||
%{_datadir}/appdata/
|
||||
@ -492,9 +513,11 @@ exit 0
|
||||
%if %localize
|
||||
%files translations-common -f %{_tmppath}/translations.common
|
||||
%defattr(-,root,root)
|
||||
%dir %{progdir}/extensions/
|
||||
|
||||
%files translations-other -f %{_tmppath}/translations.other
|
||||
%defattr(-,root,root)
|
||||
%dir %{progdir}/extensions/
|
||||
%endif
|
||||
|
||||
%if %crashreporter
|
||||
|
27
_constraints
27
_constraints
@ -5,20 +5,41 @@
|
||||
<size unit="G">24</size>
|
||||
</disk>
|
||||
<memory>
|
||||
<size unit="G">8</size>
|
||||
<size unit="G">9</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>armv6l</arch>
|
||||
<arch>armv7l</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">12</size>
|
||||
</disk>
|
||||
<memory>
|
||||
<size unit="G">5</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>aarch64</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="G">9</size>
|
||||
<size unit="G">12</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>x86_64</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="G">16</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
</constraints>
|
||||
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:54f7cb6e3d25e9133320a7b031b2821e4dc514fa3d6c32b76f79cca0ca1e82f5
|
||||
size 28512
|
||||
oid sha256:74bff7abaceafcb71628e1be0dede58249467fe36a71bde992ab6e5a350db739
|
||||
size 28500
|
||||
|
297
create-tar.sh
297
create-tar.sh
@ -1,16 +1,127 @@
|
||||
#!/bin/bash
|
||||
|
||||
function print_usage_and_exit() {
|
||||
echo "Usage: create-tar.sh tar_stamp"
|
||||
echo ""
|
||||
echo "Where tar_stamp should look like this:"
|
||||
echo ""
|
||||
cat << EOF
|
||||
# Node ID: 64ee63facd4ff96b3e8590cff559d7e97ac6b061
|
||||
PRODUCT="firefox" # "firefox" or "thunderbird"
|
||||
CHANNEL="esr60"
|
||||
BRANCH="releases/comm-$CHANNEL"
|
||||
RELEASE_TAG="7df22fd675a09804bc39fe54614ca7a68ffdcd68"
|
||||
MOZ_RELEASE_TAG="887a438d43fa73e603704d02ea6756ea4e69eb1d"
|
||||
VERSION="60.9.0"
|
||||
VERSION_SUFFIX=""
|
||||
LOCALE_FILE="thunderbird-$VERSION/comm/mail/locales/l10n-changesets.json"
|
||||
VERSION="60.7.0"
|
||||
VERSION_SUFFIX="esr"
|
||||
FF_RELEASE_TAG="" # Needs only to be set if no tar-ball can be downloaded
|
||||
TB_RELEASE_TAG="" # Only relevant for Thunderbird
|
||||
PREV_VERSION="60.6.3" # Prev. version only needed for locales (leave empty to force l10n-generation)
|
||||
PREV_VERSION_SUFFIX="esr"
|
||||
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
||||
EOF
|
||||
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
print_usage_and_exit
|
||||
fi
|
||||
|
||||
# Sourcing the given tar_stamp-file to have the variables available
|
||||
source "$1" || print_usage_and_exit
|
||||
|
||||
# Internal variables
|
||||
BRANCH="releases/mozilla-$CHANNEL"
|
||||
if [ "$PRODUCT" = "firefox" ]; then
|
||||
LOCALE_FILE="firefox-$VERSION/browser/locales/l10n-changesets.json"
|
||||
else
|
||||
LOCALE_FILE="thunderbird-$VERSION/comm/mail/locales/l10n-changesets.json"
|
||||
fi
|
||||
|
||||
SOURCE_TARBALL="$PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz"
|
||||
FTP_URL="https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source"
|
||||
# Make first letter of PRODCUT upper case
|
||||
PRODUCT_CAP="${PRODUCT^}"
|
||||
LOCALES_URL="https://product-details.mozilla.org/1.0/l10n/$PRODUCT_CAP"
|
||||
# Exit script on CTRL+C
|
||||
trap "exit" INT
|
||||
|
||||
function check_tarball_source () {
|
||||
TARBALL=$1
|
||||
# Print out what is going to be done:
|
||||
if [ -e $TARBALL ]; then
|
||||
echo "Reuse existing file"
|
||||
elif wget --spider $FTP_URL/$TARBALL 2> /dev/null; then
|
||||
echo "Download file"
|
||||
else
|
||||
echo "Mercurial checkout"
|
||||
fi
|
||||
}
|
||||
|
||||
function ask_cont_abort_question() {
|
||||
while true; do
|
||||
read -p "$1 [(c)ontinue/(a)bort] " ca
|
||||
case $ca in
|
||||
[Cc]* ) return 0 ;;
|
||||
[Aa]* ) return 1 ;;
|
||||
* ) echo "Please answer c or a.";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
function check_for_binary() {
|
||||
if ! test -x $1; then
|
||||
echo "$1 is missing: execute zypper in $2"
|
||||
exit 5
|
||||
fi
|
||||
}
|
||||
|
||||
function locales_get() {
|
||||
TMP_VERSION="$1"
|
||||
URL_TO_CHECK="${LOCALES_URL}-${TMP_VERSION}"
|
||||
|
||||
LAST_FOUND=""
|
||||
# Unfortunately, locales-files are not associated to releases, but to builds.
|
||||
# And since we don't know which build was the final build, we go from 9 downwards
|
||||
# try to find the latest one that exists (assuming there are no more than 9 builds).
|
||||
# Error only if not even the first one exists
|
||||
for BUILD_ID in $(seq 9 -1 0); do
|
||||
FINAL_URL="${URL_TO_CHECK}-build${BUILD_ID}.json"
|
||||
if wget --quiet --spider "$FINAL_URL"; then
|
||||
LAST_FOUND="$FINAL_URL"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$LAST_FOUND" != "" ]; then
|
||||
echo "$LAST_FOUND"
|
||||
return 0
|
||||
else
|
||||
echo "Error: Could not find locales-file (json) for Firefox $TMP_VERSION !" 1>&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function locales_parse() {
|
||||
URL="$1"
|
||||
curl -s "$URL" | python -c "import json; import sys; \
|
||||
print('\n'.join(['{} {}'.format(key, value['changeset']) \
|
||||
for key, value in sorted(json.load(sys.stdin)['locales'].items())]));"
|
||||
}
|
||||
|
||||
function locales_unchanged() {
|
||||
# If no json-file for one of the versions can be found, we say "they changed"
|
||||
prev_url=$(locales_get "$PREV_VERSION$PREV_VERSION_SUFFIX") || return 1
|
||||
curr_url=$(locales_get "$VERSION$VERSION_SUFFIX") || return 1
|
||||
|
||||
prev_content=$(locales_parse "$prev_url") || exit 1
|
||||
curr_content=$(locales_parse "$curr_url") || exit 1
|
||||
|
||||
diff -y --suppress-common-lines -d <(echo "$prev_content") <(echo "$curr_content")
|
||||
}
|
||||
|
||||
# check required tools
|
||||
test -x /usr/bin/hg || ( echo "hg missing: execute zypper in mercurial"; exit 5 )
|
||||
test -x /usr/bin/jq || ( echo "jq missing: execute zypper in jq"; exit 5 )
|
||||
check_for_binary /usr/bin/hg "mercurial"
|
||||
check_for_binary /usr/bin/jq "jq"
|
||||
which python > /dev/null || exit 1
|
||||
|
||||
# use parallel compression, if available
|
||||
compression='-J'
|
||||
@ -19,86 +130,142 @@ if (($? != 127)); then
|
||||
compression='-Ipixz'
|
||||
fi
|
||||
|
||||
if [ -z ${SKIP_LOCALES+x} ]; then
|
||||
# TODO: Thunderbird has usually "default" as locale entry.
|
||||
# There we probably need to double-check Firefox-locals
|
||||
# For now, just download every time for Thunderbird
|
||||
if [ "$PRODUCT" = "firefox" ] && [ "$PREV_VERSION" != "" ] && locales_unchanged; then
|
||||
printf "%-40s: Did not change. Skipping.\n" "locales"
|
||||
LOCALES_CHANGED=0
|
||||
else
|
||||
printf "%-40s: Need to download.\n" "locales"
|
||||
LOCALES_CHANGED=1
|
||||
fi
|
||||
else
|
||||
printf "%-40s: User forced skip (SKIP_LOCALES set)\n" "locales"
|
||||
fi
|
||||
|
||||
# Check what is going to be done and ask for consent
|
||||
for ff in $SOURCE_TARBALL $SOURCE_TARBALL.asc; do
|
||||
printf "%-40s: %s\n" $ff "$(check_tarball_source $ff)"
|
||||
done
|
||||
|
||||
$(ask_cont_abort_question "Is this ok?") || exit 0
|
||||
|
||||
# Try to download tar-ball from officiall mozilla-mirror
|
||||
if [ ! -e $SOURCE_TARBALL ]; then
|
||||
wget https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source/$SOURCE_TARBALL
|
||||
fi
|
||||
# including signature
|
||||
if [ ! -e $SOURCE_TARBALL.asc ]; then
|
||||
wget https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source/$SOURCE_TARBALL.asc
|
||||
fi
|
||||
|
||||
# we might have an upstream archive already and can skip the checkout
|
||||
if [ -e thunderbird-$VERSION$VERSION_SUFFIX.source.tar.xz ]; then
|
||||
echo "skip thunderbird checkout and use available archive"
|
||||
# still need to extract the locale information from the archive
|
||||
echo "extract locale list"
|
||||
tar -xf thunderbird-$VERSION$VERSION_SUFFIX.source.tar.xz $LOCALE_FILE
|
||||
# remove non-free untar licenced code from distributed tarball
|
||||
#xz -d -v thunderbird-$VERSION$VERSION_SUFFIX.source.tar.xz && \
|
||||
#tar -v --wildcards --delete -f thunderbird-$VERSION$VERSION_SUFFIX.source.tar \
|
||||
# "thunderbird-${VERSION}/comm/other-licenses/7zstub" \
|
||||
# "thunderbird-${VERSION}/other-licenses/7zstub" \
|
||||
#&& \
|
||||
#xz -9 -v thunderbird-$VERSION$VERSION_SUFFIX.source.tar
|
||||
if [ -e $SOURCE_TARBALL ]; then
|
||||
if [ -z ${SKIP_LOCALES+x} ] && [ $LOCALES_CHANGED -ne 0 ]; then
|
||||
# still need to extract the locale information from the archive
|
||||
echo "extract locale changesets"
|
||||
tar -xf $SOURCE_TARBALL $LOCALE_FILE
|
||||
fi
|
||||
else
|
||||
if [ -d thunderbird-$VERSION ]; then
|
||||
pushd thunderbird-$VERSION
|
||||
# We are working on a version that is not yet published on the mozilla mirror
|
||||
# so we have to actually check out the repo
|
||||
|
||||
# mozilla
|
||||
if [ -d $PRODUCT-$VERSION ]; then
|
||||
pushd $PRODUCT-$VERSION || exit 1
|
||||
_repourl=$(hg paths)
|
||||
case "$_repourl" in
|
||||
*$BRANCH*)
|
||||
echo "updating previous tree"
|
||||
hg pull
|
||||
popd
|
||||
popd || exit 1
|
||||
;;
|
||||
* )
|
||||
echo "removing obsolete tree"
|
||||
popd
|
||||
rm -rf thunderbird-$VERSION
|
||||
popd || exit 1
|
||||
rm -rf $PRODUCT-$VERSION
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -d thunderbird-$VERSION ]; then
|
||||
if [ ! -d $PRODUCT-$VERSION ]; then
|
||||
echo "cloning new $BRANCH..."
|
||||
hg clone http://hg.mozilla.org/releases/mozilla-$CHANNEL thunderbird-$VERSION
|
||||
hg clone http://hg.mozilla.org/releases/comm-$CHANNEL thunderbird-$VERSION/comm
|
||||
hg clone http://hg.mozilla.org/$BRANCH $PRODUCT-$VERSION
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
hg clone http://hg.mozilla.org/releases/comm-$CHANNEL thunderbird-$VERSION/comm
|
||||
fi
|
||||
fi
|
||||
pushd thunderbird-$VERSION
|
||||
hg update --check $MOZ_RELEASE_TAG
|
||||
pushd comm
|
||||
hg update --check $RELEASE_TAG
|
||||
popd
|
||||
popd
|
||||
pushd $PRODUCT-$VERSION || exit 1
|
||||
hg update --check $FF_RELEASE_TAG
|
||||
[ "$FF_RELEASE_TAG" == "default" ] || hg update -r $FF_RELEASE_TAG
|
||||
# get repo and source stamp
|
||||
echo -n "REV=" > ../source-stamp.txt
|
||||
hg -R . parent --template="{node|short}\n" >> ../source-stamp.txt
|
||||
echo -n "REPO=" >> ../source-stamp.txt
|
||||
hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/" >> ../source-stamp.txt
|
||||
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
pushd comm || exit 1
|
||||
hg update --check $TB_RELEASE_TAG
|
||||
popd || exit 1
|
||||
rm -rf thunderbird-${VERSION}/{,comm/}other-licenses/7zstub
|
||||
fi
|
||||
popd || exit 1
|
||||
|
||||
echo "creating archive..."
|
||||
rm -rf thunderbird-${VERSION}/{,comm/}other-licenses/7zstub
|
||||
tar $compression -cf thunderbird-$VERSION.source.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS thunderbird-${VERSION}
|
||||
tar $compression -cf $PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS $PRODUCT-$VERSION
|
||||
fi
|
||||
|
||||
# l10n
|
||||
# http://l10n.mozilla.org/dashboard/?tree=tb30x -> shipped-locales
|
||||
echo "fetching locales..."
|
||||
test ! -d l10n && mkdir l10n
|
||||
jq -r 'to_entries[]| "\(.key) \(.value|.revision)"' $LOCALE_FILE | \
|
||||
while read locale changeset ; do
|
||||
case $locale in
|
||||
ja-JP-mac|en-US)
|
||||
;;
|
||||
*)
|
||||
echo "reading changeset information for $locale"
|
||||
echo "fetching $locale changeset $changeset ..."
|
||||
#(
|
||||
if [ -d l10n/$locale/.hg ]; then
|
||||
(cd l10n/$locale; hg pull)
|
||||
else
|
||||
hg clone http://hg.mozilla.org/l10n-central/$locale l10n/$locale
|
||||
fi
|
||||
[ "$RELEASE_TAG" == "default" ] || hg -R l10n/$locale up -C -r $changeset
|
||||
#) &
|
||||
;;
|
||||
esac
|
||||
done
|
||||
wait
|
||||
echo "creating l10n archive..."
|
||||
tar $compression -cf l10n-$VERSION.tar.xz \
|
||||
--exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=browser \
|
||||
--exclude=suite \
|
||||
if [ ! -z ${SKIP_LOCALES+x} ]; then
|
||||
echo "Skipping locales-creation."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ $LOCALES_CHANGED -ne 0 ]; then
|
||||
# l10n
|
||||
echo "fetching locales..."
|
||||
test ! -d l10n && mkdir l10n
|
||||
jq -r 'to_entries[]| "\(.key) \(.value|.revision)"' $LOCALE_FILE | \
|
||||
while read locale changeset ; do
|
||||
case $locale in
|
||||
ja-JP-mac|en-US)
|
||||
;;
|
||||
*)
|
||||
echo "reading changeset information for $locale"
|
||||
echo "fetching $locale changeset $changeset ..."
|
||||
if [ -d "l10n/$locale/.hg" ]; then
|
||||
pushd "l10n/$locale" || exit 1
|
||||
hg pull
|
||||
popd || exit 1
|
||||
else
|
||||
hg clone "http://hg.mozilla.org/l10n-central/$locale" "l10n/$locale"
|
||||
fi
|
||||
[ "$FF_RELEASE_TAG" == "default" ] || hg -R "l10n/$locale" up -C -r "$changeset"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
echo "creating l10n archive..."
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
TB_TAR_FLAGS="--exclude=browser --exclude=suite"
|
||||
fi
|
||||
tar $compression -cf l10n-$VERSION$VERSION_SUFFIX.tar.xz \
|
||||
--exclude=.hgtags --exclude=.hgignore --exclude=.hg \
|
||||
$TB_TAR_FLAGS \
|
||||
l10n
|
||||
elif [ -f "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" ]; then
|
||||
# Locales did not change, but the old tar-ball is in this directory
|
||||
# Simply rename it:
|
||||
echo "Moving l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz to l10n-$VERSION$VERSION_SUFFIX.tar.xz"
|
||||
mv "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" "l10n-$VERSION$VERSION_SUFFIX.tar.xz"
|
||||
fi
|
||||
|
||||
# compare-locales
|
||||
echo "creating compare-locales"
|
||||
if [ -d compare-locales/.hg ]; then
|
||||
(cd compare-locales; hg pull)
|
||||
pushd compare-locales || exit 1
|
||||
hg pull
|
||||
popd || exit 1
|
||||
else
|
||||
hg clone http://hg.mozilla.org/build/compare-locales
|
||||
fi
|
||||
|
10
fix-missing-return-warning.patch
Normal file
10
fix-missing-return-warning.patch
Normal file
@ -0,0 +1,10 @@
|
||||
diff -rup thunderbird-68.0.orig/media/libcubeb/src/cubeb_utils.cpp thunderbird-68.0/media/libcubeb/src/cubeb_utils.cpp
|
||||
--- thunderbird-68.0.orig/media/libcubeb/src/cubeb_utils.cpp 2019-08-26 23:32:14.000000000 +0200
|
||||
+++ thunderbird-68.0/media/libcubeb/src/cubeb_utils.cpp 2019-08-30 09:22:26.213301561 +0200
|
||||
@@ -20,4 +20,6 @@ size_t cubeb_sample_size(cubeb_sample_fo
|
||||
// should never happen as all cases are handled above.
|
||||
assert(false);
|
||||
}
|
||||
+ // silence the compiler here:
|
||||
+ return 0;
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ddc34550e843aab7beb40c8461451d4fbfe3bcedb832892ff11081f71abe4f2d
|
||||
size 27532252
|
3
l10n-68.1.0.tar.xz
Normal file
3
l10n-68.1.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c541911ac4b533acbdde32928dd825716bec8c64d74a66f0537fd1ad2d95af68
|
||||
size 28439160
|
@ -1,24 +1,22 @@
|
||||
# HG changeset patch
|
||||
# Parent a5cfa3aa11a9d3391df49de6fc5a0e5232c12c10
|
||||
# Parent 85c2e07d2a9ec3e45f55d0e482c7b663626bfc8a
|
||||
Bug 991344 - Rpi3: Firefox crashes after a few seconds of usage
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1558442998 -7200
|
||||
# Tue May 21 14:49:58 2019 +0200
|
||||
# Node ID 386083b58d8558141901d796ec6919a4aba7ad3a
|
||||
# Parent 835641be7eb9408aa1eff0d38b37f6c523d2ef98
|
||||
bsc#991344 - Rpi3: Firefox crashes after a few seconds of usage
|
||||
bmo#1302554 - ARM/AARCH64: Firefox crashes on NULL nsIChannel** result pointer in nsIOService::NewChannelFromURIWithProxyFlagsInternal()
|
||||
|
||||
diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp
|
||||
--- a/netwerk/base/nsIOService.cpp
|
||||
+++ b/netwerk/base/nsIOService.cpp
|
||||
@@ -874,18 +874,23 @@ nsresult nsIOService::NewChannelFromURIW
|
||||
u"Http channel implementation "
|
||||
"doesn't support nsIUploadChannel2. An extension has "
|
||||
"supplied a non-functional http protocol handler. This will "
|
||||
"break behavior and in future releases not work at all.");
|
||||
}
|
||||
gHasWarnedUploadChannel2 = true;
|
||||
diff -r 835641be7eb9 -r 386083b58d85 netwerk/base/nsIOService.cpp
|
||||
--- a/netwerk/base/nsIOService.cpp Fri Feb 26 16:20:09 2016 +0000
|
||||
+++ b/netwerk/base/nsIOService.cpp Tue May 21 14:49:58 2019 +0200
|
||||
@@ -1000,7 +1000,13 @@
|
||||
}
|
||||
}
|
||||
-
|
||||
|
||||
+#if defined(__aarch64__)
|
||||
+ if (result) {
|
||||
+ channel.forget(result);
|
||||
+ channel.forget(result);
|
||||
+ }
|
||||
+#else
|
||||
channel.forget(result);
|
||||
@ -26,8 +24,3 @@ diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsIOService::NewChannelFromURIWithProxyFlags2(
|
||||
nsIURI *aURI, nsIURI *aProxyURI, uint32_t aProxyFlags,
|
||||
nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal,
|
||||
nsIPrincipal *aTriggeringPrincipal, uint32_t aSecurityFlags,
|
||||
|
@ -1,95 +0,0 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Lars T Hansen <lhansen@mozilla.com>
|
||||
# Date 1519822672 -3600
|
||||
# Node ID 800abe66894d6b07b24bccecbf6a65e2261076f6
|
||||
# Parent 6fbe9ec020d822b1deef5b0afe76b905b82308a1
|
||||
Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor. r=sstangl
|
||||
|
||||
diff --git a/js/src/jit-test/tests/bug1375074.js b/js/src/jit-test/tests/bug1375074.js
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/js/src/jit-test/tests/bug1375074.js
|
||||
@@ -0,0 +1,18 @@
|
||||
+// This forces the VM to start creating unboxed objects and thus stresses a
|
||||
+// particular path into generated code for a specialized unboxed object
|
||||
+// constructor.
|
||||
+
|
||||
+var K = 2000; // 2000 should be plenty
|
||||
+var s = "[";
|
||||
+var i;
|
||||
+for ( i=0; i < K-1; i++ )
|
||||
+ s = s + `{"i":${i}},`;
|
||||
+s += `{"i":${i}}]`;
|
||||
+var v = JSON.parse(s);
|
||||
+
|
||||
+assertEq(v.length == K, true);
|
||||
+
|
||||
+for ( i=0; i < K; i++) {
|
||||
+ assertEq(v[i] instanceof Object, true);
|
||||
+ assertEq(v[i].i, i);
|
||||
+}
|
||||
diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp
|
||||
--- a/js/src/vm/UnboxedObject.cpp
|
||||
+++ b/js/src/vm/UnboxedObject.cpp
|
||||
@@ -81,18 +81,25 @@ static const uintptr_t CLEAR_CONSTRUCTOR
|
||||
masm.loadPtr(Address(masm.getStackPointer(), sizeof(void*)), propertiesReg);
|
||||
masm.loadPtr(Address(masm.getStackPointer(), 2 * sizeof(void*)), newKindReg);
|
||||
#else
|
||||
propertiesReg = IntArgReg0;
|
||||
newKindReg = IntArgReg1;
|
||||
#endif
|
||||
|
||||
#ifdef JS_CODEGEN_ARM64
|
||||
- // ARM64 communicates stack address via sp, but uses a pseudo-sp for
|
||||
- // addressing.
|
||||
+ // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for
|
||||
+ // addressing. The register we use for PSP may however also be used by
|
||||
+ // calling code, and it is nonvolatile, so save it. Do this as a special
|
||||
+ // case first because the generic save/restore code needs the PSP to be
|
||||
+ // initialized already.
|
||||
+ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
|
||||
+ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
|
||||
+
|
||||
+ // Initialize the PSP from the SP.
|
||||
masm.initStackPtr();
|
||||
#endif
|
||||
|
||||
MOZ_ASSERT(propertiesReg.volatile_());
|
||||
MOZ_ASSERT(newKindReg.volatile_());
|
||||
|
||||
AllocatableGeneralRegisterSet regs(GeneralRegisterSet::All());
|
||||
regs.take(propertiesReg);
|
||||
@@ -234,17 +241,32 @@ static const uintptr_t CLEAR_CONSTRUCTOR
|
||||
masm.bind(&done);
|
||||
|
||||
if (object != ReturnReg) masm.movePtr(object, ReturnReg);
|
||||
|
||||
// Restore non-volatile registers which were saved on entry.
|
||||
if (ScratchDoubleReg.volatile_()) masm.pop(ScratchDoubleReg);
|
||||
masm.PopRegsInMask(savedNonVolatileRegisters);
|
||||
|
||||
+#ifdef JS_CODEGEN_ARM64
|
||||
+ // Now restore the value that was in the PSP register on entry, and return.
|
||||
+
|
||||
+ // Obtain the correct SP from the PSP.
|
||||
+ masm.Mov(sp, PseudoStackPointer64);
|
||||
+
|
||||
+ // Restore the saved value of the PSP register, this value is whatever the
|
||||
+ // caller had saved in it, not any actual SP value, and it must not be
|
||||
+ // overwritten subsequently.
|
||||
+ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
|
||||
+
|
||||
+ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
|
||||
+ masm.Ret(vixl::lr);
|
||||
+#else
|
||||
masm.abiret();
|
||||
+#endif
|
||||
|
||||
masm.bind(&failureStoreOther);
|
||||
|
||||
// There was a failure while storing a value which cannot be stored at all
|
||||
// in the unboxed object. Initialize the object so it is safe for GC and
|
||||
// return null.
|
||||
masm.initUnboxedObjectContents(object, templateObject);
|
||||
|
@ -1,121 +0,0 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Mike Hommey <mh+mozilla@glandium.org>
|
||||
# Date 1526871862 -32400
|
||||
# Node ID 94f21505ff13cd089f7129cd24927cf8b31a0f43
|
||||
# Parent 3075b562ca9b07ae037c427db6fdbc0ed1ad29a4
|
||||
Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons
|
||||
|
||||
For some reason, GNU as is not happy with the assembly generated after
|
||||
bug 1238661 anymore on Debian armel.
|
||||
|
||||
OTOH, as mentioned in bug 1238661 comment 4, we actually don't need this
|
||||
workaround anymore, so let's just kill it.
|
||||
|
||||
diff --git a/mfbt/LinuxSignal.h b/mfbt/LinuxSignal.h
|
||||
deleted file mode 100644
|
||||
--- a/mfbt/LinuxSignal.h
|
||||
+++ /dev/null
|
||||
@@ -1,38 +0,0 @@
|
||||
-/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
-
|
||||
-#ifndef mozilla_LinuxSignal_h
|
||||
-#define mozilla_LinuxSignal_h
|
||||
-
|
||||
-namespace mozilla {
|
||||
-
|
||||
-#if defined(__arm__)
|
||||
-
|
||||
-// Some (old) Linux kernels on ARM have a bug where a signal handler
|
||||
-// can be called without clearing the IT bits in CPSR first. The result
|
||||
-// is that the first few instructions of the handler could be skipped,
|
||||
-// ultimately resulting in crashes. To workaround this bug, the handler
|
||||
-// on ARM is a trampoline that starts with enough NOP instructions, so
|
||||
-// that even if the IT bits are not cleared, only the NOP instructions
|
||||
-// will be skipped over.
|
||||
-
|
||||
-template <void (*H)(int, siginfo_t*, void*)>
|
||||
-__attribute__((naked)) void SignalTrampoline(int aSignal, siginfo_t* aInfo,
|
||||
- void* aContext) {
|
||||
- asm volatile("nop; nop; nop; nop" : : : "memory");
|
||||
-
|
||||
- asm volatile("b %0" : : "X"(H) : "memory");
|
||||
-}
|
||||
-
|
||||
-#define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline<h>)
|
||||
-
|
||||
-#else // __arm__
|
||||
-
|
||||
-#define MOZ_SIGNAL_TRAMPOLINE(h) (h)
|
||||
-
|
||||
-#endif // __arm__
|
||||
-
|
||||
-} // namespace mozilla
|
||||
-
|
||||
-#endif // mozilla_LinuxSignal_h
|
||||
diff --git a/mfbt/moz.build b/mfbt/moz.build
|
||||
--- a/mfbt/moz.build
|
||||
+++ b/mfbt/moz.build
|
||||
@@ -115,20 +115,16 @@ EXPORTS["double-conversion"] = [
|
||||
LOCAL_INCLUDES += [
|
||||
'/mfbt/double-conversion',
|
||||
]
|
||||
|
||||
if CONFIG['OS_ARCH'] == 'WINNT':
|
||||
EXPORTS.mozilla += [
|
||||
'WindowsVersion.h',
|
||||
]
|
||||
-elif CONFIG['OS_ARCH'] == 'Linux':
|
||||
- EXPORTS.mozilla += [
|
||||
- 'LinuxSignal.h',
|
||||
- ]
|
||||
|
||||
UNIFIED_SOURCES += [
|
||||
'Assertions.cpp',
|
||||
'ChaosMode.cpp',
|
||||
'double-conversion/double-conversion/bignum-dtoa.cc',
|
||||
'double-conversion/double-conversion/bignum.cc',
|
||||
'double-conversion/double-conversion/cached-powers.cc',
|
||||
'double-conversion/double-conversion/diy-fp.cc',
|
||||
diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp
|
||||
--- a/tools/profiler/core/platform-linux-android.cpp
|
||||
+++ b/tools/profiler/core/platform-linux-android.cpp
|
||||
@@ -55,17 +55,16 @@
|
||||
#ifdef __GLIBC__
|
||||
#include <execinfo.h> // backtrace, backtrace_symbols
|
||||
#endif // def __GLIBC__
|
||||
#include <strings.h> // index
|
||||
#include <errno.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "prenv.h"
|
||||
-#include "mozilla/LinuxSignal.h"
|
||||
#include "mozilla/PodOperations.h"
|
||||
#include "mozilla/DebugOnly.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <list>
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
@@ -248,17 +247,17 @@ Sampler::Sampler(PSLockRef aLock)
|
||||
|
||||
// NOTE: We don't initialize LUL here, instead initializing it in
|
||||
// SamplerThread's constructor. This is because with the
|
||||
// profiler_suspend_and_sample_thread entry point, we want to be able to
|
||||
// sample without waiting for LUL to be initialized.
|
||||
|
||||
// Request profiling signals.
|
||||
struct sigaction sa;
|
||||
- sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler);
|
||||
+ sa.sa_sigaction = SigprofHandler;
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sa.sa_flags = SA_RESTART | SA_SIGINFO;
|
||||
if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
|
||||
MOZ_CRASH("Error installing SIGPROF handler in the profiler");
|
||||
}
|
||||
}
|
||||
|
||||
void Sampler::Disable(PSLockRef aLock) {
|
@ -1,140 +0,0 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Mike Hommey <mh+mozilla@glandium.org>
|
||||
# Date 1527491713 -32400
|
||||
# Node ID c28becad0c10b906454d7e424f9a9402799ea8dd
|
||||
# Parent 906f5be6219677928f03318adb1d5e4eed96333c
|
||||
Bug 1464766 - Allow to relax the addon signature requirements. r?rhelmer
|
||||
|
||||
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
|
||||
--- a/modules/libpref/init/all.js
|
||||
+++ b/modules/libpref/init/all.js
|
||||
@@ -1254,16 +1254,19 @@ pref("print.print_via_parent", true);
|
||||
pref("print.print_via_parent", false);
|
||||
#endif
|
||||
|
||||
// Pref used by the spellchecker extension to control the
|
||||
// maximum number of misspelled words that will be underlined
|
||||
// in a document.
|
||||
pref("extensions.spellcheck.inline.max-misspellings", 500);
|
||||
|
||||
+// Add-on manager scoped allowing unsigned addons. None by default.
|
||||
+pref("extensions.unsignedScopes", 12, locked);
|
||||
+
|
||||
// Prefs used by libeditor. Prefs specific to seamonkey composer
|
||||
// belong in comm-central/editor/ui/composer.js
|
||||
|
||||
pref("editor.use_custom_colors", false);
|
||||
pref("editor.singleLine.pasteNewlines", 2);
|
||||
pref("editor.use_css", false);
|
||||
pref("editor.css.default_length_unit", "px");
|
||||
pref("editor.resizing.preserve_ratio", true);
|
||||
diff --git a/toolkit/mozapps/extensions/content/extensions.js b/toolkit/mozapps/extensions/content/extensions.js
|
||||
--- a/toolkit/mozapps/extensions/content/extensions.js
|
||||
+++ b/toolkit/mozapps/extensions/content/extensions.js
|
||||
@@ -47,16 +47,17 @@ XPCOMUtils.defineLazyPreferenceGetter(th
|
||||
const PREF_DISCOVERURL = "extensions.webservice.discoverURL";
|
||||
const PREF_DISCOVER_ENABLED = "extensions.getAddons.showPane";
|
||||
const PREF_GETADDONS_CACHE_ENABLED = "extensions.getAddons.cache.enabled";
|
||||
const PREF_GETADDONS_CACHE_ID_ENABLED = "extensions.%ID%.getAddons.cache.enabled";
|
||||
const PREF_UI_TYPE_HIDDEN = "extensions.ui.%TYPE%.hidden";
|
||||
const PREF_UI_LASTCATEGORY = "extensions.ui.lastCategory";
|
||||
const PREF_LEGACY_EXCEPTIONS = "extensions.legacy.exceptions";
|
||||
const PREF_LEGACY_ENABLED = "extensions.legacy.enabled";
|
||||
+const PREF_UNSIGNED_SCOPES = "extensions.unsignedScopes";
|
||||
|
||||
const LOADING_MSG_DELAY = 100;
|
||||
|
||||
const UPDATES_RECENT_TIMESPAN = 2 * 24 * 3600000; // 2 days (in milliseconds)
|
||||
const UPDATES_RELEASENOTES_TRANSFORMFILE = "chrome://mozapps/content/extensions/updateinfo.xsl";
|
||||
|
||||
const XMLURI_PARSE_ERROR = "http://www.mozilla.org/newlayout/xml/parsererror.xml";
|
||||
|
||||
@@ -229,19 +230,21 @@ function loadView(aViewId) {
|
||||
|
||||
function isCorrectlySigned(aAddon) {
|
||||
// Add-ons without an "isCorrectlySigned" property are correctly signed as
|
||||
// they aren't the correct type for signing.
|
||||
return aAddon.isCorrectlySigned !== false;
|
||||
}
|
||||
|
||||
function isDisabledUnsigned(addon) {
|
||||
- let signingRequired = (addon.type == "locale") ?
|
||||
- AddonSettings.LANGPACKS_REQUIRE_SIGNING :
|
||||
- AddonSettings.REQUIRE_SIGNING;
|
||||
+ let unsignedScopes = Services.prefs.getIntPref(PREF_UNSIGNED_SCOPES, 0);
|
||||
+ let signingRequired = !(addon.scope & unsignedScopes) &&
|
||||
+ ((addon.type == "locale") ?
|
||||
+ AddonSettings.LANGPACKS_REQUIRE_SIGNING :
|
||||
+ AddonSettings.REQUIRE_SIGNING);
|
||||
return signingRequired && !isCorrectlySigned(addon);
|
||||
}
|
||||
|
||||
function isLegacyExtension(addon) {
|
||||
let legacy = false;
|
||||
if (addon.type == "extension" && !addon.isWebExtension) {
|
||||
legacy = true;
|
||||
}
|
||||
diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
|
||||
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
|
||||
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
|
||||
@@ -67,16 +67,17 @@ const PREF_XPI_STATE =
|
||||
const PREF_BLOCKLIST_ITEM_URL = "extensions.blocklist.itemURL";
|
||||
const PREF_BOOTSTRAP_ADDONS = "extensions.bootstrappedAddons";
|
||||
const PREF_PENDING_OPERATIONS = "extensions.pendingOperations";
|
||||
const PREF_SKIN_SWITCHPENDING = "extensions.dss.switchPending";
|
||||
const PREF_SKIN_TO_SELECT = "extensions.lastSelectedSkin";
|
||||
const PREF_GENERAL_SKINS_SELECTEDSKIN = "general.skins.selectedSkin";
|
||||
const PREF_EM_EXTENSION_FORMAT = "extensions.";
|
||||
const PREF_EM_ENABLED_SCOPES = "extensions.enabledScopes";
|
||||
+const PREF_EM_UNSIGNED_SCOPES = "extensions.unsignedScopes";
|
||||
const PREF_EM_STARTUP_SCAN_SCOPES = "extensions.startupScanScopes";
|
||||
const PREF_EM_SHOW_MISMATCH_UI = "extensions.showMismatchUI";
|
||||
const PREF_XPI_ENABLED = "xpinstall.enabled";
|
||||
const PREF_XPI_WHITELIST_REQUIRED = "xpinstall.whitelist.required";
|
||||
const PREF_XPI_DIRECT_WHITELISTED = "xpinstall.whitelist.directRequest";
|
||||
const PREF_XPI_FILE_WHITELISTED = "xpinstall.whitelist.fileRequest";
|
||||
// xpinstall.signatures.required only supported in dev builds
|
||||
const PREF_XPI_SIGNATURES_REQUIRED = "xpinstall.signatures.required";
|
||||
@@ -803,17 +804,19 @@ function isDisabledLegacy(addon) {
|
||||
* The add-on to check
|
||||
* @return true if the add-on should not be appDisabled
|
||||
*/
|
||||
function isUsableAddon(aAddon) {
|
||||
// Hack to ensure the default theme is always usable
|
||||
if (aAddon.type == "theme" && aAddon.internalName == XPIProvider.defaultSkin)
|
||||
return true;
|
||||
|
||||
- if (mustSign(aAddon.type) && !aAddon.isCorrectlySigned) {
|
||||
+ let unsignedScopes = Services.prefs.getIntPref(PREF_EM_UNSIGNED_SCOPES, 0);
|
||||
+ if (!(aAddon._installLocation.scope & unsignedScopes) &&
|
||||
+ mustSign(aAddon.type) && !aAddon.isCorrectlySigned) {
|
||||
logger.warn(`Add-on ${aAddon.id} is not correctly signed.`);
|
||||
if (Services.prefs.getBoolPref(PREF_XPI_SIGNATURES_DEV_ROOT, false)) {
|
||||
logger.warn(`Preference ${PREF_XPI_SIGNATURES_DEV_ROOT} is set.`);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (aAddon.blocklistState == nsIBlocklistService.STATE_BLOCKED) {
|
||||
diff --git a/toolkit/mozapps/extensions/internal/XPIProviderUtils.js b/toolkit/mozapps/extensions/internal/XPIProviderUtils.js
|
||||
--- a/toolkit/mozapps/extensions/internal/XPIProviderUtils.js
|
||||
+++ b/toolkit/mozapps/extensions/internal/XPIProviderUtils.js
|
||||
@@ -39,16 +39,17 @@ var logger = Log.repository.getLogger(LO
|
||||
const KEY_PROFILEDIR = "ProfD";
|
||||
const FILE_JSON_DB = "extensions.json";
|
||||
|
||||
// The last version of DB_SCHEMA implemented in SQLITE
|
||||
const LAST_SQLITE_DB_SCHEMA = 14;
|
||||
const PREF_DB_SCHEMA = "extensions.databaseSchema";
|
||||
const PREF_PENDING_OPERATIONS = "extensions.pendingOperations";
|
||||
const PREF_EM_AUTO_DISABLED_SCOPES = "extensions.autoDisableScopes";
|
||||
+const PREF_EM_UNSIGNED_SCOPES = "extensions.unsignedScopes";
|
||||
|
||||
const KEY_APP_SYSTEM_ADDONS = "app-system-addons";
|
||||
const KEY_APP_SYSTEM_DEFAULTS = "app-system-defaults";
|
||||
const KEY_APP_GLOBAL = "app-global";
|
||||
const KEY_APP_TEMPORARY = "app-temporary";
|
||||
|
||||
// Properties to save in JSON file
|
||||
const PROP_JSON_FIELDS = ["id", "syncGUID", "location", "version", "type",
|
@ -1,66 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent ba0e794338a92e82d4b19e9fb012c848302b7dbd
|
||||
|
||||
diff --git a/servo/components/style/lib.rs b/servo/components/style/lib.rs
|
||||
--- a/servo/components/style/lib.rs
|
||||
+++ b/servo/components/style/lib.rs
|
||||
@@ -18,17 +18,17 @@
|
||||
//! [recalc_style_at]: traversal/fn.recalc_style_at.html
|
||||
//!
|
||||
//! Major dependencies are the [cssparser][cssparser] and [selectors][selectors]
|
||||
//! crates.
|
||||
//!
|
||||
//! [cssparser]: ../cssparser/index.html
|
||||
//! [selectors]: ../selectors/index.html
|
||||
|
||||
-#![deny(missing_docs)]
|
||||
+//#![deny(missing_docs)]
|
||||
|
||||
extern crate app_units;
|
||||
extern crate arrayvec;
|
||||
extern crate atomic_refcell;
|
||||
#[macro_use]
|
||||
extern crate bitflags;
|
||||
#[allow(unused_extern_crates)] extern crate byteorder;
|
||||
#[cfg(feature = "gecko")] #[macro_use] #[no_link] extern crate cfg_if;
|
||||
@@ -143,17 +143,17 @@ pub mod values;
|
||||
#[cfg(feature = "servo")] pub use html5ever::Prefix;
|
||||
#[cfg(feature = "servo")] pub use html5ever::LocalName;
|
||||
#[cfg(feature = "servo")] pub use html5ever::Namespace;
|
||||
|
||||
/// The CSS properties supported by the style system.
|
||||
/// Generated from the properties.mako.rs template by build.rs
|
||||
#[macro_use]
|
||||
#[allow(unsafe_code)]
|
||||
-#[deny(missing_docs)]
|
||||
+//#[deny(missing_docs)]
|
||||
pub mod properties {
|
||||
include!(concat!(env!("OUT_DIR"), "/properties.rs"));
|
||||
}
|
||||
|
||||
// uses a macro from properties
|
||||
#[cfg(feature = "servo")] #[allow(unsafe_code)] pub mod servo;
|
||||
|
||||
#[cfg(feature = "gecko")]
|
||||
diff --git a/servo/components/style_traits/lib.rs b/servo/components/style_traits/lib.rs
|
||||
--- a/servo/components/style_traits/lib.rs
|
||||
+++ b/servo/components/style_traits/lib.rs
|
||||
@@ -4,17 +4,17 @@
|
||||
|
||||
//! This module contains shared types and messages for use by devtools/script.
|
||||
//! The traits are here instead of in script so that the devtools crate can be
|
||||
//! modified independently of the rest of Servo.
|
||||
|
||||
#![crate_name = "style_traits"]
|
||||
#![crate_type = "rlib"]
|
||||
|
||||
-#![deny(unsafe_code, missing_docs)]
|
||||
+#![deny(unsafe_code)]
|
||||
|
||||
extern crate app_units;
|
||||
#[macro_use] extern crate bitflags;
|
||||
#[macro_use] extern crate cssparser;
|
||||
extern crate euclid;
|
||||
extern crate malloc_size_of;
|
||||
#[macro_use] extern crate malloc_size_of_derive;
|
||||
extern crate selectors;
|
@ -1,26 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent f3fe334a20e8a63266eb06c5d298ad793cefc015
|
||||
Mozilla Bug#1447070 - DecoderDoctorLogger.h must be included in MediaKeySession.h
|
||||
to fix non-unified build error for i586 target.
|
||||
|
||||
diff --git a/dom/media/eme/MediaKeySession.h b/dom/media/eme/MediaKeySession.h
|
||||
--- a/dom/media/eme/MediaKeySession.h
|
||||
+++ b/dom/media/eme/MediaKeySession.h
|
||||
@@ -2,16 +2,17 @@
|
||||
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||
/* 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/. */
|
||||
|
||||
#ifndef mozilla_dom_MediaKeySession_h
|
||||
#define mozilla_dom_MediaKeySession_h
|
||||
|
||||
+#include "DecoderDoctorLogger.h"
|
||||
#include "mozilla/Attributes.h"
|
||||
#include "mozilla/ErrorResult.h"
|
||||
#include "nsCycleCollectionParticipant.h"
|
||||
#include "mozilla/DOMEventTargetHelper.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "mozilla/dom/TypedArray.h"
|
||||
#include "mozilla/Mutex.h"
|
||||
#include "mozilla/dom/Date.h"
|
@ -1,27 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User Andrea Marchesini <amarchesini@mozilla.com>
|
||||
# Parent fab938f4757d8487a87fbf911200ff0317612746
|
||||
Mozilla Bug#1447409 - DOMPrefs.h must be included in WorkerScope, r=qdot
|
||||
To fix 32bit build error for i586 target.
|
||||
|
||||
diff --git a/dom/workers/WorkerScope.h b/dom/workers/WorkerScope.h
|
||||
--- a/dom/workers/WorkerScope.h
|
||||
+++ b/dom/workers/WorkerScope.h
|
||||
@@ -4,16 +4,17 @@
|
||||
* 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/. */
|
||||
|
||||
#ifndef mozilla_dom_workerscope_h__
|
||||
#define mozilla_dom_workerscope_h__
|
||||
|
||||
#include "mozilla/dom/WorkerCommon.h"
|
||||
#include "mozilla/DOMEventTargetHelper.h"
|
||||
+#include "mozilla/dom/DOMPrefs.h"
|
||||
#include "mozilla/dom/Headers.h"
|
||||
#include "mozilla/dom/RequestBinding.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "mozilla/dom/ImageBitmapSource.h"
|
||||
|
||||
#ifdef XP_WIN
|
||||
#undef PostMessage
|
||||
#endif
|
@ -1,5 +1,9 @@
|
||||
# HG changeset patch
|
||||
# Parent 58a0b60e25e7160c9877299a37a2f10660888e9a
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1559294891 -7200
|
||||
# Fri May 31 11:28:11 2019 +0200
|
||||
# Node ID c2aa7198fb925e7fde96abf65b6f68b9b755f112
|
||||
# Parent 93495ad6fa0fe292eadcbfef14e0e27273528497
|
||||
Description: Add KDE integration to Firefox (toolkit parts)
|
||||
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
|
||||
Author: Lubos Lunak <lunak@suse.com>
|
||||
@ -9,7 +13,7 @@ Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751
|
||||
diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
--- a/modules/libpref/Preferences.cpp
|
||||
+++ b/modules/libpref/Preferences.cpp
|
||||
@@ -76,16 +76,17 @@
|
||||
@@ -81,16 +81,17 @@
|
||||
#include "nsXPCOMCID.h"
|
||||
#include "nsXPCOM.h"
|
||||
#include "nsXULAppAPI.h"
|
||||
@ -20,14 +24,14 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
#include "prlink.h"
|
||||
+#include "nsKDEUtils.h"
|
||||
|
||||
#ifdef XP_WIN
|
||||
#include "windows.h"
|
||||
#ifdef MOZ_MEMORY
|
||||
# include "mozmemory.h"
|
||||
#endif
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
#ifdef DEBUG
|
||||
@@ -3519,25 +3520,37 @@ static nsresult pref_ReadPrefFromJar(nsZ
|
||||
#ifdef XP_WIN
|
||||
# include "windows.h"
|
||||
#endif
|
||||
@@ -4507,25 +4508,37 @@ static nsresult pref_ReadDefaultPrefs(co
|
||||
// application pref files for backwards compatibility.
|
||||
static const char* specialFiles[] = {
|
||||
#if defined(XP_MACOSX)
|
||||
@ -37,10 +41,10 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
#elif defined(XP_UNIX)
|
||||
"unix.js"
|
||||
+ , "" // placeholder for KDE (empty is otherwise harmless)
|
||||
#if defined(_AIX)
|
||||
# if defined(_AIX)
|
||||
,
|
||||
"aix.js"
|
||||
#endif
|
||||
# endif
|
||||
#elif defined(XP_BEOS)
|
||||
"beos.js"
|
||||
#endif
|
||||
@ -65,7 +69,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
|
||||
// Load jar:$app/omni.jar!/defaults/preferences/*.js
|
||||
// or jar:$gre/omni.jar!/defaults/preferences/*.js.
|
||||
@@ -3585,17 +3598,17 @@ static nsresult pref_ReadPrefFromJar(nsZ
|
||||
@@ -4573,17 +4586,17 @@ static nsresult pref_ReadDefaultPrefs(co
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIFile> path = do_QueryInterface(elem);
|
||||
@ -79,39 +83,39 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef MOZ_WIDGET_ANDROID
|
||||
// Set up the correct default for toolkit.telemetry.enabled. If this build
|
||||
// has MOZ_TELEMETRY_ON_BY_DEFAULT *or* we're on the beta channel, telemetry
|
||||
// is on by default, otherwise not. This is necessary so that beta users who
|
||||
// are testing final release builds don't flipflop defaults.
|
||||
if (XRE_IsParentProcess()) {
|
||||
SetupTelemetryPref();
|
||||
}
|
||||
|
||||
NS_CreateServicesFromCategory(NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID, nullptr,
|
||||
diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
|
||||
--- a/modules/libpref/moz.build
|
||||
+++ b/modules/libpref/moz.build
|
||||
@@ -27,16 +27,20 @@ XPIDL_MODULE = 'pref'
|
||||
EXPORTS.mozilla += [
|
||||
'Preferences.h',
|
||||
@@ -31,16 +31,20 @@ EXPORTS.mozilla += [
|
||||
'StaticPrefs.h',
|
||||
]
|
||||
|
||||
UNIFIED_SOURCES += [
|
||||
'Preferences.cpp',
|
||||
'SharedPrefMap.cpp',
|
||||
]
|
||||
|
||||
+LOCAL_INCLUDES += [
|
||||
+ '/toolkit/xre'
|
||||
+ '/toolkit/xre'
|
||||
+]
|
||||
+
|
||||
XPCOM_MANIFESTS += [
|
||||
'components.conf',
|
||||
]
|
||||
|
||||
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['MOZ_ENABLE_WEBRENDER']:
|
||||
DEFINES['MOZ_ENABLE_WEBRENDER'] = True
|
||||
diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py
|
||||
--- a/python/mozbuild/mozpack/chrome/flags.py
|
||||
+++ b/python/mozbuild/mozpack/chrome/flags.py
|
||||
@@ -220,16 +220,17 @@ class Flags(OrderedDict):
|
||||
@@ -223,16 +223,17 @@ class Flags(OrderedDict):
|
||||
'contentaccessible': Flag,
|
||||
'os': StringFlag,
|
||||
'osversion': VersionFlag,
|
||||
@ -132,7 +136,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
|
||||
--- a/python/mozbuild/mozpack/chrome/manifest.py
|
||||
+++ b/python/mozbuild/mozpack/chrome/manifest.py
|
||||
@@ -34,16 +34,17 @@ class ManifestEntry(object):
|
||||
@@ -39,16 +39,17 @@ class ManifestEntry(object):
|
||||
'platformversion',
|
||||
'os',
|
||||
'osversion',
|
||||
@ -153,7 +157,7 @@ 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
|
||||
--- a/toolkit/components/downloads/moz.build
|
||||
+++ b/toolkit/components/downloads/moz.build
|
||||
@@ -41,10 +41,14 @@ EXTRA_JS_MODULES += [
|
||||
@@ -41,10 +41,14 @@ XPCOM_MANIFESTS += [
|
||||
|
||||
if CONFIG['MOZ_PLACES']:
|
||||
EXTRA_JS_MODULES += [
|
||||
@ -167,34 +171,34 @@ diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloa
|
||||
+]
|
||||
+
|
||||
with Files('**'):
|
||||
BUG_COMPONENT = ('Toolkit', 'Download Manager')
|
||||
BUG_COMPONENT = ('Toolkit', 'Downloads API')
|
||||
diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
|
||||
--- a/toolkit/content/jar.mn
|
||||
+++ b/toolkit/content/jar.mn
|
||||
@@ -69,16 +69,18 @@ toolkit.jar:
|
||||
content/global/bindings/checkbox.xml (widgets/checkbox.xml)
|
||||
content/global/bindings/colorpicker.xml (widgets/colorpicker.xml)
|
||||
@@ -63,16 +63,18 @@ toolkit.jar:
|
||||
content/global/widgets.css
|
||||
content/global/bindings/autocomplete.xml (widgets/autocomplete.xml)
|
||||
content/global/bindings/button.xml (widgets/button.xml)
|
||||
content/global/bindings/calendar.js (widgets/calendar.js)
|
||||
content/global/bindings/datekeeper.js (widgets/datekeeper.js)
|
||||
content/global/bindings/datepicker.js (widgets/datepicker.js)
|
||||
content/global/bindings/datetimepopup.xml (widgets/datetimepopup.xml)
|
||||
content/global/bindings/datetimebox.xml (widgets/datetimebox.xml)
|
||||
content/global/bindings/datetimebox.css (widgets/datetimebox.css)
|
||||
* content/global/bindings/dialog.xml (widgets/dialog.xml)
|
||||
+* content/global/bindings/dialog-kde.xml (widgets/dialog-kde.xml)
|
||||
+% override chrome://global/content/bindings/dialog.xml chrome://global/content/bindings/dialog-kde.xml desktop=kde
|
||||
content/global/bindings/editor.xml (widgets/editor.xml)
|
||||
content/global/bindings/filefield.xml (widgets/filefield.xml)
|
||||
* content/global/bindings/findbar.xml (widgets/findbar.xml)
|
||||
content/global/bindings/general.xml (widgets/general.xml)
|
||||
content/global/bindings/groupbox.xml (widgets/groupbox.xml)
|
||||
content/global/bindings/listbox.xml (widgets/listbox.xml)
|
||||
content/global/bindings/menu.xml (widgets/menu.xml)
|
||||
content/global/bindings/menulist.xml (widgets/menulist.xml)
|
||||
content/global/bindings/popup.xml (widgets/popup.xml)
|
||||
content/global/bindings/richlistbox.xml (widgets/richlistbox.xml)
|
||||
content/global/bindings/scrollbox.xml (widgets/scrollbox.xml)
|
||||
content/global/bindings/spinner.js (widgets/spinner.js)
|
||||
content/global/bindings/tabbox.xml (widgets/tabbox.xml)
|
||||
* content/global/bindings/textbox.xml (widgets/textbox.xml)
|
||||
content/global/bindings/timekeeper.js (widgets/timekeeper.js)
|
||||
diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/dialog-kde.xml
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/toolkit/content/widgets/dialog-kde.xml
|
||||
@@ -0,0 +1,478 @@
|
||||
@@ -0,0 +1,499 @@
|
||||
+<?xml version="1.0"?>
|
||||
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@ -211,9 +215,6 @@ new file mode 100644
|
||||
+ xmlns:xbl="http://www.mozilla.org/xbl">
|
||||
+
|
||||
+ <binding id="dialog">
|
||||
+ <resources>
|
||||
+ <stylesheet src="chrome://global/skin/dialog.css"/>
|
||||
+ </resources>
|
||||
+ <content>
|
||||
+ <xul:vbox class="box-inherit dialog-content-box" flex="1">
|
||||
+ <children/>
|
||||
@ -269,6 +270,11 @@ new file mode 100644
|
||||
+ event.preventDefault();
|
||||
+ })</field>
|
||||
+
|
||||
+ <!-- Gets populated by elements that are passed to document.l10n.setAttributes
|
||||
+ to localize the dialog buttons. Needed to properly size the dialog after
|
||||
+ the asynchronous translation. -->
|
||||
+ <field name="_l10nButtons">[]</field>
|
||||
+
|
||||
+ <property name="buttons"
|
||||
+ onget="return this.getAttribute('buttons');"
|
||||
+ onset="this._configureButtons(val); return val;"/>
|
||||
@ -368,16 +374,32 @@ new file mode 100644
|
||||
+ this._configureButtons(this.buttons);
|
||||
+
|
||||
+ // listen for when window is closed via native close buttons
|
||||
+ window.addEventListener("close", this._closeHandler);
|
||||
+ window.addEventListener("close", this);
|
||||
+
|
||||
+ // for things that we need to initialize after onload fires
|
||||
+ window.addEventListener("load", this.postLoadInit);
|
||||
+ window.addEventListener("load", this);
|
||||
+
|
||||
+ window.moveToAlertPosition = this.moveToAlertPosition;
|
||||
+ window.centerWindowOnScreen = this.centerWindowOnScreen;
|
||||
+ ]]>
|
||||
+ </constructor>
|
||||
+
|
||||
+ <method name="handleEvent">
|
||||
+ <parameter name="aEvent"/>
|
||||
+ <body><![CDATA[
|
||||
+ switch (aEvent.type) {
|
||||
+ case "close": {
|
||||
+ this._closeHandler(aEvent);
|
||||
+ break;
|
||||
+ }
|
||||
+ case "load": {
|
||||
+ this.postLoadInit(aEvent);
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ ]]></body>
|
||||
+ </method>
|
||||
+
|
||||
+ <method name="postLoadInit">
|
||||
+ <parameter name="aEvent"/>
|
||||
+ <body>
|
||||
@ -425,6 +447,12 @@ new file mode 100644
|
||||
+
|
||||
+ // Give focus after onload completes, see bug 103197.
|
||||
+ setTimeout(focusInit, 0);
|
||||
+
|
||||
+ if (this._l10nButtons.length) {
|
||||
+ document.l10n.translateElements(this._l10nButtons).then(() => {
|
||||
+ window.sizeToContent();
|
||||
+ });
|
||||
+ }
|
||||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
@ -471,6 +499,10 @@ new file mode 100644
|
||||
+ buttons.help = document.getAnonymousElementByAttribute(this, "dlgtype", "help");
|
||||
+ buttons.disclosure = document.getAnonymousElementByAttribute(this, "dlgtype", "disclosure");
|
||||
+
|
||||
+ for (let button in buttons) {
|
||||
+ customElements.upgrade(buttons[button]);
|
||||
+ }
|
||||
+
|
||||
+ // look for any overriding explicit button elements
|
||||
+ var exBtns = this.getElementsByAttribute("dlgtype", "*");
|
||||
+ var dlgtype;
|
||||
@ -493,6 +525,9 @@ new file mode 100644
|
||||
+ button.setAttribute("label", this.getAttribute("buttonlabel" + dlgtype));
|
||||
+ if (this.hasAttribute("buttonaccesskey" + dlgtype))
|
||||
+ button.setAttribute("accesskey", this.getAttribute("buttonaccesskey" + dlgtype));
|
||||
+ } else if (this.hasAttribute("buttonid" + dlgtype)) {
|
||||
+ document.l10n.setAttributes(button, this.getAttribute("buttonid" + dlgtype));
|
||||
+ this._l10nButtons.push(button);
|
||||
+ } else if (dlgtype != "extra1" && dlgtype != "extra2") {
|
||||
+ button.setAttribute("label", this.mStrBundle.GetStringFromName("button-" + dlgtype));
|
||||
+ var accessKey = this.mStrBundle.GetStringFromName("accesskey-" + dlgtype);
|
||||
@ -619,19 +654,7 @@ new file mode 100644
|
||||
+ event.initEvent("dialog" + aDlgType, true, true);
|
||||
+
|
||||
+ // handle dom event handlers
|
||||
+ var noCancel = this.dispatchEvent(event);
|
||||
+
|
||||
+ // handle any xml attribute event handlers
|
||||
+ var handler = this.getAttribute("ondialog" + aDlgType);
|
||||
+ if (handler != "") {
|
||||
+ var fn = new Function("event", handler);
|
||||
+ var returned = fn(event);
|
||||
+ // eslint-disable-next-line mozilla/no-compare-against-boolean-literals
|
||||
+ if (returned == false)
|
||||
+ noCancel = false;
|
||||
+ }
|
||||
+
|
||||
+ return noCancel;
|
||||
+ return this.dispatchEvent(event);
|
||||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
@ -665,7 +688,9 @@ new file mode 100644
|
||||
+ <handler event="focus" phase="capturing">
|
||||
+ var btn = this.getButton(this.defaultButton);
|
||||
+ if (btn)
|
||||
+ btn.setAttribute("default", event.originalTarget == btn || !(event.originalTarget instanceof Ci.nsIDOMXULButtonElement));
|
||||
+ btn.setAttribute("default", event.originalTarget == btn ||
|
||||
+ !(event.originalTarget.localName == "button" ||
|
||||
+ event.originalTarget.localName == "toolbarbutton"));
|
||||
+ </handler>
|
||||
+#endif
|
||||
+ </handlers>
|
||||
@ -673,64 +698,32 @@ new file mode 100644
|
||||
+ </binding>
|
||||
+
|
||||
+</bindings>
|
||||
diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downloads/nsHelperAppDlg.js
|
||||
--- a/toolkit/mozapps/downloads/nsHelperAppDlg.js
|
||||
+++ b/toolkit/mozapps/downloads/nsHelperAppDlg.js
|
||||
@@ -627,17 +627,17 @@ nsUnknownContentTypeDialog.prototype = {
|
||||
else
|
||||
typeString = mimeInfo.MIMEType;
|
||||
}
|
||||
// When the length is unknown, contentLength would be -1
|
||||
if (this.mLauncher.contentLength >= 0) {
|
||||
let [size, unit] = DownloadUtils.
|
||||
convertByteUnits(this.mLauncher.contentLength);
|
||||
type.value = this.dialogElement("strings")
|
||||
- .getFormattedString("orderedFileSizeWithType",
|
||||
+ .getFormattedString("orderedFileSizeWithType",
|
||||
[typeString, size, unit]);
|
||||
}
|
||||
else {
|
||||
type.value = typeString;
|
||||
}
|
||||
},
|
||||
|
||||
// Returns true if opening the default application makes sense.
|
||||
@@ -801,17 +801,17 @@ nsUnknownContentTypeDialog.prototype = {
|
||||
switch (this.dialogElement("openHandler").selectedIndex) {
|
||||
case 0:
|
||||
// No app need be specified in this case.
|
||||
ok = true;
|
||||
break;
|
||||
case 1:
|
||||
// only enable the OK button if we have a default app to use or if
|
||||
// the user chose an app....
|
||||
- ok = this.chosenApp || /\S/.test(this.dialogElement("otherHandler").getAttribute("path"));
|
||||
+ ok = this.chosenApp || /\S/.test(this.dialogElement("otherHandler").getAttribute("path"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Enable Ok button if ok to press.
|
||||
this.mDialog.document.documentElement.getButton("accept").disabled = !ok;
|
||||
},
|
||||
|
||||
@@ -1066,30 +1066,60 @@ nsUnknownContentTypeDialog.prototype = {
|
||||
|
||||
if (params.handlerApp &&
|
||||
params.handlerApp.executable &&
|
||||
params.handlerApp.executable.isFile()) {
|
||||
diff --git a/toolkit/mozapps/downloads/HelperAppDlg.jsm b/toolkit/mozapps/downloads/HelperAppDlg.jsm
|
||||
--- a/toolkit/mozapps/downloads/HelperAppDlg.jsm
|
||||
+++ b/toolkit/mozapps/downloads/HelperAppDlg.jsm
|
||||
@@ -1204,36 +1204,66 @@ nsUnknownContentTypeDialog.prototype = {
|
||||
params.handlerApp &&
|
||||
params.handlerApp.executable &&
|
||||
params.handlerApp.executable.isFile()
|
||||
) {
|
||||
// Remember the file they chose to run.
|
||||
this.chosenApp = params.handlerApp;
|
||||
}
|
||||
} else if ("@mozilla.org/applicationchooser;1" in Cc) {
|
||||
- var nsIApplicationChooser = Ci.nsIApplicationChooser;
|
||||
- var appChooser = Cc["@mozilla.org/applicationchooser;1"]
|
||||
- .createInstance(nsIApplicationChooser);
|
||||
- appChooser.init(this.mDialog, this.dialogElement("strings").getString("chooseAppFilePickerTitle"));
|
||||
- var appChooser = Cc["@mozilla.org/applicationchooser;1"].createInstance(
|
||||
- nsIApplicationChooser
|
||||
- );
|
||||
- appChooser.init(
|
||||
- this.mDialog,
|
||||
- this.dialogElement("strings").getString("chooseAppFilePickerTitle")
|
||||
- );
|
||||
- var contentTypeDialogObj = this;
|
||||
- let appChooserCallback = function appChooserCallback_done(aResult) {
|
||||
- if (aResult) {
|
||||
- contentTypeDialogObj.chosenApp = aResult.QueryInterface(Ci.nsILocalHandlerApp);
|
||||
- contentTypeDialogObj.chosenApp = aResult.QueryInterface(
|
||||
- Ci.nsILocalHandlerApp
|
||||
- );
|
||||
- }
|
||||
- contentTypeDialogObj.finishChooseApp();
|
||||
- };
|
||||
@ -767,13 +760,19 @@ diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downl
|
||||
+ });
|
||||
+ } else {
|
||||
+ var nsIApplicationChooser = Ci.nsIApplicationChooser;
|
||||
+ var appChooser = Cc["@mozilla.org/applicationchooser;1"]
|
||||
+ .createInstance(nsIApplicationChooser);
|
||||
+ appChooser.init(this.mDialog, this.dialogElement("strings").getString("chooseAppFilePickerTitle"));
|
||||
+ var appChooser = Cc["@mozilla.org/applicationchooser;1"].createInstance(
|
||||
+ nsIApplicationChooser
|
||||
+ );
|
||||
+ appChooser.init(
|
||||
+ this.mDialog,
|
||||
+ this.dialogElement("strings").getString("chooseAppFilePickerTitle")
|
||||
+ );
|
||||
+ var contentTypeDialogObj = this;
|
||||
+ let appChooserCallback = function appChooserCallback_done(aResult) {
|
||||
+ if (aResult) {
|
||||
+ contentTypeDialogObj.chosenApp = aResult.QueryInterface(Ci.nsILocalHandlerApp);
|
||||
+ contentTypeDialogObj.chosenApp = aResult.QueryInterface(
|
||||
+ Ci.nsILocalHandlerApp
|
||||
+ );
|
||||
+ }
|
||||
+ contentTypeDialogObj.finishChooseApp();
|
||||
+ };
|
||||
@ -783,16 +782,16 @@ diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downl
|
||||
+ }
|
||||
} else {
|
||||
var nsIFilePicker = Ci.nsIFilePicker;
|
||||
var fp = Cc["@mozilla.org/filepicker;1"]
|
||||
.createInstance(nsIFilePicker);
|
||||
fp.init(this.mDialog,
|
||||
this.dialogElement("strings").getString("chooseAppFilePickerTitle"),
|
||||
nsIFilePicker.modeOpen);
|
||||
|
||||
var fp = Cc["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
|
||||
fp.init(
|
||||
this.mDialog,
|
||||
this.dialogElement("strings").getString("chooseAppFilePickerTitle"),
|
||||
nsIFilePicker.modeOpen
|
||||
);
|
||||
diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
@@ -15,16 +15,17 @@
|
||||
@@ -14,16 +14,17 @@
|
||||
#include "nsPrintfCString.h"
|
||||
#include "nsNetCID.h"
|
||||
#include "nsNetUtil.h"
|
||||
@ -803,23 +802,24 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
|
||||
#include "nsIURI.h"
|
||||
+#include "nsKDEUtils.h"
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
class nsUnixSystemProxySettings final : public nsISystemProxySettings {
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSISYSTEMPROXYSETTINGS
|
||||
|
||||
nsUnixSystemProxySettings() : mSchemeProxySettings(4) {}
|
||||
nsresult Init();
|
||||
@@ -42,16 +43,17 @@ class nsUnixSystemProxySettings final :
|
||||
nsACString& aResult);
|
||||
nsresult GetProxyFromGConf(const nsACString& aScheme, const nsACString& aHost,
|
||||
int32_t aPort, nsACString& aResult);
|
||||
@@ -37,16 +38,18 @@ class nsUnixSystemProxySettings final :
|
||||
nsCOMPtr<nsIGSettingsCollection> mProxySettings;
|
||||
nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection>
|
||||
mSchemeProxySettings;
|
||||
nsresult GetProxyFromGSettings(const nsACString& aScheme,
|
||||
const nsACString& aHost, int32_t aPort,
|
||||
nsACString& aResult);
|
||||
nsresult SetProxyResultFromGSettings(const char* aKeyBase, const char* aType,
|
||||
nsACString& aResult);
|
||||
+ 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_ISUPPORTS(nsUnixSystemProxySettings, nsISystemProxySettings)
|
||||
@ -828,7 +828,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
|
||||
nsUnixSystemProxySettings::GetMainThreadOnly(bool* aMainThreadOnly) {
|
||||
// dbus prevents us from being threadsafe, but this routine should not block
|
||||
// anyhow
|
||||
@@ -488,16 +490,19 @@ nsresult nsUnixSystemProxySettings::GetP
|
||||
@@ -382,21 +385,50 @@ nsresult nsUnixSystemProxySettings::GetP
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -844,20 +844,10 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
|
||||
nsresult rv = GetProxyFromGSettings(aScheme, aHost, aPort, aResult);
|
||||
if (NS_SUCCEEDED(rv)) return rv;
|
||||
}
|
||||
if (mGConf) return GetProxyFromGConf(aScheme, aHost, aPort, aResult);
|
||||
|
||||
return GetProxyFromEnvironment(aScheme, aHost, aPort, aResult);
|
||||
}
|
||||
@@ -521,8 +526,34 @@ static const mozilla::Module::CIDEntry k
|
||||
static const mozilla::Module::ContractIDEntry kUnixProxyContracts[] = {
|
||||
{NS_SYSTEMPROXYSETTINGS_CONTRACTID, &kNS_UNIXSYSTEMPROXYSERVICE_CID},
|
||||
{nullptr}};
|
||||
|
||||
static const mozilla::Module kUnixProxyModule = {
|
||||
mozilla::Module::kVersion, kUnixProxyCIDs, kUnixProxyContracts};
|
||||
|
||||
NSMODULE_DEFN(nsUnixProxyModule) = &kUnixProxyModule;
|
||||
+
|
||||
+nsresult
|
||||
+nsUnixSystemProxySettings::GetProxyFromKDE(const nsACString& aScheme,
|
||||
+ const nsACString& aHost,
|
||||
@ -883,10 +873,16 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
|
||||
+ return NS_OK;
|
||||
+}
|
||||
+
|
||||
+
|
||||
NS_IMPL_COMPONENT_FACTORY(nsUnixSystemProxySettings) {
|
||||
auto result = MakeRefPtr<nsUnixSystemProxySettings>();
|
||||
result->Init();
|
||||
return result.forget().downcast<nsISupports>();
|
||||
}
|
||||
diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
|
||||
--- a/toolkit/xre/moz.build
|
||||
+++ b/toolkit/xre/moz.build
|
||||
@@ -65,17 +65,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
|
||||
@@ -83,17 +83,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
|
||||
'../components/printingui',
|
||||
]
|
||||
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit':
|
||||
@ -905,7 +901,7 @@ diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
|
||||
'nsNativeAppSupportDefault.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3':
|
||||
if CONFIG['MOZ_HAS_REMOTE']:
|
||||
diff --git a/toolkit/xre/nsKDEUtils.cpp b/toolkit/xre/nsKDEUtils.cpp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@ -954,7 +950,7 @@ new file mode 100644
|
||||
+ Display* dpy = XOpenDisplay( NULL );
|
||||
+ if( dpy == NULL )
|
||||
+ return false;
|
||||
+ Atom kde_full_session = XInternAtom( dpy, "KDE_FULL_SESSION", True );
|
||||
+ Atom kde_full_session = XInternAtom( dpy, "KDE_FULL_SESSION", true );
|
||||
+ bool kde = false;
|
||||
+ if( kde_full_session != None )
|
||||
+ {
|
||||
@ -1311,7 +1307,8 @@ new file mode 100644
|
||||
diff --git a/uriloader/exthandler/HandlerServiceParent.cpp b/uriloader/exthandler/HandlerServiceParent.cpp
|
||||
--- a/uriloader/exthandler/HandlerServiceParent.cpp
|
||||
+++ b/uriloader/exthandler/HandlerServiceParent.cpp
|
||||
@@ -1,16 +1,16 @@
|
||||
@@ -1,17 +1,17 @@
|
||||
#include "mozilla/ipc/ProtocolUtils.h"
|
||||
#include "mozilla/Logging.h"
|
||||
#include "HandlerServiceParent.h"
|
||||
#include "nsIHandlerService.h"
|
||||
@ -1319,8 +1316,8 @@ diff --git a/uriloader/exthandler/HandlerServiceParent.cpp b/uriloader/exthandle
|
||||
#include "ContentHandlerService.h"
|
||||
#include "nsStringEnumerator.h"
|
||||
#ifdef MOZ_WIDGET_GTK
|
||||
-#include "unix/nsGNOMERegistry.h"
|
||||
+#include "unix/nsCommonRegistry.h"
|
||||
-# include "unix/nsGNOMERegistry.h"
|
||||
+# include "unix/nsCommonRegistry.h"
|
||||
#endif
|
||||
|
||||
using mozilla::dom::ContentHandlerService;
|
||||
@ -1329,13 +1326,13 @@ diff --git a/uriloader/exthandler/HandlerServiceParent.cpp b/uriloader/exthandle
|
||||
using mozilla::dom::RemoteHandlerApp;
|
||||
|
||||
namespace {
|
||||
@@ -245,17 +245,17 @@ mozilla::ipc::IPCResult HandlerServicePa
|
||||
handlerSvc->Exists(info, exists);
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult HandlerServiceParent::RecvExistsForProtocol(
|
||||
@@ -282,17 +282,17 @@ mozilla::ipc::IPCResult HandlerServicePa
|
||||
mozilla::ipc::IPCResult HandlerServiceParent::RecvExistsForProtocolOS(
|
||||
const nsCString& aProtocolScheme, bool* aHandlerExists) {
|
||||
if (aProtocolScheme.Length() > MAX_SCHEME_LENGTH) {
|
||||
*aHandlerExists = false;
|
||||
return IPC_OK();
|
||||
}
|
||||
#ifdef MOZ_WIDGET_GTK
|
||||
// Check the GNOME registry for a protocol handler
|
||||
- *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme.get());
|
||||
@ -1346,12 +1343,31 @@ diff --git a/uriloader/exthandler/HandlerServiceParent.cpp b/uriloader/exthandle
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult HandlerServiceParent::RecvGetTypeFromExtension(
|
||||
const nsCString& aFileExtension, nsCString* type) {
|
||||
/*
|
||||
* Check if a handler exists for the provided protocol. Check the datastore
|
||||
@@ -311,17 +311,17 @@ mozilla::ipc::IPCResult HandlerServicePa
|
||||
nsCOMPtr<nsIExternalProtocolService> protoSvc =
|
||||
do_GetService(NS_EXTERNALPROTOCOLSERVICE_CONTRACTID, &rv);
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
*aHandlerExists = false;
|
||||
return IPC_OK();
|
||||
}
|
||||
rv = protoSvc->ExternalProtocolHandlerExists(aProtocolScheme.get(),
|
||||
aHandlerExists);
|
||||
-
|
||||
+##
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
*aHandlerExists = false;
|
||||
}
|
||||
#else
|
||||
MOZ_RELEASE_ASSERT(false, "No implementation on this platform.");
|
||||
*aHandlerExists = false;
|
||||
#endif
|
||||
return IPC_OK();
|
||||
diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
|
||||
--- a/uriloader/exthandler/moz.build
|
||||
+++ b/uriloader/exthandler/moz.build
|
||||
@@ -77,17 +77,19 @@ else:
|
||||
@@ -83,17 +83,19 @@ else:
|
||||
SOURCES += [
|
||||
osdir + '/nsOSHelperAppService.cpp',
|
||||
]
|
||||
@ -1368,10 +1384,10 @@ diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
|
||||
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
|
||||
UNIFIED_SOURCES += [
|
||||
'android/nsAndroidHandlerApp.cpp',
|
||||
'android/nsExternalSharingAppService.cpp',
|
||||
'android/nsExternalURLHandlerService.cpp',
|
||||
'android/nsMIMEInfoAndroid.cpp',
|
||||
@@ -124,16 +126,17 @@ include('/ipc/chromium/chromium-config.m
|
||||
]
|
||||
@@ -133,16 +135,17 @@ include('/ipc/chromium/chromium-config.m
|
||||
FINAL_LIBRARY = 'xul'
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
@ -1629,19 +1645,19 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
|
||||
#include "nsIIOService.h"
|
||||
#include "nsAutoPtr.h"
|
||||
#ifdef MOZ_ENABLE_DBUS
|
||||
#include "nsDBusHandlerApp.h"
|
||||
# include "nsDBusHandlerApp.h"
|
||||
#endif
|
||||
+#if defined(XP_UNIX) && !defined(XP_MACOSX)
|
||||
+#include "nsKDEUtils.h"
|
||||
+#endif
|
||||
|
||||
nsresult nsMIMEInfoUnix::LoadUriInternal(nsIURI *aURI) {
|
||||
nsresult nsMIMEInfoUnix::LoadUriInternal(nsIURI* aURI) {
|
||||
- return nsGNOMERegistry::LoadURL(aURI);
|
||||
+ return nsCommonRegistry::LoadURL(aURI);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMIMEInfoUnix::GetHasDefaultHandler(bool *_retval) {
|
||||
nsMIMEInfoUnix::GetHasDefaultHandler(bool* _retval) {
|
||||
// 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
|
||||
// give the GNOME answer.
|
||||
@ -1716,8 +1732,8 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
|
||||
#include "nsOSHelperAppService.h"
|
||||
#include "nsMIMEInfoUnix.h"
|
||||
#ifdef MOZ_WIDGET_GTK
|
||||
-#include "nsGNOMERegistry.h"
|
||||
+#include "nsCommonRegistry.h"
|
||||
-# include "nsGNOMERegistry.h"
|
||||
+# include "nsCommonRegistry.h"
|
||||
#endif
|
||||
#include "nsISupports.h"
|
||||
#include "nsString.h"
|
||||
@ -1726,7 +1742,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
|
||||
#include "nsIURL.h"
|
||||
#include "nsIFileStreams.h"
|
||||
#include "nsILineInputStream.h"
|
||||
@@ -1040,17 +1040,17 @@ nsresult nsOSHelperAppService::GetHandle
|
||||
@@ -1025,17 +1025,17 @@ nsresult nsOSHelperAppService::GetHandle
|
||||
|
||||
nsresult nsOSHelperAppService::OSProtocolHandlerExists(
|
||||
const char* aProtocolScheme, bool* aHandlerExists) {
|
||||
@ -1745,7 +1761,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
|
||||
nsCOMPtr<nsIHandlerService> handlerSvc =
|
||||
do_GetService(NS_HANDLERSERVICE_CONTRACTID, &rv);
|
||||
if (NS_SUCCEEDED(rv) && handlerSvc) {
|
||||
@@ -1060,17 +1060,17 @@ nsresult nsOSHelperAppService::OSProtoco
|
||||
@@ -1045,17 +1045,17 @@ nsresult nsOSHelperAppService::OSProtoco
|
||||
}
|
||||
|
||||
return rv;
|
||||
@ -1764,7 +1780,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
|
||||
|
||||
nsresult nsOSHelperAppService::GetFileTokenForPath(
|
||||
const char16_t* platformAppPath, nsIFile** aFile) {
|
||||
@@ -1151,17 +1151,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
|
||||
@@ -1136,17 +1136,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
|
||||
nsresult rv =
|
||||
LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType,
|
||||
minorType, mime_types_description, true);
|
||||
@ -1783,7 +1799,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
|
||||
|
||||
rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType,
|
||||
minorType, mime_types_description, false);
|
||||
@@ -1263,17 +1263,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
|
||||
@@ -1248,17 +1248,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
|
||||
|
||||
// Now look up our extensions
|
||||
nsAutoString extensions, mime_types_description;
|
||||
@ -1805,12 +1821,12 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
|
||||
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
|
||||
--- a/widget/gtk/moz.build
|
||||
+++ b/widget/gtk/moz.build
|
||||
@@ -121,16 +121,17 @@ else:
|
||||
include('/ipc/chromium/chromium-config.mozbuild')
|
||||
@@ -124,16 +124,17 @@ include('/ipc/chromium/chromium-config.m
|
||||
|
||||
FINAL_LIBRARY = 'xul'
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
'/layout/base',
|
||||
'/layout/generic',
|
||||
'/layout/xul',
|
||||
'/other-licenses/atk-1.0',
|
||||
@ -1860,14 +1876,14 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
// bug 1184009
|
||||
#define MAX_PREVIEW_SOURCE_SIZE 4096
|
||||
|
||||
nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr;
|
||||
@@ -225,17 +227,19 @@ nsFilePicker::AppendFilters(int32_t aFil
|
||||
nsIFile* nsFilePicker::mPrevDisplayDirectory = nullptr;
|
||||
@@ -227,17 +229,19 @@ nsFilePicker::AppendFilters(int32_t aFil
|
||||
mAllowURLs = !!(aFilterMask & filterAllowURLs);
|
||||
return nsBaseFilePicker::AppendFilters(aFilterMask);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsFilePicker::AppendFilter(const nsAString &aTitle, const nsAString &aFilter) {
|
||||
nsFilePicker::AppendFilter(const nsAString& aTitle, const nsAString& aFilter) {
|
||||
if (aFilter.EqualsLiteral("..apps")) {
|
||||
// No platform specific thing we can do here, really....
|
||||
- return NS_OK;
|
||||
@ -1882,12 +1898,12 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
|
||||
mFilters.AppendElement(filter);
|
||||
mFilterNames.AppendElement(name);
|
||||
@@ -335,16 +339,39 @@ nsresult nsFilePicker::Show(int16_t *aRe
|
||||
@@ -337,16 +341,39 @@ nsresult nsFilePicker::Show(int16_t* aRe
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsFilePicker::Open(nsIFilePickerShownCallback *aCallback) {
|
||||
nsFilePicker::Open(nsIFilePickerShownCallback* aCallback) {
|
||||
// Can't show two dialogs concurrently with the same filepicker
|
||||
if (mRunning) return NS_ERROR_NOT_AVAILABLE;
|
||||
|
||||
@ -1917,13 +1933,12 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
nsCString title;
|
||||
title.Adopt(ToNewUTF8String(mTitle));
|
||||
|
||||
GtkWindow *parent_widget =
|
||||
GtkWindow* parent_widget =
|
||||
GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET));
|
||||
|
||||
GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
|
||||
|
||||
@@ -572,8 +599,233 @@ void nsFilePicker::Done(GtkWidget *file_
|
||||
if (mCallback) {
|
||||
@@ -572,16 +599,240 @@ void nsFilePicker::Done(void* file_choos
|
||||
mCallback->Done(result);
|
||||
mCallback = nullptr;
|
||||
} else {
|
||||
@ -1931,7 +1946,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
}
|
||||
NS_RELEASE_THIS();
|
||||
}
|
||||
+
|
||||
|
||||
+nsCString nsFilePicker::kdeMakeFilter( int index )
|
||||
+ {
|
||||
+ nsCString buf = mFilters[ index ];
|
||||
@ -2156,10 +2171,18 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
+ return NS_OK;
|
||||
+ }
|
||||
+
|
||||
// All below functions available as of GTK 3.20+
|
||||
void* nsFilePicker::GtkFileChooserNew(const gchar* title, GtkWindow* parent,
|
||||
GtkFileChooserAction action,
|
||||
const gchar* accept_label) {
|
||||
static auto sGtkFileChooserNativeNewPtr =
|
||||
(void* (*)(const gchar*, GtkWindow*, GtkFileChooserAction, const gchar*,
|
||||
const gchar*))dlsym(RTLD_DEFAULT,
|
||||
"gtk_file_chooser_native_new");
|
||||
diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
|
||||
--- a/widget/gtk/nsFilePicker.h
|
||||
+++ b/widget/gtk/nsFilePicker.h
|
||||
@@ -67,14 +67,20 @@ class nsFilePicker : public nsBaseFilePi
|
||||
@@ -67,16 +67,22 @@ class nsFilePicker : public nsBaseFilePi
|
||||
nsString mDefaultExtension;
|
||||
|
||||
nsTArray<nsCString> mFilters;
|
||||
@ -2174,12 +2197,14 @@ diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
|
||||
+ NS_IMETHODIMP kdeAppsDialog(PRInt16 *aReturn);
|
||||
+ nsCString kdeMakeFilter( int index );
|
||||
+
|
||||
#ifdef MOZ_WIDGET_GTK
|
||||
GtkFileChooserWidget* mFileChooserDelegate;
|
||||
#endif
|
||||
};
|
||||
void* GtkFileChooserNew(const gchar* title, GtkWindow* parent,
|
||||
GtkFileChooserAction action,
|
||||
const gchar* accept_label);
|
||||
void GtkFileChooserShow(void* file_chooser);
|
||||
void GtkFileChooserDestroy(void* file_chooser);
|
||||
void GtkFileChooserSetModal(void* file_chooser, GtkWindow* parent_widget,
|
||||
gboolean modal);
|
||||
|
||||
#endif
|
||||
diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp
|
||||
--- a/xpcom/components/ManifestParser.cpp
|
||||
+++ b/xpcom/components/ManifestParser.cpp
|
||||
@ -2200,8 +2225,8 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
const char* directive;
|
||||
int argc;
|
||||
|
||||
// Binary components are only allowed for APP locations.
|
||||
@@ -418,16 +419,17 @@ void ParseManifest(NSLocationType aType,
|
||||
bool ischrome;
|
||||
@@ -393,16 +394,17 @@ void ParseManifest(NSLocationType aType,
|
||||
NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");
|
||||
NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");
|
||||
NS_NAMED_LITERAL_STRING(kApplication, "application");
|
||||
@ -2219,7 +2244,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
NS_NAMED_LITERAL_STRING(kMain, "main");
|
||||
NS_NAMED_LITERAL_STRING(kContent, "content");
|
||||
|
||||
@@ -473,39 +475,44 @@ void ParseManifest(NSLocationType aType,
|
||||
@@ -448,39 +450,44 @@ void ParseManifest(NSLocationType aType,
|
||||
CopyUTF8toUTF16(s, abi);
|
||||
abi.Insert(char16_t('_'), 0);
|
||||
abi.Insert(osTarget, 0);
|
||||
@ -2230,15 +2255,15 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
nsAutoString osVersion;
|
||||
+ nsAutoString desktop;
|
||||
#if defined(XP_WIN)
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4996) // VC12+ deprecates GetVersionEx
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable : 4996) // VC12+ deprecates GetVersionEx
|
||||
OSVERSIONINFO info = {sizeof(OSVERSIONINFO)};
|
||||
if (GetVersionEx(&info)) {
|
||||
nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", info.dwMajorVersion,
|
||||
info.dwMinorVersion);
|
||||
}
|
||||
+ desktop = NS_LITERAL_STRING("win");
|
||||
#pragma warning(pop)
|
||||
# pragma warning(pop)
|
||||
#elif defined(MOZ_WIDGET_COCOA)
|
||||
SInt32 majorVersion = nsCocoaFeatures::OSXVersionMajor();
|
||||
SInt32 minorVersion = nsCocoaFeatures::OSXVersionMinor();
|
||||
@ -2264,7 +2289,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
process = kMain;
|
||||
}
|
||||
|
||||
@@ -608,25 +615,27 @@ void ParseManifest(NSLocationType aType,
|
||||
@@ -567,25 +574,27 @@ void ParseManifest(NSLocationType aType,
|
||||
TriState stOsVersion = eUnspecified;
|
||||
TriState stOs = eUnspecified;
|
||||
TriState stABI = eUnspecified;
|
||||
@ -2292,7 +2317,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -663,17 +672,17 @@ void ParseManifest(NSLocationType aType,
|
||||
@@ -622,17 +631,17 @@ void ParseManifest(NSLocationType aType,
|
||||
}
|
||||
|
||||
LogMessageWithContext(
|
||||
@ -2314,42 +2339,46 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
|
||||
--- a/xpcom/components/moz.build
|
||||
+++ b/xpcom/components/moz.build
|
||||
@@ -44,12 +44,13 @@ FINAL_LIBRARY = 'xul'
|
||||
LOCAL_INCLUDES += [
|
||||
@@ -66,16 +66,17 @@ LOCAL_INCLUDES += [
|
||||
'!..',
|
||||
'../base',
|
||||
'../build',
|
||||
'../ds',
|
||||
'../reflect/xptinfo',
|
||||
'/chrome',
|
||||
'/js/xpconnect/loader',
|
||||
'/layout/build',
|
||||
'/modules/libjar',
|
||||
+ '/toolkit/xre'
|
||||
+ '/toolkit/xre',
|
||||
]
|
||||
|
||||
if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
|
||||
CXXFLAGS += CONFIG['TK_CFLAGS']
|
||||
|
||||
if CONFIG['MOZ_LAYOUT_DEBUGGER']:
|
||||
DEFINES['MOZ_LAYOUT_DEBUGGER'] = True
|
||||
|
||||
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
--- a/xpcom/io/nsLocalFileUnix.cpp
|
||||
+++ b/xpcom/io/nsLocalFileUnix.cpp
|
||||
@@ -47,16 +47,17 @@
|
||||
#include "prproces.h"
|
||||
#include "nsIDirectoryEnumerator.h"
|
||||
#include "nsISimpleEnumerator.h"
|
||||
#include "nsSimpleEnumerator.h"
|
||||
#include "private/pprio.h"
|
||||
#include "prlink.h"
|
||||
|
||||
#ifdef MOZ_WIDGET_GTK
|
||||
#include "nsIGIOService.h"
|
||||
+#include "nsKDEUtils.h"
|
||||
# include "nsIGIOService.h"
|
||||
+# include "nsKDEUtils.h"
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_WIDGET_COCOA
|
||||
#include <Carbon/Carbon.h>
|
||||
#include "CocoaFileUtils.h"
|
||||
#include "prmem.h"
|
||||
#include "plbase64.h"
|
||||
# include <Carbon/Carbon.h>
|
||||
# include "CocoaFileUtils.h"
|
||||
# include "prmem.h"
|
||||
# include "plbase64.h"
|
||||
|
||||
@@ -1901,62 +1902,77 @@ nsLocalFile::SetPersistentDescriptor(con
|
||||
@@ -1902,62 +1903,77 @@ nsLocalFile::SetPersistentDescriptor(con
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsLocalFile::Reveal() {
|
||||
|
@ -1,47 +1,35 @@
|
||||
From: Wolfgang Rosenauer
|
||||
Subject: Do not use gconf for proxy settings if not running within Gnome
|
||||
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer
|
||||
# Date 1558442915 -7200
|
||||
# Tue May 21 14:48:35 2019 +0200
|
||||
# Node ID 6bcf2dfebc1ea2aa34e5cc61152709fc8e409dc5
|
||||
# Parent 4c434d19d03d5461e54fa22dfb82eaed4cd6631b
|
||||
Do not use gconf for proxy settings if not running within Gnome
|
||||
Index: toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
===================================================================
|
||||
RCS file: /cvsroot/mozilla/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp,v
|
||||
retrieving revision 1.1
|
||||
|
||||
diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
@@ -55,24 +55,27 @@ NS_IMETHODIMP
|
||||
nsUnixSystemProxySettings::GetMainThreadOnly(bool* aMainThreadOnly) {
|
||||
// dbus prevents us from being threadsafe, but this routine should not block
|
||||
// anyhow
|
||||
*aMainThreadOnly = true;
|
||||
return NS_OK;
|
||||
diff -r 4c434d19d03d -r 6bcf2dfebc1e toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp Wed Jun 12 17:43:18 2019 +0000
|
||||
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp Tue May 21 14:48:35 2019 +0200
|
||||
@@ -55,11 +55,14 @@
|
||||
}
|
||||
|
||||
nsresult nsUnixSystemProxySettings::Init() {
|
||||
void nsUnixSystemProxySettings::Init() {
|
||||
- mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
|
||||
- if (mGSettings) {
|
||||
- mGSettings->GetCollectionForSchema(
|
||||
- NS_LITERAL_CSTRING("org.gnome.system.proxy"),
|
||||
- getter_AddRefs(mProxySettings));
|
||||
- }
|
||||
- if (!mProxySettings) {
|
||||
- mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
|
||||
+ // only use GSettings if that is a GNOME session
|
||||
+ const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
|
||||
+ if (sessionType && !strcmp(sessionType, "gnome")) {
|
||||
+ mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
|
||||
+ if (mGSettings) {
|
||||
+ mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
|
||||
+ getter_AddRefs(mProxySettings));
|
||||
+ }
|
||||
+ if (!mProxySettings) {
|
||||
+ mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
|
||||
+ mGSettings->GetCollectionForSchema(
|
||||
+ NS_LITERAL_CSTRING("org.gnome.system.proxy"),
|
||||
+ getter_AddRefs(mProxySettings));
|
||||
+ }
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
bool nsUnixSystemProxySettings::IsProxyMode(const char* aMode) {
|
||||
nsAutoCString mode;
|
||||
return NS_SUCCEEDED(mGConf->GetString(
|
||||
|
@ -10,6 +10,7 @@ pref("print.print_edge_left", 16); // 1/100 of an inch
|
||||
pref("print.print_edge_right", 16); // 1/100 of an inch
|
||||
pref("print.print_edge_bottom", 14); // 1/100 of an inch
|
||||
pref("intl.locale.requested", "");
|
||||
pref("intl.multilingual.enabled", true);
|
||||
|
||||
// do not disable system-global or app-global extensions
|
||||
pref("extensions.autoDisableScopes", 3);
|
||||
|
10
tar_stamps
Normal file
10
tar_stamps
Normal file
@ -0,0 +1,10 @@
|
||||
PRODUCT="thunderbird"
|
||||
CHANNEL="esr68"
|
||||
VERSION="68.1.0"
|
||||
VERSION_SUFFIX=""
|
||||
FF_RELEASE_TAG="0efe7ab505b59f1986ebedc0c114a7d24fd93168"
|
||||
TB_RELEASE_TAG="9317dad8cb7fd80a47cb3b40253c73127f776535"
|
||||
PREV_VERSION=""
|
||||
PREV_VERSION_SUFFIX=""
|
||||
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8818180658aeb8853de4cf381700e32907b361f0958bcce78f1590c6962d2d86
|
||||
size 286400364
|
@ -1,17 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.14 (GNU/Linux)
|
||||
|
||||
iQIcBAABCAAGBQJdbtvuAAoJEPGmZo+7fVcuHQgQAIzta3TWhspqaHixVAruX078
|
||||
ory1MSnV81dc96IQPB5qBk/wgHPv3H0SFMxbmvdSr2NSWzbVj/W6oxRJ+rZ0JlyS
|
||||
1nLqTqQrXwoSoI4er/uNAAwhbmSAgVSLx1ImTk6sIgNeofaTrS0dTo5PlFJPgosg
|
||||
SmK9EjwupoWirysN1cjTbH8DxJcgYYd+S4nkdbbJY8UTruYRjrbol4fOCzvNmYB6
|
||||
2og4ZOSivsAq0m6eDbjiQvMW3dJZw5mOW0sGCs4OF8Qi16Jaa8FjCjNGRwE1e5jg
|
||||
IYOS/tgON1fdfTVE4I0YlGPHqx1PH1OLeO9WjcNyW+3HMwZs2A0YrOA7I+0x8RIf
|
||||
oQ4vJSKBugNF9Z0kHh3qBUD5sJt9y/++YffxzgK3Z9sqmPkyzj//R6wzk81sA2xx
|
||||
Lpeb6an08+MKvgT/EoLtZ/1isnbQVTu1/hwQVr9KNWLsbxvb4vl5oteRgZpUM1Fa
|
||||
9Au6Nr/CxtWV1prmOPVwfDaC5j9ca2afJWiW4VSBiY0KUXl/rvn0VXD8P7SmcqgT
|
||||
J5gh9MghSdDjb8YLM5/RGaGgvEVe6nf289N5BkOfUW5uGFPpXxaLvszatTqm9kAP
|
||||
ciwqNECbAeo7sdrPIS79//eR2hHlOa2Lp4WWdDcFEgHD/cCsMjdZ04Q2qf0GYmgP
|
||||
/33tvnMsRIa6invZ6ONt
|
||||
=q4oW
|
||||
-----END PGP SIGNATURE-----
|
3
thunderbird-68.1.0.source.tar.xz
Normal file
3
thunderbird-68.1.0.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:de0e5c7d1d5576f451e386e4779f155b7af97621a4e22caac0c6dee3c9d76eef
|
||||
size 333332920
|
16
thunderbird-68.1.0.source.tar.xz.asc
Normal file
16
thunderbird-68.1.0.source.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEECXsxMHeuYqAvhNpN8aZmj7t9Vy4FAl125ZoACgkQ8aZmj7t9
|
||||
Vy70YBAAm1wopZ2gjKfBXWbfxASnWP+9+WIKa/o62qpJTybDbPGiopMXp/v8fBX5
|
||||
WIIftd7cacl3WQHVWmlaFLwJl6vGo7Zro7AHXkxZ+z28kaokh5HtN5/qwcq6C5Gg
|
||||
2lFMcDGWCKx3qqgRynruEEPCSmQt7JTFEpmGxuCJNYDRbSF01yIsGC6DXi9H/uQr
|
||||
di+YD/iEcdinjSUyZ7vCpBgelgFxF1+kp0DpcBS/1YK/U1Sl4MYfoE8P4SoXETJY
|
||||
t2AVa8t10UlV+B0SMtShK0EN/M5A1H2YCnZsQVsWJRRxDQPbW9TsWpv8GSKbg2uQ
|
||||
sY+uUwHUxB6uqfwMFW1b7i1yfY+vuiXIw/X0DzLSbGqXvfAj0q3Xce5DiMNttuQM
|
||||
JtSrX2p3hdBe9L+xmRuB+2WZHgidPDOh40ICdPCmQnBeVMXWfiMaXZjrGkd7+2TE
|
||||
2dVIFk4SF3fI13b26wgyPEKh/EkodOtaMsd80b64NzogHB3Ouz1t30nvLdtQq5r7
|
||||
j4hh38Pmw2l53WbGXuk40EF6EuLlkRnXyUsftew1b/2CdzQzfW8lvUwyEqHhTJgk
|
||||
I+JVfONgj2z2f/yVvDnMdfTTvSsflWCXzoWjx4MCuKHbxPQK60KIZk9nkTVLO9cL
|
||||
nqZFUgvYzuwkll1JsdaH5HE5WF/p/36EnZT3ngToVGlheQLjZCg=
|
||||
=03dy
|
||||
-----END PGP SIGNATURE-----
|
12
thunderbird-locale-build.patch
Normal file
12
thunderbird-locale-build.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/comm/mail/locales/l10n.ini b/comm/mail/locales/l10n.ini
|
||||
index eac6bfa..8700472 100644
|
||||
--- a/comm/mail/locales/l10n.ini
|
||||
+++ b/comm/mail/locales/l10n.ini
|
||||
@@ -13,5 +13,5 @@ dirs = mail
|
||||
# include toolkit from mozilla.
|
||||
# Don't specify which, use l10n-central.ini and friends if you're
|
||||
# not working on a local check-out
|
||||
-toolkit = mozilla/toolkit/locales/l10n.ini
|
||||
-devtools_client = mozilla/devtools/client/locales/l10n.ini
|
||||
+toolkit = ../toolkit/locales/l10n.ini
|
||||
+devtools_client = ../devtools/client/locales/l10n.ini
|
Loading…
Reference in New Issue
Block a user