From 3d23f5c0eeea5104a7ae89b5c8dd9eb79384cf89 Mon Sep 17 00:00:00 2001 From: Bakka Uday Kiran Date: Fri, 3 Feb 2023 12:56:33 +0530 Subject: [PATCH 01/16] [M108 Migration][API] Add ewk_settings_tizen_compatibility_mode_set API This API allows rendering the pages as if they are run with the specified engine version. The compatibility mode changes behavior of web features since they follow the newest specifications resulting in different behavior for content delivered for earlier engines. API will be applied by WRT/XWalk to support product patches for chromium-efl in compatibility mode with WebKit/Tizen 2.4. WebCore patches will be applied once compatibility mode is set. Checking whether engine has been launched with compatibility mode: * renderer: content::WebSettings::TizenCompatibilityModeEnabled() Blink::Settings::TizenCompatibilityModeEnabled() * ui: WebPreferencesEfl::TizenVersion::{major|minor|release|} Applying WebCore changes immediately after changing compatibility mode can be done inside Page::settingsChanged(TizenVersionChange). Ewk API can be tested with ubrowser by passing tizen-version | -t flag, for example, $ ubrowser -t 2.4 Also, this patch exposes TizenVersion on blink::web_pref::WebPreferences to allow client to check if compatibility mode is turned on. Struct TizenVersion has been replaced with individual elements in web_preferences.mojom for simplicity. Reference: https://review.tizen.org/gerrit/c/279762 Change-Id: I4c720a371846fdef4d01dada80723d32bd5ef2fa Signed-off-by: Bakka Uday Kiran --- .../public/common/web_preferences/web_preferences.h | 9 +++++++++ .../web_preferences/web_preferences_mojom_traits.h | 17 +++++++++++++++++ .../mojom/webpreferences/web_preferences.mojom | 9 +++++++++ .../blink/public/platform/web_runtime_features.h | 1 + third_party/blink/public/web/web_settings.h | 4 ++++ .../renderer/core/exported/web_settings_impl.cc | 12 ++++++++++++ .../renderer/core/exported/web_settings_impl.h | 5 +++++ .../blink/renderer/core/exported/web_view_impl.cc | 6 ++++++ third_party/blink/renderer/core/frame/settings.cc | 21 +++++++++++++++++++++ third_party/blink/renderer/core/frame/settings.h | 14 ++++++++++++++ .../blink/renderer/core/frame/settings_delegate.h | 3 +++ third_party/blink/renderer/core/page/page.cc | 12 ++++++++++++ .../platform/exported/web_runtime_features.cc | 5 +++++ .../platform/runtime_enabled_features.json5 | 3 +++ .../ewk/efl_integration/public/ewk_settings.cc | 8 ++++++-- tizen_src/ewk/ubrowser/window.cc | 9 +++++++++ 16 files changed, 136 insertions(+), 2 deletions(-) diff --git a/third_party/blink/public/common/web_preferences/web_preferences.h b/third_party/blink/public/common/web_preferences/web_preferences.h index f908293..651f9e7 100644 --- a/third_party/blink/public/common/web_preferences/web_preferences.h +++ b/third_party/blink/public/common/web_preferences/web_preferences.h @@ -271,6 +271,15 @@ struct BLINK_COMMON_EXPORT WebPreferences { float default_minimum_page_scale_factor; float default_maximum_page_scale_factor; +#if BUILDFLAG(IS_EFL) + bool TizenCompatibilityModeEnabled() const { + return (tizen_version_major && tizen_version_major < 3); + } + unsigned tizen_version_major = 7; + unsigned tizen_version_minor = 5; + unsigned tizen_version_release = 0; +#endif + // Whether download UI should be hidden on this page. bool hide_download_ui; diff --git a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h index e3290de..2b741fd 100644 --- a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h +++ b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h @@ -764,6 +764,23 @@ struct BLINK_COMMON_EXPORT StructTraits