Add ewk_settings_tizen_compatibility_mode_set API 80/105880/1 submit/tizen_3.0/20161220.022355
authorjaekuk, lee <juku1999@samsung.com>
Tue, 20 Dec 2016 02:05:33 +0000 (11:05 +0900)
committerjaekuk, lee <juku1999@samsung.com>
Tue, 20 Dec 2016 02:05:33 +0000 (11:05 +0900)
Change-Id: I23b837c6ecb49c5033e8945f8d92991a37b7eaf0
Signed-off-by: jaekuk, lee <juku1999@samsung.com>
runtime/browser/web_application.cc
runtime/browser/web_application.h

index 91614ee..50526f4 100755 (executable)
@@ -214,6 +214,20 @@ static bool ProcessWellKnownScheme(const std::string& url) {
 
 }  // namespace
 
+std::vector<unsigned> ParseTizenVersion(const std::string& tizen_string) {
+  std::vector<unsigned> 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<unsigned>(3, 0);
+     } else if (tizen_string[i] != '.')
+        return std::vector<unsigned>(3, 0);
+  }
+  return version;
+}
+
 WebApplication::WebApplication(
     NativeWindow* window,
     common::ApplicationData* app_data)
@@ -403,6 +417,7 @@ void WebApplication::Launch(std::unique_ptr<common::AppControl> appcontrol) {
   // Setup View
   WebView* view = new WebView(window_, ewk_context_);
   SetupWebView(view);
+  SetupWebViewTizenApplicationInfo(view);
 
   std::unique_ptr<common::ResourceManager::Resource> 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<unsigned> 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
index 75b934e..915287d 100755 (executable)
@@ -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_;