From: v-saha Date: Mon, 16 Jan 2023 10:11:42 +0000 (+0530) Subject: [M108 Migration] Add implementation of SetUserAgentOverride X-Git-Tag: submit/tizen/20230227.160252~148 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;ds=sidebyside;h=9030b34c2c79f4caa7d7d79cbe266578d529b2db;p=platform%2Fframework%2Fweb%2Fchromium-efl.git [M108 Migration] Add implementation of SetUserAgentOverride 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 --- diff --git a/tizen_src/chromium_impl/content/browser/web_contents/web_contents_impl_efl.cc b/tizen_src/chromium_impl/content/browser/web_contents/web_contents_impl_efl.cc index 60e7f33..95c65e5 100644 --- a/tizen_src/chromium_impl/content/browser/web_contents/web_contents_impl_efl.cc +++ b/tizen_src/chromium_impl/content/browser/web_contents/web_contents_impl_efl.cc @@ -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 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, diff --git a/tizen_src/ewk/efl_integration/eweb_view.cc b/tizen_src/ewk/efl_integration/eweb_view.cc index 70727b5..8737a42 100644 --- a/tizen_src/ewk/efl_integration/eweb_view.cc +++ b/tizen_src/ewk/efl_integration/eweb_view.cc @@ -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(); }