5.11.0
drop shadow build (to match other qt5 packages where it has been problematic) drop upstreamed patches rebase no-icudtl-dat.patch pull in upstream gcc8 FTBFS fix update clean_ffmpeg whitelist patches needswork: system-nspr-prtime,system-icu-utf,no-sse2,skia-neon,icu59 minimal debug/debuginfo (for now) use macros %make_build %ldconfig_scriptlets %__ninja %__ninja_common_opts
This commit is contained in:
parent
2ef1c5e991
commit
635c366f48
1
.gitignore
vendored
1
.gitignore
vendored
@ -13,3 +13,4 @@
|
||||
/qtwebengine-opensource-src-5.9.3-clean.tar.xz
|
||||
/qtwebengine-everywhere-src-5.10.0-clean.tar.xz
|
||||
/qtwebengine-everywhere-src-5.10.1-clean.tar.xz
|
||||
/qtwebengine-everywhere-src-5.11.0-clean.tar.xz
|
||||
|
84
0002-Fix-build-with-GCC-8.1.0.patch
Normal file
84
0002-Fix-build-with-GCC-8.1.0.patch
Normal file
@ -0,0 +1,84 @@
|
||||
From 96f354df27c2f3c7c1b221b676c7a1af6b3da375 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?J=C3=BCri=20Valdmann?= <juri.valdmann@qt.io>
|
||||
Date: Mon, 14 May 2018 10:15:50 +0200
|
||||
Subject: [PATCH 02/29] Fix build with GCC 8.1.0
|
||||
|
||||
Task-number: QTBUG-68203
|
||||
Change-Id: I780d884d5e20ef04e902d7b449da4aa3f97d8d0b
|
||||
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
||||
---
|
||||
.../mojo/public/cpp/bindings/associated_interface_ptr_info.h | 2 +-
|
||||
.../mojo/public/cpp/bindings/associated_interface_request.h | 2 +-
|
||||
chromium/mojo/public/cpp/bindings/interface_request.h | 2 +-
|
||||
.../mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h | 2 ++
|
||||
chromium/mojo/public/cpp/system/handle.h | 2 +-
|
||||
5 files changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/chromium/mojo/public/cpp/bindings/associated_interface_ptr_info.h b/chromium/mojo/public/cpp/bindings/associated_interface_ptr_info.h
|
||||
index 1f79662bd7..184ba6a9e8 100644
|
||||
--- a/chromium/mojo/public/cpp/bindings/associated_interface_ptr_info.h
|
||||
+++ b/chromium/mojo/public/cpp/bindings/associated_interface_ptr_info.h
|
||||
@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
|
||||
|
||||
bool is_valid() const { return handle_.is_valid(); }
|
||||
|
||||
- explicit operator bool() const { return handle_; }
|
||||
+ explicit operator bool() const { return !!handle_; }
|
||||
|
||||
ScopedInterfaceEndpointHandle PassHandle() {
|
||||
return std::move(handle_);
|
||||
diff --git a/chromium/mojo/public/cpp/bindings/associated_interface_request.h b/chromium/mojo/public/cpp/bindings/associated_interface_request.h
|
||||
index 12d2f3ce1d..fcdc2b9321 100644
|
||||
--- a/chromium/mojo/public/cpp/bindings/associated_interface_request.h
|
||||
+++ b/chromium/mojo/public/cpp/bindings/associated_interface_request.h
|
||||
@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
|
||||
// handle.
|
||||
bool is_pending() const { return handle_.is_valid(); }
|
||||
|
||||
- explicit operator bool() const { return handle_; }
|
||||
+ explicit operator bool() const { return !!handle_; }
|
||||
|
||||
ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
|
||||
|
||||
diff --git a/chromium/mojo/public/cpp/bindings/interface_request.h b/chromium/mojo/public/cpp/bindings/interface_request.h
|
||||
index 1007cb0b8c..da1f3244a3 100644
|
||||
--- a/chromium/mojo/public/cpp/bindings/interface_request.h
|
||||
+++ b/chromium/mojo/public/cpp/bindings/interface_request.h
|
||||
@@ -54,7 +54,7 @@ class InterfaceRequest {
|
||||
// Indicates whether the request currently contains a valid message pipe.
|
||||
bool is_pending() const { return handle_.is_valid(); }
|
||||
|
||||
- explicit operator bool() const { return handle_; }
|
||||
+ explicit operator bool() const { return !!handle_; }
|
||||
|
||||
// Removes the message pipe from the request and returns it.
|
||||
ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
|
||||
diff --git a/chromium/mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h b/chromium/mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h
|
||||
index 5d00e5019e..ef8a927ba6 100644
|
||||
--- a/chromium/mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h
|
||||
+++ b/chromium/mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h
|
||||
@@ -45,6 +45,8 @@ class MOJO_CPP_BINDINGS_EXPORT ScopedInterfaceEndpointHandle {
|
||||
|
||||
bool is_valid() const;
|
||||
|
||||
+ explicit operator bool() const { return is_valid(); }
|
||||
+
|
||||
// Returns true if the interface hasn't associated with a message pipe.
|
||||
bool pending_association() const;
|
||||
|
||||
diff --git a/chromium/mojo/public/cpp/system/handle.h b/chromium/mojo/public/cpp/system/handle.h
|
||||
index 7c886e8825..c9f9e961db 100644
|
||||
--- a/chromium/mojo/public/cpp/system/handle.h
|
||||
+++ b/chromium/mojo/public/cpp/system/handle.h
|
||||
@@ -121,7 +121,7 @@ class ScopedHandleBase {
|
||||
|
||||
bool is_valid() const { return handle_.is_valid(); }
|
||||
|
||||
- explicit operator bool() const { return handle_; }
|
||||
+ explicit operator bool() const { return !!handle_; }
|
||||
|
||||
bool operator==(const ScopedHandleBase& other) const {
|
||||
return handle_.value() == other.get().value();
|
||||
--
|
||||
2.17.1
|
||||
|
@ -99,10 +99,15 @@ header_files=" libavutil/x86/asm.h \
|
||||
libavcodec/arm/vp56_arith.h \
|
||||
libavcodec/arm/vp8.h \
|
||||
libavcodec/arm/vp8dsp.h \
|
||||
libavcodec/aac_ac3_parser.h \
|
||||
libavcodec/ac3_parser_internal.h \
|
||||
libavcodec/ac3.h \
|
||||
libavcodec/adts_header.h \
|
||||
libavcodec/avcodec.h \
|
||||
libavcodec/blockdsp.h \
|
||||
libavcodec/bytestream.h \
|
||||
libavcodec/dct.h \
|
||||
libavcodec/dct32.h \
|
||||
libavcodec/dsputil.h \
|
||||
libavcodec/dv_profile_internal.h \
|
||||
libavcodec/error_resilience.h \
|
||||
@ -119,12 +124,19 @@ header_files=" libavutil/x86/asm.h \
|
||||
libavcodec/h264pred.h \
|
||||
libavcodec/hpeldsp.h \
|
||||
libavcodec/hwaccel.h \
|
||||
libavcodec/hwaccels.h \
|
||||
libavcodec/idctdsp.h \
|
||||
libavcodec/internal.h \
|
||||
libavcodec/mathops.h \
|
||||
libavcodec/mdct15.h \
|
||||
libavcodec/me_cmp.h \
|
||||
libavcodec/motion_est.h \
|
||||
libavcodec/mpegaudio_tablegen.h \
|
||||
libavcodec/mpegaudiodectab.h \
|
||||
libavcodec/mpegaudiodsp.h \
|
||||
libavcodec/mpeg12.h \
|
||||
libavcodec/mpeg12data.h \
|
||||
libavcodec/mpeg12vlc.h \
|
||||
libavcodec/mpegpicture.h \
|
||||
libavcodec/mpegutils.h \
|
||||
libavcodec/mpegvideo.h \
|
||||
@ -132,6 +144,8 @@ header_files=" libavutil/x86/asm.h \
|
||||
libavcodec/mpegvideoencdsp.h \
|
||||
libavcodec/old_codec_ids.h \
|
||||
libavcodec/options_table.h \
|
||||
libavcodec/opus_celt.h \
|
||||
libavcodec/opus_pvq.h \
|
||||
libavcodec/opus_rc.h \
|
||||
libavcodec/pcm_tablegen.h \
|
||||
libavcodec/pel_template.c \
|
||||
@ -211,12 +225,15 @@ manual_files=" libavutil/x86/x86inc.asm \
|
||||
libavutil/x86/float_dsp.asm \
|
||||
libavutil/x86/lls.asm \
|
||||
libavcodec/bit_depth_template.c \
|
||||
libavcodec/dct32_template.c \
|
||||
libavcodec/fft_template.c \
|
||||
libavcodec/h264pred_template.c \
|
||||
libavcodec/hpel_template.c \
|
||||
libavcodec/hpeldsp_template.c \
|
||||
libavcodec/mdct_template.c \
|
||||
libavcodec/pel_template.c \
|
||||
libavcodec/mpegaudiodec_template.c \
|
||||
libavcodec/mpegaudiodsp_template.c
|
||||
libavcodec/mpegaudiodsp.c \
|
||||
libavcodec/videodsp_template.c \
|
||||
libavcodec/flacdec.c \
|
||||
libavcodec/flacdsp.c \
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
if [ -z "$1" ] ; then
|
||||
echo "usage: ./clean_qtwebengine.sh VERSION"
|
||||
echo "e.g.: ./clean_qtwebengine.sh 5.10.0"
|
||||
echo "e.g.: ./clean_qtwebengine.sh 5.11.0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
# define to build docs, need to undef this for bootstrapping
|
||||
# where qt5-qttools (qt5-doctools) builds are not yet available
|
||||
# disable on Rawhide for now
|
||||
%if 0%{?fedora} < 28
|
||||
%if 0%{?fedora} < 29
|
||||
%global docs 1
|
||||
%endif
|
||||
|
||||
@ -23,7 +23,8 @@
|
||||
|
||||
# the QMake CONFIG flags to force debugging information to be produced in
|
||||
# release builds, and for all parts of the code
|
||||
%ifarch %{arm}
|
||||
#ifarch %{arm}
|
||||
%if 1
|
||||
# the ARM builder runs out of memory during linking with the full setting below,
|
||||
# so omit debugging information for the parts upstream deems it dispensable for
|
||||
# (webcore, v8base)
|
||||
@ -49,8 +50,8 @@
|
||||
|
||||
Summary: Qt5 - QtWebEngine components
|
||||
Name: qt5-qtwebengine
|
||||
Version: 5.10.1
|
||||
Release: 7%{?dist}
|
||||
Version: 5.11.0
|
||||
Release: 1%{?dist}
|
||||
|
||||
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
|
||||
# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html
|
||||
@ -58,7 +59,7 @@ Release: 7%{?dist}
|
||||
License: (LGPLv2 with exceptions or GPLv3 with exceptions) and BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
|
||||
URL: http://www.qt.io
|
||||
# cleaned tarball with patent-encumbered codecs removed from the bundled FFmpeg
|
||||
# wget http://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtwebengine-everywhere-src-5.10.1.tar.xz
|
||||
# wget http://download.qt.io/official_releases/qt/5.11/5.11.0/submodules/qtwebengine-everywhere-src-5.11.0.tar.xz
|
||||
# ./clean_qtwebengine.sh 5.10.1
|
||||
Source0: qtwebengine-everywhere-src-%{version}-clean.tar.xz
|
||||
# cleanup scripts used above
|
||||
@ -73,7 +74,7 @@ Patch0: qtwebengine-everywhere-src-5.10.0-linux-pri.patch
|
||||
# resulting warnings - not upstreamable as is because it removes the fallback
|
||||
# mechanism for the ICU data directory (which is not used in our builds because
|
||||
# we use the system ICU, which embeds the data statically) completely
|
||||
Patch1: qtwebengine-opensource-src-5.6.0-no-icudtl-dat.patch
|
||||
Patch1: qtwebengine-everywhere-src-5.11.0-no-icudtl-dat.patch
|
||||
# fix extractCFlag to also look in QMAKE_CFLAGS_RELEASE, needed to detect the
|
||||
# ARM flags with our %%qmake_qt5 macro, including for the next patch
|
||||
Patch2: qtwebengine-opensource-src-5.9.0-fix-extractcflag.patch
|
||||
@ -118,20 +119,7 @@ Patch22: qtwebengine-everywhere-src-5.10.0-icu59.patch
|
||||
# to get the value we expect (and chromium checks for). Patch by spot.
|
||||
Patch23: qtwebengine-everywhere-src-5.10.1-gcc8-alignof.patch
|
||||
## Upstream patches:
|
||||
# drop support for obsolete Unicode "aspirational scripts" (dropped in UTS 31),
|
||||
# fixes #error with ICU >= 60 (which was a reminder to double-check the list)
|
||||
# see: http://www.unicode.org/reports/tr31/#Aspirational_Use_Scripts
|
||||
# backport of: https://chromium-review.googlesource.com/c/chromium/src/+/731871
|
||||
Patch100: qtwebengine-everywhere-src-5.10.0-no-aspirational-scripts.patch
|
||||
# forward-port security backports from 5.9.5 LTS (up to Chromium 65.0.3325.146)
|
||||
# see the patch metadata for the list of fixed CVEs and Chromium bug IDs
|
||||
# omit the Chromium bug 806122 fix because we do not ship that FFmpeg file
|
||||
Patch101: qtwebengine-everywhere-src-5.10.1-security-5.9.5.patch
|
||||
# fix incomplete (and thus having no effect) fix for CVE-2018-6033 in 5.10.1
|
||||
# (forward-ported from 5.9.5, will also be included in 5.11)
|
||||
Patch102: qtwebengine-everywhere-src-5.10.1-CVE-2018-6033.patch
|
||||
# From 5.11 branch, fix build against Qt 5.11.x
|
||||
Patch103: 0027-Fix-compilation-of-simplebrowser-example.patch
|
||||
Patch102: 0002-Fix-build-with-GCC-8.1.0.patch
|
||||
|
||||
# handled by qt5-srpm-macros, which defines %%qt5_qtwebengine_arches
|
||||
ExclusiveArch: %{qt5_qtwebengine_arches}
|
||||
@ -371,20 +359,27 @@ BuildArch: noarch
|
||||
%if !0%{?arm_neon}
|
||||
%patch3 -p1 -b .no-neon
|
||||
%endif
|
||||
%patch4 -p1 -b .system-nspr-prtime
|
||||
%patch5 -p1 -b .system-icu-utf
|
||||
%patch6 -p1 -b .no-sse2
|
||||
|
||||
## upstream patches
|
||||
pushd src/3rdparty/chromium
|
||||
%patch102 -p2 -b .0002
|
||||
popd
|
||||
|
||||
##FIXME/TODO rebase
|
||||
#patch4 -p1 -b .system-nspr-prtime
|
||||
#patch5 -p1 -b .system-icu-utf
|
||||
#patch6 -p1 -b .no-sse2
|
||||
%ifarch %{ix86}
|
||||
#global sse2 1
|
||||
%endif
|
||||
%patch9 -p1 -b .arm-fpu-fix
|
||||
%patch10 -p1 -b .openmax-dl-neon
|
||||
%patch11 -p1 -b .skia-neon
|
||||
#patch11 -p1 -b .skia-neon
|
||||
%patch12 -p1 -b .webrtc-neon-detect
|
||||
%patch21 -p1 -b .gn-bootstrap-verbose
|
||||
%patch22 -p1 -b .icu59
|
||||
#patch22 -p1 -b .icu59
|
||||
%patch23 -p1 -b .gcc8
|
||||
%patch100 -p1 -b .no-aspirational-scripts
|
||||
%patch101 -p1 -b .security-5.9.5
|
||||
%patch102 -p1 -b .CVE-2018-6033
|
||||
%patch103 -p1 -b .0027
|
||||
|
||||
# fix // in #include in content/renderer/gpu to avoid debugedit failure
|
||||
sed -i -e 's!gpu//!gpu/!g' \
|
||||
src/3rdparty/chromium/content/renderer/gpu/compositor_forwarding_message_filter.cc
|
||||
@ -427,27 +422,23 @@ cp -p src/3rdparty/chromium/LICENSE LICENSE.Chromium
|
||||
|
||||
%build
|
||||
export STRIP=strip
|
||||
export NINJAFLAGS="-v %{_smp_mflags}"
|
||||
export NINJA_PATH=%{_bindir}/ninja-build
|
||||
|
||||
mkdir %{_target_platform}
|
||||
pushd %{_target_platform}
|
||||
export NINJAFLAGS="%{__ninja_common_opts}"
|
||||
export NINJA_PATH=%{__ninja}
|
||||
|
||||
%{qmake_qt5} CONFIG+="%{debug_config}" \
|
||||
QMAKE_EXTRA_ARGS+="-system-webengine-icu" ..
|
||||
QMAKE_EXTRA_ARGS+="-system-webengine-icu" .
|
||||
|
||||
make %{?_smp_mflags}
|
||||
%make_build
|
||||
|
||||
%if 0%{?docs}
|
||||
make %{?_smp_mflags} docs
|
||||
%make_build docs
|
||||
%endif
|
||||
popd
|
||||
|
||||
%install
|
||||
make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}
|
||||
make install INSTALL_ROOT=%{buildroot}
|
||||
|
||||
%if 0%{?docs}
|
||||
make install_docs INSTALL_ROOT=%{buildroot} -C %{_target_platform}
|
||||
make install_docs INSTALL_ROOT=%{buildroot}
|
||||
%endif
|
||||
|
||||
# rpm macros
|
||||
@ -489,8 +480,7 @@ sed -i -e "s|%{version} \${_Qt5WebEngine|%{lesser_version} \${_Qt5WebEngine|" \
|
||||
%{buildroot}%{_qt5_libdir}/cmake/Qt5WebEngine*/Qt5WebEngine*Config.cmake
|
||||
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
%ldconfig_scriptlets
|
||||
|
||||
%filetriggerin -- %{_datadir}/myspell
|
||||
while read filename ; do
|
||||
@ -509,7 +499,8 @@ done
|
||||
%{_qt5_bindir}/qwebengine_convert_dict
|
||||
%{_qt5_libdir}/qt5/qml/*
|
||||
%{_qt5_libdir}/qt5/libexec/QtWebEngineProcess
|
||||
%ifarch %{ix86}
|
||||
#ifarch %{ix86}
|
||||
%if 0%{?sse2}
|
||||
# shared V8 library and its SSE2 version
|
||||
%{_qt5_libdir}/qtwebengine/
|
||||
%endif
|
||||
@ -590,6 +581,17 @@ done
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Jun 14 2018 Rex Dieter <rdieter@fedoraproject.org> - 5.11.0-1
|
||||
- 5.11.0
|
||||
- drop shadow build (to match other qt5 packages where it has been problematic)
|
||||
- drop upstreamed patches
|
||||
- rebase no-icudtl-dat.patch
|
||||
- pull in upstream gcc8 FTBFS fix
|
||||
- update clean_ffmpeg whitelist
|
||||
- patches needswork: system-nspr-prtime,system-icu-utf,no-sse2,skia-neon,icu59
|
||||
- minimal debug/debuginfo (for now)
|
||||
- use macros %%make_build %%ldconfig_scriptlets %%__ninja %%__ninja_common_opts
|
||||
|
||||
* Sun May 27 2018 Rex Dieter <rdieter@fedoraproject.org> - 5.10.1-7
|
||||
- rebuild (qt5 5.11.0)
|
||||
- Add patch by spot from the Fedora Chromium RPM for FTBFS with GCC 8 on i686
|
||||
|
@ -1,86 +0,0 @@
|
||||
diff -ur qtwebengine-everywhere-src-5.10.0/src/3rdparty/chromium/components/url_formatter/idn_spoof_checker.cc qtwebengine-everywhere-src-5.10.0-no-aspirational-scripts/src/3rdparty/chromium/components/url_formatter/idn_spoof_checker.cc
|
||||
--- qtwebengine-everywhere-src-5.10.0/src/3rdparty/chromium/components/url_formatter/idn_spoof_checker.cc 2017-11-28 14:06:53.000000000 +0100
|
||||
+++ qtwebengine-everywhere-src-5.10.0-no-aspirational-scripts/src/3rdparty/chromium/components/url_formatter/idn_spoof_checker.cc 2017-12-25 19:38:17.621271052 +0100
|
||||
@@ -331,39 +331,6 @@
|
||||
const icu::UnicodeSet* inclusion_set = uspoof_getInclusionUnicodeSet(status);
|
||||
allowed_set.addAll(*inclusion_set);
|
||||
|
||||
-// Five aspirational scripts are taken from UTR 31 Table 6 at
|
||||
-// http://www.unicode.org/reports/tr31/#Aspirational_Use_Scripts .
|
||||
-// Not all the characters of aspirational scripts are suitable for
|
||||
-// identifiers. Therefore, only characters belonging to
|
||||
-// [:Identifier_Type=Aspirational:] (listed in 'Status/Type=Aspirational'
|
||||
-// section at
|
||||
-// http://www.unicode.org/Public/security/latest/xidmodifications.txt) are
|
||||
-// are added to the allowed set. The list has to be updated when a new
|
||||
-// version of Unicode is released. The current version is 9.0.0 and ICU 60
|
||||
-// will have Unicode 10.0 data.
|
||||
-#if U_ICU_VERSION_MAJOR_NUM < 60
|
||||
- const icu::UnicodeSet aspirational_scripts(
|
||||
- icu::UnicodeString(
|
||||
- // Unified Canadian Syllabics
|
||||
- "[\\u1401-\\u166C\\u166F-\\u167F"
|
||||
- // Mongolian
|
||||
- "\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA"
|
||||
- // Unified Canadian Syllabics
|
||||
- "\\u18B0-\\u18F5"
|
||||
- // Tifinagh
|
||||
- "\\u2D30-\\u2D67\\u2D7F"
|
||||
- // Yi
|
||||
- "\\uA000-\\uA48C"
|
||||
- // Miao
|
||||
- "\\U00016F00-\\U00016F44\\U00016F50-\\U00016F7E"
|
||||
- "\\U00016F8F-\\U00016F9F]",
|
||||
- -1, US_INV),
|
||||
- *status);
|
||||
- allowed_set.addAll(aspirational_scripts);
|
||||
-#else
|
||||
-#error "Update aspirational_scripts per Unicode 10.0"
|
||||
-#endif
|
||||
-
|
||||
// The sections below refer to Mozilla's IDN blacklist:
|
||||
// http://kb.mozillazine.org/Network.IDN.blacklist_chars
|
||||
//
|
||||
diff -ur qtwebengine-everywhere-src-5.10.0/src/3rdparty/chromium/components/url_formatter/url_formatter_unittest.cc qtwebengine-everywhere-src-5.10.0-no-aspirational-scripts/src/3rdparty/chromium/components/url_formatter/url_formatter_unittest.cc
|
||||
--- qtwebengine-everywhere-src-5.10.0/src/3rdparty/chromium/components/url_formatter/url_formatter_unittest.cc 2017-11-28 14:06:53.000000000 +0100
|
||||
+++ qtwebengine-everywhere-src-5.10.0-no-aspirational-scripts/src/3rdparty/chromium/components/url_formatter/url_formatter_unittest.cc 2017-12-25 19:38:17.621271052 +0100
|
||||
@@ -132,22 +132,24 @@
|
||||
{"xn---123-kbjl2j0bl2k.in", L"\x0939\x093f\x0928\x094d\x0926\x0940-123.in",
|
||||
true},
|
||||
|
||||
- // 5 Aspirational scripts
|
||||
+ // What used to be 5 Aspirational scripts in the earlier versions of UAX 31.
|
||||
+ // UAX 31 does not define aspirational scripts any more.
|
||||
+ // See http://www.unicode.org/reports/tr31/#Aspirational_Use_Scripts .
|
||||
// Unifieid Canadian Syllabary
|
||||
- {"xn--dfe0tte.ca", L"\x1456\x14c2\x14ef.ca", true},
|
||||
+ {"xn--dfe0tte.ca", L"\x1456\x14c2\x14ef.ca", false},
|
||||
// Tifinagh
|
||||
{"xn--4ljxa2bb4a6bxb.ma", L"\x2d5c\x2d49\x2d3c\x2d49\x2d4f\x2d30\x2d56.ma",
|
||||
- true},
|
||||
+ false},
|
||||
// Tifinagh with a disallowed character(U+2D6F)
|
||||
{"xn--hmjzaby5d5f.ma", L"\x2d5c\x2d49\x2d3c\x2d6f\x2d49\x2d4f.ma", false},
|
||||
// Yi
|
||||
- {"xn--4o7a6e1x64c.cn", L"\xa188\xa320\xa071\xa0b7.cn", true},
|
||||
+ {"xn--4o7a6e1x64c.cn", L"\xa188\xa320\xa071\xa0b7.cn", false},
|
||||
// Mongolian - 'ordu' (place, camp)
|
||||
- {"xn--56ec8bp.cn", L"\x1823\x1837\x1833\x1824.cn", true},
|
||||
+ {"xn--56ec8bp.cn", L"\x1823\x1837\x1833\x1824.cn", false},
|
||||
// Mongolian with a disallowed character
|
||||
{"xn--95e5de3ds.cn", L"\x1823\x1837\x1804\x1833\x1824.cn", false},
|
||||
// Miao/Pollad
|
||||
- {"xn--2u0fpf0a.cn", L"\U00016f04\U00016f62\U00016f59.cn", true},
|
||||
+ {"xn--2u0fpf0a.cn", L"\U00016f04\U00016f62\U00016f59.cn", false},
|
||||
|
||||
// Script mixing tests
|
||||
// The following script combinations are allowed.
|
||||
@@ -606,7 +608,7 @@
|
||||
L"a\x144a"
|
||||
L"b.com",
|
||||
false},
|
||||
- {"xn--xcec9s.com", L"\x1401\x144a\x1402.com", true},
|
||||
+ {"xn--xcec9s.com", L"\x1401\x144a\x1402.com", false},
|
||||
|
||||
// Custom dangerous patterns
|
||||
// Two Katakana-Hiragana combining mark in a row
|
@ -1,64 +0,0 @@
|
||||
From 1fd21185614dcae0c7a6e5647ba56cff0120f563 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <1fd21185614dcae0c7a6e5647ba56cff0120f563.1521386919.git.kevin.kofler@chello.at>
|
||||
From: Michal Klocek <michal.klocek@qt.io>
|
||||
Date: Wed, 7 Mar 2018 18:36:25 +0100
|
||||
Subject: [PATCH] Implement IsMostRecentDownloadItemAtFilePath call
|
||||
|
||||
Implement IsMostRecentDownloadItemAtFilePath
|
||||
for download_manager_delegate_qt. This is required for
|
||||
CVE-2018-6033.
|
||||
|
||||
Change-Id: I9f48dfa159d684f0fda894e68b81ff622aceaae2
|
||||
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
||||
---
|
||||
src/core/download_manager_delegate_qt.cpp | 20 ++++++++++++++++++++
|
||||
src/core/download_manager_delegate_qt.h | 2 ++
|
||||
2 files changed, 22 insertions(+)
|
||||
|
||||
diff --git a/src/core/download_manager_delegate_qt.cpp b/src/core/download_manager_delegate_qt.cpp
|
||||
index 40df9b3a..487a831e 100644
|
||||
--- a/src/core/download_manager_delegate_qt.cpp
|
||||
+++ b/src/core/download_manager_delegate_qt.cpp
|
||||
@@ -293,6 +293,26 @@ void DownloadManagerDelegateQt::ChooseSavePath(content::WebContents *web_content
|
||||
m_weakPtrFactory.GetWeakPtr()));
|
||||
}
|
||||
|
||||
+bool DownloadManagerDelegateQt::IsMostRecentDownloadItemAtFilePath(content::DownloadItem *download)
|
||||
+{
|
||||
+ content::BrowserContext *context = download->GetBrowserContext();
|
||||
+ std::vector<content::DownloadItem*> all_downloads;
|
||||
+
|
||||
+ content::DownloadManager* manager =
|
||||
+ content::BrowserContext::GetDownloadManager(context);
|
||||
+ if (manager)
|
||||
+ manager->GetAllDownloads(&all_downloads);
|
||||
+
|
||||
+ for (const auto* item : all_downloads) {
|
||||
+ if (item->GetGuid() == download->GetGuid() ||
|
||||
+ item->GetTargetFilePath() != download->GetTargetFilePath())
|
||||
+ continue;
|
||||
+ if (item->GetState() == content::DownloadItem::IN_PROGRESS)
|
||||
+ return false;
|
||||
+ }
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
void DownloadManagerDelegateQt::savePackageDownloadCreated(content::DownloadItem *item)
|
||||
{
|
||||
OnDownloadUpdated(item);
|
||||
diff --git a/src/core/download_manager_delegate_qt.h b/src/core/download_manager_delegate_qt.h
|
||||
index df43211e..7563d5d3 100644
|
||||
--- a/src/core/download_manager_delegate_qt.h
|
||||
+++ b/src/core/download_manager_delegate_qt.h
|
||||
@@ -81,6 +81,8 @@ public:
|
||||
const base::FilePath::StringType &default_extension,
|
||||
bool can_save_as_complete,
|
||||
const content::SavePackagePathPickedCallback &callback) override;
|
||||
+ bool IsMostRecentDownloadItemAtFilePath(content::DownloadItem* download) override;
|
||||
+
|
||||
|
||||
void cancelDownload(quint32 downloadId);
|
||||
void pauseDownload(quint32 downloadId);
|
||||
--
|
||||
2.14.3
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,12 +1,17 @@
|
||||
diff -ur qtwebengine-opensource-src-5.6.0/src/core/web_engine_library_info.cpp qtwebengine-opensource-src-5.6.0-no-icudtl-dat/src/core/web_engine_library_info.cpp
|
||||
--- qtwebengine-opensource-src-5.6.0/src/core/web_engine_library_info.cpp 2016-03-03 17:02:28.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.6.0-no-icudtl-dat/src/core/web_engine_library_info.cpp 2016-03-18 03:08:24.385444415 +0100
|
||||
@@ -207,24 +207,7 @@
|
||||
#if defined(OS_MACOSX) && defined(QT_MAC_FRAMEWORK_BUILD)
|
||||
return getResourcesPath(frameworkBundle());
|
||||
#else
|
||||
diff -up qtwebengine-everywhere-src-5.11.0/src/core/web_engine_library_info.cpp.no-icudtl-dat qtwebengine-everywhere-src-5.11.0/src/core/web_engine_library_info.cpp
|
||||
--- qtwebengine-everywhere-src-5.11.0/src/core/web_engine_library_info.cpp.no-icudtl-dat 2018-06-14 09:23:48.931195271 -0500
|
||||
+++ qtwebengine-everywhere-src-5.11.0/src/core/web_engine_library_info.cpp 2018-06-14 09:27:26.248014325 -0500
|
||||
@@ -258,28 +258,12 @@ QString dictionariesPath()
|
||||
|
||||
QString icuDataPath()
|
||||
{
|
||||
- static bool initialized = false;
|
||||
static QString potentialResourcesPath = QLibraryInfo::location(QLibraryInfo::DataPath) % QLatin1String("/resources");
|
||||
static QString potentialResourcesPath =
|
||||
#if defined(OS_MACOSX) && defined(QT_MAC_FRAMEWORK_BUILD)
|
||||
getResourcesPath(frameworkBundle());
|
||||
#else
|
||||
QLibraryInfo::location(QLibraryInfo::DataPath) % QLatin1String("/resources");
|
||||
#endif
|
||||
- if (!initialized) {
|
||||
- initialized = true;
|
||||
- if (!QFileInfo::exists(potentialResourcesPath % QLatin1String("/icudtl.dat"))) {
|
||||
@ -22,7 +27,6 @@ diff -ur qtwebengine-opensource-src-5.6.0/src/core/web_engine_library_info.cpp q
|
||||
- potentialResourcesPath = fallbackDir();
|
||||
- }
|
||||
- }
|
||||
-
|
||||
|
||||
return potentialResourcesPath;
|
||||
#endif
|
||||
}
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (qtwebengine-everywhere-src-5.10.1-clean.tar.xz) = b992aef0d2f9fe7d40b5378519113d5c41577b120830bee86eda211ffc97649022d1deacf82916007fb9fd1b6e18a855d4890c79752142165e66e2ea047486b8
|
||||
SHA512 (qtwebengine-everywhere-src-5.11.0-clean.tar.xz) = fb6a9a047e77478f6ea9bc9cdb4c7ea05520e9b2919a346d39e7eb09bd88747e35a97ef41bfa06aaed8eb9c3db9372c17dc4e24d1ed2e734f9bf6f58783c4616
|
||||
|
Loading…
Reference in New Issue
Block a user