- 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:
Wolfgang Rosenauer 2019-09-13 20:15:12 +00:00 committed by Git OBS Bridge
parent b26a281145
commit 08fe2a30d3
24 changed files with 757 additions and 936 deletions

View File

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

View File

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

View File

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

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:54f7cb6e3d25e9133320a7b031b2821e4dc514fa3d6c32b76f79cca0ca1e82f5
size 28512
oid sha256:74bff7abaceafcb71628e1be0dede58249467fe36a71bde992ab6e5a350db739
size 28500

View File

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

View 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;
}

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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() {

View File

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

View File

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

View File

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

View File

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

View File

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

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

View 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