From: Jie Zhang Date: Fri, 24 Feb 2023 05:44:45 +0000 (+0800) Subject: [M108 Migration] Implement ewk_settings_do_not_track_set() API X-Git-Tag: submit/tizen/20230305.160307~32 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=64a65afa2043ece77891a3af6ac1949a987c83c0;p=platform%2Fframework%2Fweb%2Fchromium-efl.git [M108 Migration] Implement ewk_settings_do_not_track_set() API Set to add http head DNT(do not track). Reference: - https://review.tizen.org/gerrit/#/c/279422/ Change-Id: Iee5403811413d091d53aa14b8ab4033ac576be0a Signed-off-by: Jie Zhang --- diff --git a/tizen_src/ewk/efl_integration/eweb_view.cc b/tizen_src/ewk/efl_integration/eweb_view.cc index cfac19e..e561e8b 100644 --- a/tizen_src/ewk/efl_integration/eweb_view.cc +++ b/tizen_src/ewk/efl_integration/eweb_view.cc @@ -2989,6 +2989,27 @@ bool EWebView::SetVisibility(bool enable) { return true; } +void EWebView::SetDoNotTrack(Eina_Bool enable) { + // enable: 0 User tend to allow tracking on the target site. + // enable: 1 User tend to not be tracked on the target site. + if (web_contents_->GetMutableRendererPrefs()->enable_do_not_track == enable) + return; + + // Set navigator.doNotTrack attribute + web_contents_->GetMutableRendererPrefs()->enable_do_not_track = enable; + web_contents_->SyncRendererPrefs(); + + // Set or remove DNT HTTP header, the effects will depend on design of target + // site. + if (!context()) + return; + + if (enable) + context()->HTTPCustomHeaderAdd("DNT", "1"); + else + context()->HTTPCustomHeaderRemove("DNT"); +} + #if defined(TIZEN_ATK_SUPPORT) void EWebView::UpdateSpatialNavigationStatus(Eina_Bool enable) { if (settings_->getPreferences().spatial_navigation_enabled == enable) diff --git a/tizen_src/ewk/efl_integration/eweb_view.h b/tizen_src/ewk/efl_integration/eweb_view.h index 3df69fb..0b98cfc 100644 --- a/tizen_src/ewk/efl_integration/eweb_view.h +++ b/tizen_src/ewk/efl_integration/eweb_view.h @@ -650,6 +650,7 @@ class EWebView { const gfx::Vector2dF& latest_overscroll_delta); bool SetVisibility(bool enable); + void SetDoNotTrack(Eina_Bool); #if defined(TIZEN_ATK_SUPPORT) void UpdateSpatialNavigationStatus(Eina_Bool enable); diff --git a/tizen_src/ewk/efl_integration/public/ewk_settings.cc b/tizen_src/ewk/efl_integration/public/ewk_settings.cc index 9d012e0..62ddad1 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_settings.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_settings.cc @@ -809,6 +809,16 @@ Eina_Bool ewk_settings_mixed_contents_set(const Ewk_Settings* settings, Eina_Boo return EINA_FALSE; } +Eina_Bool ewk_settings_do_not_track_set(Ewk_Settings* settings, Eina_Bool enabled) +{ + EWK_VIEW_IMPL_GET_OR_RETURN( + const_cast(settings)->getEvasObject(), webview, + EINA_FALSE); + LOG(INFO) << "set do not track : " << enabled; + webview->SetDoNotTrack(enabled); + return EINA_TRUE; +} + Eina_Bool ewk_settings_viewport_meta_tag_set(Ewk_Settings* settings, Eina_Bool enable) { LOG_EWK_API_MOCKUP();