--- /dev/null
+From fbd1de045999d1e5b5dcae7ac6c1e674ac0044fe Mon Sep 17 00:00:00 2001
+From: Dmitry Shachnev <mitya57@gmail.com>
+Date: Sat, 24 Feb 2018 15:09:53 +0300
+Subject: [PATCH 12/14] [cmake] Fix include dir in the generated pkg-config
+ files
+
+---
+ Source/WebKit/PlatformQt.cmake | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake
+index 6fe440be800..28976b611cd 100644
+--- a/Source/WebKit/PlatformQt.cmake
++++ b/Source/WebKit/PlatformQt.cmake
+@@ -503,6 +503,7 @@ if (NOT MACOS_BUILD_FRAMEWORKS)
+ ecm_generate_pkgconfig_file(
+ BASE_NAME Qt5WebKit
+ DESCRIPTION "Qt WebKit module"
++ INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKit"
+ DEPS "${WEBKIT_PKGCONGIG_DEPS}"
+ FILENAME_VAR WebKit_PKGCONFIG_FILENAME
+ )
+@@ -728,6 +729,7 @@ if (NOT MACOS_BUILD_FRAMEWORKS)
+ ecm_generate_pkgconfig_file(
+ BASE_NAME Qt5WebKitWidgets
+ DESCRIPTION "Qt WebKitWidgets module"
++ INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets"
+ DEPS "${WEBKITWIDGETS_PKGCONFIG_DEPS}"
+ FILENAME_VAR WebKitWidgets_PKGCONFIG_FILENAME
+ )
+--
+2.17.1
+
--- /dev/null
+From 4ef333ab0b60ca86e9a44cae0b77d1f752892a94 Mon Sep 17 00:00:00 2001
+From: Konstantin Tokarev <annulen@yandex.ru>
+Date: Tue, 27 Jun 2017 16:34:00 +0300
+Subject: [PATCH 016/143] [cmake] Import ECMEnableSanitizers
+
+Change-Id: I1417511f0734e8d03bf8d55c5766b57388ed5504
+---
+ Source/cmake/ECMEnableSanitizers.cmake | 173 +++++++++++++++++++++++++
+ Source/cmake/OptionsQt.cmake | 1 +
+ 2 files changed, 174 insertions(+)
+ create mode 100644 Source/cmake/ECMEnableSanitizers.cmake
+
+diff --git a/Source/cmake/ECMEnableSanitizers.cmake b/Source/cmake/ECMEnableSanitizers.cmake
+new file mode 100644
+index 00000000000..06cc0b66d86
+--- /dev/null
++++ b/Source/cmake/ECMEnableSanitizers.cmake
+@@ -0,0 +1,173 @@
++#.rst:
++# ECMEnableSanitizers
++# -------------------
++#
++# Enable compiler sanitizer flags.
++#
++# The following sanitizers are supported:
++#
++# - Address Sanitizer
++# - Memory Sanitizer
++# - Thread Sanitizer
++# - Leak Sanitizer
++# - Undefined Behaviour Sanitizer
++#
++# All of them are implemented in Clang, depending on your version, and
++# there is an work in progress in GCC, where some of them are currently
++# implemented.
++#
++# This module will check your current compiler version to see if it
++# supports the sanitizers that you want to enable
++#
++# Usage
++# =====
++#
++# Simply add::
++#
++# include(ECMEnableSanitizers)
++#
++# to your ``CMakeLists.txt``. Note that this module is included in
++# KDECompilerSettings, so projects using that module do not need to also
++# include this one.
++#
++# The sanitizers are not enabled by default. Instead, you must set
++# ``ECM_ENABLE_SANITIZERS`` (either in your ``CMakeLists.txt`` or on the
++# command line) to a semicolon-separated list of sanitizers you wish to enable.
++# The options are:
++#
++# - address
++# - memory
++# - thread
++# - leak
++# - undefined
++#
++# The sanitizers "address", "memory" and "thread" are mutually exclusive. You
++# cannot enable two of them in the same build.
++#
++# "leak" requires the "address" sanitizer.
++#
++# .. note::
++#
++# To reduce the overhead induced by the instrumentation of the sanitizers, it
++# is advised to enable compiler optimizations (``-O1`` or higher).
++#
++# Example
++# =======
++#
++# This is an example of usage::
++#
++# mkdir build
++# cd build
++# cmake -DECM_ENABLE_SANITIZERS='address;leak;undefined' ..
++#
++# .. note::
++#
++# Most of the sanitizers will require Clang. To enable it, use::
++#
++# -DCMAKE_CXX_COMPILER=clang++
++#
++# Since 1.3.0.
++
++#=============================================================================
++# Copyright 2014 Mathieu Tarral <mathieu.tarral@gmail.com>
++#
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions
++# are met:
++#
++# 1. Redistributions of source code must retain the copyright
++# notice, this list of conditions and the following disclaimer.
++# 2. Redistributions in binary form must reproduce the copyright
++# notice, this list of conditions and the following disclaimer in the
++# documentation and/or other materials provided with the distribution.
++# 3. The name of the author may not be used to endorse or promote products
++# derived from this software without specific prior written permission.
++#
++# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
++# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
++# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
++# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
++# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++# MACRO check_compiler_version
++#-----------------------------
++macro (check_compiler_version gcc_required_version clang_required_version)
++ if (
++ (
++ CMAKE_CXX_COMPILER_ID MATCHES "GNU"
++ AND
++ CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${gcc_required_version}
++ )
++ OR
++ (
++ CMAKE_CXX_COMPILER_ID MATCHES "Clang"
++ AND
++ CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${clang_required_version}
++ )
++ )
++ # error !
++ message(FATAL_ERROR "You ask to enable the sanitizer ${CUR_SANITIZER},
++ but your compiler ${CMAKE_CXX_COMPILER_ID} version ${CMAKE_CXX_COMPILER_VERSION}
++ does not support it !
++ You should use at least GCC ${gcc_required_version} or Clang ${clang_required_version}
++ (99.99 means not implemented yet)")
++ endif ()
++endmacro ()
++
++# MACRO check_compiler_support
++#------------------------------
++macro (enable_sanitizer_flags sanitize_option)
++ if (${sanitize_option} MATCHES "address")
++ check_compiler_version("4.8" "3.1")
++ set(XSAN_COMPILE_FLAGS "-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls")
++ set(XSAN_LINKER_FLAGS "asan")
++ elseif (${sanitize_option} MATCHES "thread")
++ check_compiler_version("4.8" "3.1")
++ set(XSAN_COMPILE_FLAGS "-fsanitize=thread")
++ set(XSAN_LINKER_FLAGS "tsan")
++ elseif (${sanitize_option} MATCHES "memory")
++ check_compiler_version("99.99" "3.1")
++ set(XSAN_COMPILE_FLAGS "-fsanitize=memory")
++ elseif (${sanitize_option} MATCHES "leak")
++ check_compiler_version("4.9" "3.4")
++ set(XSAN_COMPILE_FLAGS "-fsanitize=leak")
++ set(XSAN_LINKER_FLAGS "lsan")
++ elseif (${sanitize_option} MATCHES "undefined")
++ check_compiler_version("4.9" "3.1")
++ set(XSAN_COMPILE_FLAGS "-fsanitize=undefined -fno-omit-frame-pointer -fno-optimize-sibling-calls")
++ else ()
++ message(FATAL_ERROR "Compiler sanitizer option \"${sanitize_option}\" not supported.")
++ endif ()
++endmacro ()
++
++if (ECM_ENABLE_SANITIZERS)
++ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
++ # for each element of the ECM_ENABLE_SANITIZERS list
++ foreach ( CUR_SANITIZER ${ECM_ENABLE_SANITIZERS} )
++ # lowercase filter
++ string(TOLOWER ${CUR_SANITIZER} CUR_SANITIZER)
++ # check option and enable appropriate flags
++ enable_sanitizer_flags ( ${CUR_SANITIZER} )
++ # TODO: GCC will not link pthread library if enabled ASan
++ if(CMAKE_C_COMPILER_ID MATCHES "Clang")
++ set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${XSAN_COMPILE_FLAGS}" )
++ endif()
++ set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${XSAN_COMPILE_FLAGS}" )
++ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
++ link_libraries(${XSAN_LINKER_FLAGS})
++ endif()
++ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
++ string(REPLACE "-Wl,--no-undefined" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
++ string(REPLACE "-Wl,--no-undefined" "" CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}")
++ endif ()
++ endforeach()
++ else()
++ message(STATUS "Tried to enable sanitizers (-DECM_ENABLE_SANITIZERS=${ECM_ENABLE_SANITIZERS}), \
++but compiler (${CMAKE_CXX_COMPILER_ID}) does not have sanitizer support")
++ endif()
++endif()
+diff --git a/Source/cmake/OptionsQt.cmake b/Source/cmake/OptionsQt.cmake
+index 463a091c787..0835e47aa72 100644
+--- a/Source/cmake/OptionsQt.cmake
++++ b/Source/cmake/OptionsQt.cmake
+@@ -1,4 +1,5 @@
+ include(FeatureSummary)
++include(ECMEnableSanitizers)
+ include(ECMPackageConfigHelpers)
+
+ set(ECM_MODULE_DIR ${CMAKE_MODULE_PATH})
+--
+2.17.1
+
--- /dev/null
+From 5648446933f52fe479d0a9006f6393a81a790116 Mon Sep 17 00:00:00 2001
+From: Konstantin Tokarev <annulen@yandex.ru>
+Date: Thu, 25 May 2017 00:49:22 +0300
+Subject: [PATCH 031/143] Disable ES6 Proxy object
+
+Change-Id: Ifd6404e254b242afa8dd563c03f9588b4b05ab93
+---
+ Source/JavaScriptCore/runtime/JSGlobalObject.cpp | 3 +
+ 91 files changed, 17 insertions(+), 1379 deletions(-)
+diff --git a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp b/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
+index 9e613a21215..7d57590b4c5 100644
+--- a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
++++ b/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
+@@ -458,7 +458,10 @@ m_ ## lowerName ## Prototype->putDirectWithoutTransition(vm, vm.propertyNames->c
+ putDirectWithoutTransition(vm, vm.propertyNames->TypeError, m_typeErrorConstructor.get(), DontEnum);
+ putDirectWithoutTransition(vm, vm.propertyNames->URIError, m_URIErrorConstructor.get(), DontEnum);
+
++#if !PLATFORM(QT)
++ // Disable ES6 Proxy because our implementation is not compliant with what real world code expects
+ putDirectWithoutTransition(vm, vm.propertyNames->Proxy, ProxyConstructor::create(vm, ProxyConstructor::createStructure(vm, this, m_functionPrototype.get())), DontEnum);
++#endif
+
+
+ #define PUT_CONSTRUCTOR_FOR_SIMPLE_TYPE(capitalName, lowerName, properName, instanceType, jsName) \
--- /dev/null
+From 0325d51c4a2a05fb11b93f0c99d1d08976aac47d Mon Sep 17 00:00:00 2001
+From: Konstantin Tokarev <annulen@yandex.ru>
+Date: Thu, 28 Dec 2017 02:22:58 +0300
+Subject: [PATCH 111/143] [ECM] Update ECMGeneratePkgConfigFile to latest
+ version, fill in DESCRIPTION
+
+Change-Id: Ib9252a02badeb2be4d8da74c9ab38195ded92afd
+---
+ Source/WebKit/PlatformQt.cmake | 2 +
+ Source/cmake/ECMGeneratePkgConfigFile.cmake | 60 ++++++++++++++++-----
+ 2 files changed, 50 insertions(+), 12 deletions(-)
+
+diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake
+index cf5f3670040..909efc00dba 100644
+--- a/Source/WebKit/PlatformQt.cmake
++++ b/Source/WebKit/PlatformQt.cmake
+@@ -502,6 +502,7 @@ endif ()
+ if (NOT MACOS_BUILD_FRAMEWORKS)
+ ecm_generate_pkgconfig_file(
+ BASE_NAME Qt5WebKit
++ DESCRIPTION "Qt WebKit module"
+ DEPS "${WEBKIT_PKGCONGIG_DEPS}"
+ FILENAME_VAR WebKit_PKGCONFIG_FILENAME
+ )
+@@ -726,6 +727,7 @@ install(
+ if (NOT MACOS_BUILD_FRAMEWORKS)
+ ecm_generate_pkgconfig_file(
+ BASE_NAME Qt5WebKitWidgets
++ DESCRIPTION "Qt WebKitWidgets module"
+ DEPS "${WEBKITWIDGETS_PKGCONFIG_DEPS}"
+ FILENAME_VAR WebKitWidgets_PKGCONFIG_FILENAME
+ )
+diff --git a/Source/cmake/ECMGeneratePkgConfigFile.cmake b/Source/cmake/ECMGeneratePkgConfigFile.cmake
+index b4e68663038..09d7e2b476d 100644
+--- a/Source/cmake/ECMGeneratePkgConfigFile.cmake
++++ b/Source/cmake/ECMGeneratePkgConfigFile.cmake
+@@ -16,6 +16,7 @@
+ # [INCLUDE_INSTALL_DIR <dir>]
+ # [LIB_INSTALL_DIR <dir>]
+ # [DEFINES -D<variable=value>...]
++# [DESCRIPTION <library description>]
+ # [INSTALL])
+ #
+ # ``BASE_NAME`` is the name of the module. It's the name projects will use to
+@@ -42,6 +43,10 @@
+ # ``DEFINES`` is a list of preprocessor defines that it is recommended users of
+ # the library pass to the compiler when using it.
+ #
++# ``DESCRIPTION`` describes what this library is. If it's not specified, CMake
++# will first try to get the description from the metainfo.yaml file or will
++# create one based on ``LIB_NAME``.
++#
+ # ``INSTALL`` will cause the module to be installed to the ``pkgconfig``
+ # subdirectory of ``LIB_INSTALL_DIR``, unless the ``ECM_PKGCONFIG_INSTALL_DIR``
+ # cache variable is set to something different. Note that the first call to
+@@ -66,24 +71,39 @@
+ # )
+ #
+ # Since 1.3.0.
++# ``DESCRIPTION`` available since 5.1.41
++#
+
+ #=============================================================================
+ # Copyright 2014 Aleix Pol Gonzalez <aleixpol@kde.org>
+ # Copyright 2014 David Faure <faure@kde.org>
+ #
+-# Distributed under the OSI-approved BSD License (the "License");
+-# see accompanying file COPYING-CMAKE-SCRIPTS for details.
+-#
+-# This software is distributed WITHOUT ANY WARRANTY; without even the
+-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+-# See the License for more information.
+-#=============================================================================
+-# (To distribute this file outside of extra-cmake-modules, substitute the full
+-# License text for the above reference.)
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions
++# are met:
++#
++# 1. Redistributions of source code must retain the copyright
++# notice, this list of conditions and the following disclaimer.
++# 2. Redistributions in binary form must reproduce the copyright
++# notice, this list of conditions and the following disclaimer in the
++# documentation and/or other materials provided with the distribution.
++# 3. The name of the author may not be used to endorse or promote products
++# derived from this software without specific prior written permission.
++#
++# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
++# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
++# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
++# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
++# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ function(ECM_GENERATE_PKGCONFIG_FILE)
+ set(options INSTALL)
+- set(oneValueArgs BASE_NAME LIB_NAME FILENAME_VAR INCLUDE_INSTALL_DIR LIB_INSTALL_DIR)
++ set(oneValueArgs BASE_NAME LIB_NAME FILENAME_VAR INCLUDE_INSTALL_DIR LIB_INSTALL_DIR DESCRIPTION)
+ set(multiValueArgs DEPS DEFINES)
+
+ cmake_parse_arguments(EGPF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+@@ -119,6 +139,17 @@ function(ECM_GENERATE_PKGCONFIG_FILE)
+ set(EGPF_LIB_INSTALL_DIR "lib")
+ endif()
+ endif()
++ if(NOT EGPF_DESCRIPTION)
++ if(EXISTS ${CMAKE_SOURCE_DIR}/metainfo.yaml)
++ file(STRINGS "${CMAKE_SOURCE_DIR}/metainfo.yaml" _EGPF_METAINFO_DESCRIPTION_STRING REGEX "^description:.*$")
++ if(_EGPF_METAINFO_DESCRIPTION_STRING)
++ string(REGEX REPLACE "^description:[ ]*(.*)" "\\1" EGPF_DESCRIPTION ${_EGPF_METAINFO_DESCRIPTION_STRING})
++ endif()
++ endif()
++ if("${EGPF_DESCRIPTION}" STREQUAL "")
++ set(EGPF_DESCRIPTION "${EGPF_LIB_NAME} library.")
++ endif()
++ endif()
+
+ set(PKGCONFIG_TARGET_BASENAME ${EGPF_BASE_NAME})
+ set(PKGCONFIG_TARGET_LIBNAME ${EGPF_LIB_NAME})
+@@ -135,6 +166,7 @@ function(ECM_GENERATE_PKGCONFIG_FILE)
+ else()
+ set(PKGCONFIG_TARGET_LIBS "${CMAKE_INSTALL_PREFIX}/${EGPF_LIB_INSTALL_DIR}")
+ endif()
++ set(PKGCONFIG_TARGET_DESCRIPTION "${EGPF_DESCRIPTION}")
+ set(PKGCONFIG_TARGET_DEFINES "")
+ if(EGPF_DEFINES)
+ set(PKGCONFIG_TARGET_DEFINES "${EGPF_DEFINE}")
+@@ -148,6 +180,7 @@ function(ECM_GENERATE_PKGCONFIG_FILE)
+ file(WRITE ${PKGCONFIG_FILENAME}
+ "
+ Name: ${PKGCONFIG_TARGET_LIBNAME}
++Description: ${PKGCONFIG_TARGET_DESCRIPTION}
+ Version: ${PROJECT_VERSION}
+ Libs: -L${CMAKE_INSTALL_PREFIX}/${EGPF_LIB_INSTALL_DIR} -l${PKGCONFIG_TARGET_LIBNAME}
+ Cflags: ${PKGCONFIG_TARGET_INCLUDES} ${PKGCONFIG_TARGET_DEFINES}
+@@ -156,8 +189,11 @@ Requires: ${PKGCONFIG_TARGET_DEPS}
+ )
+
+ if(EGPF_INSTALL)
+- set(ECM_PKGCONFIG_INSTALL_DIR "${EGPF_LIB_INSTALL_DIR}/pkgconfig" CACHE PATH "The directory where pkgconfig will be installed to.")
++ if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
++ set(ECM_PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/libdata/pkgconfig" CACHE PATH "The directory where pkgconfig will be installed to.")
++ else()
++ set(ECM_PKGCONFIG_INSTALL_DIR "${EGPF_LIB_INSTALL_DIR}/pkgconfig" CACHE PATH "The directory where pkgconfig will be installed to.")
++ endif()
+ install(FILES ${PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR})
+ endif()
+ endfunction()
+-
+--
+2.17.1
+
+++ /dev/null
---- qtwebkit-opensource-src-5.5.1/Source/JavaScriptCore/API/JSStringRef.h.orig 2015-10-13 06:37:10.000000000 +0200
-+++ qtwebkit-opensource-src-5.5.1/Source/JavaScriptCore/API/JSStringRef.h 2017-04-24 12:26:42.495345570 +0200
-@@ -32,6 +32,7 @@
- #include <stdbool.h>
- #endif
- #include <stddef.h> /* for size_t */
-+#include <uchar.h>
-
- #ifdef __cplusplus
- extern "C" {
-@@ -43,7 +44,7 @@
- @typedef JSChar
- @abstract A Unicode character.
- */
-- typedef unsigned short JSChar;
-+ typedef char16_t JSChar;
- #else
- typedef wchar_t JSChar;
- #endif
---- qtwebkit-opensource-src-5.5.1/Source/WebKit2/Shared/API/c/WKString.h.orig 2015-10-13 06:37:12.000000000 +0200
-+++ qtwebkit-opensource-src-5.5.1/Source/WebKit2/Shared/API/c/WKString.h 2017-04-24 12:27:33.432011867 +0200
-@@ -31,6 +31,7 @@
- #ifndef __cplusplus
- #include <stdbool.h>
- #endif
-+#include <uchar.h>
-
- #ifdef __cplusplus
- extern "C" {
-@@ -38,7 +39,7 @@
-
- #if !defined(WIN32) && !defined(_WIN32) \
- && !((defined(__CC_ARM) || defined(__ARMCC__)) && !defined(__linux__)) /* RVCT */
-- typedef unsigned short WKChar;
-+ typedef char16_t WKChar;
- #else
- typedef wchar_t WKChar;
- #endif
+++ /dev/null
-diff --git a/Source/WTF/wtf/Compiler.h b/Source/WTF/wtf/Compiler.h
-index ead844f..e62cfd4 100644
---- a/Source/WTF/wtf/Compiler.h
-+++ b/Source/WTF/wtf/Compiler.h
-@@ -61,6 +61,7 @@
- #define WTF_COMPILER_SUPPORTS_HAS_TRIVIAL_DESTRUCTOR __has_feature(has_trivial_destructor)
- #define WTF_COMPILER_SUPPORTS_CXX_STRONG_ENUMS __has_feature(cxx_strong_enums)
- #define WTF_COMPILER_SUPPORTS_CXX_REFERENCE_QUALIFIED_FUNCTIONS __has_feature(cxx_reference_qualified_functions)
-+#define WTF_COMPILER_SUPPORTS_CXX_NEW_CHAR_TYPES !defined(_LIBCPP_HAS_NO_UNICODE_CHARS)
-
- #endif
-
-@@ -142,6 +143,7 @@
- #define WTF_COMPILER_SUPPORTS_CXX_DELETED_FUNCTIONS 1
- #endif
- #if GCC_VERSION_AT_LEAST(4, 5, 0)
-+#define WTF_COMPILER_SUPPORTS_CXX_NEW_CHAR_TYPES 1
- #define WTF_COMPILER_SUPPORTS_CXX_EXPLICIT_CONVERSIONS 1
- #endif
- #if GCC_VERSION_AT_LEAST(4, 6, 0)
-diff --git a/Source/WTF/wtf/TypeTraits.h b/Source/WTF/wtf/TypeTraits.h
-index b9e46bc..876fa45 100644
---- a/Source/WTF/wtf/TypeTraits.h
-+++ b/Source/WTF/wtf/TypeTraits.h
-@@ -75,6 +75,10 @@ namespace WTF {
- #if !COMPILER(MSVC) || defined(_NATIVE_WCHAR_T_DEFINED)
- template<> struct IsInteger<wchar_t> { static const bool value = true; };
- #endif
-+#if COMPILER_SUPPORTS(CXX_NEW_CHAR_TYPES)
-+ template<> struct IsInteger<char16_t> { static const bool value = true; };
-+ template<> struct IsInteger<char32_t> { static const bool value = true; };
-+#endif
-
- template<typename T> struct IsFloatingPoint { static const bool value = false; };
- template<> struct IsFloatingPoint<float> { static const bool value = true; };
--- /dev/null
+diff -Naur qtwebkit/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp qtwebkit.new/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
+--- qtwebkit/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp 2017-10-23 17:25:58.941518553 +0200
++++ qtwebkit.new/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp 2017-10-23 17:27:44.223917497 +0200
+@@ -961,6 +961,8 @@
+ FrameView* view = frame->view();
+ ASSERT(view);
+ view->resize(size);
++ if (view->needsLayout())
++ view->layout();
+ view->adjustViewSize();
+ }
+
# - system leveldb (requires memenv helper library)
# NOTE: not splitting WebKit/WebKitWidgets, interdependencies are not clear
# (e.g. WebProcess requires WebKitWidgets)
+# - switch to building using cmake directly, reenable doc
#
# Conditional build:
%bcond_with bootstrap # disable features to able to build without installed qt5
# -- build targets
-%bcond_without doc # Documentation
+%bcond_with doc # Documentation
# -- features
%bcond_with qtmultimedia # QtMultimedia support
%undefine with_doc
%endif
+%define snap alpha2
+
%define orgname qtwebkit
-%define qtbase_ver %{version}
-%define qtdeclarative_ver %{version}
-%define qtlocation_ver %{version}
-%define qtmultimedia_ver %{version}
-%define qtsensors_ver %{version}
-%define qttools_ver 5.4
+%define qtbase_ver 5.11
+%define qtdeclarative_ver 5.11
+%define qtlocation_ver 5.11
+%define qtmultimedia_ver 5.11
+%define qtsensors_ver 5.11
+%define qttools_ver 5.11
Summary: The Qt5 WebKit libraries
Summary(pl.UTF-8): Biblioteki Qt5 WebKit
Name: qt5-%{orgname}
-Version: 5.8.0
-Release: 1
+Version: 5.212.0
+Release: 0.%{snap}.1
License: LGPL v2+
Group: X11/Libraries
-Source0: http://download.qt.io/community_releases/5.8/%{version}-final/%{orgname}-opensource-src-%{version}.tar.xz
-# Source0-md5: 60a6935aca4a7c553d0ec4646ceed3b4
-Patch0: icu59.patch
-Patch1: new-char-types.patch
-URL: http://www.qt.io/
+Source0: https://github.com/annulen/webkit/archive/qtwebkit-%{version}-%{snap}.tar.gz
+# Source0-md5: 9216661f6626fe4224ac477adf8d4162
+# from FC
+Patch100: qt5-qtwebkit-5.212.0-alpha2-fix-pagewidth.patch
+Patch101: qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference.patch
+Patch102: qtwebkit-5.212.0_cmake_cmp0071.patch
+Patch103: qtwebkit-5.212.0_fix_missing_sources.patch
+Patch104: 0016-cmake-Import-ECMEnableSanitizers.patch
+Patch105: 0031-Disable-ES6-Proxy-object.patch
+Patch106: 0111-ECM-Update-ECMGeneratePkgConfigFile-to-latest-versio.patch
+Patch107: 0012-cmake-Fix-include-dir-in-the-generated-pkg-config-fi.patch
+URL: https://github.com/annulen/webkit
BuildRequires: OpenGL-devel
BuildRequires: Qt5Core-devel >= %{qtbase_ver}
BuildRequires: Qt5Gui-devel >= %{qtbase_ver}
Dokumentacja do bibliotek Qt5 WebKit w formacie QCH.
%prep
-%setup -q -n %{orgname}-opensource-src-%{version}
-%patch0 -p1
-%patch1 -p1
+%setup -q -n webkit-qtwebkit-%{version}-%{snap}
+%patch100 -p1
+%patch101 -p1
+%patch102 -p1
+%patch103 -p1
+%patch104 -p1
+%patch105 -p1
+%patch106 -p1
+%patch107 -p1
%build
qmake-qt5 \
INSTALL_ROOT=$RPM_BUILD_ROOT
%endif
-# kill unnecessary -L%{_libdir} from *.la, *.prl, *.pc
+# kill unnecessary -L%{_libdir} from *.pc
%{__sed} -i -e "s,-L%{_libdir} \?,,g" \
- $RPM_BUILD_ROOT%{_libdir}/*.{la,prl} \
$RPM_BUILD_ROOT%{_pkgconfigdir}/*.pc
# kill unwanted Libs.private (containing many bogus entries) from *.pc files
%{__sed} -i -e '/^Libs\.private/d' $RPM_BUILD_ROOT%{_pkgconfigdir}/*.pc
-# useless symlinks
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/libQt5*.so.5.?
-# actually drop *.la, follow policy of not packaging them when *.pc exist
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/libQt5*.la
%clean
rm -rf $RPM_BUILD_ROOT
%{_libdir}/qt5/qml/QtWebKit/experimental/qmldir
%dir %{_libdir}/qt5/libexec
%attr(755,root,root) %{_libdir}/qt5/libexec/QtWebProcess
+%attr(755,root,root) %{_libdir}/qt5/libexec/QtWebDatabaseProcess
+%attr(755,root,root) %{_libdir}/qt5/libexec/QtWebNetworkProcess
%files -n Qt5WebKit-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libQt5WebKit.so
%attr(755,root,root) %{_libdir}/libQt5WebKitWidgets.so
-%{_libdir}/libQt5WebKit.prl
-%{_libdir}/libQt5WebKitWidgets.prl
%{_includedir}/qt5/QtWebKit
%{_includedir}/qt5/QtWebKitWidgets
%{_pkgconfigdir}/Qt5WebKit.pc
%{_libdir}/cmake/Qt5WebKit
%{_libdir}/cmake/Qt5WebKitWidgets
%{qt5dir}/mkspecs/modules/qt_lib_webkit.pri
-%{qt5dir}/mkspecs/modules/qt_lib_webkit_private.pri
%{qt5dir}/mkspecs/modules/qt_lib_webkitwidgets.pri
-%{qt5dir}/mkspecs/modules/qt_lib_webkitwidgets_private.pri
%if %{with doc}
%files doc
--- /dev/null
+diff -ur qtwebkit-5.212.0-alpha2/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp
+--- qtwebkit-5.212.0-alpha2/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp 2017-06-09 16:11:36.000000000 +0200
++++ qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp 2017-10-24 21:44:40.504943501 +0200
+@@ -390,7 +390,10 @@
+
+ QString QWebPageAdapter::selectedHtml() const
+ {
+- return page->focusController().focusedOrMainFrame().editor().selectedRange()->toHTML();
++ RefPtr<Range> range = page->focusController().focusedOrMainFrame().editor().selectedRange();
++ if (!range)
++ return QString();
++ return range->toHTML();
+ }
+
+ bool QWebPageAdapter::isContentEditable() const
--- /dev/null
+Index: qtwebkit-5.212.0-alpha2/CMakeLists.txt
+===================================================================
+--- qtwebkit-5.212.0-alpha2.orig/CMakeLists.txt
++++ qtwebkit-5.212.0-alpha2/CMakeLists.txt
+@@ -6,6 +6,11 @@ if (POLICY CMP0058)
+ cmake_policy(SET CMP0058 NEW)
+ endif ()
+
++# Explicitly process generated files with AUTOMOC.
++if (POLICY CMP0071)
++ cmake_policy(SET CMP0071 NEW)
++endif ()
++
+ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/Source/cmake")
+
+ if (NOT DEFINED ENABLE_WEBKIT)
+Index: qtwebkit-5.212.0-alpha2/Source/WebKit/CMakeLists.txt
+===================================================================
+--- qtwebkit-5.212.0-alpha2.orig/Source/WebKit/CMakeLists.txt
++++ qtwebkit-5.212.0-alpha2/Source/WebKit/CMakeLists.txt
+@@ -1,6 +1,11 @@
+ cmake_minimum_required(VERSION 2.8.12)
+ include(WebKitCommon)
+
++# Explicitly process generated files with AUTOMOC.
++if (POLICY CMP0071)
++ cmake_policy(SET CMP0071 NEW)
++endif ()
++
+ set(WebKit_SOURCES
+ Storage/StorageAreaImpl.cpp
+ Storage/StorageAreaSync.cpp
--- /dev/null
+Index: qtwebkit-5.212.0-alpha2/Source/WebKit/PlatformQt.cmake
+===================================================================
+--- qtwebkit-5.212.0-alpha2.orig/Source/WebKit/PlatformQt.cmake
++++ qtwebkit-5.212.0-alpha2/Source/WebKit/PlatformQt.cmake
+@@ -786,6 +786,7 @@ if (COMPILER_IS_GCC_OR_CLANG)
+ set_source_files_properties(
+ qt/Api/qwebdatabase.cpp
+ qt/Api/qwebelement.cpp
++ qt/Api/qwebfullscreenrequest.cpp
+ qt/Api/qwebhistory.cpp
+ qt/Api/qwebhistoryinterface.cpp
+ qt/Api/qwebpluginfactory.cpp
+@@ -795,7 +796,6 @@ if (COMPILER_IS_GCC_OR_CLANG)
+
+ qt/WidgetApi/qgraphicswebview.cpp
+ qt/WidgetApi/qwebframe.cpp
+- qt/WidgetApi/qwebfullscreenrequest.cpp
+ qt/WidgetApi/qwebinspector.cpp
+ qt/WidgetApi/qwebpage.cpp
+ qt/WidgetApi/qwebview.cpp