diff options
Diffstat (limited to 'Source/WebKit/qt')
-rw-r--r-- | Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp | 4 | ||||
-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 | 3 | ||||
-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 |
7 files changed, 61 insertions, 8 deletions
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) |