diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h index 2c89de369feb7fcc0bd6bb2924aa4083a8facb72..f2462923408dc8a2b3f9af6053de9a12e8a6e9b8 100644 --- a/src/core/web_contents_adapter_client.h +++ b/src/core/web_contents_adapter_client.h @@ -107,6 +107,12 @@ public: Save }; + enum JavaScriptConsoleMessageLevel { + Info = 0, + Warning, + Error + }; + virtual ~WebContentsAdapterClient() { } virtual RenderWidgetHostViewQtDelegate* CreateRenderWidgetHostViewQtDelegate(RenderWidgetHostViewQtDelegateClient *client) = 0; @@ -135,7 +141,7 @@ public: virtual void didFetchDocumentInnerText(quint64 requestId, const QString& result) = 0; virtual void didFindText(quint64 requestId, int matchCount) = 0; virtual void passOnFocus(bool reverse) = 0; - virtual void javaScriptConsoleMessage(int level, const QString& message, int lineNumber, const QString& sourceID) = 0; + virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) = 0; virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) = 0; }; diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp index 80b2330a8c315372a890c8128558ce3384f9e5e6..dba63296b846b808f3fbc78308cd5fc6524de714 100644 --- a/src/core/web_contents_delegate_qt.cpp +++ b/src/core/web_contents_delegate_qt.cpp @@ -54,6 +54,17 @@ #include "content/public/common/favicon_url.h" #include "content/public/common/file_chooser_params.h" + +// Maps the LogSeverity defines in base/logging.h to the web engines message levels. +static WebContentsAdapterClient::JavaScriptConsoleMessageLevel mapToJavascriptConsoleMessageLevel(int32 messageLevel) { + if (messageLevel < 1) + return WebContentsAdapterClient::Info; + else if (messageLevel > 1) + return WebContentsAdapterClient::Error; + + return WebContentsAdapterClient::Warning; +} + WebContentsDelegateQt::WebContentsDelegateQt(content::WebContents *webContents, WebContentsAdapterClient *adapterClient) : m_viewClient(adapterClient) { @@ -188,7 +199,7 @@ void WebContentsDelegateQt::RunFileChooser(content::WebContents *web_contents, c bool WebContentsDelegateQt::AddMessageToConsole(content::WebContents *source, int32 level, const base::string16 &message, int32 line_no, const base::string16 &source_id) { Q_UNUSED(source) - m_viewClient->javaScriptConsoleMessage(static_cast<int>(level), toQt(message), static_cast<int>(line_no), toQt(source_id)); + m_viewClient->javaScriptConsoleMessage(mapToJavascriptConsoleMessageLevel(level), toQt(message), static_cast<int>(line_no), toQt(source_id)); return false; } diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 2b71d1f4515a7222503ac756735db06edfb62d5c..c8c8bfac04682f5fc97991ad2d43c0b55eb0e570 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -336,11 +336,11 @@ bool QQuickWebEngineViewPrivate::isFullScreen() const return e->isFullScreen(); } -void QQuickWebEngineViewPrivate::javaScriptConsoleMessage(int level, const QString& message, int lineNumber, const QString& sourceID) +void QQuickWebEngineViewPrivate::javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) { Q_Q(QQuickWebEngineView); Q_UNUSED(level); - Q_EMIT q->javaScriptConsoleMessage(level, message, lineNumber, sourceID); + Q_EMIT q->javaScriptConsoleMessage(static_cast<QQuickWebEngineView::JavaScriptConsoleMessageLevel>(level), message, lineNumber, sourceID); } void QQuickWebEngineViewPrivate::setDevicePixelRatio(qreal devicePixelRatio) diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h index 3ad2e59b7acee39548edc78308c1d3f1c460e4ac..40bc59f4e4cf17d1ad544a510592285931638944 100644 --- a/src/webengine/api/qquickwebengineview_p.h +++ b/src/webengine/api/qquickwebengineview_p.h @@ -63,6 +63,7 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineView : public QQuickItem { Q_ENUMS(LoadStatus); Q_ENUMS(ErrorDomain); Q_ENUMS(NewViewDestination); + Q_ENUMS(JavaScriptConsoleMessageLevel); public: QQuickWebEngineView(QQuickItem *parent = 0); @@ -102,6 +103,13 @@ public: NewViewInTab }; + // must match WebContentsAdapterClient::JavaScriptConsoleMessageLevel + enum JavaScriptConsoleMessageLevel { + Info = 0, + Warning, + Error + }; + public Q_SLOTS: void loadHtml(const QString &html, const QUrl &baseUrl = QUrl(), const QUrl &unreachableUrl = QUrl()); void goBack(); @@ -115,7 +123,7 @@ Q_SIGNALS: void iconChanged(); void loadingChanged(QQuickWebEngineLoadRequest *loadRequest); void loadProgressChanged(); - void javaScriptConsoleMessage(int level, const QString &message, int lineNumber, const QString &sourceID); + void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID); protected: void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry); diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index 2fcca73b7a1392b6c1e906a4ae81dc7177170741..3a84eae5ce687f0b412f8383d13f6dee521bf654 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -151,7 +151,7 @@ public: virtual void didFetchDocumentInnerText(quint64, const QString&) Q_DECL_OVERRIDE { } virtual void didFindText(quint64, int) Q_DECL_OVERRIDE { } virtual void passOnFocus(bool reverse) Q_DECL_OVERRIDE; - virtual void javaScriptConsoleMessage(int level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE; + virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE; virtual void authenticationRequired(const QUrl&, const QString&, bool, const QString&, QString*, QString*) Q_DECL_OVERRIDE { } void setDevicePixelRatio(qreal); diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index dbd78acd011d2109d867fab80a4e4594ef366011..70f2097a0ffa2e25fddbe1cf9f4f8d43892f73fb 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -587,10 +587,10 @@ void QWebEnginePagePrivate::javascriptDialog(QSharedPointer<JavaScriptDialogCont controller->reject(); } -void QWebEnginePagePrivate::javaScriptConsoleMessage(int level, const QString &message, int lineNumber, const QString &sourceID) +void QWebEnginePagePrivate::javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID) { Q_Q(QWebEnginePage); - q->javaScriptConsoleMessage(level, message, lineNumber, sourceID); + q->javaScriptConsoleMessage(static_cast<QWebEnginePage::JavaScriptConsoleMessageLevel>(level), message, lineNumber, sourceID); } namespace { @@ -815,7 +815,7 @@ bool QWebEnginePage::javaScriptPrompt(QWebEngineFrame *originatingFrame, const Q return ret; } -void QWebEnginePage::javaScriptConsoleMessage(int level, const QString &message, int lineNumber, const QString &sourceID) +void QWebEnginePage::javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID) { Q_UNUSED(level); Q_UNUSED(message); diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index 04db9975053c422cfe2310d48f86d0dba1b0bd60..fcec92f85bebec2249a873e45194a785ab803835 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -287,6 +287,13 @@ public: FileSelectOpenMultiple, }; + // must match WebContentsAdapterClient::JavaScriptConsoleMessageLevel + enum JavaScriptConsoleMessageLevel { + Info = 0, + Warning, + Error + }; + class QWEBENGINEWIDGETS_EXPORT ViewportAttributes { public: ViewportAttributes(); @@ -569,7 +576,7 @@ protected: virtual void javaScriptAlert(QWebEngineFrame *originatingFrame, const QString& msg); virtual bool javaScriptConfirm(QWebEngineFrame *originatingFrame, const QString& msg); virtual bool javaScriptPrompt(QWebEngineFrame *originatingFrame, const QString& msg, const QString& defaultValue, QString* result); - virtual void javaScriptConsoleMessage(int level, const QString& message, int lineNumber, const QString& sourceID); + virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID); virtual QString userAgentForUrl(const QUrl& url) const { Q_UNUSED(url); Q_UNREACHABLE(); return QString(); } diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h index 947c573173d6f523ac45c7939dd33a650aca3dc9..b24489385da3a7e0972204d29749bfcaf28403bd 100644 --- a/src/webenginewidgets/api/qwebenginepage_p.h +++ b/src/webenginewidgets/api/qwebenginepage_p.h @@ -134,7 +134,7 @@ public: virtual void didFetchDocumentInnerText(quint64 requestId, const QString& result) Q_DECL_OVERRIDE; virtual void didFindText(quint64 requestId, int matchCount) Q_DECL_OVERRIDE; virtual void passOnFocus(bool reverse) Q_DECL_OVERRIDE { Q_UNUSED(reverse); }; - virtual void javaScriptConsoleMessage(int level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE; + virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE; virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) Q_DECL_OVERRIDE; void updateAction(QWebEnginePage::WebAction) const;