summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSzabolcs David <davidsz@inf.u-szeged.hu>2022-10-10 17:25:43 +0200
committerSzabolcs David <davidsz@inf.u-szeged.hu>2022-10-11 22:32:06 +0200
commit03c3b33f5d4e8a40175ab1febbb6051f0878db84 (patch)
tree11a0f3f825ee146478b5cf6de2e9eb733a398c21 /src
parent39ebe4abccdc4e059a0e310a331f3fc392c84009 (diff)
downloadqtwebengine-03c3b33f5d4e8a40175ab1febbb6051f0878db84.tar.gz
Support navigator.userAgentData
Use embedder_support component to generate user agent metadata and support this API. ContentBrowserClientQt::GetUserAgentMetadata() has been implemented only for safe-keeping, because we always override that value in RendererPreferences. Task-number: QTBUG-107260 Task-number: QTBUG-107451 Change-Id: Ibbcd8d9c1e9c2c0ebacf97f4b9d4ed1aa55dc881 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src')
m---------src/3rdparty0
-rw-r--r--src/core/configure/BUILD.root.gn.in3
-rw-r--r--src/core/content_browser_client_qt.cpp7
-rw-r--r--src/core/content_browser_client_qt.h2
-rw-r--r--src/core/web_contents_adapter.cpp3
5 files changed, 15 insertions, 0 deletions
diff --git a/src/3rdparty b/src/3rdparty
-Subproject 1dc53de694e05a192d4757835f66e0797b7d29b
+Subproject 546d8e05343fd49f01bdfcb5bf4de5ec3df2819
diff --git a/src/core/configure/BUILD.root.gn.in b/src/core/configure/BUILD.root.gn.in
index ffe684b09..a4f78f3af 100644
--- a/src/core/configure/BUILD.root.gn.in
+++ b/src/core/configure/BUILD.root.gn.in
@@ -229,6 +229,7 @@ source_set("qtwebengine_sources") {
"//chrome/common:version_header",
"//chromeos/components/chromebox_for_meetings/buildflags",
"//components/custom_handlers",
+ "//components/embedder_support:embedder_support",
"//components/nacl/common:buildflags",
"//components/performance_manager",
"//components/plugins/renderer/",
@@ -312,6 +313,8 @@ source_set("qtwebengine_sources") {
"//chrome/common/url_constants.h",
"//chrome/common/webui_url_constants.cc",
"//chrome/common/webui_url_constants.h",
+ "//components/embedder_support/user_agent_utils.cc",
+ "//components/embedder_support/user_agent_utils.h",
]
if (enable_extensions) {
deps += [
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp
index b6e6748c8..ad16119a9 100644
--- a/src/core/content_browser_client_qt.cpp
+++ b/src/core/content_browser_client_qt.cpp
@@ -8,6 +8,7 @@
#include "chrome/browser/tab_contents/form_interaction_tab_helper.h"
#include "components/autofill/content/browser/content_autofill_driver_factory.h"
#include "components/custom_handlers/protocol_handler_registry.h"
+#include "components/embedder_support/user_agent_utils.h"
#include "components/error_page/common/error.h"
#include "components/error_page/common/localized_error.h"
#include "components/navigation_interception/intercept_navigation_throttle.h"
@@ -982,6 +983,12 @@ std::string ContentBrowserClientQt::getUserAgent()
return content::BuildUserAgentFromProduct("QtWebEngine/" QTWEBENGINECORE_VERSION_STR " Chrome/" CHROMIUM_VERSION);
}
+blink::UserAgentMetadata ContentBrowserClientQt::getUserAgentMetadata()
+{
+ static blink::UserAgentMetadata userAgentMetadata(embedder_support::GetUserAgentMetadata());
+ return userAgentMetadata;
+}
+
std::string ContentBrowserClientQt::GetProduct()
{
QString productName(qApp->applicationName() % '/' % qApp->applicationVersion());
diff --git a/src/core/content_browser_client_qt.h b/src/core/content_browser_client_qt.h
index 4ee5c0228..c16acc304 100644
--- a/src/core/content_browser_client_qt.h
+++ b/src/core/content_browser_client_qt.h
@@ -235,8 +235,10 @@ public:
content::WebContentsViewDelegate* GetWebContentsViewDelegate(content::WebContents* web_contents) override;
static std::string getUserAgent();
+ static blink::UserAgentMetadata getUserAgentMetadata();
std::string GetUserAgent() override { return getUserAgent(); }
+ blink::UserAgentMetadata GetUserAgentMetadata() override { return getUserAgentMetadata(); }
std::string GetProduct() override;
private:
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 7dc96967f..9c0f85a2a 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -8,6 +8,7 @@
#include "web_contents_adapter.h"
#include "autofill_client_qt.h"
+#include "content_browser_client_qt.h"
#include "devtools_frontend_qt.h"
#include "download_manager_delegate_qt.h"
#include "favicon_driver_qt.h"
@@ -34,6 +35,7 @@
#include "chrome/browser/tab_contents/form_interaction_tab_helper.h"
#include "components/autofill/core/browser/autofill_manager.h"
#include "components/autofill/content/browser/content_autofill_driver_factory.h"
+#include "components/embedder_support/user_agent_utils.h"
#include "components/favicon/core/favicon_service.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
#include "content/browser/renderer_host/text_input_manager.h"
@@ -522,6 +524,7 @@ void WebContentsAdapter::initializeRenderPrefs()
rendererPrefs->caret_blink_interval =
base::Milliseconds(0.5 * static_cast<double>(qtCursorFlashTime));
rendererPrefs->user_agent_override = blink::UserAgentOverride::UserAgentOnly(m_profileAdapter->httpUserAgent().toStdString());
+ rendererPrefs->user_agent_override.ua_metadata_override = ContentBrowserClientQt::getUserAgentMetadata();
rendererPrefs->accept_languages = m_profileAdapter->httpAcceptLanguageWithoutQualities().toStdString();
#if QT_CONFIG(webengine_webrtc)
base::CommandLine* commandLine = base::CommandLine::ForCurrentProcess();