From: jaekuk, lee Date: Tue, 20 Dec 2016 02:05:33 +0000 (+0900) Subject: Add ewk_settings_tizen_compatibility_mode_set API X-Git-Tag: submit/tizen_3.0/20161220.022355^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7b666c7222ef32130f1a887092bbaafc8628663b;p=platform%2Fframework%2Fweb%2Fcrosswalk-tizen.git Add ewk_settings_tizen_compatibility_mode_set API Change-Id: I23b837c6ecb49c5033e8945f8d92991a37b7eaf0 Signed-off-by: jaekuk, lee --- diff --git a/runtime/browser/web_application.cc b/runtime/browser/web_application.cc index 91614eee9..50526f4b8 100755 --- a/runtime/browser/web_application.cc +++ b/runtime/browser/web_application.cc @@ -214,6 +214,20 @@ static bool ProcessWellKnownScheme(const std::string& url) { } // namespace +std::vector ParseTizenVersion(const std::string& tizen_string) { + std::vector version(3, 0); + for (unsigned i = 0, index = 0; i < tizen_string.size(); i++) { + if ((i % 2) == 0) { + if (isdigit(tizen_string[i]) && index < version.size()) + version[index++] = atoi(&tizen_string[i]); + else + return std::vector(3, 0); + } else if (tizen_string[i] != '.') + return std::vector(3, 0); + } + return version; +} + WebApplication::WebApplication( NativeWindow* window, common::ApplicationData* app_data) @@ -403,6 +417,7 @@ void WebApplication::Launch(std::unique_ptr appcontrol) { // Setup View WebView* view = new WebView(window_, ewk_context_); SetupWebView(view); + SetupWebViewTizenApplicationInfo(view); std::unique_ptr res = resource_manager_->GetStartResource(appcontrol.get()); @@ -935,6 +950,16 @@ void WebApplication::SetupWebView(WebView* view) { } } +void WebApplication::SetupWebViewTizenApplicationInfo(WebView* view) { + if (app_data_->tizen_application_info() != NULL && + !app_data_->tizen_application_info()->required_version().empty()) { + Ewk_Settings* settings = ewk_view_settings_get(view->evas_object()); + std::string tizen_version = app_data_->tizen_application_info()->required_version(); + std::vector parsed_tizen_version = ParseTizenVersion(tizen_version); + ewk_settings_tizen_compatibility_mode_set(settings, parsed_tizen_version[0], parsed_tizen_version[1], parsed_tizen_version[2]); + } +} + bool WebApplication::OnDidNavigation(WebView* /*view*/, const std::string& url) { // scheme handling diff --git a/runtime/browser/web_application.h b/runtime/browser/web_application.h index 75b934ea1..915287d44 100755 --- a/runtime/browser/web_application.h +++ b/runtime/browser/web_application.h @@ -112,6 +112,7 @@ class WebApplication : public WebView::EventListener { void SendAppControlEvent(); void LaunchInspector(common::AppControl* appcontrol); void SetupWebView(WebView* view); + void SetupWebViewTizenApplicationInfo(WebView* view); void RemoveWebViewFromStack(WebView* view); bool launched_;