summaryrefslogtreecommitdiffstats
path: root/Source/WebKit
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit')
-rw-r--r--Source/WebKit/PlatformQt.cmake27
-rw-r--r--Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp4
-rw-r--r--Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp2
-rw-r--r--Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp2
-rw-r--r--Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp3
-rw-r--r--Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h3
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebpage.cpp51
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebpage.h4
8 files changed, 80 insertions, 16 deletions
diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake
index 3e50b2552..a192fbd48 100644
--- a/Source/WebKit/PlatformQt.cmake
+++ b/Source/WebKit/PlatformQt.cmake
@@ -16,10 +16,22 @@ macro(generate_version_header _file _var _prefix)
set_source_files_properties(${_file} PROPERTIES GENERATED TRUE)
endmacro()
+macro(append_lib_names_to_list _lib_names_list)
+ foreach (_lib_filename ${ARGN})
+ get_filename_component(_lib_name_we ${_lib_filename} NAME_WE)
+ if (NOT MSVC)
+ string(REGEX REPLACE "^lib" "" _lib_name_we ${_lib_name_we})
+ endif ()
+ list(APPEND ${_lib_names_list} ${_lib_name_we})
+ endforeach ()
+endmacro()
+
if (${JavaScriptCore_LIBRARY_TYPE} MATCHES STATIC)
add_definitions(-DSTATICALLY_LINKED_WITH_WTF -DSTATICALLY_LINKED_WITH_JavaScriptCore)
endif ()
+QTWEBKIT_SKIP_AUTOMOC(WebKit)
+
list(APPEND WebKit_INCLUDE_DIRECTORIES
"${WEBCORE_DIR}"
"${DERIVED_SOURCES_DIR}"
@@ -446,23 +458,21 @@ if (ENABLE_PRINT_SUPPORT)
endif ()
if (QT_STATIC_BUILD)
- if (MSVC)
- set(LIB_PREFIX "lib")
- endif ()
set(WEBKITWIDGETS_PKGCONGIG_DEPS "${WEBKITWIDGETS_PKGCONGIG_DEPS} Qt5PrintSupport")
set(WEBKITWIDGETS_PRI_DEPS "${WEBKITWIDGETS_PRI_DEPS} printsupport")
- set(EXTRA_LIBS_NAMES WebCore JavaScriptCore WTF xml2)
+ set(EXTRA_LIBS_NAMES WebCore JavaScriptCore WTF)
+ append_lib_names_to_list(EXTRA_LIBS_NAMES ${LIBXML2_LIBRARIES} ${SQLITE_LIBRARIES} ${ZLIB_LIBRARIES})
if (NOT USE_SYSTEM_MALLOC)
list(APPEND EXTRA_LIBS_NAMES bmalloc)
endif ()
if (ENABLE_XSLT)
- list(APPEND EXTRA_LIBS_NAMES xslt)
+ append_lib_names_to_list(EXTRA_LIBS_NAMES ${LIBXSLT_LIBRARIES})
endif ()
if (USE_LIBHYPHEN)
- list(APPEND EXTRA_LIBS_NAMES hyphen)
+ append_lib_names_to_list(EXTRA_LIBS_NAMES ${HYPHEN_LIBRARIES})
endif ()
if (USE_WEBP)
- list(APPEND EXTRA_LIBS_NAMES webp)
+ append_lib_names_to_list(EXTRA_LIBS_NAMES ${WEBP_LIBRARIES})
endif ()
if (USE_WOFF2)
list(APPEND EXTRA_LIBS_NAMES woff2 brotli)
@@ -470,6 +480,7 @@ if (QT_STATIC_BUILD)
if (APPLE)
list(APPEND EXTRA_LIBS_NAMES icucore)
endif ()
+ list(REMOVE_DUPLICATES EXTRA_LIBS_NAMES)
foreach (LIB_NAME ${EXTRA_LIBS_NAMES})
set(WEBKIT_PKGCONGIG_DEPS "${WEBKIT_PKGCONGIG_DEPS} ${LIB_PREFIX}${LIB_NAME}")
set(WEBKIT_PRI_EXTRA_LIBS "${WEBKIT_PRI_EXTRA_LIBS} -l${LIB_PREFIX}${LIB_NAME}")
@@ -786,6 +797,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 +807,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
diff --git a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
index 50f91e203..7312792ce 100644
--- a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
@@ -1233,7 +1233,9 @@ void FrameLoaderClientQt::startDownload(const WebCore::ResourceRequest& request,
if (!m_webFrame)
return;
- m_webFrame->pageAdapter->emitDownloadRequested(request.toNetworkRequest(m_frame->loader().networkingContext()));
+ QNetworkRequest r = request.toNetworkRequest(m_frame->loader().networkingContext());
+ if (r.url().isValid())
+ m_webFrame->pageAdapter->emitDownloadRequested(r);
}
RefPtr<Frame> FrameLoaderClientQt::createFrame(const URL& url, const String& name, HTMLFrameOwnerElement* ownerElement, const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight)
diff --git a/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp b/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp
index 79dfb906f..72563a1f9 100644
--- a/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp
@@ -357,7 +357,7 @@ void InspectorServerRequestHandlerQt::webSocketReadyRead()
if (m_inspectorClient) {
InspectorController& inspectorController = m_inspectorClient->m_inspectedWebPage->page->inspectorController();
- inspectorController.dispatchMessageFromFrontend(QString::fromUtf8(payload));
+ inspectorController.dispatchMessageFromFrontend(String::fromUTF8(payload.data(), payload.size()));
}
}
}
diff --git a/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp b/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
index e6145b6ff..df28e9f21 100644
--- a/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
@@ -961,6 +961,8 @@ void QWebFrameAdapter::setViewportSize(const QSize& size)
FrameView* view = frame->view();
ASSERT(view);
view->resize(size);
+ if (view->needsLayout())
+ view->layout();
view->adjustViewSize();
}
diff --git a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp
index ab9fb1382..89e872fb2 100644
--- a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp
@@ -434,6 +434,9 @@ bool QWebPageAdapter::findText(const QString& subString, FindFlag options)
if (options & FindBeginsInSelection)
webCoreFindOptions |= WebCore::StartInSelection;
+ if (options & FindAtWordEndingsOnly)
+ webCoreFindOptions |= WebCore::AtWordEnds;
+
if (options & HighlightAllOccurrences) {
if (subString.isEmpty()) {
page->unmarkAllTextMatches();
diff --git a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h
index 969ce8700..1b7199a9c 100644
--- a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h
+++ b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h
@@ -122,7 +122,8 @@ public:
HighlightAllOccurrences = 8,
FindAtWordBeginningsOnly = 16,
TreatMedialCapitalAsWordBeginning = 32,
- FindBeginsInSelection = 64
+ FindBeginsInSelection = 64,
+ FindAtWordEndingsOnly = 128
};
// valid values matching those from ScrollTypes.h
diff --git a/Source/WebKit/qt/WidgetApi/qwebpage.cpp b/Source/WebKit/qt/WidgetApi/qwebpage.cpp
index be8bd3edb..f8d8c0abc 100644
--- a/Source/WebKit/qt/WidgetApi/qwebpage.cpp
+++ b/Source/WebKit/qt/WidgetApi/qwebpage.cpp
@@ -3161,6 +3161,50 @@ bool QWebPage::extension(Extension extension, const ExtensionOption *option, Ext
}
#endif
+ if (extension == ErrorPageExtension) {
+ auto* errorOption = static_cast<const ErrorPageExtensionOption*>(option);
+
+ QString errorCode;
+ switch (errorOption->domain) {
+ case QWebPage::Http:
+ errorCode = tr("HTTP Error %0").arg(errorOption->error);
+ break;
+ case QWebPage::QtNetwork:
+ errorCode = tr("QtNetwork Error %0").arg(errorOption->error);
+ break;
+ case QWebPage::WebKit:
+ errorCode = tr("WebKit Error %0").arg(errorOption->error);
+ break;
+ }
+
+ QString pageHeader = errorOption->errorString;
+ if (pageHeader.isEmpty())
+ pageHeader = errorCode;
+ else if (pageHeader.endsWith(QLatin1Char('.')))
+ pageHeader.chop(1);
+
+ auto* pageOutput = static_cast<ErrorPageExtensionReturn*>(output);
+ pageOutput->baseUrl = errorOption->url;
+ QString escapedUrl = errorOption->url.toDisplayString().toHtmlEscaped();
+ pageOutput->content = QStringLiteral("<html><head>"
+ "<meta charset=\"utf-8\">"
+ "<title>%0</title>"
+ "<style>"
+ "html{font-family:sans;background:#EEE;color:#000;}"
+ "body{max-width:600px;margin:150px auto 0;padding:10px;}"
+ "pre{text-align:right;color:#999;}"
+ "</style>"
+ "</head><body>"
+ "<h1>%0</h1><hr>"
+ "<p>%1</p><pre>%2</pre>"
+ "</body></html>").arg(
+ pageHeader.toHtmlEscaped(),
+ tr("Failed to load URL %0.").toHtmlEscaped().arg(QLatin1String("<a href=\"") + escapedUrl + QLatin1String("\">") + escapedUrl + QLatin1String("</a>")),
+ errorCode.toHtmlEscaped()).toUtf8();
+
+ return true;
+ }
+
return false;
}
@@ -3172,11 +3216,10 @@ bool QWebPage::extension(Extension extension, const ExtensionOption *option, Ext
bool QWebPage::supportsExtension(Extension extension) const
{
#ifndef QT_NO_FILEDIALOG
- return extension == ChooseMultipleFilesExtension;
-#else
- Q_UNUSED(extension);
- return false;
+ if (extension == ChooseMultipleFilesExtension)
+ return true;
#endif
+ return extension == ErrorPageExtension;
}
/*!
diff --git a/Source/WebKit/qt/WidgetApi/qwebpage.h b/Source/WebKit/qt/WidgetApi/qwebpage.h
index bff0852d7..c3e469102 100644
--- a/Source/WebKit/qt/WidgetApi/qwebpage.h
+++ b/Source/WebKit/qt/WidgetApi/qwebpage.h
@@ -207,7 +207,9 @@ public:
HighlightAllOccurrences = 8,
FindAtWordBeginningsOnly = 16,
TreatMedialCapitalAsWordBeginning = 32,
- FindBeginsInSelection = 64
+ FindBeginsInSelection = 64,
+ FindAtWordEndingsOnly = 128,
+ FindExactMatchOnly = (FindAtWordBeginningsOnly | FindAtWordEndingsOnly)
};
Q_DECLARE_FLAGS(FindFlags, FindFlag)