Hello community, here is the log from the commit of package MozillaFirefox for openSUSE:Factory checked in at 2019-07-22 12:18:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/MozillaFirefox (Old) and /work/SRC/openSUSE:Factory/.MozillaFirefox.new.4126 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "MozillaFirefox" Mon Jul 22 12:18:41 2019 rev:291 rq:717184 version:68.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/MozillaFirefox/MozillaFirefox.changes 2019-06-24 21:50:58.499994987 +0200 +++ /work/SRC/openSUSE:Factory/.MozillaFirefox.new.4126/MozillaFirefox.changes 2019-07-22 12:18:43.787690511 +0200 @@ -1,0 +2,109 @@ +Fri Jul 19 08:11:27 UTC 2019 - Wolfgang Rosenauer <[email protected]> + +- Mozilla Firefox 68.0.1 + * Fixed missing Full Screen button when watching videos in full + screen mode on HBO GO (bmo#1562837) + * Fixed a bug causing incorrect messages to appear for some + locales when sites try to request the use of the Storage + Access API (bmo#1558503) + * Users in Russian regions may have their default search engine + changed (bmo#1565315) + * Built-in search engines in some locales do not function + correctly (bmo#1565779) + * SupportMenu policy doesn't always work (bmo#1553290) + * Allow the privacy.file_unique_origin pref to be controlled by + policy (bmo#1563759) + +------------------------------------------------------------------- +Thu Jul 11 10:51:39 UTC 2019 - Jiri Slaby <[email protected]> + +- add fix-build-after-y2038-changes-in-glibc.patch + +------------------------------------------------------------------- +Wed Jul 10 13:47:41 UTC 2019 - Bernhard Wiedemann <[email protected]> + +- Generate langpacks sequentially to avoid file corruption + from racy file writes (boo#1137970) + +------------------------------------------------------------------- +Mon Jul 8 13:30:35 UTC 2019 - Wolfgang Rosenauer <[email protected]> + +- Mozilla Firefox 68.0 + * Dark mode in reader view + * Improved extension security and discovery + * Cryptomining and fingerprinting protections are added to strict + content blocking settings in Privacy & Security preferences + * Camera and microphone access now require an HTTPS connection + MFSA 2019-21 (bsc#1140868) + * CVE-2019-9811 (bmo#1538007, bmo#1539598, bmo#1563327) + Sandbox escape via installation of malicious languagepack + * CVE-2019-11711 (bmo#1552541) + Script injection within domain through inner window reuse + * CVE-2019-11712 (bmo#1543804) + Cross-origin POST requests can be made with NPAPI plugins by + following 308 redirects + * CVE-2019-11713 (bmo#1528481) + Use-after-free with HTTP/2 cached stream + * CVE-2019-11714 (bmo#1542593) + NeckoChild can trigger crash when accessed off of main thread + * CVE-2019-11729 (bmo#1515342) + Empty or malformed p256-ECDH public keys may trigger a segmentation fault + * CVE-2019-11715 (bmo#1555523) + HTML parsing error can contribute to content XSS + * CVE-2019-11716 (bmo#1552632) + globalThis not enumerable until accessed + * CVE-2019-11717 (bmo#1548306) + Caret character improperly escaped in origins + * CVE-2019-11718 (bmo#1408349) + Activity Stream writes unsanitized content to innerHTML + * CVE-2019-11719 (bmo#1540541) + Out-of-bounds read when importing curve25519 private key + * CVE-2019-11720 (bmo#1556230) + Character encoding XSS vulnerability + * CVE-2019-11721 (bmo#1256009) + Domain spoofing through unicode latin 'kra' character + * CVE-2019-11730 (bmo#1558299) + Same-origin policy treats all files in a directory as having the + same-origin + * CVE-2019-11723 (bmo#1528335) + Cookie leakage during add-on fetching across private browsing boundaries + * CVE-2019-11724 (bmo#1512511) + Retired site input.mozilla.org has remote troubleshooting permissions + * CVE-2019-11725 (bmo#1483510) + Websocket resources bypass safebrowsing protections + * CVE-2019-11727 (bmo#1552208) + PKCS#1 v1.5 signatures can be used for TLS 1.3 + * CVE-2019-11728 (bmo#1552993) + Port scanning through Alt-Svc header + * CVE-2019-11710 (bmo#1549768, bmo#1548611, bmo#1533842, bmo#1537692, + bmo#1540590, bmo#1551907, bmo#1510345, bmo#1535482, bmo#1535848, + bmo#1547472, bmo#1547760, bmo#1507696, bmo#1544180) + Memory safety bugs fixed in Firefox 68 + * CVE-2019-11709 (bmo#1547266, bmo#1540759, bmo#1548822, bmo#1550498 + bmo#1515052, bmo#1539219, bmo#1547757, bmo#1550498, bmo#1533522) + Memory safety bugs fixed in Firefox 68 and Firefox ESR 60.8 +- requires + * NSS 3.44.1 + * rust/cargo 1.34 + * rust-cbindgen 0.8.7 +- rebased patches + * mozilla-aarch64-startup-crash.patch + * mozilla-kde.patch + * mozilla-nongnome-proxies.patch + * firefox-kde.patch +- use new create-tar.sh and add tar_stamps for package definitions +- added patches imported from SLE flavour + * mozilla-gcc-internal-compiler-error.patch + * mozilla-bmo1005535.patch + * mozilla-ppc-altivec_static_inline.patch + * mozilla-reduce-rust-debuginfo.patch + * mozilla-s390-bigendian.patch + * mozilla-s390-context.patch + +------------------------------------------------------------------- +Mon Jul 2 14:15:17 UTC 2019 - Martin Liška <[email protected]> + +- Enable PGO for x86_64. + * added firefox-add-kde.js-in-order-to-survive-PGO-build.patch + +------------------------------------------------------------------- Old: ---- firefox-67.0.4.source.tar.xz firefox-67.0.4.source.tar.xz.asc l10n-67.0.4.tar.xz New: ---- firefox-68.0.1.source.tar.xz firefox-68.0.1.source.tar.xz.asc firefox-add-kde.js-in-order-to-survive-PGO-build.patch fix-build-after-y2038-changes-in-glibc.patch l10n-68.0.1.tar.xz mozilla-bmo1005535.patch mozilla-gcc-internal-compiler-error.patch mozilla-ppc-altivec_static_inline.patch mozilla-reduce-rust-debuginfo.patch mozilla-s390-bigendian.patch mozilla-s390-context.patch tar_stamps ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ MozillaFirefox.spec ++++++ --- /var/tmp/diff_new_pack.QVdN20/_old 2019-07-22 12:19:09.903683659 +0200 +++ /var/tmp/diff_new_pack.QVdN20/_new 2019-07-22 12:19:09.907683658 +0200 @@ -2,7 +2,7 @@ # spec file for package MozillaFirefox # # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. -# 2006-2019 Wolfgang Rosenauer +# 2006-2019 Wolfgang Rosenauer <[email protected]> # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,13 +18,13 @@ # changed with every update -%define major 67 -%define mainver %major.0.4 -%define orig_version 67.0.4 +%define major 68 +%define mainver %major.0.1 +%define orig_version 68.0.1 %define orig_suffix %{nil} %define update_channel release %define branding 1 -%define releasedate 20190619235627 +%define releasedate 20190717172542 %define source_prefix firefox-%{orig_version} # always build with GCC as SUSE Security Team requires that @@ -62,6 +62,7 @@ BuildRequires: alsa-devel BuildRequires: autoconf213 BuildRequires: dbus-1-glib-devel +BuildRequires: dejavu-fonts BuildRequires: fdupes BuildRequires: memory-constraints %if 0%{?suse_version} <= 1320 @@ -69,7 +70,7 @@ %else BuildRequires: gcc-c++ %endif -BuildRequires: cargo >= 1.32 +BuildRequires: cargo >= 1.34 BuildRequires: libXcomposite-devel BuildRequires: libcurl-devel BuildRequires: libidl-devel @@ -78,22 +79,23 @@ BuildRequires: libproxy-devel BuildRequires: makeinfo BuildRequires: mozilla-nspr-devel >= 4.21 -BuildRequires: mozilla-nss-devel >= 3.43 +BuildRequires: mozilla-nss-devel >= 3.44.1 BuildRequires: nasm >= 2.13 BuildRequires: nodejs >= 8.11 BuildRequires: python-devel BuildRequires: python2-xml BuildRequires: python3 >= 3.5 -BuildRequires: rust >= 1.32 -BuildRequires: rust-cbindgen >= 0.8.2 +BuildRequires: rust >= 1.34 +BuildRequires: rust-cbindgen >= 0.8.7 BuildRequires: startup-notification-devel BuildRequires: unzip BuildRequires: update-desktop-files BuildRequires: xorg-x11-libXt-devel +BuildRequires: xvfb-run BuildRequires: yasm BuildRequires: zip %if 0%{?suse_version} < 1550 -BuildRequires: pkgconfig(gconf-2.0) +BuildRequires: pkgconfig(gconf-2.0) >= 1.2.1 %endif BuildRequires: pkgconfig(gdk-x11-2.0) BuildRequires: pkgconfig(glib-2.0) >= 2.22 @@ -136,6 +138,7 @@ Source1: MozillaFirefox.desktop Source2: MozillaFirefox-rpmlintrc Source3: mozilla.sh.in +Source4: tar_stamps Source5: source-stamp.txt Source6: kde.js Source7: l10n-%{orig_version}%{orig_suffix}.tar.xz @@ -145,7 +148,7 @@ Source11: firefox.1 Source12: mozilla-get-app-id Source13: spellcheck.js -Source14: create-tar.sh +Source14: https://github.com/openSUSE/firefox-scripts/raw/master/create-tar.sh Source15: firefox-appdata.xml Source16: MozillaFirefox.changes # Set up API keys, see http://www.chromium.org/developers/how-tos/api-keys @@ -153,21 +156,29 @@ # 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-%{orig_version}%{orig_suffix}.source.tar.xz.asc +Source20: https://ftp.mozilla.org/pub/%{progname}/releases/%{version}/source/%{progname}-%{orig_version}%{orig_suffix}.source.tar.xz.asc Source21: mozilla.keyring # Gecko/Toolkit Patch1: mozilla-nongnome-proxies.patch Patch2: mozilla-kde.patch Patch3: mozilla-ntlm-full-path.patch Patch4: mozilla-openaes-decl.patch -Patch7: mozilla-aarch64-startup-crash.patch -Patch9: mozilla-bmo1463035.patch -Patch10: mozilla-cubeb-noreturn.patch -Patch11: mozilla-fix-aarch64-libopus.patch -Patch12: mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch +Patch5: mozilla-aarch64-startup-crash.patch +Patch6: mozilla-bmo1463035.patch +Patch7: mozilla-cubeb-noreturn.patch +Patch8: mozilla-fix-aarch64-libopus.patch +Patch9: mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch +Patch10: mozilla-gcc-internal-compiler-error.patch +Patch11: mozilla-s390-context.patch +Patch12: mozilla-s390-bigendian.patch +Patch13: mozilla-reduce-rust-debuginfo.patch +Patch14: mozilla-ppc-altivec_static_inline.patch +Patch15: mozilla-bmo1005535.patch +Patch16: fix-build-after-y2038-changes-in-glibc.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-branded-icons.patch +Patch103: firefox-add-kde.js-in-order-to-survive-PGO-build.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires(post): coreutils shared-mime-info desktop-file-utils Requires(postun): shared-mime-info desktop-file-utils @@ -206,7 +217,7 @@ %package translations-common Summary: Common translations for %{appname} Group: System/Localization -Provides: locale(%{name}:ar;ca;cs;da;de;en_GB;el;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) +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} @@ -259,6 +270,15 @@ %prep %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 -c%s "%{SOURCE7}") < MINSIZE)); then + echo "Translations tarball %{SOURCE7} not generated properly." + exit 1 +fi + %setup -q -n %{source_prefix} -b 7 -b 10 %else %setup -q -n %{source_prefix} @@ -268,18 +288,28 @@ %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 +%patch6 -p1 %patch7 -p1 +%patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 +%ifarch s390x %patch12 -p1 +%endif +%patch13 -p1 +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 # Firefox %patch101 -p1 %patch102 -p1 +%patch103 -p1 %build # no need to add build time to binaries -modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/MozillaFirefox.changes")" +modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")" DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\"" TIME="\"$(date -d "${modified}" "+%%R")\"" find . -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} + @@ -342,7 +372,7 @@ ac_add_options --enable-debug-symbols %endif %if 0%{?suse_version} > 1549 -%ifnarch aarch64 ppc64 ppc64le +%ifnarch aarch64 ppc64 ppc64le s390x ac_add_options --disable-elf-hack %endif %endif @@ -388,10 +418,11 @@ # LTO needs newer toolchain stack only (at least GCC 8.2.1 (r268506) %if 0%{?suse_version} > 1500 ac_add_options --enable-lto +ac_add_options MOZ_PGO=1 %endif %endif EOF -./mach build +xvfb-run --server-args="-screen 0 1920x1080x24" ./mach build %install cd $RPM_BUILD_DIR/obj @@ -420,7 +451,7 @@ 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 ' + | xargs -n 1 -I {} /bin/sh -c ' locale=$1 pushd $RPM_BUILD_DIR/compare-locales PYTHONPATH=lib \ @@ -436,7 +467,7 @@ rm -rf %{buildroot}%{progdir}/browser/extensions/[email protected]/hyphenation # check against the fixed common list and sort into the right filelist _matched=0 - for _match in ar ca cs da de en-GB el 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 + 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 done [ $_matched -eq 1 ] && _l10ntarget=common || _l10ntarget=other ++++++ compare-locales.tar.xz ++++++ ++++++ create-tar.sh ++++++ --- /var/tmp/diff_new_pack.QVdN20/_old 2019-07-22 12:19:10.059683618 +0200 +++ /var/tmp/diff_new_pack.QVdN20/_new 2019-07-22 12:19:10.063683617 +0200 @@ -1,20 +1,127 @@ #!/bin/bash -# TODO -# http://ftp.mozilla.org/pub/firefox/candidates/48.0-candidates/build2/linux-x86_64/en-US/firefox-48.0.json -# "moz_source_stamp": "c1de04f39fa956cfce83f6065b0e709369215ed5" -# http://ftp.mozilla.org/pub/firefox/candidates/48.0-candidates/build2/l10n_changesets.txt +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" +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 -CHANNEL="release" +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" -RELEASE_TAG="ea5154beddff08b919697e3bed6f38cfe3a3d82f" -VERSION="67.0.4" -VERSION_SUFFIX="" -LOCALE_FILE="firefox-$VERSION/browser/locales/l10n-changesets.json" +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' @@ -23,69 +130,144 @@ 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 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 +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 + # 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 firefox-$VERSION ]; then - pushd firefox-$VERSION + 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 firefox-$VERSION + popd || exit 1 + rm -rf $PRODUCT-$VERSION ;; esac fi - if [ ! -d firefox-$VERSION ]; then + if [ ! -d $PRODUCT-$VERSION ]; then echo "cloning new $BRANCH..." - hg clone http://hg.mozilla.org/$BRANCH firefox-$VERSION + 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 firefox-$VERSION - hg update --check - [ "$RELEASE_TAG" == "default" ] || hg update -r $RELEASE_TAG + 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 - popd + + 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..." - tar $compression -cf firefox-$VERSION$VERSION_SUFFIX.source.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS firefox-$VERSION + tar $compression -cf $PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS $PRODUCT-$VERSION fi -# 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 ..." - hg clone http://hg.mozilla.org/l10n-central/$locale l10n/$locale - [ "$RELEASE_TAG" == "default" ] || hg -R l10n/$locale up -C -r $changeset - ;; - esac - done -echo "creating l10n archive..." -tar $compression -cf l10n-$VERSION$VERSION_SUFFIX.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg l10n +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" -hg clone http://hg.mozilla.org/build/compare-locales +if [ -d compare-locales/.hg ]; then + pushd compare-locales || exit 1 + hg pull + popd || exit 1 +else + hg clone http://hg.mozilla.org/build/compare-locales +fi tar $compression -cf compare-locales.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg compare-locales ++++++ firefox-67.0.4.source.tar.xz -> firefox-68.0.1.source.tar.xz ++++++ /work/SRC/openSUSE:Factory/MozillaFirefox/firefox-67.0.4.source.tar.xz /work/SRC/openSUSE:Factory/.MozillaFirefox.new.4126/firefox-68.0.1.source.tar.xz differ: char 15, line 1 ++++++ firefox-add-kde.js-in-order-to-survive-PGO-build.patch ++++++ >From 89767f5dd97e69d7e9189e5603647645818d27d6 Mon Sep 17 00:00:00 2001 From: marxin <[email protected]> Date: Thu, 29 Nov 2018 10:07:29 +0100 Subject: [PATCH 2/3] Add kde.js in order to survive PGO build. --- browser/app/Makefile.in | 1 + kde.js | 2 ++ 2 files changed, 3 insertions(+) create mode 100644 kde.js diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in index 4129aa43fb91..c9950895d520 100644 --- a/browser/app/Makefile.in +++ b/browser/app/Makefile.in @@ -57,6 +57,7 @@ endif libs:: $(srcdir)/profile/channel-prefs.js $(NSINSTALL) -D $(DIST)/bin/defaults/pref $(call py_action,preprocessor,-Fsubstitution $(PREF_PPFLAGS) $(ACDEFINES) $^ -o $(DIST)/bin/defaults/pref/channel-prefs.js) + cp $(topsrcdir)/kde.js $(DIST)/bin/defaults/pref/kde.js ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) diff --git a/kde.js b/kde.js new file mode 100644 index 000000000000..b0d3e5d20437 --- /dev/null +++ b/kde.js @@ -0,0 +1,2 @@ +pref("browser.preferences.instantApply", false); +pref("browser.backspace_action", 0); -- 2.19.1 ++++++ firefox-kde.patch ++++++ --- /var/tmp/diff_new_pack.QVdN20/_old 2019-07-22 12:19:10.103683606 +0200 +++ /var/tmp/diff_new_pack.QVdN20/_new 2019-07-22 12:19:10.107683605 +0200 @@ -1,11 +1,20 @@ # HG changeset patch -# Parent 18632e53d0b0c4c03f254ca2dbbeac8f48ec6f5c +# User [email protected] +# Date 1559300151 -7200 +# Fri May 31 12:55:51 2019 +0200 +# Node ID 54d41b0033b8d649d842a1f862c6fed8b9874dec +# Parent 428161c3b9599083e1b8710eda1760f1f707ab11 +How to apply this patch: +1. Import and apply it +2. cp browser/base/content/browser.xul browser/base/content/browser-kde.xul +3. Find editBookmarkPanelDoneButton +4. Replace #ifndef with #ifdef in the line above (this hanges the button order from Gnome-style to KDE-style) +5. hg qrefresh -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,1404 @@ +diff -r 428161c3b959 -r 54d41b0033b8 browser/base/content/browser-kde.xul +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/browser/base/content/browser-kde.xul Fri May 31 12:55:51 2019 +0200 +@@ -0,0 +1,1375 @@ +#filter substitution +<?xml version="1.0"?> +# -*- Mode: HTML -*- @@ -37,7 +46,6 @@ +<?xml-stylesheet href="chrome://browser/skin/searchbar.css" type="text/css"?> +<?xml-stylesheet href="chrome://browser/skin/places/tree-icons.css" type="text/css"?> +<?xml-stylesheet href="chrome://browser/skin/places/editBookmark.css" type="text/css"?> -+<?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. @@ -89,10 +97,9 @@ +# that they can be shared with macWindow.inc.xul. +#include global-scripts.inc + -+<script type="application/javascript"> ++<script> + Services.scriptloader.loadSubScript("chrome://global/content/contentAreaUtils.js", this); + Services.scriptloader.loadSubScript("chrome://browser/content/browser-captivePortal.js", this); -+ Services.scriptloader.loadSubScript("chrome://browser/content/browser-compacttheme.js", this); + Services.scriptloader.loadSubScript("chrome://browser/content/browser-contentblocking.js", this); +#ifdef MOZ_DATA_REPORTING + Services.scriptloader.loadSubScript("chrome://browser/content/browser-data-submission-info-bar.js", this); @@ -133,69 +140,52 @@ + <menupopup id="tabContextMenu" + onpopupshowing="if (event.target == this) TabContextMenu.updateContextMenu(this);" + onpopuphidden="if (event.target == this) TabContextMenu.contextTab = null;"> -+ <menuitem id="context_reloadTab" label="&reloadTab.label;" accesskey="&reloadTab.accesskey;" ++ <menuitem id="context_reloadTab" data-lazy-l10n-id="reload-tab" + oncommand="gBrowser.reloadTab(TabContextMenu.contextTab);"/> -+ <menuitem id="context_reloadSelectedTabs" label="&reloadTabs.label;" hidden="true" -+ accesskey="&reloadTabs.accesskey;" ++ <menuitem id="context_reloadSelectedTabs" data-lazy-l10n-id="reload-tabs" hidden="true" + oncommand="gBrowser.reloadMultiSelectedTabs();"/> + <menuitem id="context_toggleMuteTab" oncommand="TabContextMenu.contextTab.toggleMuteAudio();"/> + <menuitem id="context_toggleMuteSelectedTabs" hidden="true" + oncommand="gBrowser.toggleMuteAudioOnMultiSelectedTabs(TabContextMenu.contextTab);"/> -+ <menuitem id="context_pinTab" label="&pinTab.label;" -+ accesskey="&pinTab.accesskey;" ++ <menuitem id="context_pinTab" data-lazy-l10n-id="pin-tab" + oncommand="gBrowser.pinTab(TabContextMenu.contextTab);"/> -+ <menuitem id="context_unpinTab" label="&unpinTab.label;" hidden="true" -+ accesskey="&unpinTab.accesskey;" ++ <menuitem id="context_unpinTab" data-lazy-l10n-id="unpin-tab" hidden="true" + oncommand="gBrowser.unpinTab(TabContextMenu.contextTab);"/> -+ <menuitem id="context_pinSelectedTabs" label="&pinSelectedTabs.label;" hidden="true" -+ accesskey="&pinSelectedTabs.accesskey;" ++ <menuitem id="context_pinSelectedTabs" data-lazy-l10n-id="pin-selected-tabs" hidden="true" + oncommand="gBrowser.pinMultiSelectedTabs();"/> -+ <menuitem id="context_unpinSelectedTabs" label="&unpinSelectedTabs.label;" hidden="true" -+ accesskey="&unpinSelectedTabs.accesskey;" ++ <menuitem id="context_unpinSelectedTabs" data-lazy-l10n-id="unpin-selected-tabs" hidden="true" + oncommand="gBrowser.unpinMultiSelectedTabs();"/> -+ <menuitem id="context_duplicateTab" label="&duplicateTab.label;" -+ accesskey="&duplicateTab.accesskey;" ++ <menuitem id="context_duplicateTab" data-lazy-l10n-id="duplicate-tab" + oncommand="duplicateTabIn(TabContextMenu.contextTab, 'tab');"/> -+ <menuitem id="context_duplicateTabs" label="&duplicateTabs.label;" -+ accesskey="&duplicateTabs.accesskey;" ++ <menuitem id="context_duplicateTabs" data-lazy-l10n-id="duplicate-tabs" + oncommand="TabContextMenu.duplicateSelectedTabs();"/> + <menuseparator/> -+ <menuitem id="context_selectAllTabs" label="&selectAllTabs.label;" accesskey="&selectAllTabs.accesskey;" ++ <menuitem id="context_selectAllTabs" data-lazy-l10n-id="select-all-tabs" + oncommand="gBrowser.selectAllTabs();"/> + <menuitem id="context_bookmarkSelectedTabs" + hidden="true" -+ label="&bookmarkSelectedTabs.label;" -+ accesskey="&bookmarkSelectedTabs.accesskey;" ++ data-lazy-l10n-id="bookmark-selected-tabs" + oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);"/> + <menuitem id="context_bookmarkTab" -+ label="&bookmarkTab.label;" -+ accesskey="&bookmarkTab.accesskey;" ++ data-lazy-l10n-id="bookmark-tab" + oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.getUniquePages([TabContextMenu.contextTab]));"/> + <menu id="context_reopenInContainer" -+ label="&reopenInContainer.label;" -+ accesskey="&reopenInContainer.accesskey;" ++ data-lazy-l10n-id="reopen-in-container" + hidden="true"> + <menupopup oncommand="TabContextMenu.reopenInContainer(event);" + onpopupshowing="TabContextMenu.createReopenInContainerMenu(event);"/> + </menu> -+ <menu id="context_moveTabOptions" -+ multiselectcontextlabel="&moveSelectedTabOptions.label;" -+ multiselectcontextaccesskey="&moveSelectedTabOptions.accesskey;" -+ nonmultiselectcontextlabel="&moveTabOptions.label;" -+ nonmultiselectcontextaccesskey="&moveTabOptions.accesskey;"> ++ <menu id="context_moveTabOptions"> + <menupopup id="moveTabOptionsMenu"> + <menuitem id="context_moveToStart" -+ label="&moveToStart.label;" -+ accesskey="&moveToStart.accesskey;" ++ data-lazy-l10n-id="move-to-start" + tbattr="tabbrowser-multiple" + oncommand="gBrowser.moveTabsToStart(TabContextMenu.contextTab);"/> + <menuitem id="context_moveToEnd" -+ label="&moveToEnd.label;" -+ accesskey="&moveToEnd.accesskey;" ++ data-lazy-l10n-id="move-to-end" + tbattr="tabbrowser-multiple" + oncommand="gBrowser.moveTabsToEnd(TabContextMenu.contextTab);"/> -+ <menuitem id="context_openTabInWindow" label="&moveToNewWindow.label;" -+ accesskey="&moveToNewWindow.accesskey;" ++ <menuitem id="context_openTabInWindow" data-lazy-l10n-id="move-to-new-window" + tbattr="tabbrowser-multiple" + oncommand="gBrowser.replaceTabsWithWindow(TabContextMenu.contextTab);"/> + </menupopup> @@ -206,18 +196,17 @@ + onpopupshowing="gSync.populateSendTabToDevicesMenu(event.target, TabContextMenu.contextTab.linkedBrowser.currentURI.spec, TabContextMenu.contextTab.linkedBrowser.contentTitle, TabContextMenu.contextTab.multiselected);"/> + </menu> + <menuseparator/> -+ <menuitem id="context_closeTabsToTheEnd" label="&closeTabsToTheEnd.label;" accesskey="&closeTabsToTheEnd.accesskey;" ++ <menuitem id="context_closeTabsToTheEnd" data-lazy-l10n-id="close-tabs-to-the-end" + oncommand="gBrowser.removeTabsToTheEndFrom(TabContextMenu.contextTab, {animate: true});"/> -+ <menuitem id="context_closeOtherTabs" label="&closeOtherTabs.label;" accesskey="&closeOtherTabs.accesskey;" ++ <menuitem id="context_closeOtherTabs" data-lazy-l10n-id="close-other-tabs" + oncommand="gBrowser.removeAllTabsBut(TabContextMenu.contextTab);"/> + <menuitem id="context_undoCloseTab" -+ label="&undoCloseTab.label;" -+ accesskey="&undoCloseTab.accesskey;" ++ data-lazy-l10n-id="undo-close-tab" + observes="History:UndoCloseTab"/> -+ <menuitem id="context_closeTab" label="&closeTab.label;" accesskey="&closeTab.accesskey;" ++ <menuitem id="context_closeTab" data-lazy-l10n-id="close-tab" + oncommand="gBrowser.removeTab(TabContextMenu.contextTab, { animate: true });"/> -+ <menuitem id="context_closeSelectedTabs" label="&closeTabs.label;" -+ hidden="true" accesskey="&closeTabs.accesskey;" ++ <menuitem id="context_closeSelectedTabs" data-lazy-l10n-id="close-tabs" ++ hidden="true" + oncommand="gBrowser.removeMultiSelectedTabs();"/> + </menupopup> + @@ -301,11 +290,17 @@ + aria-labelledby="editBookmarkPanelTitle"> + <box class="panel-header"> + <label id="editBookmarkPanelTitle"/> ++ <toolbarbutton id="editBookmarkPanelInfoButton" oncommand="StarUI.toggleRecommendation();" > ++ <image/> ++ </toolbarbutton> + </box> -+ <html:div id="editBookmarkPanelFaviconContainer"> -+ <html:img id="editBookmarkPanelFavicon"/> ++ <html:div id="editBookmarkPanelInfoArea"> ++ <html:div id="editBookmarkPanelRecommendation"></html:div> ++ <html:div id="editBookmarkPanelFaviconContainer"> ++ <html:img id="editBookmarkPanelFavicon"/> ++ </html:div> ++ <html:div id="editBookmarkPanelImage"></html:div> + </html:div> -+ <box id="editBookmarkPanelImage"/> +#include ../../components/places/content/editBookmarkPanel.inc.xul + <vbox id="editBookmarkPanelBottomContent" + flex="1"> @@ -424,6 +419,11 @@ + label="&customizeMenu.removeExtension.label;" + contexttype="toolbaritem" + class="customize-context-removeExtension"/> ++ <menuitem oncommand="ToolbarContextMenu.reportExtensionForContextAction(this.parentElement, 'toolbar_context_menu')" ++ accesskey="&customizeMenu.reportExtension.accesskey;" ++ label="&customizeMenu.reportExtension.label;" ++ contexttype="toolbaritem" ++ class="customize-context-reportExtension"/> + <menuseparator/> + <menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)" + accesskey="&customizeMenu.pinToOverflowMenu.accesskey;" @@ -444,32 +444,26 @@ + <menuitem id="toolbar-context-reloadSelectedTab" + contexttype="tabbar" + oncommand="gBrowser.reloadMultiSelectedTabs();" -+ label="&toolbarContextMenu.reloadSelectedTab.label;" -+ accesskey="&toolbarContextMenu.reloadSelectedTab.accesskey;"/> ++ data-lazy-l10n-id="toolbar-context-menu-reload-selected-tab"/> + <menuitem id="toolbar-context-reloadSelectedTabs" + contexttype="tabbar" + oncommand="gBrowser.reloadMultiSelectedTabs();" -+ label="&toolbarContextMenu.reloadSelectedTabs.label;" -+ accesskey="&toolbarContextMenu.reloadSelectedTabs.accesskey;"/> ++ data-lazy-l10n-id="toolbar-context-menu-reload-selected-tabs"/> + <menuitem id="toolbar-context-bookmarkSelectedTab" + contexttype="tabbar" + oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);" -+ label="&toolbarContextMenu.bookmarkSelectedTab.label;" -+ accesskey="&toolbarContextMenu.bookmarkSelectedTab.accesskey;"/> ++ data-lazy-l10n-id="toolbar-context-menu-bookmark-selected-tab"/> + <menuitem id="toolbar-context-bookmarkSelectedTabs" + contexttype="tabbar" + oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);" -+ label="&toolbarContextMenu.bookmarkSelectedTabs.label;" -+ accesskey="&toolbarContextMenu.bookmarkSelectedTabs.accesskey;"/> ++ data-lazy-l10n-id="toolbar-context-menu-bookmark-selected-tabs"/> + <menuitem id="toolbar-context-selectAllTabs" + contexttype="tabbar" + oncommand="gBrowser.selectAllTabs();" -+ label="&toolbarContextMenu.selectAllTabs.label;" -+ accesskey="&toolbarContextMenu.selectAllTabs.accesskey;"/> ++ data-lazy-l10n-id="toolbar-context-menu-select-all-tabs"/> + <menuitem id="toolbar-context-undoCloseTab" + contexttype="tabbar" -+ label="&toolbarContextMenu.undoCloseTab.label;" -+ accesskey="&toolbarContextMenu.undoCloseTab.accesskey;" ++ data-lazy-l10n-id="toolbar-context-menu-undo-close-tab" + observes="History:UndoCloseTab"/> + <menuseparator/> + <menuseparator id="viewToolbarsMenuSeparator"/> @@ -631,7 +625,8 @@ +#include popup-notifications.inc + +#include ../../components/customizableui/content/panelUI.inc.xul -+#include ../../components/controlcenter/content/panel.inc.xul ++#include ../../components/controlcenter/content/identityPanel.inc.xul ++#include ../../components/controlcenter/content/protectionsPanel.inc.xul +#include ../../components/downloads/content/downloadsPanel.inc.xul +#include browser-allTabsMenu.inc.xul + @@ -645,31 +640,23 @@ + onpopupshowing="UpdateDynamicShortcutTooltipText(this);"/> + + <menupopup id="SyncedTabsSidebarContext"> -+ <menuitem label="&syncedTabs.context.open.label;" -+ accesskey="&syncedTabs.context.open.accesskey;" ++ <menuitem data-lazy-l10n-id="synced-tabs-context-open" + id="syncedTabsOpenSelected" where="current"/> -+ <menuitem label="&syncedTabs.context.openInNewTab.label;" -+ accesskey="&syncedTabs.context.openInNewTab.accesskey;" ++ <menuitem data-lazy-l10n-id="synced-tabs-context-open-in-new-tab" + id="syncedTabsOpenSelectedInTab" where="tab"/> -+ <menuitem label="&syncedTabs.context.openInNewWindow.label;" -+ accesskey="&syncedTabs.context.openInNewWindow.accesskey;" ++ <menuitem data-lazy-l10n-id="synced-tabs-context-open-in-new-window" + id="syncedTabsOpenSelectedInWindow" where="window"/> -+ <menuitem label="&syncedTabs.context.openInNewPrivateWindow.label;" -+ accesskey="&syncedTabs.context.openInNewPrivateWindow.accesskey;" ++ <menuitem data-lazy-l10n-id="synced-tabs-context-open-in-new-private-window" + id="syncedTabsOpenSelectedInPrivateWindow" where="window" private="true"/> + <menuseparator/> -+ <menuitem label="&syncedTabs.context.bookmarkSingleTab.label;" -+ accesskey="&syncedTabs.context.bookmarkSingleTab.accesskey;" ++ <menuitem data-lazy-l10n-id="synced-tabs-context-bookmark-single-tab" + id="syncedTabsBookmarkSelected"/> -+ <menuitem label="&syncedTabs.context.copy.label;" -+ accesskey="&syncedTabs.context.copy.accesskey;" ++ <menuitem data-lazy-l10n-id="synced-tabs-context-copy" + id="syncedTabsCopySelected"/> + <menuseparator/> -+ <menuitem label="&syncedTabs.context.openAllInTabs.label;" -+ accesskey="&syncedTabs.context.openAllInTabs.accesskey;" ++ <menuitem data-lazy-l10n-id="synced-tabs-context-open-all-in-tabs" + id="syncedTabsOpenAllInTabs"/> -+ <menuitem label="&syncedTabs.context.managedevices.label;" -+ accesskey="&syncedTabs.context.managedevices.accesskey;" ++ <menuitem data-lazy-l10n-id="synced-tabs-context-manage-devices" + id="syncedTabsManageDevices" + oncommand="gSync.openDevicesManagementPage('syncedtabs-sidebar');"/> + <menuitem label="&syncSyncNowItem.label;" @@ -704,7 +691,7 @@ + id="syncedTabsRefreshFilter"/> + </menupopup> + -+ <hbox id="statuspanel" inactive="true" layer="true"> ++ <hbox id="statuspanel" inactive="true" renderroot="content"> + <hbox id="statuspanel-inner"> + <label id="statuspanel-label" + role="status" @@ -876,16 +863,6 @@ + placeholder="&urlbar.placeholder2;" + defaultPlaceholder="&urlbar.placeholder2;" + focused="true" -+ type="autocomplete" -+ quantumbar="false" -+ autocompletesearch="unifiedcomplete" -+ autocompletesearchparam="enable-actions" -+ autocompletepopup="PopupAutoCompleteRichResult" -+ completeselectedindex="true" -+ tabscrolling="true" -+ newlines="stripsurroundingwhitespace" -+ ontextentered="this.handleCommand(param);" -+ ontextreverted="return this.handleRevert();" + pageproxystate="invalid"> + <!-- Use onclick instead of normal popup= syntax since the popup + code fires onmousedown, and hence eats our favicon drag events. --> @@ -928,6 +905,8 @@ + tooltiptext="&urlbar.flashPluginBlocked.tooltip;"/> + <image data-permission-id="midi" class="blocked-permission-icon midi-icon" role="button" + tooltiptext="&urlbar.midiBlocked.tooltip;"/> ++ <image data-permission-id="install" class="blocked-permission-icon install-icon" role="button" ++ tooltiptext="&urlbar.installBlocked.tooltip;"/> + </box> + <box id="notification-popup-box" + hidden="true" @@ -1339,7 +1318,7 @@ + + <hbox id="fullscr-toggler" hidden="true"/> + -+ <deck id="content-deck" flex="1"> ++ <deck id="content-deck" flex="1" renderroot="content"> + <hbox flex="1" id="browser"> + <vbox id="browser-border-start" hidden="true" layer="true"/> + <vbox id="sidebar-box" hidden="true" class="chromeclass-extrachrome"> @@ -1372,10 +1351,12 @@ + </vbox> + <vbox id="browser-border-end" hidden="true" layer="true"/> + </hbox> ++ <box id="customization-container" flex="1" hidden="true"><![CDATA[ +#include ../../components/customizableui/content/customizeMode.inc.xul ++ ]]></box> + </deck> + -+ <html:div id="fullscreen-warning" class="pointerlockfswarning" hidden="true"> ++ <html:div id="fullscreen-warning" class="pointerlockfswarning" hidden="true" renderroot="content"> + <html:div class="pointerlockfswarning-domain-text"> + &fullscreenWarning.beforeDomain.label; + <html:span class="pointerlockfswarning-domain"/> @@ -1394,7 +1375,7 @@ + </html:button> + </html:div> + -+ <html:div id="pointerlock-warning" class="pointerlockfswarning" hidden="true"> ++ <html:div id="pointerlock-warning" class="pointerlockfswarning" hidden="true" renderroot="content"> + <html:div class="pointerlockfswarning-domain-text"> + &pointerlockWarning.beforeDomain.label; + <html:span class="pointerlockfswarning-domain"/> @@ -1405,42 +1386,26 @@ + </html:div> + </html:div> + -+ <vbox id="browser-bottombox" layer="true"> ++ <vbox id="browser-bottombox" layer="true" renderroot="content"> + <!-- gNotificationBox will be added here lazily. --> + </vbox> -+ +</window> -diff --git a/browser/base/jar.mn b/browser/base/jar.mn ---- a/browser/base/jar.mn -+++ b/browser/base/jar.mn -@@ -28,16 +28,18 @@ browser.jar: - content/browser/aboutTabCrashed.js (content/aboutTabCrashed.js) - content/browser/aboutTabCrashed.xhtml (content/aboutTabCrashed.xhtml) - * content/browser/browser.css (content/browser.css) - content/browser/browser.js (content/browser.js) - #ifdef MOZ_BROWSER_XHTML - * content/browser/browser.xhtml (content/browser.xhtml) - #endif +diff -r 428161c3b959 -r 54d41b0033b8 browser/base/jar.mn +--- a/browser/base/jar.mn Mon Jun 17 09:02:06 2019 +0200 ++++ b/browser/base/jar.mn Fri May 31 12:55:51 2019 +0200 +@@ -33,6 +33,8 @@ + #else * content/browser/browser.xul (content/browser.xul) + #endif +* content/browser/browser-kde.xul (content/browser-kde.xul) +% override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde content/browser/browser-addons.js (content/browser-addons.js) content/browser/browser-allTabsMenu.js (content/browser-allTabsMenu.js) content/browser/browser-captivePortal.js (content/browser-captivePortal.js) - content/browser/browser-ctrlTab.js (content/browser-ctrlTab.js) - content/browser/browser-customization.js (content/browser-customization.js) - content/browser/browser-data-submission-info-bar.js (content/browser-data-submission-info-bar.js) - content/browser/browser-compacttheme.js (content/browser-compacttheme.js) - content/browser/browser-contentblocking.js (content/browser-contentblocking.js) -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 -@@ -288,16 +288,23 @@ var gMainPane = { - this._backoffIndex++ : backoffTimes.length - 1]); - }; - - window.setTimeout(() => { - window.requestIdleCallback(pollForDefaultBrowser); +diff -r 428161c3b959 -r 54d41b0033b8 browser/components/preferences/in-content/main.js +--- a/browser/components/preferences/in-content/main.js Mon Jun 17 09:02:06 2019 +0200 ++++ b/browser/components/preferences/in-content/main.js Fri May 31 12:55:51 2019 +0200 +@@ -294,6 +294,13 @@ }, backoffTimes[this._backoffIndex]); } @@ -1454,17 +1419,7 @@ this.initBrowserContainers(); this.buildContentProcessCountMenuList(); - let performanceSettingsLink = document.getElementById("performanceSettingsLearnMore"); - let performanceSettingsUrl = Services.urlFormatter.formatURLPref("app.support.baseURL") + "performance"; - performanceSettingsLink.setAttribute("href", performanceSettingsUrl); - - this.updateDefaultPerformanceSettingsPref(); -@@ -1025,16 +1032,27 @@ var gMainPane = { - // Reset exponential backoff delay time in order to do visual update in pollForDefaultBrowser. - this._backoffIndex = 0; - - let shellSvc = getShellService(); - if (!shellSvc) +@@ -983,6 +990,17 @@ return; try { shellSvc.setDefaultBrowser(true, false); @@ -1482,20 +1437,10 @@ } catch (ex) { Cu.reportError(ex); return; - } - - let selectedIndex = shellSvc.isDefaultBrowser(false, true) ? 1 : 0; - document.getElementById("setDefaultPane").selectedIndex = selectedIndex; - } -diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build ---- a/browser/components/shell/moz.build -+++ b/browser/components/shell/moz.build -@@ -29,16 +29,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco - ] - elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']: - XPIDL_SOURCES += [ - 'nsIGNOMEShellService.idl', - ] +diff -r 428161c3b959 -r 54d41b0033b8 browser/components/shell/moz.build +--- a/browser/components/shell/moz.build Mon Jun 17 09:02:06 2019 +0200 ++++ b/browser/components/shell/moz.build Fri May 31 12:55:51 2019 +0200 +@@ -33,6 +33,8 @@ SOURCES += [ 'nsGNOMEShellService.cpp', @@ -1504,15 +1449,9 @@ ] elif CONFIG['OS_ARCH'] == 'WINNT': SOURCES += [ - 'nsWindowsShellService.cpp', - ] - LOCAL_INCLUDES += [ - '../../../other-licenses/nsis/Contrib/CityHash/cityhash', - ] -diff --git a/browser/components/shell/nsKDEShellService.cpp b/browser/components/shell/nsKDEShellService.cpp -new file mode 100644 ---- /dev/null -+++ b/browser/components/shell/nsKDEShellService.cpp +diff -r 428161c3b959 -r 54d41b0033b8 browser/components/shell/nsKDEShellService.cpp +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/browser/components/shell/nsKDEShellService.cpp Fri May 31 12:55:51 2019 +0200 @@ -0,0 +1,150 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public @@ -1664,10 +1603,9 @@ + return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE; +} + -diff --git a/browser/components/shell/nsKDEShellService.h b/browser/components/shell/nsKDEShellService.h -new file mode 100644 ---- /dev/null -+++ b/browser/components/shell/nsKDEShellService.h +diff -r 428161c3b959 -r 54d41b0033b8 browser/components/shell/nsKDEShellService.h +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/browser/components/shell/nsKDEShellService.h Fri May 31 12:55:51 2019 +0200 @@ -0,0 +1,32 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public @@ -1701,10 +1639,9 @@ +}; + +#endif // nskdeshellservice_h____ -diff --git a/browser/components/shell/nsUnixShellService.cpp b/browser/components/shell/nsUnixShellService.cpp -new file mode 100644 ---- /dev/null -+++ b/browser/components/shell/nsUnixShellService.cpp +diff -r 428161c3b959 -r 54d41b0033b8 browser/components/shell/nsUnixShellService.cpp +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/browser/components/shell/nsUnixShellService.cpp Fri May 31 12:55:51 2019 +0200 @@ -0,0 +1,22 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public @@ -1728,10 +1665,9 @@ + return nsKDEShellServiceConstructor( aOuter, aIID, aResult ); + return nsGNOMEShellServiceConstructor( aOuter, aIID, aResult ); +} -diff --git a/browser/components/shell/nsUnixShellService.h b/browser/components/shell/nsUnixShellService.h -new file mode 100644 ---- /dev/null -+++ b/browser/components/shell/nsUnixShellService.h +diff -r 428161c3b959 -r 54d41b0033b8 browser/components/shell/nsUnixShellService.h +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/browser/components/shell/nsUnixShellService.h Fri May 31 12:55:51 2019 +0200 @@ -0,0 +1,15 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public @@ -1748,15 +1684,10 @@ +nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult); + +#endif // nsunixshellservice_h____ -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 -@@ -286,16 +286,18 @@ - @RESPATH@/browser/defaults/settings/pinning - @RESPATH@/browser/defaults/settings/main - - ; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325) - ; Technically this is an app pref file, but we are keeping it in the original +diff -r 428161c3b959 -r 54d41b0033b8 browser/installer/package-manifest.in +--- a/browser/installer/package-manifest.in Mon Jun 17 09:02:06 2019 +0200 ++++ b/browser/installer/package-manifest.in Fri May 31 12:55:51 2019 +0200 +@@ -299,6 +299,8 @@ ; gre location for now. @RESPATH@/defaults/pref/channel-prefs.js @@ -1765,8 +1696,3 @@ ; 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 ++++++ fix-build-after-y2038-changes-in-glibc.patch ++++++ From: Jiri Slaby <[email protected]> Date: Thu, 11 Jul 2019 09:35:13 +0200 Subject: fix build after y2038 changes in glibc SIOCGSTAMP is defined in linux/sockios.h since kernel 5.2. Include that file wherever needed. Signed-off-by: Jiri Slaby <[email protected]> --- a/media/webrtc/trunk/webrtc/rtc_base/physicalsocketserver.cc +++ b/media/webrtc/trunk/webrtc/rtc_base/physicalsocketserver.cc @@ -67,6 +67,7 @@ typedef void* SockOptArg; #endif // WEBRTC_POSIX #if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(WEBRTC_BSD) && !defined(__native_client__) +#include <linux/sockios.h> int64_t GetSocketRecvTimestamp(int socket) { struct timeval tv_ioctl; -- 2.21.0 ++++++ l10n-67.0.4.tar.xz -> l10n-68.0.1.tar.xz ++++++ /work/SRC/openSUSE:Factory/MozillaFirefox/l10n-67.0.4.tar.xz /work/SRC/openSUSE:Factory/.MozillaFirefox.new.4126/l10n-68.0.1.tar.xz differ: char 25, line 1 ++++++ mozilla-aarch64-startup-crash.patch ++++++ --- /var/tmp/diff_new_pack.QVdN20/_old 2019-07-22 12:19:10.195683582 +0200 +++ /var/tmp/diff_new_pack.QVdN20/_new 2019-07-22 12:19:10.195683582 +0200 @@ -1,23 +1,22 @@ # HG changeset patch -# Parent a5cfa3aa11a9d3391df49de6fc5a0e5232c12c10 -# Parent 6dd2311796da4e15115fd04b181313ae62754317 -Bug 991344 - Rpi3: Firefox crashes after a few seconds of usage +# User [email protected] +# 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 -@@ -975,17 +975,23 @@ nsresult nsIOService::NewChannelFromURIW - "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); @@ -25,8 +24,3 @@ return NS_OK; } - NS_IMETHODIMP - nsIOService::NewChannelFromURIWithProxyFlags( - nsIURI *aURI, nsIURI *aProxyURI, uint32_t aProxyFlags, - nsINode *aLoadingNode, nsIPrincipal *aLoadingPrincipal, - nsIPrincipal *aTriggeringPrincipal, uint32_t aSecurityFlags, ++++++ mozilla-bmo1005535.patch ++++++ # HG changeset patch # User Steve Singer <[email protected]> # Date 1558451540 -7200 # Tue May 21 17:12:20 2019 +0200 # Node ID 433beec63e6b5f409683af20a0c1ab137cc7bfad # Parent 42c99b59a87b904063bad3193f10c51d068d2eac Bug 1005535 - Get skia GPU building on big endian. diff -r 42c99b59a87b -r 433beec63e6b gfx/skia/skia/include/private/GrColor.h --- a/gfx/skia/skia/include/private/GrColor.h Wed Jun 05 08:48:08 2019 +0200 +++ b/gfx/skia/skia/include/private/GrColor.h Tue May 21 17:12:20 2019 +0200 @@ -63,7 +63,7 @@ * Since premultiplied means that alpha >= color, we construct a color with * each component==255 and alpha == 0 to be "illegal" */ -#define GrColor_ILLEGAL (~(0xFF << GrColor_SHIFT_A)) +#define GrColor_ILLEGAL ((uint32_t)(~(0xFF << GrColor_SHIFT_A))) /** Normalizes and coverts an uint8_t to a float. [0, 255] -> [0.0, 1.0] */ static inline float GrNormalizeByteToFloat(uint8_t value) { ++++++ mozilla-gcc-internal-compiler-error.patch ++++++ # HG changeset patch # User Wolfgang Rosenauer <[email protected]> # Parent 88217eaa8804fc699c02411b1b5377ef7eb5d2db https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90756 https://bugzilla.mozilla.org/show_bug.cgi?id=1562886 diff --git a/gfx/skia/skia/third_party/skcms/src/Transform_inl.h b/gfx/skia/skia/third_party/skcms/src/Transform_inl.h --- a/gfx/skia/skia/third_party/skcms/src/Transform_inl.h +++ b/gfx/skia/skia/third_party/skcms/src/Transform_inl.h @@ -554,17 +554,18 @@ SI void sample_clut_16(const skcms_A2B* *r = cast<F>((rgb >> 0) & 0xffff) * (1/65535.0f); *g = cast<F>((rgb >> 16) & 0xffff) * (1/65535.0f); *b = cast<F>((rgb >> 32) & 0xffff) * (1/65535.0f); #endif } // GCC 7.2.0 hits an internal compiler error with -finline-functions (or -O3) // when targeting MIPS 64, I think attempting to inline clut() into exec_ops(). -#if 1 && defined(__GNUC__) && !defined(__clang__) && defined(__mips64) +// s390x and i*86 also hit this with GCC 7.4 and -O2 +#if 1 && defined(__GNUC__) && !defined(__clang__) && ( defined(__mips64) || defined(__s390x__) || defined( __i586__ ) || defined( __i486__ ) || defined( __i386__ )) #define MAYBE_NOINLINE __attribute__((noinline)) #else #define MAYBE_NOINLINE #endif MAYBE_NOINLINE static void clut(const skcms_A2B* a2b, F* r, F* g, F* b, F a) { const int dim = (int)a2b->input_channels; ++++++ mozilla-kde.patch ++++++ --- /var/tmp/diff_new_pack.QVdN20/_old 2019-07-22 12:19:10.251683567 +0200 +++ /var/tmp/diff_new_pack.QVdN20/_new 2019-07-22 12:19:10.255683567 +0200 @@ -1,5 +1,9 @@ # HG changeset patch -# Parent cafacdb0b7c50666e5dcc927684a23e8733206a5 +# User [email protected] +# Date 1559294891 -7200 +# Fri May 31 11:28:11 2019 +0200 +# Node ID c2aa7198fb925e7fde96abf65b6f68b9b755f112 +# Parent f11c2d7239c0caa4dc74272716d9e30ced1a1ca3 Description: Add KDE integration to Firefox (toolkit parts) Author: Wolfgang Rosenauer <[email protected]> Author: Lubos Lunak <[email protected]> @@ -27,7 +31,7 @@ #ifdef XP_WIN # include "windows.h" #endif -@@ -4493,25 +4494,37 @@ float MOZ_MAYBE_UNUSED GetPref<float>(co +@@ -4507,25 +4508,37 @@ static nsresult pref_ReadDefaultPrefs(co // application pref files for backwards compatibility. static const char* specialFiles[] = { #if defined(XP_MACOSX) @@ -65,7 +69,7 @@ // Load jar:$app/omni.jar!/defaults/preferences/*.js // or jar:$gre/omni.jar!/defaults/preferences/*.js. -@@ -4559,17 +4572,17 @@ float MOZ_MAYBE_UNUSED GetPref<float>(co +@@ -4573,17 +4586,17 @@ static nsresult pref_ReadDefaultPrefs(co } nsCOMPtr<nsIFile> path = do_QueryInterface(elem); @@ -183,18 +187,18 @@ +* 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/general.xml (widgets/general.xml) - content/global/bindings/menu.xml (widgets/menu.xml) content/global/bindings/popup.xml (widgets/popup.xml) - content/global/bindings/radio.xml (widgets/radio.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,507 @@ +@@ -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 @@ -495,6 +499,10 @@ + 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; @@ -646,19 +654,7 @@ + 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> @@ -705,7 +701,7 @@ 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 -@@ -1030,30 +1030,60 @@ nsUnknownContentTypeDialog.prototype = { +@@ -1042,30 +1042,60 @@ nsUnknownContentTypeDialog.prototype = { if (params.handlerApp && params.handlerApp.executable && @@ -783,7 +779,7 @@ 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" @@ -801,10 +797,10 @@ NS_DECL_ISUPPORTS NS_DECL_NSISYSTEMPROXYSETTINGS -@@ -44,16 +45,18 @@ 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); @@ -820,7 +816,7 @@ nsUnixSystemProxySettings::GetMainThreadOnly(bool* aMainThreadOnly) { // dbus prevents us from being threadsafe, but this routine should not block // anyhow -@@ -487,22 +490,51 @@ nsresult nsUnixSystemProxySettings::GetP +@@ -382,21 +385,50 @@ nsresult nsUnixSystemProxySettings::GetP return NS_OK; } @@ -836,7 +832,6 @@ 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); } @@ -943,7 +938,7 @@ + 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 ) + { @@ -1300,7 +1295,8 @@ 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" @@ -1318,13 +1314,13 @@ using mozilla::dom::RemoteHandlerApp; namespace { -@@ -246,17 +246,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()); @@ -1335,12 +1331,31 @@ 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 -@@ -80,17 +80,19 @@ else: +@@ -83,17 +83,19 @@ else: SOURCES += [ osdir + '/nsOSHelperAppService.cpp', ] @@ -1360,7 +1375,7 @@ 'android/nsExternalURLHandlerService.cpp', 'android/nsMIMEInfoAndroid.cpp', ] -@@ -130,16 +132,17 @@ include('/ipc/chromium/chromium-config.m +@@ -133,16 +135,17 @@ include('/ipc/chromium/chromium-config.m FINAL_LIBRARY = 'xul' LOCAL_INCLUDES += [ @@ -1624,13 +1639,13 @@ +#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. @@ -1794,7 +1809,7 @@ 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 @@ include('/ipc/chromium/chromium-config.m +@@ -124,16 +124,17 @@ include('/ipc/chromium/chromium-config.m FINAL_LIBRARY = 'xul' @@ -1849,14 +1864,14 @@ // bug 1184009 #define MAX_PREVIEW_SOURCE_SIZE 4096 - nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr; + 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; @@ -1871,12 +1886,12 @@ mFilters.AppendElement(filter); mFilterNames.AppendElement(name); -@@ -337,16 +341,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; @@ -1906,12 +1921,12 @@ nsCString title; title.Adopt(ToNewUTF8String(mTitle)); - GtkWindow *parent_widget = + GtkWindow* parent_widget = GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET)); GtkFileChooserAction action = GetGtkFileChooserAction(mMode); -@@ -572,16 +599,240 @@ void nsFilePicker::Done(void *file_choos +@@ -572,16 +599,240 @@ void nsFilePicker::Done(void* file_choos mCallback->Done(result); mCallback = nullptr; } else { @@ -2145,13 +2160,13 @@ + } + // All below functions available as of GTK 3.20+ - void *nsFilePicker::GtkFileChooserNew(const gchar *title, GtkWindow *parent, + void* nsFilePicker::GtkFileChooserNew(const gchar* title, GtkWindow* parent, GtkFileChooserAction action, - const gchar *accept_label) { + const gchar* accept_label) { static auto sGtkFileChooserNativeNewPtr = - (void *(*)(const gchar *, GtkWindow *, GtkFileChooserAction, - const gchar *, - const gchar *))dlsym(RTLD_DEFAULT, + (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 @@ -2162,7 +2177,7 @@ nsTArray<nsCString> mFilterNames; private: - static nsIFile *mPrevDisplayDirectory; + static nsIFile* mPrevDisplayDirectory; + bool kdeRunning(); + bool getKdeRunning(); @@ -2170,12 +2185,12 @@ + NS_IMETHODIMP kdeAppsDialog(PRInt16 *aReturn); + nsCString kdeMakeFilter( int index ); + - void *GtkFileChooserNew(const gchar *title, GtkWindow *parent, + 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, + const gchar* accept_label); + void GtkFileChooserShow(void* file_chooser); + void GtkFileChooserDestroy(void* file_chooser); + void GtkFileChooserSetModal(void* file_chooser, GtkWindow* parent_widget, gboolean modal); diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp @@ -2199,7 +2214,7 @@ int argc; bool ischrome; -@@ -392,16 +393,17 @@ void ParseManifest(NSLocationType aType, +@@ -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"); @@ -2217,7 +2232,7 @@ NS_NAMED_LITERAL_STRING(kMain, "main"); NS_NAMED_LITERAL_STRING(kContent, "content"); -@@ -447,39 +449,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); @@ -2262,7 +2277,7 @@ process = kMain; } -@@ -566,25 +573,27 @@ void ParseManifest(NSLocationType aType, +@@ -567,25 +574,27 @@ void ParseManifest(NSLocationType aType, TriState stOsVersion = eUnspecified; TriState stOs = eUnspecified; TriState stABI = eUnspecified; @@ -2290,7 +2305,7 @@ continue; } -@@ -621,17 +630,17 @@ void ParseManifest(NSLocationType aType, +@@ -622,17 +631,17 @@ void ParseManifest(NSLocationType aType, } LogMessageWithContext( @@ -2312,7 +2327,7 @@ diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build --- a/xpcom/components/moz.build +++ b/xpcom/components/moz.build -@@ -66,14 +66,15 @@ LOCAL_INCLUDES += [ +@@ -66,16 +66,17 @@ LOCAL_INCLUDES += [ '!..', '../base', '../build', @@ -2327,7 +2342,9 @@ if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']: CXXFLAGS += CONFIG['TK_CFLAGS'] - include('/ipc/chromium/chromium-config.mozbuild') + 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 ++++++ mozilla-nongnome-proxies.patch ++++++ --- /var/tmp/diff_new_pack.QVdN20/_old 2019-07-22 12:19:10.263683564 +0200 +++ /var/tmp/diff_new_pack.QVdN20/_new 2019-07-22 12:19:10.263683564 +0200 @@ -1,20 +1,19 @@ -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 -@@ -57,24 +57,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 @@ } void nsUnixSystemProxySettings::Init() { @@ -23,25 +22,14 @@ - 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)); + } } } - bool nsUnixSystemProxySettings::IsProxyMode(const char* aMode) { - nsAutoCString mode; - return NS_SUCCEEDED(mGConf->GetString( - NS_LITERAL_CSTRING("/system/proxy/mode"), mode)) && - mode.EqualsASCII(aMode); ++++++ mozilla-ppc-altivec_static_inline.patch ++++++ # HG changeset patch # User [email protected] # Date 1558452418 -7200 # Tue May 21 17:26:58 2019 +0200 # Node ID 6cd963b6c82ea6629aaf4050851789b78f310338 # Parent 602e92722e765a3c238d3b96b26c0c8063b5eeb4 imported patch mozilla-ppc-altivec_static_inline.patch diff -r 602e92722e76 -r 6cd963b6c82e gfx/qcms/transform-altivec.c --- a/gfx/qcms/transform-altivec.c Tue May 21 17:26:48 2019 +0200 +++ b/gfx/qcms/transform-altivec.c Tue May 21 17:26:58 2019 +0200 @@ -30,7 +30,7 @@ static const ALIGN float floatScaleX4 = FLOATSCALE; static const ALIGN float clampMaxValueX4 = CLAMPMAXVAL; -inline vector float load_aligned_float(float *dataPtr) +static inline vector float load_aligned_float(float *dataPtr) { vector float data = vec_lde(0, dataPtr); vector unsigned char moveToStart = vec_lvsl(0, dataPtr); ++++++ mozilla-reduce-rust-debuginfo.patch ++++++ # HG changeset patch # User [email protected] # Date 1560754926 -7200 # Mon Jun 17 09:02:06 2019 +0200 # Node ID 428161c3b9599083e1b8710eda1760f1f707ab11 # Parent 6cd963b6c82ea6629aaf4050851789b78f310338 #Description: reduce the rust debuginfo level on selected architectures where # compiling with debuginfo=2 causes the OOM killer to interrupt the build on # launchpad builders. Initially this was only on 32 bit architectures, but with # firefox 63 it started happening frequently on arm64 and ppc64el too. diff -r 6cd963b6c82e -r 428161c3b959 build/moz.configure/toolchain.configure --- a/build/moz.configure/toolchain.configure Tue May 21 17:26:58 2019 +0200 +++ b/build/moz.configure/toolchain.configure Mon Jun 17 09:02:06 2019 +0200 @@ -1865,8 +1865,8 @@ return '1' if moz_optimize.optimize else '0' -@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols') -def rust_compile_flags(opt_level, debug_rust, debug_symbols): +@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', host) +def rust_compile_flags(opt_level, debug_rust, debug_symbols, host): # Cargo currently supports only two interesting profiles for building: # development and release. Those map (roughly) to --enable-debug and # --disable-debug in Gecko, respectively. @@ -1889,6 +1889,8 @@ if debug_symbols: debug_info = '2' + if host.bitness == 32 or host.cpu == 'aarch64' or host.cpu == 'ppc64': + debug_info = '1' opts = [] ++++++ mozilla-s390-bigendian.patch ++++++ # HG changeset patch # User [email protected] # Date 1558452126 -7200 # Tue May 21 17:22:06 2019 +0200 # Node ID a3cc550d25e3a04d906f516928cbcbe50efd585e # Parent 433beec63e6b5f409683af20a0c1ab137cc7bfad [mq]: mozilla-s390-bigendian.patch diff -r 433beec63e6b -r a3cc550d25e3 build/autoconf/icu.m4 --- a/build/autoconf/icu.m4 Tue May 21 17:12:20 2019 +0200 +++ b/build/autoconf/icu.m4 Tue May 21 17:22:06 2019 +0200 @@ -78,7 +78,7 @@ # TODO: the l is actually endian-dependent # We could make this set as 'l' or 'b' for little or big, respectively, # but we'd need to check in a big-endian version of the file. - ICU_DATA_FILE="icudt${version}l.dat" + ICU_DATA_FILE="icudt${version}b.dat" fi AC_SUBST(MOZ_ICU_VERSION) ++++++ mozilla-s390-context.patch ++++++ # HG changeset patch # User [email protected] # Date 1558452408 -7200 # Tue May 21 17:26:48 2019 +0200 # Node ID 602e92722e765a3c238d3b96b26c0c8063b5eeb4 # Parent a3cc550d25e3a04d906f516928cbcbe50efd585e [mq]: mozilla-s390-context.patch diff -r a3cc550d25e3 -r 602e92722e76 js/src/wasm/WasmSignalHandlers.cpp --- a/js/src/wasm/WasmSignalHandlers.cpp Tue May 21 17:22:06 2019 +0200 +++ b/js/src/wasm/WasmSignalHandlers.cpp Tue May 21 17:26:48 2019 +0200 @@ -154,6 +154,10 @@ # define R01_sig(p) ((p)->uc_mcontext.gp_regs[1]) # define R32_sig(p) ((p)->uc_mcontext.gp_regs[32]) # endif +# if defined(__linux__) && defined(__s390x__) +# define GR_sig(p,x) ((p)->uc_mcontext.gregs[x]) +# define PSWa_sig(p) ((p)->uc_mcontext.psw.addr) +# endif #elif defined(__NetBSD__) # define EIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EIP]) # define EBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EBP]) @@ -385,8 +389,13 @@ # define PC_sig(p) R32_sig(p) # define SP_sig(p) R01_sig(p) # define FP_sig(p) R01_sig(p) +#elif defined(__s390x__) +# define PC_sig(p) PSWa_sig(p) +# define SP_sig(p) GR_sig(p, 15) +# define FP_sig(p) GR_sig(p, 11) #endif + static void SetContextPC(CONTEXT* context, uint8_t* pc) { #ifdef PC_sig *reinterpret_cast<uint8_t**>(&PC_sig(context)) = pc; ++++++ source-stamp.txt ++++++ --- /var/tmp/diff_new_pack.QVdN20/_old 2019-07-22 12:19:10.339683544 +0200 +++ /var/tmp/diff_new_pack.QVdN20/_new 2019-07-22 12:19:10.339683544 +0200 @@ -1,2 +1,2 @@ -REV=ea5154beddff08b919697e3bed6f38cfe3a3d82f +REV=837bbcb850cd58eb07c7f6437078d5229986967c REPO=http://hg.mozilla.org/releases/mozilla-release ++++++ tar_stamps ++++++ PRODUCT="firefox" CHANNEL="release" VERSION="68.0.1" VERSION_SUFFIX="" FF_RELEASE_TAG="837bbcb850cd58eb07c7f6437078d5229986967c" TB_RELEASE_TAG="" PREV_VERSION="" PREV_VERSION_SUFFIX="" #SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
