[M108 Migration] Add implementation of SetUserAgentOverride 00/286900/2
authorv-saha <v.saha@samsung.com>
Mon, 16 Jan 2023 10:11:42 +0000 (15:41 +0530)
committerBot Blink <blinkbot@samsung.com>
Tue, 17 Jan 2023 04:49:22 +0000 (04:49 +0000)
This commit adds missing implementation for SetUserAgentOverride.

This also removes EWK_BRINGUP in EWebView::GetUserAgent() so that
ewk_view_user_agent_get() returns the actual user agent string
instead of empty string.

Reference: https://review.tizen.org/gerrit/273266

Change-Id: I71f2893a7dae1c77a42bed9c78f48867ca38bc2b
Signed-off-by: v-saha <v.saha@samsung.com>
tizen_src/chromium_impl/content/browser/web_contents/web_contents_impl_efl.cc
tizen_src/ewk/efl_integration/eweb_view.cc

index 60e7f33..95c65e5 100644 (file)
@@ -23,6 +23,7 @@
 #include "content/public/browser/web_contents_efl_delegate.h"
 #include "content/public/common/content_client.h"
 #include "content/public/common/result_codes.h"
+#include "net/http/http_util.h"
 
 // Majority of the code in this file was taken directly from
 // WebContentsImpl::CreateNewWindow. Compared to the original, the function
@@ -81,7 +82,28 @@ std::unique_ptr<WebContents> WebContentsImplEfl::Clone() {
 
 void WebContentsImplEfl::SetUserAgentOverride(
     const blink::UserAgentOverride& ua_override,
-    bool override_in_new_tabs) {}
+    bool override_in_new_tabs) {
+  if (GetUserAgentOverride() == ua_override)
+    return;
+
+  if (!ua_override.ua_string_override.empty() &&
+      !net::HttpUtil::IsValidHeaderValue(ua_override.ua_string_override)) {
+    return;
+  }
+
+  should_override_user_agent_in_new_tabs_ = override_in_new_tabs;
+
+  renderer_preferences_.user_agent_override = ua_override;
+
+  // Send the new override string to all renderers in the current page.
+  SyncRendererPrefs();
+
+  // In chromium upstream, the page is reloaded if a load is currently in
+  // progress. However, the behaviour is different for chromium efl port.
+
+  observers_.NotifyObservers(&WebContentsObserver::UserAgentOverrideSet,
+                             ua_override);
+}
 
 WebContentsImpl* WebContentsImplEfl::CreateWebContentsForNewWindow(
     BrowserContext* browser_context,
index 70727b5..8737a42 100644 (file)
@@ -811,12 +811,13 @@ void EWebView::set_magnifier(bool status) {
 }
 
 const char* EWebView::GetUserAgent() const {
-  if (!web_contents_->GetUserAgentOverride().ua_string_override.empty())
-    user_agent_ = web_contents_->GetUserAgentOverride().ua_string_override;
-#if !defined(EWK_BRINGUP)  // FIXME: m73 bringup
+  std::string user_agent =
+      web_contents_->GetUserAgentOverride().ua_string_override;
+  if (user_agent.empty())
+    user_agent_ = content::GetContentClientExport()->browser()->GetUserAgent();
   else
-    user_agent_ = content::GetContentClientExport()->GetUserAgent();
-#endif
+    user_agent_ = user_agent;
+
   return user_agent_.c_str();
 }