forked from pool/MozillaFirefox
Accepting request 619394 from mozilla:Factory
OBS-URL: https://build.opensuse.org/request/show/619394 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/MozillaFirefox?expand=0&rev=274
This commit is contained in:
commit
570123f4e1
@ -1,9 +1,94 @@
|
||||
-------------------------------------------------------------------
|
||||
Sat Jun 23 07:25:51 UTC 2018 - wr@rosenauer.org
|
||||
|
||||
- update to Firefox 61.0
|
||||
* Performance enhancements
|
||||
* Various improvements for dark theme support will provide a more
|
||||
consistent experience across the entire Firefox UI
|
||||
* OpenSearch plugins offered by web pages can now be added from the
|
||||
page action menu for easier installation
|
||||
* Improved support for allowing WebExtensions to manage and hide tabs
|
||||
MFSA 2018-15 (bsc#1098998)
|
||||
* CVE-2018-12359 (bmo#1459162)
|
||||
Buffer overflow using computed size of canvas element
|
||||
* CVE-2018-12360 (bmo#1459693)
|
||||
Use-after-free when using focus()
|
||||
* CVE-2018-12361 (bmo#1463244)
|
||||
Integer overflow in SwizzleData
|
||||
* CVE-2018-12358 (bmo#1467852)
|
||||
Same-origin bypass using service worker and redirection
|
||||
* CVE-2018-12362 (bmo#1452375)
|
||||
Integer overflow in SSSE3 scaler
|
||||
* CVE-2018-5156 (bmo#1453127)
|
||||
Media recorder segmentation fault when track type is changed during capture
|
||||
* CVE-2018-12363 (bmo#1464784)
|
||||
Use-after-free when appending DOM nodes
|
||||
* CVE-2018-12364 (bmo#1436241)
|
||||
CSRF attacks through 307 redirects and NPAPI plugins
|
||||
* CVE-2018-12365 (bmo#1459206)
|
||||
Compromised IPC child process can list local filenames
|
||||
* CVE-2018-12371 (bmo#1465686)
|
||||
Integer overflow in Skia library during edge builder allocation
|
||||
* CVE-2018-12366 (bmo#1464039)
|
||||
Invalid data handling during QCMS transformations
|
||||
* CVE-2018-12367 (bmo#1462891)
|
||||
Timing attack mitigation of PerformanceNavigationTiming
|
||||
* CVE-2018-12369 (bmo#1454909)
|
||||
WebExtension security permission checks bypassed by embedded experiments
|
||||
* CVE-2018-12370 (bmo#1456652)
|
||||
SameSite cookie protections bypassed when exiting Reader View
|
||||
* CVE-2018-5186 (bmo#1464872,bmo#1463329,bmo#1419373,bmo#1412882,
|
||||
bmo#1413033,bmo#1444673,bmo#1454448,bmo#1453505,bmo#1438671)
|
||||
Memory safety bugs fixed in Firefox 61
|
||||
* CVE-2018-5187 (bmo#1461324,bmo#1414829,bmo#1395246,bmo#1467938,
|
||||
bmo#1461619,bmo#1425930,bmo#1438556,bmo#1454285,bmo#1459568,
|
||||
bmo#1463884)
|
||||
Memory safety bugs fixed in Firefox 60 and Firefox ESR 60.1
|
||||
* CVE-2018-5188 (bmo#1456189,bmo#1456975,bmo#1465898,bmo#1392739,
|
||||
bmo#1451297,bmo#1464063,bmo#1437842,bmo#1442722,bmo#1452576,
|
||||
bmo#1450688,bmo#1458264,bmo#1458270,bmo#1465108,bmo#1464829,
|
||||
bmo#1464079,bmo#1463494,bmo#1458048)
|
||||
Memory safety bugs fixed in Firefox 60, Firefox ESR 60.1, and Firefox ESR 52.9
|
||||
- requires NSS 3.37.3
|
||||
- requires python >= 3.5 to build
|
||||
- removed obsolete patches
|
||||
mozilla-i586-DecoderDoctorLogger.patch
|
||||
mozilla-i586-domPrefs.patch
|
||||
mozilla-fix-skia-aarch64.patch
|
||||
mozilla-bmo1375074.patch
|
||||
mozilla-enable-csd.patch
|
||||
- patch for new no-return warnings (mozilla-no-return.patch)
|
||||
- do not disable system installed locales (mozilla-bmo1464766.patch)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 8 10:52:13 UTC 2018 - bjorn.lie@gmail.com
|
||||
|
||||
- Add conditional for pkgconfig(gconf-2.0) BuildRequires, and pass
|
||||
conditional --disable-gconf to configure: no longer pull in
|
||||
obsolete gconf2 for Tumbleweed.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 7 12:11:06 UTC 2018 - wr@rosenauer.org
|
||||
|
||||
- update to Firefox 60.0.2
|
||||
* requires NSS 3.36.4
|
||||
MFSA 2018-14 (bsc#1096449)
|
||||
* CVE-2018-6126 (bmo#1462682)
|
||||
Heap buffer overflow rasterizing paths in SVG with Skia
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 6 18:57:52 UTC 2018 - guillaume.gardet@opensuse.org
|
||||
|
||||
- Add upstream patch to fix boo#1093059 instead of '-ffixed-x28'
|
||||
workaround:
|
||||
* mozilla-bmo1375074.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat May 26 15:53:25 UTC 2018 - wr@rosenauer.org
|
||||
|
||||
- fixed "open with" option under KDE (boo#1094747)
|
||||
- workaround crash on startup on aarch64 (boo#1093059)
|
||||
(contributed by guillaume@Arm.com)
|
||||
(contributed by guillaume.gardet@arm.com)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 23 08:49:09 UTC 2018 - guillaume.gardet@opensuse.org
|
||||
|
@ -18,12 +18,14 @@
|
||||
|
||||
|
||||
# changed with every update
|
||||
%define major 60
|
||||
%define mainver %major.0.1
|
||||
%define major 61
|
||||
%define mainver %major.0
|
||||
%define orig_version 61.0
|
||||
%define orig_suffix %{nil}
|
||||
%define update_channel release
|
||||
%define branding 1
|
||||
%define releasedate 20180516032328
|
||||
%define source_prefix firefox-%{mainver}
|
||||
%define branding 1
|
||||
%define releasedate 20180621125625
|
||||
%define source_prefix firefox-%{orig_version}
|
||||
|
||||
# PIE, full relro (x86_64 for now)
|
||||
%define build_hardened 1
|
||||
@ -58,6 +60,7 @@ BuildRequires: alsa-devel
|
||||
BuildRequires: autoconf213
|
||||
BuildRequires: dbus-1-glib-devel
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: memory-constraints
|
||||
%if 0%{?suse_version} <= 1320
|
||||
BuildRequires: gcc7-c++
|
||||
%else
|
||||
@ -72,9 +75,10 @@ BuildRequires: libnotify-devel
|
||||
BuildRequires: libproxy-devel
|
||||
BuildRequires: makeinfo
|
||||
BuildRequires: mozilla-nspr-devel >= 4.19
|
||||
BuildRequires: mozilla-nss-devel >= 3.36.1
|
||||
BuildRequires: mozilla-nss-devel >= 3.37.3
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: python2-xml
|
||||
BuildRequires: python3 >= 3.5
|
||||
BuildRequires: rust >= 1.24
|
||||
BuildRequires: rust-std
|
||||
BuildRequires: startup-notification-devel
|
||||
@ -83,7 +87,9 @@ BuildRequires: update-desktop-files
|
||||
BuildRequires: xorg-x11-libXt-devel
|
||||
BuildRequires: yasm
|
||||
BuildRequires: zip
|
||||
%if 0%{?suse_version} < 1550
|
||||
BuildRequires: pkgconfig(gconf-2.0)
|
||||
%endif
|
||||
BuildRequires: pkgconfig(gdk-x11-2.0)
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.22
|
||||
BuildRequires: pkgconfig(gobject-2.0)
|
||||
@ -121,13 +127,13 @@ Summary: Mozilla %{appname} Web Browser
|
||||
License: MPL-2.0
|
||||
Group: Productivity/Networking/Web/Browsers
|
||||
Url: http://www.mozilla.org/
|
||||
Source: http://ftp.mozilla.org/pub/firefox/releases/%{version}/source/firefox-%{version}.source.tar.xz
|
||||
Source: http://ftp.mozilla.org/pub/firefox/releases/%{version}/source/firefox-%{orig_version}%{orig_suffix}.source.tar.xz
|
||||
Source1: MozillaFirefox.desktop
|
||||
Source2: MozillaFirefox-rpmlintrc
|
||||
Source3: mozilla.sh.in
|
||||
Source5: source-stamp.txt
|
||||
Source6: kde.js
|
||||
Source7: l10n-%{version}.tar.xz
|
||||
Source7: l10n-%{orig_version}%{orig_suffix}.tar.xz
|
||||
Source8: firefox-mimeinfo.xml
|
||||
Source9: firefox.js
|
||||
Source10: compare-locales.tar.xz
|
||||
@ -142,7 +148,7 @@ Source16: MozillaFirefox.changes
|
||||
# please get your own set of keys.
|
||||
Source18: mozilla-api-key
|
||||
Source19: google-api-key
|
||||
Source20: http://ftp.mozilla.org/pub/firefox/releases/%{version}/source/firefox-%{version}.source.tar.xz.asc
|
||||
Source20: http://ftp.mozilla.org/pub/firefox/releases/%{version}/source/firefox-%{orig_version}%{orig_suffix}.source.tar.xz.asc
|
||||
Source21: mozilla.keyring
|
||||
# Gecko/Toolkit
|
||||
Patch1: mozilla-nongnome-proxies.patch
|
||||
@ -153,10 +159,8 @@ Patch5: mozilla-no-stdcxx-check.patch
|
||||
Patch6: mozilla-reduce-files-per-UnifiedBindings.patch
|
||||
Patch7: mozilla-aarch64-startup-crash.patch
|
||||
Patch8: mozilla-bmo256180.patch
|
||||
Patch9: mozilla-i586-DecoderDoctorLogger.patch
|
||||
Patch10: mozilla-i586-domPrefs.patch
|
||||
Patch11: mozilla-enable-csd.patch
|
||||
Patch12: mozilla-fix-skia-aarch64.patch
|
||||
Patch9: mozilla-no-return.patch
|
||||
Patch10: mozilla-bmo1464766.patch
|
||||
# Firefox/browser
|
||||
Patch101: firefox-kde.patch
|
||||
Patch102: firefox-branded-icons.patch
|
||||
@ -266,12 +270,8 @@ cd $RPM_BUILD_DIR/%{source_prefix}
|
||||
%endif
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%ifarch %ix86
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%endif
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
# Firefox
|
||||
%patch101 -p1
|
||||
%patch102 -p1
|
||||
@ -305,10 +305,6 @@ export CFLAGS="%{optflags} -fno-strict-aliasing"
|
||||
%if 0%{?suse_version} > 1320
|
||||
export CFLAGS="$CFLAGS -fno-delete-null-pointer-checks"
|
||||
%endif
|
||||
%ifarch aarch64
|
||||
# Workaround crash on startup. boo#1093059
|
||||
export CFLAGS="$CFLAGS -ffixed-x28"
|
||||
%endif
|
||||
%ifarch %arm
|
||||
export CFLAGS="${CFLAGS/-g / }"
|
||||
%endif
|
||||
@ -329,6 +325,7 @@ export CXXFLAGS="$CFLAGS"
|
||||
export RUSTFLAGS="-Cdebuginfo=0"
|
||||
%endif
|
||||
export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
|
||||
%limit_build -m 1500
|
||||
cat << EOF > $MOZCONFIG
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
mk_add_options BUILD_OFFICIAL=1
|
||||
@ -340,6 +337,9 @@ ac_add_options --libdir=%{_libdir}
|
||||
ac_add_options --includedir=%{_includedir}
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --enable-default-toolkit=cairo-gtk3
|
||||
%if 0%{?suse_version} >= 1550
|
||||
ac_add_options --disable-gconf
|
||||
%endif
|
||||
%if 0%{?build_hardened}
|
||||
ac_add_options --enable-pie
|
||||
%endif
|
||||
@ -418,6 +418,7 @@ install -m 644 %{SOURCE6} %{buildroot}%{progdir}/browser/defaults/preferences/kd
|
||||
install -m 644 %{SOURCE9} %{buildroot}%{progdir}/browser/defaults/preferences/firefox.js
|
||||
# install additional locales
|
||||
%if %localize
|
||||
mkdir -p %{buildroot}%{progdir}/browser/extensions
|
||||
truncate -s 0 %{_tmppath}/translations.{common,other}
|
||||
sed -r '/^(ja-JP-mac|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{source_prefix}/browser/locales/shipped-locales \
|
||||
| xargs -P 8 -n 1 -I {} /bin/sh -c '
|
||||
@ -576,11 +577,9 @@ exit 0
|
||||
%dir %{progdir}
|
||||
%dir %{progdir}/browser/
|
||||
%dir %{progdir}/browser/chrome/
|
||||
%dir %{progdir}/browser/extensions/
|
||||
%{progdir}/browser/defaults
|
||||
%{progdir}/browser/features/
|
||||
%{progdir}/browser/chrome/icons
|
||||
%{progdir}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
|
||||
%{progdir}/browser/blocklist.xml
|
||||
%{progdir}/browser/chrome.manifest
|
||||
%{progdir}/browser/omni.ja
|
||||
@ -597,7 +596,6 @@ exit 0
|
||||
%{progdir}/application.ini
|
||||
%{progdir}/chrome.manifest
|
||||
%{progdir}/dependentlibs.list
|
||||
#%{progdir}/icudt*.dat
|
||||
%{progdir}/*.so
|
||||
%{progdir}/omni.ja
|
||||
%{progdir}/fonts/
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:971053a42b39417bb7d549e3de0d4b267732bb961e5178bbc3a2340b58f84b31
|
||||
oid sha256:afe9b5aaf788e86ff4d2249b500e8cd457f7102a04d1d23db0ca6aa629e228d6
|
||||
size 28368
|
||||
|
@ -7,45 +7,15 @@
|
||||
|
||||
CHANNEL="release"
|
||||
BRANCH="releases/mozilla-$CHANNEL"
|
||||
RELEASE_TAG="FIREFOX_60_0_1_RELEASE"
|
||||
VERSION="60.0.1"
|
||||
RELEASE_TAG="785d242a5b01d5f1094882aa2144d8e5e2791e06"
|
||||
VERSION="61.0"
|
||||
VERSION_SUFFIX=""
|
||||
LOCALE_FILE="firefox-$VERSION/browser/locales/l10n-changesets.json"
|
||||
|
||||
# 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 )
|
||||
|
||||
|
||||
# mozilla
|
||||
if [ -d mozilla ]; then
|
||||
pushd mozilla
|
||||
_repourl=$(hg paths)
|
||||
case "$_repourl" in
|
||||
*$BRANCH*)
|
||||
echo "updating previous tree"
|
||||
hg pull
|
||||
popd
|
||||
;;
|
||||
* )
|
||||
echo "removing obsolete tree"
|
||||
popd
|
||||
rm -rf mozilla
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -d mozilla ]; then
|
||||
echo "cloning new $BRANCH..."
|
||||
hg clone http://hg.mozilla.org/$BRANCH mozilla
|
||||
fi
|
||||
pushd mozilla
|
||||
hg update --check
|
||||
[ "$RELEASE_TAG" == "default" ] || hg update -r $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
|
||||
popd
|
||||
|
||||
# use parallel compression, if available
|
||||
compression='-J'
|
||||
pixz -h > /dev/null 2>&1
|
||||
@ -53,13 +23,52 @@ if (($? != 127)); then
|
||||
compression='-Ipixz'
|
||||
fi
|
||||
|
||||
echo "creating archive..."
|
||||
tar $compression -cf firefox-$VERSION.source.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS mozilla
|
||||
# we might have an upstream archive already and can skip the checkout
|
||||
if [ -e firefox-$VERSION$VERSION_SUFFIX.source.tar.xz ]; then
|
||||
echo "skip firefox checkout and use available archive"
|
||||
# still need to extract the locale information from the archive
|
||||
echo "extract locale changesets"
|
||||
tar -xf firefox-$VERSION$VERSION_SUFFIX.source.tar.xz $LOCALE_FILE
|
||||
else
|
||||
# mozilla
|
||||
if [ -d firefox-$VERSION ]; then
|
||||
pushd firefox-$VERSION
|
||||
_repourl=$(hg paths)
|
||||
case "$_repourl" in
|
||||
*$BRANCH*)
|
||||
echo "updating previous tree"
|
||||
hg pull
|
||||
popd
|
||||
;;
|
||||
* )
|
||||
echo "removing obsolete tree"
|
||||
popd
|
||||
rm -rf firefox-$VERSION
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -d firefox-$VERSION ]; then
|
||||
echo "cloning new $BRANCH..."
|
||||
hg clone http://hg.mozilla.org/$BRANCH firefox-$VERSION
|
||||
fi
|
||||
pushd firefox-$VERSION
|
||||
hg update --check
|
||||
[ "$RELEASE_TAG" == "default" ] || hg update -r $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
|
||||
popd
|
||||
|
||||
echo "creating archive..."
|
||||
tar $compression -cf firefox-$VERSION$VERSION_SUFFIX.source.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS firefox-$VERSION
|
||||
fi
|
||||
|
||||
# l10n
|
||||
echo "fetching locales..."
|
||||
test ! -d l10n && mkdir l10n
|
||||
jq -r 'to_entries[]| "\(.key) \(.value|.revision)"' mozilla/browser/locales/l10n-changesets.json | \
|
||||
jq -r 'to_entries[]| "\(.key) \(.value|.revision)"' $LOCALE_FILE | \
|
||||
while read locale changeset ; do
|
||||
case $locale in
|
||||
ja-JP-mac|en-US)
|
||||
@ -73,7 +82,7 @@ jq -r 'to_entries[]| "\(.key) \(.value|.revision)"' mozilla/browser/locales/l10n
|
||||
esac
|
||||
done
|
||||
echo "creating l10n archive..."
|
||||
tar $compression -cf l10n-$VERSION.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg l10n
|
||||
tar $compression -cf l10n-$VERSION$VERSION_SUFFIX.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg l10n
|
||||
|
||||
# compare-locales
|
||||
echo "creating compare-locales"
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c8e621c7dfccbef14cce41a6847b83bee15b5276cd0c35771c3874e464e6a662
|
||||
size 267804748
|
@ -1,17 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.14 (GNU/Linux)
|
||||
|
||||
iQIcBAABCAAGBQJa+8WlAAoJELu+vbskxvNV+JAP/Awb2XYbSOgKOZapZ6+wa7W5
|
||||
RnnGiVL2OtaMm+2XJDcKrYYolw57OKb1vnpHrpgUkq1NQ3W8yknLnFMue0chY0Lk
|
||||
gfOeyUGKK/mDPxvq1+qbuwkYnVvkRQNvvy7J33jqWLWc0sai1zI5djjounqsHstD
|
||||
KL/alWqoBRux627m0QSGZ4+a5ex87aOKfYlMgCX0qI0j+h1Grx2P3BpN414At1jf
|
||||
N4kI5vjAQSvPu8Xw7bwtbBrpctf2Ufwv8B9kcnM7018KxV3j8LukpceHYjApMY5D
|
||||
ROCD09lYqnmhbv7hJN9wSYIG5EG0bCQ+bsw9TJdiCPwBSw0i0tAL6SkMUhLiuB8d
|
||||
gau9Ed9QkSFBsu+a0M5Y61cwFWSm/HI9Ya2wvc3rYGn2njtrOhUFBWm7PAsiKM8P
|
||||
bwZkB8+KTAu31dgeIC/uXRjOGuHkdK7+WU1HjbZhbGZIIn2zawJfdT3IJKk6hHIk
|
||||
gDkcYKL0amnSFaoUXcvlLZfnEWcv+uEhGbGztE7ztA9Vo1IfLzXQtduGdn0F1fp/
|
||||
sZ/Q1N1liZkVwK0GtV4+GUxIs5d0XCTZ4tNPeQ82+ePbQjo7HavJBE8gTrbj06Ui
|
||||
Q4gdxdhsyuKkF8iaDx0Ft92KhZKiLyGgP3vcb025wj8l58nBCNnn2j9UDyholuDL
|
||||
Xs2b4IADNmSPjxHqRgNh
|
||||
=m07A
|
||||
-----END PGP SIGNATURE-----
|
3
firefox-61.0.source.tar.xz
Normal file
3
firefox-61.0.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3453e8ac7c602390bda0d34a4a636e0d65fd89d9ae69f7aa1740926715c42268
|
||||
size 266932956
|
17
firefox-61.0.source.tar.xz.asc
Normal file
17
firefox-61.0.source.tar.xz.asc
Normal file
@ -0,0 +1,17 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.14 (GNU/Linux)
|
||||
|
||||
iQIcBAABCAAGBQJbLAYAAAoJELu+vbskxvNV74MQAImAjaPBzW2ytG6f3pK8A4VB
|
||||
fwhex7/7gaJv+Y5YdcIolRRMEzUJ7dVqPkoiQK+fE5yc3HX+/Vs5/YnGa6nt8Tml
|
||||
+cootnuiXnONb3wClUByLbgFw2vfE7uy6vgoL2HaoWYKGVMo1n3zvs24upi6w3XV
|
||||
rbj0vvHY1Y7GfCUIuU8S85VYRxvtQB+UcGEUXy6Rtpb/hyPqzPqgctMRUmfLGUUr
|
||||
rTxgHhmOlPoMsCYp1QeFzhmAwHXa88I57KjIchMsVZhOWQ9rUQzU1WXSmIvUEU6C
|
||||
ukpouiFd7mMRkNpSVa86r+IWR40y6C8YpXq/yE3aSYiVZugenC3R2BkkAhBd5u++
|
||||
4AZN+yE7saA8EESmSGJ3BPKFe+4237Ux6cmpRjRjRMM805RdD2CBxuInYe07WSaY
|
||||
jQpV0zQY/AOI5m9wdqsH32F1u7B9GUt4u7L2wsOnvDT244OWL3OFWr1H1pGdWosJ
|
||||
y9WugGrR6qTfw76AUpc/GSkIsLDvs0552PwwAumkZ254hwA/pEnQlE1W5V81rMpr
|
||||
deB9ONVY7ZWLRNSM4G3M3Zh6a+FkLdDfBwvcyTazdEtjujxmgzUs2XNS4BPSxiu4
|
||||
fiRnyjkjY3ZLjDpAB1K4EvLg3kYhYop4XyUCnFTX0mopETFs84mRAKmzkIbT8osZ
|
||||
0aXJpCAJEq4ml8kSTvoS
|
||||
=TGCY
|
||||
-----END PGP SIGNATURE-----
|
@ -1,11 +1,11 @@
|
||||
# HG changeset patch
|
||||
# Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de
|
||||
# Parent 38e46d7f98d3e392de95d83660ecd147b30dc9aa
|
||||
# Parent 8a401a01454e9f5e8a357262d774e0ff348d9bc1
|
||||
|
||||
diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild
|
||||
--- a/browser/branding/branding-common.mozbuild
|
||||
+++ b/browser/branding/branding-common.mozbuild
|
||||
@@ -17,12 +17,15 @@ def FirefoxBranding():
|
||||
@@ -22,12 +22,15 @@ def FirefoxBranding():
|
||||
FINAL_TARGET_FILES.VisualElements += [
|
||||
'VisualElements_150.png',
|
||||
'VisualElements_70.png',
|
||||
@ -24,9 +24,9 @@ diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/brandi
|
||||
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
||||
--- a/browser/installer/package-manifest.in
|
||||
+++ b/browser/installer/package-manifest.in
|
||||
@@ -601,20 +601,23 @@
|
||||
@RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/chrome.manifest
|
||||
@RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf
|
||||
@@ -404,20 +404,23 @@
|
||||
@RESPATH@/browser/chrome/pdfjs.manifest
|
||||
@RESPATH@/browser/chrome/pdfjs/*
|
||||
@RESPATH@/chrome/toolkit@JAREXT@
|
||||
@RESPATH@/chrome/toolkit.manifest
|
||||
@RESPATH@/chrome/recording.manifest
|
||||
@ -46,5 +46,5 @@ diff --git a/browser/installer/package-manifest.in b/browser/installer/package-m
|
||||
; [Webide Files]
|
||||
@RESPATH@/browser/chrome/webide@JAREXT@
|
||||
@RESPATH@/browser/chrome/webide.manifest
|
||||
@RESPATH@/browser/@PREF_DIR@/webide-prefs.js
|
||||
@RESPATH@/browser/@PREF_DIR@/webide.js
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
# HG changeset patch
|
||||
# Parent 1b44c077e473c5a7d02fab26e2a220ebf219e0ab
|
||||
# Parent 242712e5a1879111d1a93a5d55dfae3fd5d47abc
|
||||
|
||||
diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/browser/base/content/browser-kde.xul
|
||||
@@ -0,0 +1,1280 @@
|
||||
@@ -0,0 +1,1293 @@
|
||||
+#filter substitution
|
||||
+<?xml version="1.0"?>
|
||||
+# -*- Mode: HTML -*-
|
||||
@ -21,14 +21,17 @@ new file mode 100644
|
||||
+<?xml-stylesheet href="chrome://browser/skin/controlcenter/panel.css" type="text/css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/customizableui/panelUI.css" type="text/css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/downloads/downloads.css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/places/places.css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/places/editBookmark.css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/content/tabbrowser.css" type="text/css"?>
|
||||
+
|
||||
+<?xul-overlay href="chrome://browser/content/places/placesOverlay.xul"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/compacttheme.css" type="text/css" alternate="yes" title="Light/Dark"?>
|
||||
+
|
||||
+# All DTD information is stored in a separate file so that it can be shared by
|
||||
+# hiddenWindow.xul.
|
||||
+<!DOCTYPE window [
|
||||
+#include browser-doctype.inc
|
||||
+]>
|
||||
+
|
||||
+<window id="main-window"
|
||||
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
@ -51,14 +54,12 @@ new file mode 100644
|
||||
+ titlemodifier_normal="&mainWindow.titlemodifier;"
|
||||
+ titlemodifier_privatebrowsing="&mainWindow.titlemodifier; &mainWindow.titlePrivateBrowsingSuffix;"
|
||||
+#endif
|
||||
+#ifdef CAN_DRAW_IN_TITLEBAR
|
||||
+#ifdef XP_WIN
|
||||
+ chromemargin="0,2,2,2"
|
||||
+#else
|
||||
+ chromemargin="0,-1,-1,-1"
|
||||
+#endif
|
||||
+ tabsintitlebar="true"
|
||||
+#endif
|
||||
+ titlemenuseparator="&mainWindow.titlemodifiermenuseparator;"
|
||||
+ windowtype="navigator:browser"
|
||||
+ macanimationtype="document"
|
||||
@ -68,18 +69,33 @@ new file mode 100644
|
||||
+ retargetdocumentfocus="urlbar"
|
||||
+ persist="screenX screenY width height sizemode">
|
||||
+
|
||||
+# All JS files which are not content (only) dependent that browser.xul
|
||||
+# wishes to include *must* go into the global-scripts.inc file
|
||||
+# so that they can be shared by macBrowserOverlay.xul.
|
||||
+# All JS files which are needed by browser.xul and other top level windows to
|
||||
+# support MacOS specific features *must* go into the global-scripts.inc file so
|
||||
+# that they can be shared with macWindow.inc.xul.
|
||||
+#include global-scripts.inc
|
||||
+
|
||||
+<script type="application/javascript">
|
||||
+ Services.scriptloader.loadSubScript("chrome://global/content/contentAreaUtils.js", this);
|
||||
+ Services.scriptloader.loadSubScript("chrome://browser/content/tabbrowser.js", this);
|
||||
+
|
||||
+ ChromeUtils.defineModuleGetter(window,
|
||||
+ "PlacesUtils", "resource://gre/modules/PlacesUtils.jsm");
|
||||
+ ChromeUtils.defineModuleGetter(window,
|
||||
+ "PlacesUIUtils", "resource:///modules/PlacesUIUtils.jsm");
|
||||
+ ChromeUtils.defineModuleGetter(window,
|
||||
+ "PlacesTransactions", "resource://gre/modules/PlacesTransactions.jsm");
|
||||
+
|
||||
+ ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
+ XPCOMUtils.defineLazyScriptGetter(window, "PlacesTreeView",
|
||||
+ "chrome://browser/content/places/treeView.js");
|
||||
+ XPCOMUtils.defineLazyScriptGetter(window,
|
||||
+ ["PlacesInsertionPoint", "PlacesController", "PlacesControllerDragHelper"],
|
||||
+ "chrome://browser/content/places/controller.js");
|
||||
+</script>
|
||||
+
|
||||
+# All sets except for popupsets (commands, keys, stringbundles and broadcasters) *must* go into the
|
||||
+# browser-sets.inc file for sharing with hiddenWindow.xul.
|
||||
+# All sets except for popupsets (commands, keys, stringbundles and broadcasters)
|
||||
+# *must* go into the browser-sets.inc file so that they can be shared with other
|
||||
+# top level windows in macWindow.inc.xul.
|
||||
+#define FULL_BROWSER_WINDOW
|
||||
+#include browser-sets.inc
|
||||
+#undef FULL_BROWSER_WINDOW
|
||||
@ -219,7 +235,7 @@ new file mode 100644
|
||||
+ <description id="editBookmarkPanelDescription"/>
|
||||
+ </vbox>
|
||||
+ </row>
|
||||
+ <vbox id="editBookmarkPanelContent" flex="1" hidden="true"/>
|
||||
+#include ../../components/places/content/editBookmarkPanel.inc.xul
|
||||
+ <hbox id="editBookmarkPanelBottomButtons" pack="end">
|
||||
+#ifdef XP_UNIX
|
||||
+ <button id="editBookmarkPanelDoneButton"
|
||||
@ -403,7 +419,7 @@ new file mode 100644
|
||||
+#include browser-context.inc
|
||||
+ </menupopup>
|
||||
+
|
||||
+ <menupopup id="placesContext"/>
|
||||
+#include ../../components/places/content/placesContextMenu.inc.xul
|
||||
+
|
||||
+ <panel id="ctrlTab-panel" hidden="true" norestorefocus="true" level="top">
|
||||
+ <hbox>
|
||||
@ -432,7 +448,8 @@ new file mode 100644
|
||||
+ copyURL-title="&pageAction.copyLink.label;"
|
||||
+ emailLink-title="&emailPageCmd.label;"
|
||||
+ sendToDevice-title="&pageAction.sendTabToDevice.label;"
|
||||
+ sendToDevice-notReadyTitle="&sendToDevice.syncNotReady.label;">
|
||||
+ sendToDevice-notReadyTitle="&sendToDevice.syncNotReady.label;"
|
||||
+ shareURL-title="&pageAction.shareUrl.label;">
|
||||
+ <panelmultiview id="pageActionPanelMultiView"
|
||||
+ mainViewId="pageActionPanelMainView"
|
||||
+ viewCacheId="appMenu-viewCache">
|
||||
@ -480,8 +497,7 @@ new file mode 100644
|
||||
+ oncommand="BrowserPageActions.openAboutAddonsForContextAction();"/>
|
||||
+ </menupopup>
|
||||
+
|
||||
+ <!-- Bookmarks and history tooltip -->
|
||||
+ <tooltip id="bhTooltip"/>
|
||||
+#include ../../components/places/content/bookmarksHistoryTooltip.inc.xul
|
||||
+
|
||||
+ <tooltip id="tabbrowser-tab-tooltip" onpopupshowing="gBrowser.createTooltip(event);"/>
|
||||
+
|
||||
@ -515,15 +531,6 @@ new file mode 100644
|
||||
+ </vbox>
|
||||
+ </hbox>
|
||||
+
|
||||
+ <hbox id="bookmarked-notification-container" mousethrough="always">
|
||||
+ <vbox id="bookmarked-notification-anchor">
|
||||
+ <vbox id="bookmarked-notification"/>
|
||||
+ </vbox>
|
||||
+ <vbox id="bookmarked-notification-dropmarker-anchor">
|
||||
+ <image id="bookmarked-notification-dropmarker-icon"/>
|
||||
+ </vbox>
|
||||
+ </hbox>
|
||||
+
|
||||
+ <tooltip id="dynamic-shortcut-tooltip"
|
||||
+ onpopupshowing="UpdateDynamicShortcutTooltipText(this);"/>
|
||||
+
|
||||
@ -589,7 +596,6 @@ new file mode 100644
|
||||
+ </popupset>
|
||||
+ <box id="appMenu-viewCache" hidden="true"/>
|
||||
+
|
||||
+#ifdef CAN_DRAW_IN_TITLEBAR
|
||||
+<vbox id="titlebar">
|
||||
+ <hbox id="titlebar-content">
|
||||
+ <spacer id="titlebar-spacer" flex="1"/>
|
||||
@ -611,7 +617,6 @@ new file mode 100644
|
||||
+#endif
|
||||
+ </hbox>
|
||||
+</vbox>
|
||||
+#endif
|
||||
+
|
||||
+ <toolbox id="navigator-toolbox">
|
||||
+ <!-- Menu -->
|
||||
@ -626,17 +631,15 @@ new file mode 100644
|
||||
+#endif
|
||||
+ context="toolbar-context-menu">
|
||||
+ <toolbaritem id="menubar-items" align="center">
|
||||
+# The entire main menubar is placed into browser-menubar.inc, so that it can be shared by
|
||||
+# hiddenWindow.xul.
|
||||
+# The entire main menubar is placed into browser-menubar.inc, so that it can be
|
||||
+# shared with other top level windows in macWindow.inc.xul.
|
||||
+#include browser-menubar.inc
|
||||
+ </toolbaritem>
|
||||
+
|
||||
+#ifdef CAN_DRAW_IN_TITLEBAR
|
||||
+#ifndef XP_MACOSX
|
||||
+ <hbox class="titlebar-placeholder" type="caption-buttons" ordinal="1000"
|
||||
+ skipintoolbarset="true"/>
|
||||
+#endif
|
||||
+#endif
|
||||
+ </toolbar>
|
||||
+
|
||||
+ <toolbar id="TabsToolbar"
|
||||
@ -645,13 +648,9 @@ new file mode 100644
|
||||
+ customizable="true"
|
||||
+ mode="icons"
|
||||
+ aria-label="&tabsToolbar.label;"
|
||||
+ context="toolbar-context-menu"
|
||||
+ collapsed="true">
|
||||
+
|
||||
+#ifdef CAN_DRAW_IN_TITLEBAR
|
||||
+ context="toolbar-context-menu">
|
||||
+ <hbox class="titlebar-placeholder" type="pre-tabs"
|
||||
+ skipintoolbarset="true"/>
|
||||
+#endif
|
||||
+
|
||||
+ <tabs id="tabbrowser-tabs"
|
||||
+ flex="1"
|
||||
@ -675,7 +674,7 @@ new file mode 100644
|
||||
+ removable="true"/>
|
||||
+
|
||||
+ <toolbarbutton id="alltabs-button"
|
||||
+ class="toolbarbutton-1 chromeclass-toolbar-additional tabs-alltabs-button"
|
||||
+ class="toolbarbutton-1 chromeclass-toolbar-additional tabs-alltabs-button badged-button"
|
||||
+ type="menu"
|
||||
+ label="&listAllTabs.label;"
|
||||
+ tooltiptext="&listAllTabs.label;"
|
||||
@ -692,21 +691,23 @@ new file mode 100644
|
||||
+ <menupopup id="alltabs_containersMenuTab" />
|
||||
+ </menu>
|
||||
+ <menuseparator id="alltabs-popup-separator-2"/>
|
||||
+ <menu id="alltabs_hiddenTabs"
|
||||
+ label="&hiddenTabs.label;">
|
||||
+ <menupopup id="alltabs_hiddenTabsMenu"/>
|
||||
+ </menu>
|
||||
+ <menuseparator id="alltabs-popup-separator-3"/>
|
||||
+ </menupopup>
|
||||
+ </toolbarbutton>
|
||||
+
|
||||
+#ifdef CAN_DRAW_IN_TITLEBAR
|
||||
+ <hbox class="titlebar-placeholder" type="post-tabs"
|
||||
+ ordinal="1000"
|
||||
+ skipintoolbarset="true"/>
|
||||
+#endif
|
||||
+
|
||||
+ <button class="accessibility-indicator" tooltiptext="&accessibilityIndicator.tooltip;"
|
||||
+ ordinal="1000"
|
||||
+ aria-live="polite" skipintoolbarset="true"/>
|
||||
+ <hbox class="private-browsing-indicator" skipintoolbarset="true"
|
||||
+ ordinal="1000"/>
|
||||
+#ifdef CAN_DRAW_IN_TITLEBAR
|
||||
+ <hbox class="titlebar-placeholder" type="caption-buttons"
|
||||
+#ifndef XP_MACOSX
|
||||
+ ordinal="1000"
|
||||
@ -717,7 +718,6 @@ new file mode 100644
|
||||
+ <hbox class="titlebar-placeholder" type="fullscreen-button"
|
||||
+ skipintoolbarset="true"/>
|
||||
+#endif
|
||||
+#endif
|
||||
+ </toolbar>
|
||||
+
|
||||
+ <toolbar id="nav-bar"
|
||||
@ -876,7 +876,7 @@ new file mode 100644
|
||||
+ <image id="midi-notification-icon" class="notification-anchor-icon midi-icon" role="button"
|
||||
+ tooltiptext="&urlbar.midiNotificationAnchor.tooltip;"/>
|
||||
+ <image id="webauthn-notification-icon" class="notification-anchor-icon" role="button"
|
||||
+ tooltiptext="&urlbar.defaultNotificationAnchor.tooltip;"/>
|
||||
+ tooltiptext="&urlbar.webAuthnAnchor.tooltip;"/>
|
||||
+ </box>
|
||||
+ <image id="connection-icon"/>
|
||||
+ <image id="extension-icon"/>
|
||||
@ -1228,8 +1228,12 @@ new file mode 100644
|
||||
+ onselect="if (event.target.localName == 'tabpanels') gBrowser.updateCurrentBrowser();">
|
||||
+ <tabpanels flex="1" class="plain" selectedIndex="0" id="tabbrowser-tabpanels">
|
||||
+ <notificationbox flex="1" notificationside="top">
|
||||
+ <hbox flex="1" class="browserSidebarContainer">
|
||||
+ <vbox flex="1" class="browserContainer">
|
||||
+ <!-- Set large flex to allow the devtools toolbox to set a flex attribute.
|
||||
+ We don't want the toolbox to actually take up free space, but we do want it to collapse when the window shrinks, and with flex=0 it can't.
|
||||
+ When the toolbox is on the bottom it's a sibling of browserSidebarContainer,
|
||||
+ and when it's on the side it's a sibling of browserContainer. -->
|
||||
+ <hbox flex="10000" class="browserSidebarContainer">
|
||||
+ <vbox flex="10000" class="browserContainer">
|
||||
+ <stack flex="1" class="browserStack">
|
||||
+ <browser id="tabbrowser-initialBrowser" type="content"
|
||||
+ message="true" messagemanagergroup="browsers"
|
||||
@ -1240,6 +1244,15 @@ new file mode 100644
|
||||
+ selectmenulist="ContentSelectDropdown"
|
||||
+ datetimepicker="DateTimePickerPanel"/>
|
||||
+ </stack>
|
||||
+ <hbox id="statuspanel" inactive="true" layer="true">
|
||||
+ <hbox id="statuspanel-inner">
|
||||
+ <label id="statuspanel-label"
|
||||
+ role="status"
|
||||
+ aria-live="off"
|
||||
+ flex="1"
|
||||
+ crop="end"/>
|
||||
+ </hbox>
|
||||
+ </hbox>
|
||||
+ </vbox>
|
||||
+ </hbox>
|
||||
+ </notificationbox>
|
||||
@ -1289,7 +1302,7 @@ new file mode 100644
|
||||
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
|
||||
--- a/browser/base/jar.mn
|
||||
+++ b/browser/base/jar.mn
|
||||
@@ -42,16 +42,18 @@ browser.jar:
|
||||
@@ -44,16 +44,18 @@ browser.jar:
|
||||
content/browser/aboutRobots-icon.png (content/aboutRobots-icon.png)
|
||||
content/browser/aboutRobots-widget-left.png (content/aboutRobots-widget-left.png)
|
||||
content/browser/aboutTabCrashed.css (content/aboutTabCrashed.css)
|
||||
@ -1330,7 +1343,7 @@ diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/ns
|
||||
|
||||
#include "rdf.h"
|
||||
#include "nsFeedSniffer.h"
|
||||
@@ -32,18 +32,16 @@ using namespace mozilla::browser;
|
||||
@@ -31,18 +31,16 @@ using namespace mozilla::browser;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -1349,9 +1362,9 @@ diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/ns
|
||||
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsFeedSniffer)
|
||||
|
||||
@@ -64,17 +62,17 @@ NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsSessionStoreUtils)
|
||||
NS_DEFINE_NAMED_CID(NS_SESSIONSTOREUTILS_CID);
|
||||
@@ -60,17 +58,17 @@ NS_DEFINE_NAMED_CID(NS_WINIEHISTORYENUME
|
||||
NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID);
|
||||
#endif
|
||||
|
||||
static const mozilla::Module::CIDEntry kBrowserCIDs[] = {
|
||||
{ &kNS_BROWSERDIRECTORYPROVIDER_CID, false, nullptr, DirectoryProviderConstructor },
|
||||
@ -1371,7 +1384,7 @@ diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/ns
|
||||
diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
|
||||
--- a/browser/components/preferences/in-content/main.js
|
||||
+++ b/browser/components/preferences/in-content/main.js
|
||||
@@ -333,16 +333,23 @@ var gMainPane = {
|
||||
@@ -327,16 +327,23 @@ var gMainPane = {
|
||||
this._backoffIndex++ : backoffTimes.length - 1]);
|
||||
};
|
||||
|
||||
@ -1395,7 +1408,7 @@ diff --git a/browser/components/preferences/in-content/main.js b/browser/compone
|
||||
performanceSettingsLink.setAttribute("href", performanceSettingsUrl);
|
||||
|
||||
this.updateDefaultPerformanceSettingsPref();
|
||||
@@ -1060,16 +1067,27 @@ var gMainPane = {
|
||||
@@ -868,16 +875,27 @@ var gMainPane = {
|
||||
// Reset exponential backoff delay time in order to do visual update in pollForDefaultBrowser.
|
||||
this._backoffIndex = 0;
|
||||
|
||||
@ -1442,9 +1455,9 @@ diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.b
|
||||
if SOURCES:
|
||||
FINAL_LIBRARY = 'browsercomps'
|
||||
|
||||
EXTRA_COMPONENTS += [
|
||||
'nsSetDefaultBrowser.js',
|
||||
'nsSetDefaultBrowser.manifest',
|
||||
EXTRA_JS_MODULES += [
|
||||
'HeadlessShell.jsm',
|
||||
'ShellService.jsm',
|
||||
diff --git a/browser/components/shell/nsKDEShellService.cpp b/browser/components/shell/nsKDEShellService.cpp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@ -1537,7 +1550,7 @@ new file mode 100644
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::SetDesktopBackground(nsIDOMElement* aElement,
|
||||
+nsKDEShellService::SetDesktopBackground(dom::Element* aElement,
|
||||
+ int32_t aPosition,
|
||||
+ const nsACString& aImageName)
|
||||
+{
|
||||
@ -1677,8 +1690,8 @@ new file mode 100644
|
||||
+ nsKDEShellService() : mCheckedThisSession(false) { }
|
||||
+
|
||||
+ NS_DECL_ISUPPORTS
|
||||
+ NS_DECL_NSIGNOMESHELLSERVICE
|
||||
+ NS_DECL_NSISHELLSERVICE
|
||||
+ NS_DECL_NSIGNOMESHELLSERVICE
|
||||
+
|
||||
+ nsresult Init();
|
||||
+
|
||||
@ -1739,7 +1752,7 @@ new file mode 100644
|
||||
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
||||
--- a/browser/installer/package-manifest.in
|
||||
+++ b/browser/installer/package-manifest.in
|
||||
@@ -646,16 +646,18 @@
|
||||
@@ -452,16 +452,18 @@
|
||||
@RESPATH@/browser/defaults/blocklists
|
||||
@RESPATH@/browser/defaults/pinning
|
||||
|
||||
@ -1748,13 +1761,13 @@ diff --git a/browser/installer/package-manifest.in b/browser/installer/package-m
|
||||
; gre location for now.
|
||||
@RESPATH@/defaults/pref/channel-prefs.js
|
||||
|
||||
+@BINPATH@/defaults/pref/kde.js
|
||||
+@RESPATH@/defaults/pref/kde.js
|
||||
+
|
||||
; Remote control protocol prefs
|
||||
; defined in ../../testing/marionette/prefs/marionette.js
|
||||
@RESPATH@/defaults/pref/marionette.js
|
||||
|
||||
; Services (gre) prefs
|
||||
@RESPATH@/defaults/pref/services-sync.js
|
||||
|
||||
; [Layout Engine Resources]
|
||||
; Style Sheets, Graphics and other Resources used by the layout engine.
|
||||
@RESPATH@/res/EditorOverride.css
|
||||
@RESPATH@/res/contenteditable.css
|
||||
@RESPATH@/res/designmode.css
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:818593ebff301f74bf90ad714e263398c2fc67d318f687b8049c774ffdc56a2b
|
||||
size 49782444
|
3
l10n-61.0.tar.xz
Normal file
3
l10n-61.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cd26ea35915c7b5e526588daa10ae26bcb265bd343c85d81ed2ed8925aa5760d
|
||||
size 50086832
|
119
mozilla-bmo1464766.patch
Normal file
119
mozilla-bmo1464766.patch
Normal file
@ -0,0 +1,119 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Mike Hommey <mh+mozilla@glandium.org>
|
||||
# Date 1527491713 -32400
|
||||
# Node ID c28becad0c10b906454d7e424f9a9402799ea8dd
|
||||
# Parent 86eaa6799cf51660c0b598937121305b8f70c84d
|
||||
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
|
||||
@@ -1134,16 +1134,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
|
||||
@@ -42,16 +42,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";
|
||||
|
||||
@@ -223,19 +224,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/XPIDatabase.jsm b/toolkit/mozapps/extensions/internal/XPIDatabase.jsm
|
||||
--- a/toolkit/mozapps/extensions/internal/XPIDatabase.jsm
|
||||
+++ b/toolkit/mozapps/extensions/internal/XPIDatabase.jsm
|
||||
@@ -78,16 +78,17 @@ const KEY_PROFILEDIR =
|
||||
const FILE_JSON_DB = "extensions.json";
|
||||
|
||||
// The last version of DB_SCHEMA implemented in SQLITE
|
||||
const LAST_SQLITE_DB_SCHEMA = 14;
|
||||
|
||||
const PREF_BLOCKLIST_ITEM_URL = "extensions.blocklist.itemURL";
|
||||
const PREF_DB_SCHEMA = "extensions.databaseSchema";
|
||||
const PREF_EM_AUTO_DISABLED_SCOPES = "extensions.autoDisableScopes";
|
||||
+const PREF_EM_UNSIGNED_SCOPES = "extensions.unsignedScopes";
|
||||
const PREF_EM_EXTENSION_FORMAT = "extensions.";
|
||||
const PREF_PENDING_OPERATIONS = "extensions.pendingOperations";
|
||||
const PREF_XPI_SIGNATURES_DEV_ROOT = "xpinstall.signatures.dev-root";
|
||||
|
||||
const TOOLKIT_ID = "toolkit@mozilla.org";
|
||||
|
||||
const KEY_APP_SYSTEM_ADDONS = "app-system-addons";
|
||||
const KEY_APP_SYSTEM_DEFAULTS = "app-system-defaults";
|
||||
@@ -1959,17 +1960,19 @@ this.XPIDatabase = {
|
||||
* Calculates whether an add-on should be appDisabled or not.
|
||||
*
|
||||
* @param {AddonInternal} aAddon
|
||||
* The add-on to check
|
||||
* @returns {boolean}
|
||||
* True if the add-on should not be appDisabled
|
||||
*/
|
||||
isUsableAddon(aAddon) {
|
||||
- if (this.mustSign(aAddon.type) && !aAddon.isCorrectlySigned) {
|
||||
+ let unsignedScopes = Services.prefs.getIntPref(PREF_EM_UNSIGNED_SCOPES, 0);
|
||||
+ if (!(aAddon._installLocation.scope & unsignedScopes) &&
|
||||
+ this.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) {
|
@ -1,614 +0,0 @@
|
||||
This is a composition of these patches for Firefox 60:
|
||||
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1441873
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1441665
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1456898
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1457309
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1457691
|
||||
|
||||
which fix popup window placement at CSD window mode.
|
||||
|
||||
|
||||
diff --git a/widget/gtk/nsLookAndFeel.cpp b/widget/gtk/nsLookAndFeel.cpp
|
||||
--- a/widget/gtk/nsLookAndFeel.cpp
|
||||
+++ b/widget/gtk/nsLookAndFeel.cpp
|
||||
@@ -1076,19 +1076,18 @@ nsLookAndFeel::EnsureInit()
|
||||
nullptr);
|
||||
|
||||
GetSystemFontInfo(gtk_widget_get_style_context(entry),
|
||||
&mFieldFontName, &mFieldFontStyle);
|
||||
|
||||
gtk_widget_destroy(window);
|
||||
g_object_unref(labelWidget);
|
||||
|
||||
- // Require GTK 3.10 for GtkHeaderBar support and compatible window manager.
|
||||
- mCSDAvailable = (gtk_check_version(3, 10, 0) == nullptr &&
|
||||
- nsWindow::GetCSDSupportLevel() != nsWindow::CSD_SUPPORT_NONE);
|
||||
+ mCSDAvailable =
|
||||
+ nsWindow::GetSystemCSDSupportLevel() != nsWindow::CSD_SUPPORT_NONE;
|
||||
|
||||
mCSDCloseButton = false;
|
||||
mCSDMinimizeButton = false;
|
||||
mCSDMaximizeButton = false;
|
||||
|
||||
// We need to initialize whole CSD config explicitly because it's queried
|
||||
// as -moz-gtk* media features.
|
||||
WidgetNodeType buttonLayout[TOOLBAR_BUTTONS];
|
||||
diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
|
||||
--- a/widget/gtk/nsWindow.h
|
||||
+++ b/widget/gtk/nsWindow.h
|
||||
@@ -395,28 +395,26 @@ public:
|
||||
// From GDK
|
||||
int GdkCoordToDevicePixels(gint coord);
|
||||
LayoutDeviceIntPoint GdkPointToDevicePixels(GdkPoint point);
|
||||
LayoutDeviceIntPoint GdkEventCoordsToDevicePixels(gdouble x, gdouble y);
|
||||
LayoutDeviceIntRect GdkRectToDevicePixels(GdkRectangle rect);
|
||||
|
||||
virtual bool WidgetTypeSupportsAcceleration() override;
|
||||
|
||||
- bool DoDrawTitlebar() const;
|
||||
-
|
||||
typedef enum { CSD_SUPPORT_SYSTEM, // CSD including shadows
|
||||
CSD_SUPPORT_CLIENT, // CSD without shadows
|
||||
CSD_SUPPORT_NONE, // WM does not support CSD at all
|
||||
CSD_SUPPORT_UNKNOWN
|
||||
} CSDSupportLevel;
|
||||
/**
|
||||
* Get the support of Client Side Decoration by checking
|
||||
* the XDG_CURRENT_DESKTOP environment variable.
|
||||
*/
|
||||
- static CSDSupportLevel GetCSDSupportLevel();
|
||||
+ static CSDSupportLevel GetSystemCSDSupportLevel();
|
||||
|
||||
protected:
|
||||
virtual ~nsWindow();
|
||||
|
||||
// event handling code
|
||||
void DispatchActivateEvent(void);
|
||||
void DispatchDeactivateEvent(void);
|
||||
void DispatchResized();
|
||||
@@ -512,19 +510,21 @@ private:
|
||||
int mXDepth;
|
||||
mozilla::widget::WindowSurfaceProvider mSurfaceProvider;
|
||||
#endif
|
||||
|
||||
// Upper bound on pending ConfigureNotify events to be dispatched to the
|
||||
// window. See bug 1225044.
|
||||
unsigned int mPendingConfigures;
|
||||
|
||||
- bool mIsCSDAvailable;
|
||||
+ // Window titlebar rendering mode, CSD_SUPPORT_NONE if it's disabled
|
||||
+ // for this window.
|
||||
+ CSDSupportLevel mCSDSupportLevel;
|
||||
// If true, draw our own window titlebar.
|
||||
- bool mIsCSDEnabled;
|
||||
+ bool mDrawInTitlebar;
|
||||
// Draggable titlebar region maintained by UpdateWindowDraggingRegion
|
||||
LayoutDeviceIntRegion mDraggableRegion;
|
||||
|
||||
#ifdef ACCESSIBILITY
|
||||
RefPtr<mozilla::a11y::Accessible> mRootAccessible;
|
||||
|
||||
/**
|
||||
* Request to create the accessible for this window if it is top level.
|
||||
|
||||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
||||
--- a/widget/gtk/nsWindow.cpp
|
||||
+++ b/widget/gtk/nsWindow.cpp
|
||||
@@ -474,18 +474,18 @@ nsWindow::nsWindow()
|
||||
|
||||
mTransparencyBitmapWidth = 0;
|
||||
mTransparencyBitmapHeight = 0;
|
||||
|
||||
#if GTK_CHECK_VERSION(3,4,0)
|
||||
mLastScrollEventTime = GDK_CURRENT_TIME;
|
||||
#endif
|
||||
mPendingConfigures = 0;
|
||||
- mIsCSDAvailable = false;
|
||||
- mIsCSDEnabled = false;
|
||||
+ mCSDSupportLevel = CSD_SUPPORT_NONE;
|
||||
+ mDrawInTitlebar = false;
|
||||
}
|
||||
|
||||
nsWindow::~nsWindow()
|
||||
{
|
||||
LOG(("nsWindow::~nsWindow() [%p]\n", (void *)this));
|
||||
|
||||
delete[] mTransparencyBitmap;
|
||||
mTransparencyBitmap = nullptr;
|
||||
@@ -2814,17 +2814,17 @@ nsWindow::OnButtonReleaseEvent(GdkEventB
|
||||
LayoutDeviceIntPoint pos = event.mRefPoint;
|
||||
|
||||
nsEventStatus eventStatus = DispatchInputEvent(&event);
|
||||
|
||||
bool defaultPrevented = (eventStatus == nsEventStatus_eConsumeNoDefault);
|
||||
// Check if mouse position in titlebar and doubleclick happened to
|
||||
// trigger restore/maximize.
|
||||
if (!defaultPrevented
|
||||
- && mIsCSDEnabled
|
||||
+ && mDrawInTitlebar
|
||||
&& event.button == WidgetMouseEvent::eLeftButton
|
||||
&& event.mClickCount == 2
|
||||
&& mDraggableRegion.Contains(pos.x, pos.y)) {
|
||||
|
||||
if (mSizeState == nsSizeMode_Maximized) {
|
||||
SetSizeMode(nsSizeMode_Normal);
|
||||
} else {
|
||||
SetSizeMode(nsSizeMode_Maximized);
|
||||
@@ -3758,22 +3758,18 @@ nsWindow::Create(nsIWidget* aParent,
|
||||
gtk_window_set_wmclass(GTK_WINDOW(mShell), "Toplevel",
|
||||
gdk_get_program_class());
|
||||
|
||||
// each toplevel window gets its own window group
|
||||
GtkWindowGroup *group = gtk_window_group_new();
|
||||
gtk_window_group_add_window(group, GTK_WINDOW(mShell));
|
||||
g_object_unref(group);
|
||||
|
||||
- int32_t isCSDAvailable = false;
|
||||
- nsresult rv = LookAndFeel::GetInt(LookAndFeel::eIntID_GTKCSDAvailable,
|
||||
- &isCSDAvailable);
|
||||
- if (NS_SUCCEEDED(rv)) {
|
||||
- mIsCSDAvailable = isCSDAvailable;
|
||||
- }
|
||||
+ // We enable titlebar rendering for toplevel windows only.
|
||||
+ mCSDSupportLevel = GetSystemCSDSupportLevel();
|
||||
}
|
||||
|
||||
// Create a container to hold child windows and child GtkWidgets.
|
||||
GtkWidget *container = moz_container_new();
|
||||
mContainer = MOZ_CONTAINER(container);
|
||||
|
||||
// "csd" style is set when widget is realized so we need to call
|
||||
// it explicitly now.
|
||||
@@ -3788,17 +3784,17 @@ nsWindow::Create(nsIWidget* aParent,
|
||||
* are drawn by Gtk+ to mShell. Content is rendered to mContainer
|
||||
* and we listen to the Gtk+ events on mContainer.
|
||||
* 3) We're running on Wayland. All gecko content is rendered
|
||||
* to mContainer and we listen to the Gtk+ events on mContainer.
|
||||
*/
|
||||
GtkStyleContext* style = gtk_widget_get_style_context(mShell);
|
||||
drawToContainer =
|
||||
!mIsX11Display ||
|
||||
- (mIsCSDAvailable && GetCSDSupportLevel() == CSD_SUPPORT_CLIENT) ||
|
||||
+ (mCSDSupportLevel == CSD_SUPPORT_CLIENT) ||
|
||||
gtk_style_context_has_class(style, "csd");
|
||||
eventWidget = (drawToContainer) ? container : mShell;
|
||||
|
||||
gtk_widget_add_events(eventWidget, kEvents);
|
||||
if (drawToContainer)
|
||||
gtk_widget_add_events(mShell, GDK_PROPERTY_CHANGE_MASK);
|
||||
|
||||
// Prevent GtkWindow from painting a background to avoid flickering.
|
||||
@@ -6581,90 +6577,91 @@ nsWindow::ClearCachedResources()
|
||||
window->ClearCachedResources();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsWindow::SetNonClientMargins(LayoutDeviceIntMargin &aMargins)
|
||||
{
|
||||
- SetDrawsInTitlebar(aMargins.top == 0);
|
||||
- return NS_OK;
|
||||
+ SetDrawsInTitlebar(aMargins.top == 0);
|
||||
+ return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
nsWindow::SetDrawsInTitlebar(bool aState)
|
||||
{
|
||||
- if (!mIsCSDAvailable || aState == mIsCSDEnabled)
|
||||
- return;
|
||||
-
|
||||
- if (mShell) {
|
||||
- if (GetCSDSupportLevel() == CSD_SUPPORT_SYSTEM) {
|
||||
- SetWindowDecoration(aState ? eBorderStyle_border : mBorderStyle);
|
||||
- }
|
||||
- else {
|
||||
- /* Window manager does not support GDK_DECOR_BORDER,
|
||||
- * emulate it by CSD.
|
||||
- *
|
||||
- * gtk_window_set_titlebar() works on unrealized widgets only,
|
||||
- * we need to handle mShell carefully here.
|
||||
- * When CSD is enabled mGdkWindow is owned by mContainer which is good
|
||||
- * as we can't delete our mGdkWindow. To make mShell unrealized while
|
||||
- * mContainer is preserved we temporary reparent mContainer to an
|
||||
- * invisible GtkWindow.
|
||||
- */
|
||||
- NativeShow(false);
|
||||
-
|
||||
- // Using GTK_WINDOW_POPUP rather than
|
||||
- // GTK_WINDOW_TOPLEVEL in the hope that POPUP results in less
|
||||
- // initialization and window manager interaction.
|
||||
- GtkWidget* tmpWindow = gtk_window_new(GTK_WINDOW_POPUP);
|
||||
- gtk_widget_realize(tmpWindow);
|
||||
-
|
||||
- gtk_widget_reparent(GTK_WIDGET(mContainer), tmpWindow);
|
||||
- gtk_widget_unrealize(GTK_WIDGET(mShell));
|
||||
-
|
||||
- // Available as of GTK 3.10+
|
||||
- static auto sGtkWindowSetTitlebar = (void (*)(GtkWindow*, GtkWidget*))
|
||||
- dlsym(RTLD_DEFAULT, "gtk_window_set_titlebar");
|
||||
- MOZ_ASSERT(sGtkWindowSetTitlebar,
|
||||
- "Missing gtk_window_set_titlebar(), old Gtk+ library?");
|
||||
-
|
||||
- if (aState) {
|
||||
- // Add a hidden titlebar widget to trigger CSD, but disable the default
|
||||
- // titlebar. GtkFixed is a somewhat random choice for a simple unused
|
||||
- // widget. gtk_window_set_titlebar() takes ownership of the titlebar
|
||||
- // widget.
|
||||
- sGtkWindowSetTitlebar(GTK_WINDOW(mShell), gtk_fixed_new());
|
||||
- } else {
|
||||
- sGtkWindowSetTitlebar(GTK_WINDOW(mShell), nullptr);
|
||||
- }
|
||||
-
|
||||
- /* A workaround for https://bugzilla.gnome.org/show_bug.cgi?id=791081
|
||||
- * gtk_widget_realize() throws:
|
||||
- * "In pixman_region32_init_rect: Invalid rectangle passed"
|
||||
- * when mShell has default 1x1 size.
|
||||
- */
|
||||
- GtkAllocation allocation = {0, 0, 0, 0};
|
||||
- gtk_widget_get_preferred_width(GTK_WIDGET(mShell), nullptr,
|
||||
- &allocation.width);
|
||||
- gtk_widget_get_preferred_height(GTK_WIDGET(mShell), nullptr,
|
||||
- &allocation.height);
|
||||
- gtk_widget_size_allocate(GTK_WIDGET(mShell), &allocation);
|
||||
-
|
||||
- gtk_widget_realize(GTK_WIDGET(mShell));
|
||||
- gtk_widget_reparent(GTK_WIDGET(mContainer), GTK_WIDGET(mShell));
|
||||
- mNeedsShow = true;
|
||||
- NativeResize();
|
||||
-
|
||||
- gtk_widget_destroy(tmpWindow);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- mIsCSDEnabled = aState;
|
||||
+ if (!mShell ||
|
||||
+ mCSDSupportLevel == CSD_SUPPORT_NONE ||
|
||||
+ aState == mDrawInTitlebar) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (mCSDSupportLevel == CSD_SUPPORT_SYSTEM) {
|
||||
+ SetWindowDecoration(aState ? eBorderStyle_border : mBorderStyle);
|
||||
+ }
|
||||
+ else if (mCSDSupportLevel == CSD_SUPPORT_CLIENT) {
|
||||
+ /* Window manager does not support GDK_DECOR_BORDER,
|
||||
+ * emulate it by CSD.
|
||||
+ *
|
||||
+ * gtk_window_set_titlebar() works on unrealized widgets only,
|
||||
+ * we need to handle mShell carefully here.
|
||||
+ * When CSD is enabled mGdkWindow is owned by mContainer which is good
|
||||
+ * as we can't delete our mGdkWindow. To make mShell unrealized while
|
||||
+ * mContainer is preserved we temporary reparent mContainer to an
|
||||
+ * invisible GtkWindow.
|
||||
+ */
|
||||
+ NativeShow(false);
|
||||
+
|
||||
+ // Using GTK_WINDOW_POPUP rather than
|
||||
+ // GTK_WINDOW_TOPLEVEL in the hope that POPUP results in less
|
||||
+ // initialization and window manager interaction.
|
||||
+ GtkWidget* tmpWindow = gtk_window_new(GTK_WINDOW_POPUP);
|
||||
+ gtk_widget_realize(tmpWindow);
|
||||
+
|
||||
+ gtk_widget_reparent(GTK_WIDGET(mContainer), tmpWindow);
|
||||
+ gtk_widget_unrealize(GTK_WIDGET(mShell));
|
||||
+
|
||||
+ // Available as of GTK 3.10+
|
||||
+ static auto sGtkWindowSetTitlebar = (void (*)(GtkWindow*, GtkWidget*))
|
||||
+ dlsym(RTLD_DEFAULT, "gtk_window_set_titlebar");
|
||||
+ MOZ_ASSERT(sGtkWindowSetTitlebar,
|
||||
+ "Missing gtk_window_set_titlebar(), old Gtk+ library?");
|
||||
+
|
||||
+ if (aState) {
|
||||
+ // Add a hidden titlebar widget to trigger CSD, but disable the default
|
||||
+ // titlebar. GtkFixed is a somewhat random choice for a simple unused
|
||||
+ // widget. gtk_window_set_titlebar() takes ownership of the titlebar
|
||||
+ // widget.
|
||||
+ sGtkWindowSetTitlebar(GTK_WINDOW(mShell), gtk_fixed_new());
|
||||
+ } else {
|
||||
+ sGtkWindowSetTitlebar(GTK_WINDOW(mShell), nullptr);
|
||||
+ }
|
||||
+
|
||||
+ /* A workaround for https://bugzilla.gnome.org/show_bug.cgi?id=791081
|
||||
+ * gtk_widget_realize() throws:
|
||||
+ * "In pixman_region32_init_rect: Invalid rectangle passed"
|
||||
+ * when mShell has default 1x1 size.
|
||||
+ */
|
||||
+ GtkAllocation allocation = {0, 0, 0, 0};
|
||||
+ gtk_widget_get_preferred_width(GTK_WIDGET(mShell), nullptr,
|
||||
+ &allocation.width);
|
||||
+ gtk_widget_get_preferred_height(GTK_WIDGET(mShell), nullptr,
|
||||
+ &allocation.height);
|
||||
+ gtk_widget_size_allocate(GTK_WIDGET(mShell), &allocation);
|
||||
+
|
||||
+ gtk_widget_realize(GTK_WIDGET(mShell));
|
||||
+ gtk_widget_reparent(GTK_WIDGET(mContainer), GTK_WIDGET(mShell));
|
||||
+ mNeedsShow = true;
|
||||
+ NativeResize();
|
||||
+
|
||||
+ gtk_widget_destroy(tmpWindow);
|
||||
+ }
|
||||
+
|
||||
+ mDrawInTitlebar = aState;
|
||||
}
|
||||
|
||||
gint
|
||||
nsWindow::GdkScaleFactor()
|
||||
{
|
||||
#if (MOZ_WIDGET_GTK >= 3)
|
||||
// Available as of GTK 3.10+
|
||||
static auto sGdkWindowGetScaleFactorPtr = (gint (*)(GdkWindow*))
|
||||
@@ -6923,28 +6920,28 @@ nsWindow::SynthesizeNativeTouchPoint(uin
|
||||
event.touch.y = DevicePixelsToGdkCoordRoundDown(pointInWindow.y);
|
||||
|
||||
gdk_event_put(&event);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
-bool
|
||||
-nsWindow::DoDrawTitlebar() const
|
||||
-{
|
||||
- return mIsCSDEnabled && mSizeState == nsSizeMode_Normal;
|
||||
-}
|
||||
-
|
||||
nsWindow::CSDSupportLevel
|
||||
-nsWindow::GetCSDSupportLevel() {
|
||||
+nsWindow::GetSystemCSDSupportLevel() {
|
||||
if (sCSDSupportLevel != CSD_SUPPORT_UNKNOWN) {
|
||||
return sCSDSupportLevel;
|
||||
}
|
||||
|
||||
+ // Require GTK 3.10 for GtkHeaderBar support and compatible window manager.
|
||||
+ if (gtk_check_version(3, 10, 0) != nullptr) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_NONE;
|
||||
+ return sCSDSupportLevel;
|
||||
+ }
|
||||
+
|
||||
const char* currentDesktop = getenv("XDG_CURRENT_DESKTOP");
|
||||
if (currentDesktop) {
|
||||
// GNOME Flashback (fallback)
|
||||
if (strstr(currentDesktop, "GNOME-Flashback:GNOME") != nullptr) {
|
||||
sCSDSupportLevel = CSD_SUPPORT_CLIENT;
|
||||
// gnome-shell
|
||||
} else if (strstr(currentDesktop, "GNOME") != nullptr) {
|
||||
sCSDSupportLevel = CSD_SUPPORT_SYSTEM;
|
||||
diff -up firefox-60.0/widget/gtk/gtk3drawing.cpp.orig firefox-60.0/widget/gtk/gtk3drawing.cpp
|
||||
--- firefox-60.0/widget/gtk/gtk3drawing.cpp.orig 2018-04-26 22:07:36.000000000 +0200
|
||||
+++ firefox-60.0/widget/gtk/gtk3drawing.cpp 2018-04-30 13:38:19.083949868 +0200
|
||||
@@ -38,6 +38,16 @@ static ToolbarGTKMetrics sToolbarMetrics
|
||||
#define GTK_STATE_FLAG_CHECKED (1 << 11)
|
||||
#endif
|
||||
|
||||
+static GtkBorder
|
||||
+operator+=(GtkBorder& first, const GtkBorder& second)
|
||||
+{
|
||||
+ first.left += second.left;
|
||||
+ first.right += second.right;
|
||||
+ first.top += second.top;
|
||||
+ first.bottom += second.bottom;
|
||||
+ return first;
|
||||
+}
|
||||
+
|
||||
static gint
|
||||
moz_gtk_get_tab_thickness(GtkStyleContext *style);
|
||||
|
||||
@@ -3056,6 +3066,76 @@ GetScrollbarMetrics(GtkOrientation aOrie
|
||||
return metrics;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * get_shadow_width() from gtkwindow.c is not public so we need
|
||||
+ * to implement it.
|
||||
+ */
|
||||
+bool
|
||||
+GetCSDDecorationSize(GtkWindow *aGtkWindow, GtkBorder* aDecorationSize)
|
||||
+{
|
||||
+ GtkStyleContext* context = gtk_widget_get_style_context(GTK_WIDGET(aGtkWindow));
|
||||
+ bool solidDecorations = gtk_style_context_has_class(context, "solid-csd");
|
||||
+ context = GetStyleContext(solidDecorations ?
|
||||
+ MOZ_GTK_WINDOW_DECORATION_SOLID :
|
||||
+ MOZ_GTK_WINDOW_DECORATION);
|
||||
+
|
||||
+ /* Always sum border + padding */
|
||||
+ GtkBorder padding;
|
||||
+ GtkStateFlags state = gtk_style_context_get_state(context);
|
||||
+ gtk_style_context_get_border(context, state, aDecorationSize);
|
||||
+ gtk_style_context_get_padding(context, state, &padding);
|
||||
+ *aDecorationSize += padding;
|
||||
+
|
||||
+ // Available on GTK 3.20+.
|
||||
+ static auto sGtkRenderBackgroundGetClip =
|
||||
+ (void (*)(GtkStyleContext*, gdouble, gdouble, gdouble, gdouble, GdkRectangle*))
|
||||
+ dlsym(RTLD_DEFAULT, "gtk_render_background_get_clip");
|
||||
+
|
||||
+ GtkBorder margin;
|
||||
+ gtk_style_context_get_margin(context, state, &margin);
|
||||
+
|
||||
+ GtkBorder extents = {0, 0, 0, 0};
|
||||
+ if (sGtkRenderBackgroundGetClip) {
|
||||
+ /* Get shadow extents but combine with style margin; use the bigger value.
|
||||
+ */
|
||||
+ GdkRectangle clip;
|
||||
+ sGtkRenderBackgroundGetClip(context, 0, 0, 0, 0, &clip);
|
||||
+
|
||||
+ extents.top = -clip.y;
|
||||
+ extents.right = clip.width + clip.x;
|
||||
+ extents.bottom = clip.height + clip.y;
|
||||
+ extents.left = -clip.x;
|
||||
+
|
||||
+ // Margin is used for resize grip size - it's not present on
|
||||
+ // popup windows.
|
||||
+ if (gtk_window_get_window_type(aGtkWindow) != GTK_WINDOW_POPUP) {
|
||||
+ extents.top = MAX(extents.top, margin.top);
|
||||
+ extents.right = MAX(extents.right, margin.right);
|
||||
+ extents.bottom = MAX(extents.bottom, margin.bottom);
|
||||
+ extents.left = MAX(extents.left, margin.left);
|
||||
+ }
|
||||
+ } else {
|
||||
+ /* If we can't get shadow extents use decoration-resize-handle instead
|
||||
+ * as a workaround. This is inspired by update_border_windows()
|
||||
+ * from gtkwindow.c although this is not 100% accurate as we emulate
|
||||
+ * the extents here.
|
||||
+ */
|
||||
+ gint handle;
|
||||
+ gtk_widget_style_get(GetWidget(MOZ_GTK_WINDOW),
|
||||
+ "decoration-resize-handle", &handle,
|
||||
+ NULL);
|
||||
+
|
||||
+ extents.top = handle + margin.top;
|
||||
+ extents.right = handle + margin.right;
|
||||
+ extents.bottom = handle + margin.bottom;
|
||||
+ extents.left = handle + margin.left;
|
||||
+ }
|
||||
+
|
||||
+ *aDecorationSize += extents;
|
||||
+
|
||||
+ return (sGtkRenderBackgroundGetClip != nullptr);
|
||||
+}
|
||||
+
|
||||
/* cairo_t *cr argument has to be a system-cairo. */
|
||||
gint
|
||||
moz_gtk_widget_paint(WidgetNodeType widget, cairo_t *cr,
|
||||
diff -up firefox-60.0/widget/gtk/gtkdrawing.h.orig firefox-60.0/widget/gtk/gtkdrawing.h
|
||||
--- firefox-60.0/widget/gtk/gtkdrawing.h.orig 2018-04-26 22:07:35.000000000 +0200
|
||||
+++ firefox-60.0/widget/gtk/gtkdrawing.h 2018-04-30 13:38:19.083949868 +0200
|
||||
@@ -334,6 +334,10 @@ typedef enum {
|
||||
*/
|
||||
MOZ_GTK_HEADER_BAR_BUTTON_MAXIMIZE_RESTORE,
|
||||
|
||||
+ /* Client-side window decoration node. Available on GTK 3.20+. */
|
||||
+ MOZ_GTK_WINDOW_DECORATION,
|
||||
+ MOZ_GTK_WINDOW_DECORATION_SOLID,
|
||||
+
|
||||
MOZ_GTK_WIDGET_NODE_COUNT
|
||||
} WidgetNodeType;
|
||||
|
||||
@@ -606,4 +610,17 @@ GetToolbarButtonMetrics(WidgetNodeType a
|
||||
int
|
||||
GetGtkHeaderBarButtonLayout(WidgetNodeType* aButtonLayout, int aMaxButtonNums);
|
||||
|
||||
+/**
|
||||
+ * Get size of CSD window extents of given GtkWindow.
|
||||
+ *
|
||||
+ * aGtkWindow [IN] Decorated window.
|
||||
+ * aDecorationSize [OUT] Returns calculated (or estimated) decoration
|
||||
+ * size of given aGtkWindow.
|
||||
+ *
|
||||
+ * returns: True if we have extract decoration size (for GTK 3.20+)
|
||||
+ * False if we have only an estimation (for GTK+ before 3.20+)
|
||||
+ */
|
||||
+bool
|
||||
+GetCSDDecorationSize(GtkWindow *aGtkWindow, GtkBorder* aDecorationSize);
|
||||
+
|
||||
#endif
|
||||
diff -up firefox-60.0/widget/gtk/nsWindow.cpp.orig firefox-60.0/widget/gtk/nsWindow.cpp
|
||||
--- firefox-60.0/widget/gtk/nsWindow.cpp.orig 2018-04-30 13:37:32.145122854 +0200
|
||||
+++ firefox-60.0/widget/gtk/nsWindow.cpp 2018-04-30 13:39:12.593752681 +0200
|
||||
@@ -127,6 +127,7 @@ using namespace mozilla::widget;
|
||||
#endif
|
||||
|
||||
#include "nsShmImage.h"
|
||||
+#include "gtkdrawing.h"
|
||||
|
||||
#include "nsIDOMWheelEvent.h"
|
||||
|
||||
@@ -3360,6 +3361,10 @@ nsWindow::OnWindowStateEvent(GtkWidget *
|
||||
aEvent->new_window_state & GDK_WINDOW_STATE_FULLSCREEN);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ if (mDrawInTitlebar && mCSDSupportLevel == CSD_SUPPORT_CLIENT) {
|
||||
+ UpdateClientOffsetForCSDWindow();
|
||||
+ }
|
||||
}
|
||||
|
||||
void
|
||||
@@ -6552,6 +6557,32 @@ nsWindow::ClearCachedResources()
|
||||
}
|
||||
}
|
||||
|
||||
+/* nsWindow::UpdateClientOffsetForCSDWindow() is designed to be called from
|
||||
+ * paint code to update mClientOffset any time. It also propagates
|
||||
+ * the mClientOffset to child tabs.
|
||||
+ *
|
||||
+ * It works only for CSD decorated GtkWindow.
|
||||
+ */
|
||||
+void
|
||||
+nsWindow::UpdateClientOffsetForCSDWindow()
|
||||
+{
|
||||
+ // _NET_FRAME_EXTENTS is not set on client decorated windows,
|
||||
+ // so we need to read offset between mContainer and toplevel mShell
|
||||
+ // window.
|
||||
+ if (mSizeState == nsSizeMode_Normal) {
|
||||
+ GtkBorder decorationSize;
|
||||
+ GetCSDDecorationSize(GTK_WINDOW(mShell), &decorationSize);
|
||||
+ mClientOffset = nsIntPoint(decorationSize.left, decorationSize.top);
|
||||
+ } else {
|
||||
+ mClientOffset = nsIntPoint(0, 0);
|
||||
+ }
|
||||
+
|
||||
+ // Send a WindowMoved notification. This ensures that TabParent
|
||||
+ // picks up the new client offset and sends it to the child process
|
||||
+ // if appropriate.
|
||||
+ NotifyWindowMoved(mBounds.x, mBounds.y);
|
||||
+}
|
||||
+
|
||||
nsresult
|
||||
nsWindow::SetNonClientMargins(LayoutDeviceIntMargin &aMargins)
|
||||
{
|
||||
@@ -6626,6 +6657,13 @@ nsWindow::SetDrawsInTitlebar(bool aState
|
||||
mNeedsShow = true;
|
||||
NativeResize();
|
||||
|
||||
+ // When we use system titlebar setup managed by Gtk+ we also get
|
||||
+ // _NET_FRAME_EXTENTS property for our toplevel window so we can't
|
||||
+ // update the client offset it here.
|
||||
+ if (aState) {
|
||||
+ UpdateClientOffsetForCSDWindow();
|
||||
+ }
|
||||
+
|
||||
gtk_widget_destroy(tmpWindow);
|
||||
}
|
||||
|
||||
diff -up firefox-60.0/widget/gtk/nsWindow.h.orig firefox-60.0/widget/gtk/nsWindow.h
|
||||
--- firefox-60.0/widget/gtk/nsWindow.h.orig 2018-04-30 13:37:32.143122861 +0200
|
||||
+++ firefox-60.0/widget/gtk/nsWindow.h 2018-04-30 13:38:19.085949861 +0200
|
||||
@@ -454,6 +454,8 @@ private:
|
||||
nsIWidgetListener* GetListener();
|
||||
bool IsComposited() const;
|
||||
|
||||
+ void UpdateClientOffsetForCSDWindow();
|
||||
+
|
||||
GtkWidget *mShell;
|
||||
MozContainer *mContainer;
|
||||
GdkWindow *mGdkWindow;
|
||||
diff -up firefox-60.0/widget/gtk/WidgetStyleCache.cpp.orig firefox-60.0/widget/gtk/WidgetStyleCache.cpp
|
||||
--- firefox-60.0/widget/gtk/WidgetStyleCache.cpp.orig 2018-04-26 22:07:35.000000000 +0200
|
||||
+++ firefox-60.0/widget/gtk/WidgetStyleCache.cpp 2018-04-30 13:38:19.085949861 +0200
|
||||
@@ -1285,6 +1285,22 @@ GetCssNodeStyleInternal(WidgetNodeType a
|
||||
"MOZ_GTK_HEADER_BAR_BUTTON_RESTORE is used as an icon only!");
|
||||
return nullptr;
|
||||
}
|
||||
+ case MOZ_GTK_WINDOW_DECORATION:
|
||||
+ {
|
||||
+ GtkStyleContext* parentStyle =
|
||||
+ CreateSubStyleWithClass(MOZ_GTK_WINDOW, "csd");
|
||||
+ style = CreateCSSNode("decoration", parentStyle);
|
||||
+ g_object_unref(parentStyle);
|
||||
+ break;
|
||||
+ }
|
||||
+ case MOZ_GTK_WINDOW_DECORATION_SOLID:
|
||||
+ {
|
||||
+ GtkStyleContext* parentStyle =
|
||||
+ CreateSubStyleWithClass(MOZ_GTK_WINDOW, "solid-csd");
|
||||
+ style = CreateCSSNode("decoration", parentStyle);
|
||||
+ g_object_unref(parentStyle);
|
||||
+ break;
|
||||
+ }
|
||||
default:
|
||||
return GetWidgetRootStyle(aNodeType);
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
--- firefox-60.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp.orig 2018-05-14 13:23:26.001095058 +0200
|
||||
+++ firefox-60.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp 2018-05-14 13:24:46.851416500 +0200
|
||||
@@ -666,7 +666,7 @@ SI F approx_powf(F x, F y) {
|
||||
}
|
||||
|
||||
SI F from_half(U16 h) {
|
||||
-#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
||||
+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
||||
return vcvt_f32_f16(h);
|
||||
|
||||
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
|
||||
@@ -686,7 +686,7 @@ SI F from_half(U16 h) {
|
||||
}
|
||||
|
||||
SI U16 to_half(F f) {
|
||||
-#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
||||
+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
||||
return vcvt_f16_f32(f);
|
||||
|
||||
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
|
@ -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,5 @@
|
||||
# HG changeset patch
|
||||
# Parent d7a4d772ba2afb3ac43e2f2f234ffa55bcf50e70
|
||||
# Parent 8671b358718cb8898a55fada20fc9999408daefe
|
||||
Description: Add KDE integration to Firefox (toolkit parts)
|
||||
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
|
||||
Author: Lubos Lunak <lunak@suse.com>
|
||||
@ -9,7 +9,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 @@
|
||||
@@ -77,16 +77,17 @@
|
||||
#include "nsXPCOMCID.h"
|
||||
#include "nsXPCOM.h"
|
||||
#include "nsXULAppAPI.h"
|
||||
@ -27,7 +27,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
using namespace mozilla;
|
||||
|
||||
#ifdef DEBUG
|
||||
@@ -3868,25 +3869,37 @@ Preferences::InitInitialObjects()
|
||||
@@ -4201,25 +4202,37 @@ Preferences::InitInitialObjects(bool aIs
|
||||
// application pref files for backwards compatibility.
|
||||
static const char* specialFiles[] = {
|
||||
#if defined(XP_MACOSX)
|
||||
@ -65,7 +65,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.
|
||||
@@ -3935,17 +3948,17 @@ Preferences::InitInitialObjects()
|
||||
@@ -4268,17 +4281,17 @@ Preferences::InitInitialObjects(bool aIs
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIFile> path = do_QueryInterface(elem);
|
||||
@ -79,17 +79,17 @@ 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,
|
||||
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 += [
|
||||
@@ -29,16 +29,20 @@ EXPORTS.mozilla += [
|
||||
'Preferences.h',
|
||||
'StaticPrefs.h',
|
||||
]
|
||||
|
||||
UNIFIED_SOURCES += [
|
||||
@ -171,7 +171,7 @@ diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloa
|
||||
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:
|
||||
@@ -68,16 +68,18 @@ toolkit.jar:
|
||||
content/global/bindings/checkbox.xml (widgets/checkbox.xml)
|
||||
content/global/bindings/colorpicker.xml (widgets/colorpicker.xml)
|
||||
content/global/bindings/datekeeper.js (widgets/datekeeper.js)
|
||||
@ -183,13 +183,13 @@ diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
|
||||
+* 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/notification.xml (widgets/notification.xml)
|
||||
diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/dialog-kde.xml
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@ -676,45 +676,7 @@ new file mode 100644
|
||||
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 = {
|
||||
@@ -1035,30 +1035,60 @@ nsUnknownContentTypeDialog.prototype = {
|
||||
|
||||
if (params.handlerApp &&
|
||||
params.handlerApp.executable &&
|
||||
@ -1371,7 +1333,7 @@ diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
|
||||
'android/nsExternalSharingAppService.cpp',
|
||||
'android/nsExternalURLHandlerService.cpp',
|
||||
'android/nsMIMEInfoAndroid.cpp',
|
||||
@@ -124,16 +126,17 @@ include('/ipc/chromium/chromium-config.m
|
||||
@@ -122,16 +124,17 @@ include('/ipc/chromium/chromium-config.m
|
||||
FINAL_LIBRARY = 'xul'
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
@ -1808,7 +1770,7 @@ 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:
|
||||
@@ -122,16 +122,17 @@ else:
|
||||
include('/ipc/chromium/chromium-config.mozbuild')
|
||||
|
||||
FINAL_LIBRARY = 'xul'
|
||||
@ -2204,7 +2166,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
const char* directive;
|
||||
int argc;
|
||||
|
||||
@@ -444,16 +445,17 @@ ParseManifest(NSLocationType aType, File
|
||||
@@ -441,16 +442,17 @@ ParseManifest(NSLocationType aType, File
|
||||
NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");
|
||||
NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");
|
||||
NS_NAMED_LITERAL_STRING(kApplication, "application");
|
||||
@ -2222,7 +2184,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
NS_NAMED_LITERAL_STRING(kMain, "main");
|
||||
NS_NAMED_LITERAL_STRING(kContent, "content");
|
||||
|
||||
@@ -499,44 +501,49 @@ ParseManifest(NSLocationType aType, File
|
||||
@@ -496,44 +498,49 @@ ParseManifest(NSLocationType aType, File
|
||||
CopyUTF8toUTF16(s, abi);
|
||||
abi.Insert(char16_t('_'), 0);
|
||||
abi.Insert(osTarget, 0);
|
||||
@ -2272,7 +2234,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
process = kMain;
|
||||
}
|
||||
|
||||
@@ -638,25 +645,27 @@ ParseManifest(NSLocationType aType, File
|
||||
@@ -635,25 +642,27 @@ ParseManifest(NSLocationType aType, File
|
||||
TriState stOsVersion = eUnspecified;
|
||||
TriState stOs = eUnspecified;
|
||||
TriState stABI = eUnspecified;
|
||||
@ -2300,7 +2262,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
}
|
||||
|
||||
#if defined(MOZ_WIDGET_ANDROID)
|
||||
@@ -701,16 +710,17 @@ ParseManifest(NSLocationType aType, File
|
||||
@@ -698,16 +707,17 @@ ParseManifest(NSLocationType aType, File
|
||||
}
|
||||
|
||||
if (!ok ||
|
||||
@ -2321,16 +2283,16 @@ 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'
|
||||
@@ -43,12 +43,13 @@ FINAL_LIBRARY = 'xul'
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
'!..',
|
||||
'../base',
|
||||
'../build',
|
||||
'../ds',
|
||||
'../reflect/xptinfo',
|
||||
'/chrome',
|
||||
'/modules/libjar',
|
||||
+ '/toolkit/xre'
|
||||
+ '/toolkit/xre',
|
||||
]
|
||||
|
||||
if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
|
||||
|
40
mozilla-no-return.patch
Normal file
40
mozilla-no-return.patch
Normal file
@ -0,0 +1,40 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent 242712e5a1879111d1a93a5d55dfae3fd5d47abc
|
||||
|
||||
diff --git a/intl/icu/source/i18n/number_grouping.cpp b/intl/icu/source/i18n/number_grouping.cpp
|
||||
--- a/intl/icu/source/i18n/number_grouping.cpp
|
||||
+++ b/intl/icu/source/i18n/number_grouping.cpp
|
||||
@@ -43,16 +43,17 @@ Grouper Grouper::forStrategy(UGroupingSt
|
||||
case UNUM_GROUPING_MIN2:
|
||||
return {-2, -2, -3};
|
||||
case UNUM_GROUPING_ON_ALIGNED:
|
||||
return {-4, -4, 1};
|
||||
case UNUM_GROUPING_THOUSANDS:
|
||||
return {3, 3, 1};
|
||||
default:
|
||||
U_ASSERT(FALSE);
|
||||
+ return {0, 0, 0};
|
||||
}
|
||||
}
|
||||
|
||||
void Grouper::setLocaleData(const impl::ParsedPatternInfo &patternInfo, const Locale& locale) {
|
||||
if (fGrouping1 != -2 && fGrouping2 != -4) {
|
||||
return;
|
||||
}
|
||||
auto grouping1 = static_cast<int16_t> (patternInfo.positive.groupingSizes & 0xffff);
|
||||
diff --git a/media/libcubeb/src/cubeb_utils.cpp b/media/libcubeb/src/cubeb_utils.cpp
|
||||
--- a/media/libcubeb/src/cubeb_utils.cpp
|
||||
+++ b/media/libcubeb/src/cubeb_utils.cpp
|
||||
@@ -14,10 +14,11 @@ size_t cubeb_sample_size(cubeb_sample_fo
|
||||
case CUBEB_SAMPLE_S16BE:
|
||||
return sizeof(int16_t);
|
||||
case CUBEB_SAMPLE_FLOAT32LE:
|
||||
case CUBEB_SAMPLE_FLOAT32BE:
|
||||
return sizeof(float);
|
||||
default:
|
||||
// should never happen as all cases are handled above.
|
||||
assert(false);
|
||||
+ return sizeof(float);
|
||||
}
|
||||
}
|
@ -1,2 +1,2 @@
|
||||
REV=03d4f76300be
|
||||
REV=785d242a5b01
|
||||
REPO=http://hg.mozilla.org/releases/mozilla-release
|
||||
|
Loading…
Reference in New Issue
Block a user