diff options
author | Liang Qi <liang.qi@qt.io> | 2018-01-13 21:26:34 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-01-13 21:26:34 +0100 |
commit | beaeeb99881184fd368c121fcbb1a31c78b794a3 (patch) | |
tree | 0e078499d8fe3e8627e3612537e61f2dd1029625 /Source/WebKit | |
parent | f7697030f444b5e16331c6d0a99712736b9ff026 (diff) | |
parent | 79143ccfc158ec4fffc49eee600d600edb342b16 (diff) |
Merge remote-tracking branch 'origin/5.212' into dev
Change-Id: I9e64176fe95183acf5e093aa081b0a498795bdb2
Diffstat (limited to 'Source/WebKit')
-rw-r--r-- | Source/WebKit/PlatformQt.cmake | 113 | ||||
-rw-r--r-- | Source/WebKit/qt/Api/qwebsettings.cpp | 4 | ||||
-rw-r--r-- | Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp | 16 | ||||
-rw-r--r-- | Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h | 2 | ||||
-rw-r--r-- | Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp | 2 | ||||
-rw-r--r-- | Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp | 2 | ||||
-rw-r--r-- | Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp | 8 | ||||
-rw-r--r-- | Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h | 3 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qwebpage.cpp | 51 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qwebpage.h | 4 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetSupport/InitWebKitQt.cpp | 6 |
11 files changed, 176 insertions, 35 deletions
diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake index 3e50b2552..3792def6f 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}" @@ -432,6 +444,13 @@ endif () if (ENABLE_DEVICE_ORIENTATION) set(WEBKIT_PRI_RUNTIME_DEPS "sensors ${WEBKIT_PRI_RUNTIME_DEPS}") endif () +if (USE_MEDIA_FOUNDATION) + set(WEBKIT_PRI_EXTRA_LIBS "-lmfuuid -lstrmiids ${WEBKIT_PRI_EXTRA_LIBS}") +endif () +if (USE_QT_MULTIMEDIA) + set(WEBKIT_PKGCONGIG_DEPS "${WEBKIT_PKGCONGIG_DEPS} Qt5Multimedia") + set(WEBKIT_PRI_RUNTIME_DEPS "multimedia ${WEBKIT_PRI_RUNTIME_DEPS}") +endif () set(WEBKITWIDGETS_PKGCONGIG_DEPS "${WEBKIT_PKGCONGIG_DEPS} Qt5Widgets Qt5WebKit") set(WEBKITWIDGETS_PRI_DEPS "${WEBKIT_PRI_DEPS} widgets webkit") @@ -445,24 +464,27 @@ if (ENABLE_PRINT_SUPPORT) set(WEBKITWIDGETS_PRI_RUNTIME_DEPS "${WEBKITWIDGETS_PRI_RUNTIME_DEPS} printsupport") endif () +if (USE_QT_MULTIMEDIA) + set(WEBKITWIDGETS_PKGCONGIG_DEPS "${WEBKITWIDGETS_PKGCONGIG_DEPS} Qt5MultimediaWidgets") + set(WEBKITWIDGETS_PRI_RUNTIME_DEPS "${WEBKITWIDGETS_PRI_RUNTIME_DEPS} multimediawidgets") +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} ${JPEG_LIBRARIES} ${PNG_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 +492,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}") @@ -479,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 ) @@ -496,11 +520,19 @@ if (KDE_INSTALL_USE_QT_SYS_PATHS) INCLUDE_INSTALL_DIR "$$QT_MODULE_LIB_BASE/QtWebKit.framework/Headers" MODULE_CONFIG "lib_bundle" ) + list(APPEND WebKit_Private_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "$$QT_MODULE_LIB_BASE/QtWebKit.framework/Headers/${PROJECT_VERSION}" + INCLUDE_INSTALL_DIR2 "$$QT_MODULE_LIB_BASE/QtWebKit.framework/Headers/${PROJECT_VERSION}/QtWebKit" + ) else () list(APPEND WebKit_PRI_ARGUMENTS INCLUDE_INSTALL_DIR "$$QT_MODULE_INCLUDE_BASE" INCLUDE_INSTALL_DIR2 "$$QT_MODULE_INCLUDE_BASE/QtWebKit" ) + list(APPEND WebKit_Private_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "$$QT_MODULE_INCLUDE_BASE/QtWebKit/${PROJECT_VERSION}" + INCLUDE_INSTALL_DIR2 "$$QT_MODULE_INCLUDE_BASE/QtWebKit/${PROJECT_VERSION}/QtWebKit" + ) endif () else () set(WebKit_PRI_ARGUMENTS @@ -511,14 +543,24 @@ else () INCLUDE_INSTALL_DIR "${LIB_INSTALL_DIR}/QtWebKit.framework/Headers" MODULE_CONFIG "lib_bundle" ) + list(APPEND WebKit_Private_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "${LIB_INSTALL_DIR}/QtWebKit.framework/Headers/${PROJECT_VERSION}" + INCLUDE_INSTALL_DIR2 "${LIB_INSTALL_DIR}/QtWebKit.framework/Headers/${PROJECT_VERSION}/QtWebKit" + ) else () list(APPEND WebKit_PRI_ARGUMENTS INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR} INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKit" ) + list(APPEND WebKit_Private_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKit/${PROJECT_VERSION}" + INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKit/${PROJECT_VERSION}/QtWebKit" + ) endif () endif () +list(APPEND WebKit_Private_PRI_ARGUMENTS MODULE_CONFIG "internal_module no_link") + if (MACOS_BUILD_FRAMEWORKS) set(WebKit_OUTPUT_NAME QtWebKit) else () @@ -538,7 +580,23 @@ ecm_generate_pri_file( FILENAME_VAR WebKit_PRI_FILENAME ${WebKit_PRI_ARGUMENTS} ) -install(FILES ${WebKit_PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR} COMPONENT Data) +ecm_generate_pri_file( + BASE_NAME webkit_private + NAME "QtWebKit" + LIB_NAME " " + DEPS "webkit" + RUNTIME_DEPS " " + DEFINES " " + QT_MODULES webkit + EXTRA_LIBS " " + FILENAME_VAR WebKit_Private_PRI_FILENAME + ${WebKit_Private_PRI_ARGUMENTS} +) +install( + FILES ${WebKit_PRI_FILENAME} ${WebKit_Private_PRI_FILENAME} + DESTINATION ${ECM_MKSPECS_INSTALL_DIR} + COMPONENT Data +) if (QT_STATIC_BUILD) set(WebKit_LIBRARY_TYPE STATIC) @@ -669,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 ) @@ -685,11 +744,19 @@ if (KDE_INSTALL_USE_QT_SYS_PATHS) INCLUDE_INSTALL_DIR "$$QT_MODULE_LIB_BASE/QtWebKitWidgets.framework/Headers" MODULE_CONFIG "lib_bundle" ) + list(APPEND WebKitWidgets_Private_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "$$QT_MODULE_LIB_BASE/QtWebKitWidgets.framework/Headers/${PROJECT_VERSION}" + INCLUDE_INSTALL_DIR2 "$$QT_MODULE_LIB_BASE/QtWebKitWidgets.framework/Headers/${PROJECT_VERSION}/QtWebKitWidgets" + ) else () list(APPEND WebKitWidgets_PRI_ARGUMENTS INCLUDE_INSTALL_DIR "$$QT_MODULE_INCLUDE_BASE" INCLUDE_INSTALL_DIR2 "$$QT_MODULE_INCLUDE_BASE/QtWebKitWidgets" ) + list(APPEND WebKitWidgets_Private_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "$$QT_MODULE_INCLUDE_BASE/QtWebKitWidgets/${PROJECT_VERSION}" + INCLUDE_INSTALL_DIR2 "$$QT_MODULE_INCLUDE_BASE/QtWebKitWidgets/${PROJECT_VERSION}/QtWebKitWidgets" + ) endif () else () set(WebKitWidgets_PRI_ARGUMENTS @@ -700,14 +767,24 @@ else () INCLUDE_INSTALL_DIR "${LIB_INSTALL_DIR}/QtWebKitWidgets.framework/Headers" MODULE_CONFIG "lib_bundle" ) + list(APPEND WebKitWidgets_Private_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "${LIB_INSTALL_DIR}/QtWebKitWidgets.framework/Headers/${PROJECT_VERSION}" + INCLUDE_INSTALL_DIR2 "${LIB_INSTALL_DIR}/QtWebKitWidgets.framework/Headers/${PROJECT_VERSION}/QtWebKitWidgets" + ) else () list(APPEND WebKitWidgets_PRI_ARGUMENTS INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR} INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets" ) + list(APPEND WebKitWidgets_Private_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets/${PROJECT_VERSION}" + INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets/${PROJECT_VERSION}/QtWebKitWidgets" + ) endif () endif () +list(APPEND WebKitWidgets_Private_PRI_ARGUMENTS MODULE_CONFIG "internal_module no_link") + if (MACOS_BUILD_FRAMEWORKS) set(WebKitWidgets_OUTPUT_NAME QtWebKitWidgets) else () @@ -726,7 +803,23 @@ ecm_generate_pri_file( FILENAME_VAR WebKitWidgets_PRI_FILENAME ${WebKitWidgets_PRI_ARGUMENTS} ) -install(FILES ${WebKitWidgets_PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR} COMPONENT Data) +ecm_generate_pri_file( + BASE_NAME webkitwidgets_private + NAME "QtWebKitWidgets" + LIB_NAME " " + DEPS "webkitwidgets" + RUNTIME_DEPS " " + DEFINES " " + QT_MODULES webkitwidgets + EXTRA_LIBS " " + FILENAME_VAR WebKitWidgets_Private_PRI_FILENAME + ${WebKitWidgets_Private_PRI_ARGUMENTS} +) +install( + FILES ${WebKitWidgets_PRI_FILENAME} ${WebKitWidgets_Private_PRI_FILENAME} + DESTINATION ${ECM_MKSPECS_INSTALL_DIR} + COMPONENT Data +) if (MSVC) if (CMAKE_SIZEOF_VOID_P EQUAL 8) @@ -786,6 +879,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 +889,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/Api/qwebsettings.cpp b/Source/WebKit/qt/Api/qwebsettings.cpp index e6b32f52a..d552cec17 100644 --- a/Source/WebKit/qt/Api/qwebsettings.cpp +++ b/Source/WebKit/qt/Api/qwebsettings.cpp @@ -173,10 +173,6 @@ void QWebSettingsPrivate::apply() global->attributes.value(QWebSettings::WebGLEnabled)); settings->setWebGLEnabled(value); -#if ENABLE(CSS_SHADERS) - // For now, enable CSS shaders when WebGL is enabled. - settings->setCSSCustomFilterEnabled(value); -#endif #endif #if ENABLE(WEB_AUDIO) value = attributes.value(QWebSettings::WebAudioEnabled, global->attributes.value(QWebSettings::WebAudioEnabled)); diff --git a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp index 50f91e203..b3209a572 100644 --- a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp @@ -929,10 +929,12 @@ void FrameLoaderClientQt::convertMainResourceLoadToDownload(DocumentLoader* docu QNetworkReply* reply = handler->release(); if (reply) { - if (m_webFrame->pageAdapter->forwardUnsupportedContent) + if (m_webFrame->pageAdapter->forwardUnsupportedContent) { emit unsupportedContent(reply); - else + } else { reply->abort(); + reply->deleteLater(); + } } } @@ -1233,7 +1235,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) @@ -1515,12 +1519,6 @@ String FrameLoaderClientQt::overrideMediaType() const return String(); } -QString FrameLoaderClientQt::chooseFile(const QString& oldFile) -{ - QStringList result = m_webFrame->pageAdapter->chooseFiles(m_webFrame, /*allowMulti*/ false, (QStringList() << oldFile)); - return result.isEmpty() ? QString() : result.first(); -} - PassRefPtr<FrameNetworkingContext> FrameLoaderClientQt::createNetworkingContext() { QVariant value = m_webFrame->pageAdapter->handle()->property("_q_MIMESniffingDisabled"); diff --git a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h index a00bf6702..a20364f76 100644 --- a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h +++ b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h @@ -214,8 +214,6 @@ public: void updateCachedDocumentLoader(DocumentLoader &) override; void prefetchDNS(const WTF::String &) override; - QString chooseFile(const QString& oldFile); - PassRefPtr<FrameNetworkingContext> createNetworkingContext() override; const URL& lastRequestedUrl() const { return m_lastRequestedUrl; } 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..00dc0c488 100644 --- a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp +++ b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp @@ -390,7 +390,10 @@ QString QWebPageAdapter::selectedText() const 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 @@ -434,6 +437,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) diff --git a/Source/WebKit/qt/WidgetSupport/InitWebKitQt.cpp b/Source/WebKit/qt/WidgetSupport/InitWebKitQt.cpp index d4afa40e7..8263aa17f 100644 --- a/Source/WebKit/qt/WidgetSupport/InitWebKitQt.cpp +++ b/Source/WebKit/qt/WidgetSupport/InitWebKitQt.cpp @@ -36,8 +36,10 @@ QWEBKITWIDGETS_EXPORT void initializeWebKitWidgets() if (initialized) return; - setWebKitWidgetsInitCallback(QStyleFacadeImp::create); - initializeWebKitQt(); + if (qgetenv("QT_WEBKIT_THEME_NAME") != "mobile") { + setWebKitWidgetsInitCallback(QStyleFacadeImp::create); + initializeWebKitQt(); + } // QWebSettings::SearchCancelButtonGraphic setImagePlatformResource("searchCancelButton", QApplication::style()->standardPixmap(QStyle::SP_DialogCloseButton)); |