From 1a66aba6aae45292c7fdd88c985ce1122e8e58dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Br=C3=BCning?= Date: Mon, 14 Apr 2014 16:07:51 +0200 Subject: Map Javascript console message level to enum values. Translates the internally used LogSeverity values to enums defined by the QtWebEngine integration layer. Change-Id: I7da0983d4fb5c199e1a2436b5899a43cf6698784 Reviewed-by: Jocelyn Turcotte --- src/core/web_contents_adapter_client.h | 8 +++++++- src/core/web_contents_delegate_qt.cpp | 13 ++++++++++++- src/webengine/api/qquickwebengineview.cpp | 4 ++-- src/webengine/api/qquickwebengineview_p.h | 10 +++++++++- src/webengine/api/qquickwebengineview_p_p.h | 2 +- src/webenginewidgets/api/qwebenginepage.cpp | 6 +++--- src/webenginewidgets/api/qwebenginepage.h | 9 ++++++++- src/webenginewidgets/api/qwebenginepage_p.h | 2 +- 8 files changed, 43 insertions(+), 11 deletions(-) diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h index 2c89de369..f24629234 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 80b2330a8..dba63296b 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(level), toQt(message), static_cast(line_no), toQt(source_id)); + m_viewClient->javaScriptConsoleMessage(mapToJavascriptConsoleMessageLevel(level), toQt(message), static_cast(line_no), toQt(source_id)); return false; } diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 2b71d1f45..c8c8bfac0 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(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 3ad2e59b7..40bc59f4e 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 2fcca73b7..3a84eae5c 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 dbd78acd0..70f2097a0 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -587,10 +587,10 @@ void QWebEnginePagePrivate::javascriptDialog(QSharedPointerreject(); } -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(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 04db99750..fcec92f85 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 947c57317..b24489385 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; -- cgit v1.2.3