summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2017-04-11 22:53:54 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2017-04-11 21:07:10 +0000
commit3b7091813e38631b9ca03ce9657c170ee8826439 (patch)
tree29180c82de5218a2b559ed2d1b4c826f0de66d5a
parent928cd15d3d3ab82734f49eb9d694faf59c3a0c6d (diff)
Import WebKit commit 1686903dfa4ab621a1b16a1a87529c88b07414a6
Change-Id: I07d705b9195c04d2d269586d67604150a5bda554 Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
-rw-r--r--Source/WebKit/CMakeLists.txt9
-rw-r--r--Source/WebKit/PlatformQt.cmake120
-rw-r--r--Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp6
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebinspector.cpp3
-rw-r--r--Source/cmake/ECMGeneratePriFile.cmake17
-rw-r--r--Source/cmake/OptionsQt.cmake8
-rw-r--r--Tools/qmake/projects/run_cmake.pro8
7 files changed, 122 insertions, 49 deletions
diff --git a/Source/WebKit/CMakeLists.txt b/Source/WebKit/CMakeLists.txt
index aff418d6d..ac9c295ec 100644
--- a/Source/WebKit/CMakeLists.txt
+++ b/Source/WebKit/CMakeLists.txt
@@ -50,7 +50,7 @@ if (MSVC)
endif ()
endif ()
-set(WebKit_PRIVATE_HEADERS_LOCATION Headers/${PROJECT_VERSION}/QtWebKit/Private)
+set(WebKit_PRIVATE_HEADERS_LOCATION Headers/${PROJECT_VERSION}/QtWebKit/private)
WEBKIT_FRAMEWORK(WebKit)
@@ -67,6 +67,13 @@ if (${PORT} STREQUAL "Qt")
if (NOT MSVC)
ADD_PREFIX_HEADER(WebKit "${WEBKIT_DIR}/qt/WebKitPrefix.h")
endif ()
+
+ if (MACOS_BUILD_FRAMEWORKS)
+ set_target_properties(WebKit PROPERTIES
+ FRAMEWORK_VERSION 5
+ MACOSX_FRAMEWORK_IDENTIFIER org.qt-project.QtWebKit
+ )
+ endif ()
endif ()
add_dependencies(WebKit WebCore)
diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake
index 68909de95..aa95a86e0 100644
--- a/Source/WebKit/PlatformQt.cmake
+++ b/Source/WebKit/PlatformQt.cmake
@@ -433,31 +433,58 @@ else ()
set(WEBKITWIDGETS_PRI_RUNTIME_DEPS "${WEBKITWIDGETS_PRI_RUNTIME_DEPS} printsupport")
endif ()
-ecm_generate_pkgconfig_file(
- BASE_NAME Qt5WebKit
- DEPS "${WEBKIT_PKGCONGIG_DEPS}"
- FILENAME_VAR WebKit_PKGCONFIG_FILENAME
-)
-set(ECM_PKGCONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/pkgconfig" CACHE PATH "The directory where pkgconfig will be installed to.")
-install(FILES ${WebKit_PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR} COMPONENT Data)
+if (NOT MACOS_BUILD_FRAMEWORKS)
+ ecm_generate_pkgconfig_file(
+ BASE_NAME Qt5WebKit
+ DEPS "${WEBKIT_PKGCONGIG_DEPS}"
+ FILENAME_VAR WebKit_PKGCONFIG_FILENAME
+ )
+ set(ECM_PKGCONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/pkgconfig" CACHE PATH "The directory where pkgconfig will be installed to.")
+ install(FILES ${WebKit_PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR} COMPONENT Data)
+endif ()
if (KDE_INSTALL_USE_QT_SYS_PATHS)
set(WebKit_PRI_ARGUMENTS
- INCLUDE_INSTALL_DIR "$$QT_MODULE_INCLUDE_BASE"
- INCLUDE_INSTALL_DIR2 "$$QT_MODULE_INCLUDE_BASE/QtWebKit"
LIB_INSTALL_DIR "$$QT_MODULE_LIB_BASE"
)
+ if (MACOS_BUILD_FRAMEWORKS)
+ list(APPEND WebKit_PRI_ARGUMENTS
+ INCLUDE_INSTALL_DIR "$$QT_MODULE_LIB_BASE/QtWebKit.framework/Headers"
+ MODULE_CONFIG "v2 lib_bundle"
+ )
+ else ()
+ list(APPEND WebKit_PRI_ARGUMENTS
+ INCLUDE_INSTALL_DIR "$$QT_MODULE_INCLUDE_BASE"
+ INCLUDE_INSTALL_DIR2 "$$QT_MODULE_INCLUDE_BASE/QtWebKit"
+ )
+ endif ()
else ()
set(WebKit_PRI_ARGUMENTS
- INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR}
- INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKit"
SET_RPATH ON
)
+ if (MACOS_BUILD_FRAMEWORKS)
+ list(APPEND WebKit_PRI_ARGUMENTS
+ INCLUDE_INSTALL_DIR "${LIB_INSTALL_DIR}/QtWebKit.framework/Headers"
+ MODULE_CONFIG "v2 lib_bundle"
+ )
+ else ()
+ list(APPEND WebKit_PRI_ARGUMENTS
+ INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR}
+ INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKit"
+ )
+ endif ()
+endif ()
+
+if (MACOS_BUILD_FRAMEWORKS)
+ set(WebKit_OUTPUT_NAME QtWebKit)
+else ()
+ set(WebKit_OUTPUT_NAME Qt5WebKit)
endif ()
ecm_generate_pri_file(
BASE_NAME webkit
- LIB_NAME QtWebKit
+ LIB_NAME ${WebKit_OUTPUT_NAME}
+ INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKit"
DEPS "${WEBKIT_PRI_DEPS}"
RUNTIME_DEPS "${WEBKIT_PRI_RUNTIME_DEPS}"
DEFINES QT_WEBKIT_LIB
@@ -474,12 +501,6 @@ else ()
set(WebKit_LIBRARY_TYPE SHARED)
endif ()
-if (APPLE AND NOT QT_STATIC_BUILD)
- set(WebKit_OUTPUT_NAME QtWebKit)
-else ()
- set(WebKit_OUTPUT_NAME Qt5WebKit)
-endif ()
-
############ WebKitWidgets ############
@@ -601,30 +622,57 @@ install(
COMPONENT Data
)
-ecm_generate_pkgconfig_file(
- BASE_NAME Qt5WebKitWidgets
- DEPS "${WEBKITWIDGETS_PKGCONFIG_DEPS}"
- FILENAME_VAR WebKitWidgets_PKGCONFIG_FILENAME
-)
-install(FILES ${WebKitWidgets_PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR} COMPONENT Data)
+if (NOT MACOS_BUILD_FRAMEWORKS)
+ ecm_generate_pkgconfig_file(
+ BASE_NAME Qt5WebKitWidgets
+ DEPS "${WEBKITWIDGETS_PKGCONFIG_DEPS}"
+ FILENAME_VAR WebKitWidgets_PKGCONFIG_FILENAME
+ )
+ install(FILES ${WebKitWidgets_PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR} COMPONENT Data)
+endif ()
if (KDE_INSTALL_USE_QT_SYS_PATHS)
set(WebKitWidgets_PRI_ARGUMENTS
- INCLUDE_INSTALL_DIR "$$QT_MODULE_INCLUDE_BASE"
- INCLUDE_INSTALL_DIR2 "$$QT_MODULE_INCLUDE_BASE/QtWebKitWidgets"
LIB_INSTALL_DIR "$$QT_MODULE_LIB_BASE"
)
+ if (MACOS_BUILD_FRAMEWORKS)
+ list(APPEND WebKitWidgets_PRI_ARGUMENTS
+ INCLUDE_INSTALL_DIR "$$QT_MODULE_LIB_BASE/QtWebKitWidgets.framework/Headers"
+ MODULE_CONFIG "v2 lib_bundle"
+ )
+ else ()
+ list(APPEND WebKitWidgets_PRI_ARGUMENTS
+ INCLUDE_INSTALL_DIR "$$QT_MODULE_INCLUDE_BASE"
+ INCLUDE_INSTALL_DIR2 "$$QT_MODULE_INCLUDE_BASE/QtWebKitWidgets"
+ )
+ endif ()
else ()
set(WebKitWidgets_PRI_ARGUMENTS
- INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR}
- INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets"
SET_RPATH ON
)
+ if (MACOS_BUILD_FRAMEWORKS)
+ list(APPEND WebKitWidgets_PRI_ARGUMENTS
+ INCLUDE_INSTALL_DIR "${LIB_INSTALL_DIR}/QtWebKitWidgets.framework/Headers"
+ MODULE_CONFIG "v2 lib_bundle"
+ )
+ else ()
+ list(APPEND WebKitWidgets_PRI_ARGUMENTS
+ INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR}
+ INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets"
+ )
+ endif ()
+endif ()
+
+if (MACOS_BUILD_FRAMEWORKS)
+ set(WebKitWidgets_OUTPUT_NAME QtWebKitWidgets)
+else ()
+ set(WebKitWidgets_OUTPUT_NAME Qt5WebKitWidgets)
endif ()
ecm_generate_pri_file(
BASE_NAME webkitwidgets
- LIB_NAME QtWebKitWidgets
+ LIB_NAME ${WebKitWidgets_OUTPUT_NAME}
+ INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets"
DEPS "${WEBKITWIDGETS_PRI_DEPS}"
RUNTIME_DEPS "${WEBKITWIDGETS_PRI_RUNTIME_DEPS}"
DEFINES QT_WEBKITWIDGETS_LIB
@@ -671,12 +719,7 @@ else ()
set(WebKitWidgets_LIBRARY_TYPE SHARED)
endif ()
-if (APPLE AND NOT QT_STATIC_BUILD)
- set(WebKitWidgets_OUTPUT_NAME QtWebKitWidgets)
-else ()
- set(WebKitWidgets_OUTPUT_NAME Qt5WebKitWidgets)
-endif ()
-set(WebKitWidgets_PRIVATE_HEADERS_LOCATION Headers/${PROJECT_VERSION}/QtWebKitWidgets/Private)
+set(WebKitWidgets_PRIVATE_HEADERS_LOCATION Headers/${PROJECT_VERSION}/QtWebKitWidgets/private)
WEBKIT_FRAMEWORK(WebKitWidgets)
add_dependencies(WebKitWidgets WebKit)
@@ -693,6 +736,13 @@ if (NOT MSVC AND WIN32)
ADD_PREFIX_HEADER(WebKitWidgets "qt/WebKitWidgetsPrefix.h")
endif ()
+if (MACOS_BUILD_FRAMEWORKS)
+ set_target_properties(WebKitWidgets PROPERTIES
+ FRAMEWORK_VERSION 5
+ MACOSX_FRAMEWORK_IDENTIFIER org.qt-project.QtWebKitWidgets
+ )
+endif ()
+
if (USE_LINKER_VERSION_SCRIPT)
set(VERSION_SCRIPT "${CMAKE_BINARY_DIR}/QtWebKitWidgets.version")
add_custom_command(TARGET WebKitWidgets PRE_LINK
diff --git a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp
index 569cc541e..dc2370453 100644
--- a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp
@@ -365,8 +365,12 @@ void QWebPageAdapter::setNetworkAccessManager(QNetworkAccessManager *manager)
QNetworkAccessManager* QWebPageAdapter::networkAccessManager()
{
- if (!networkManager)
+ if (!networkManager) {
networkManager = new QNetworkAccessManager(handle());
+#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0)
+ networkManager->setStrictTransportSecurityEnabled(true);
+#endif
+ }
return networkManager;
}
diff --git a/Source/WebKit/qt/WidgetApi/qwebinspector.cpp b/Source/WebKit/qt/WidgetApi/qwebinspector.cpp
index bc95047f1..ddb49ec90 100644
--- a/Source/WebKit/qt/WidgetApi/qwebinspector.cpp
+++ b/Source/WebKit/qt/WidgetApi/qwebinspector.cpp
@@ -166,8 +166,7 @@ void QWebInspector::showEvent(QShowEvent* event)
/*! \reimp */
void QWebInspector::hideEvent(QHideEvent* event)
{
- if (d->page)
- d->page->d->didCloseInspector();
+ QWidget::hideEvent(event);
}
/*! \reimp */
diff --git a/Source/cmake/ECMGeneratePriFile.cmake b/Source/cmake/ECMGeneratePriFile.cmake
index 9b4a80f18..fdee5504d 100644
--- a/Source/cmake/ECMGeneratePriFile.cmake
+++ b/Source/cmake/ECMGeneratePriFile.cmake
@@ -106,7 +106,7 @@ endif()
function(ECM_GENERATE_PRI_FILE)
set(options )
- set(oneValueArgs BASE_NAME LIB_NAME DEPS RUNTIME_DEPS FILENAME_VAR INCLUDE_INSTALL_DIR INCLUDE_INSTALL_DIR2 LIB_INSTALL_DIR SET_RPATH DEFINES QT_MODULES EXTRA_LIBS)
+ set(oneValueArgs BASE_NAME LIB_NAME DEPS RUNTIME_DEPS FILENAME_VAR INCLUDE_INSTALL_DIR INCLUDE_INSTALL_DIR2 LIB_INSTALL_DIR SET_RPATH DEFINES QT_MODULES EXTRA_LIBS MODULE_CONFIG)
set(multiValueArgs )
cmake_parse_arguments(EGPF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
@@ -180,9 +180,19 @@ function(ECM_GENERATE_PRI_FILE)
set(${EGPF_FILENAME_VAR} ${PRI_FILENAME} PARENT_SCOPE)
endif()
- if (PRI_TARGET_EXTRA_LIBS)
+ if (EGPF_MODULE_CONFIG)
+ set(PRI_TARGET_CONFIG ${EGPF_MODULE_CONFIG})
+ elseif (PRI_TARGET_EXTRA_LIBS)
# assuming that this var is set in STATIC build only
set(PRI_TARGET_CONFIG "staticlib")
+ else ()
+ set(PRI_TARGET_CONFIG "")
+ endif ()
+
+ if (EGPF_MODULE_CONFIG MATCHES "lib_bundle")
+ set(PRI_TARGET_FRAMEWORKS ${PRI_TARGET_LIBS})
+ else ()
+ set(PRI_TARGET_FRAMEWORKS "")
endif ()
file(GENERATE
@@ -193,6 +203,7 @@ QT.${PRI_TARGET_BASENAME}.MAJOR_VERSION = ${PROJECT_VERSION_MAJOR}
QT.${PRI_TARGET_BASENAME}.MINOR_VERSION = ${PROJECT_VERSION_MINOR}
QT.${PRI_TARGET_BASENAME}.PATCH_VERSION = ${PROJECT_VERSION_PATCH}
QT.${PRI_TARGET_BASENAME}.name = ${PRI_TARGET_LIBNAME}
+QT.${PRI_TARGET_BASENAME}.module = ${PRI_TARGET_LIBNAME}
QT.${PRI_TARGET_BASENAME}.DEFINES = ${PRI_TARGET_DEFINES}
QT.${PRI_TARGET_BASENAME}.includes = \"${PRI_TARGET_INCLUDES}\" \"${PRI_TARGET_INCLUDES2}\"
QT.${PRI_TARGET_BASENAME}.private_includes =
@@ -205,9 +216,11 @@ QT.${PRI_TARGET_BASENAME}.libexec =
QT.${PRI_TARGET_BASENAME}.plugins =
QT.${PRI_TARGET_BASENAME}.imports =
QT.${PRI_TARGET_BASENAME}.qml =
+QT.${PRI_TARGET_BASENAME}.frameworks = ${PRI_TARGET_FRAMEWORKS}
QT.${PRI_TARGET_BASENAME}.module_config = ${PRI_TARGET_CONFIG}
QT_MODULES += ${PRI_TARGET_QT_MODULES}
QMAKE_LIBS_PRIVATE += ${PRI_TARGET_EXTRA_LIBS}
+QMAKE_RPATHDIR += ${PRI_TARGET_RPATH}
"
)
diff --git a/Source/cmake/OptionsQt.cmake b/Source/cmake/OptionsQt.cmake
index ee59d7738..f73bc4146 100644
--- a/Source/cmake/OptionsQt.cmake
+++ b/Source/cmake/OptionsQt.cmake
@@ -67,16 +67,11 @@ if (WIN32)
set(CMAKE_SHARED_MODULE_PREFIX "")
endif ()
-if (APPLE)
- if (${CMAKE_BUILD_TYPE} MATCHES "Debug")
- set(CMAKE_DEBUG_POSTFIX _debug)
- endif ()
-endif ()
-
WEBKIT_OPTION_BEGIN()
if (APPLE)
option(MACOS_FORCE_SYSTEM_XML_LIBRARIES "Use system installation of libxml2 and libxslt on macOS" ON)
+ set(MACOS_BUILD_FRAMEWORKS ON) # TODO: Make it an option
endif ()
if (WIN32 OR APPLE)
@@ -241,6 +236,7 @@ get_target_property(QT_CORE_TYPE Qt5::Core TYPE)
if (QT_CORE_TYPE MATCHES STATIC)
set(QT_STATIC_BUILD ON)
set(SHARED_CORE OFF)
+ set(MACOS_BUILD_FRAMEWORKS OFF)
endif ()
if (SHARED_CORE)
diff --git a/Tools/qmake/projects/run_cmake.pro b/Tools/qmake/projects/run_cmake.pro
index ac8767154..45d97e976 100644
--- a/Tools/qmake/projects/run_cmake.pro
+++ b/Tools/qmake/projects/run_cmake.pro
@@ -112,13 +112,17 @@ build_pass|!debug_and_release {
QMAKE_EXTRA_TARGETS += default_target
# When debug and release are built at the same time, don't install data files twice
- debug_and_release:build_all:CONFIG(debug, debug|release): cmake_install_args = "-DCOMPONENT=Code"
+ debug_and_release:build_all:CONFIG(debug, debug|release) {
+ cmake_install_args = "-DCOMPONENT=Code"
+ # TODO: Fix macOS frameworks installation in debug_and_release
+ macos: destdir_suffix = "/debug"
+ }
install_impl_target.target = install_impl
install_impl_target.commands = cd $$cmake_build_dir && cmake $$cmake_install_args -P cmake_install.cmake
QMAKE_EXTRA_TARGETS += install_impl_target
install_target.target = install
- install_target.commands = $(MAKE) -f $(MAKEFILE) install_impl $$make_args DESTDIR=$(INSTALL_ROOT)
+ install_target.commands = $(MAKE) -f $(MAKEFILE) install_impl $$make_args DESTDIR=$(INSTALL_ROOT)$$destdir_suffix
QMAKE_EXTRA_TARGETS += install_target
}