diff --git a/src/core/browser_context_adapter.cpp b/src/core/browser_context_adapter.cpp
index 660c6ffb23e6dabf8b00f35f9c51f1f6e4ea0436..02fa207c9b48d7961ad1583b3f383b50b280adc3 100644
--- a/src/core/browser_context_adapter.cpp
+++ b/src/core/browser_context_adapter.cpp
@@ -255,12 +255,12 @@ void BrowserContextAdapter::setHttpUserAgent(const QString &userAgent)
 {
     if (m_httpUserAgent == userAgent)
         return;
-    m_httpUserAgent = userAgent;
+    m_httpUserAgent = userAgent.simplified();
 
     std::vector<content::WebContentsImpl *> list = content::WebContentsImpl::GetAllWebContents();
     Q_FOREACH (content::WebContentsImpl *web_contents, list)
         if (web_contents->GetBrowserContext() == m_browserContext.data())
-            web_contents->SetUserAgentOverride(userAgent.toStdString());
+            web_contents->SetUserAgentOverride(m_httpUserAgent.toStdString());
 
     if (m_browserContext->url_request_getter_.get())
         m_browserContext->url_request_getter_->updateUserAgent();
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index 6e3976766c7cba6ddc00989a0c0afc33f54d8056..9559f3cf5f3c0d46ab50fe3d2203f5a621052dce 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -40,6 +40,7 @@
 #include <qpa/qplatforminputcontext.h>
 #include <qwebenginehistory.h>
 #include <qwebenginepage.h>
+#include <qwebengineprofile.h>
 #include <qwebenginesettings.h>
 #include <qwebengineview.h>
 #include <qimagewriter.h>
@@ -2810,28 +2811,16 @@ void tst_QWebEnginePage::userAgentApplicationName()
 #endif
 }
 
-class CustomUserAgentWebPage : public QWebEnginePage
-{
-public:
-    static const QLatin1String filteredUserAgent;
-protected:
-    virtual QString userAgentForUrl(const QUrl& url) const
-    {
-        Q_UNUSED(url);
-        return QString("My User Agent\nX-New-Http-Header: Oh Noes!");
-    }
-};
-const QLatin1String CustomUserAgentWebPage::filteredUserAgent("My User AgentX-New-Http-Header: Oh Noes!");
-
 void tst_QWebEnginePage::userAgentNewlineStripping()
 {
-#if !defined(QWEBENGINEPAGE_USERAGENTFORURL)
-    QSKIP("QWEBENGINEPAGE_USERAGENTFORURL");
-#else
-    CustomUserAgentWebPage page;
-    page.setHtml("<html><body></body></html>");
-    QCOMPARE(evaluateJavaScriptSync(&page, "navigator.userAgent").toString(), CustomUserAgentWebPage::filteredUserAgent);
-#endif
+    QWebEngineProfile profile;
+    QWebEnginePage page(&profile);
+
+    profile.setHttpUserAgent(QStringLiteral("My User Agent\nX-New-Http-Header: Oh Noes!"));
+    // The user agent will be updated after a page load.
+    page.load(QUrl("about:blank"));
+
+    QCOMPARE(evaluateJavaScriptSync(&page, "navigator.userAgent").toString(), QStringLiteral("My User Agent X-New-Http-Header: Oh Noes!"));
 }
 
 void tst_QWebEnginePage::crashTests_LazyInitializationOfMainFrame()