summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-03-21 03:03:49 +0100
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-03-21 03:03:49 +0100
commitc6d4bb78fe59a55ffce526ff951e5c5270dd92cf (patch)
tree909eba4dc53bfed04b5e8db0f8a126ad61bb8bed
parent04b529214db0f20cce4d229a6035825390048217 (diff)
parentdf93624cc31e9da29532eed1d86c9f172575355a (diff)
Merge remote-tracking branch 'origin/5.14' into 5.15v5.15.0-beta4v5.15.0-beta3
-rw-r--r--src/plugins/webengine/qwebenginewebview.cpp14
-rw-r--r--tests/auto/qml/qquickwebview/tst_qquickwebview.cpp18
2 files changed, 28 insertions, 4 deletions
diff --git a/src/plugins/webengine/qwebenginewebview.cpp b/src/plugins/webengine/qwebenginewebview.cpp
index f16371d..7870b3a 100644
--- a/src/plugins/webengine/qwebenginewebview.cpp
+++ b/src/plugins/webengine/qwebenginewebview.cpp
@@ -81,8 +81,11 @@ QString QWebEngineWebViewPrivate::httpUserAgent() const
void QWebEngineWebViewPrivate::setHttpUserAgent(const QString &userAgent)
{
- m_profile->setHttpUserAgent(userAgent);
- Q_EMIT httpUserAgentChanged(userAgent);
+ m_httpUserAgent = userAgent;
+ if (m_profile) {
+ m_profile->setHttpUserAgent(userAgent);
+ Q_EMIT httpUserAgentChanged(userAgent);
+ }
}
QUrl QWebEngineWebViewPrivate::url() const
@@ -255,7 +258,12 @@ void QWebEngineWebViewPrivate::QQuickWebEngineViewPtr::init() const
Q_ASSERT(webEngineView);
QQuickWebEngineProfile *profile = webEngineView->profile();
m_parent->m_profile = profile;
- m_parent->m_httpUserAgent = profile->httpUserAgent();
+ // When the httpUserAgent is set as a property then it will be set before
+ // init() is called
+ if (m_parent->m_httpUserAgent.isEmpty())
+ m_parent->m_httpUserAgent = profile->httpUserAgent();
+ else
+ profile->setHttpUserAgent(m_parent->m_httpUserAgent);
QObject::connect(webEngineView, &QQuickWebEngineView::urlChanged, m_parent, &QWebEngineWebViewPrivate::q_urlChanged);
QObject::connect(webEngineView, &QQuickWebEngineView::loadProgressChanged, m_parent, &QWebEngineWebViewPrivate::q_loadProgressChanged);
QObject::connect(webEngineView, &QQuickWebEngineView::loadingChanged, m_parent, &QWebEngineWebViewPrivate::q_loadingChanged);
diff --git a/tests/auto/qml/qquickwebview/tst_qquickwebview.cpp b/tests/auto/qml/qquickwebview/tst_qquickwebview.cpp
index e3162bc..b1a1364 100644
--- a/tests/auto/qml/qquickwebview/tst_qquickwebview.cpp
+++ b/tests/auto/qml/qquickwebview/tst_qquickwebview.cpp
@@ -68,6 +68,7 @@ private Q_SLOTS:
void multipleWebViewWindows();
void multipleWebViews();
void titleUpdate();
+ void changeUserAgent();
private:
inline QQuickWebView *newWebView();
@@ -75,11 +76,12 @@ private:
void runJavaScript(const QString &script);
QScopedPointer<TestWindow> m_window;
QScopedPointer<QQmlComponent> m_component;
+ QQmlEngine *engine = nullptr;
};
tst_QQuickWebView::tst_QQuickWebView()
{
- static QQmlEngine *engine = new QQmlEngine(this);
+ engine = new QQmlEngine(this);
m_component.reset(new QQmlComponent(engine, this));
m_component->setData(QByteArrayLiteral("import QtQuick 2.0\n"
"import QtWebView 1.1\n"
@@ -332,5 +334,19 @@ void tst_QQuickWebView::titleUpdate()
}
+void tst_QQuickWebView::changeUserAgent()
+{
+ QQmlComponent userAgentWebView(engine, this);
+ userAgentWebView.setData(QByteArrayLiteral("import QtQuick 2.0\n"
+ "import QtWebView 1.14\n"
+ "WebView {\n"
+ "httpUserAgent: \"dummy\"\n"
+ "}"),
+ QUrl());
+ QObject *viewInstance = userAgentWebView.create();
+ QQuickWebView *webView = qobject_cast<QQuickWebView *>(viewInstance);
+ QCOMPARE(webView->httpUserAgent(), "dummy");
+}
+
QTEST_MAIN(tst_QQuickWebView)
#include "tst_qquickwebview.moc"