Set encoding type based on config.xml's value 73/190673/4
authorsurya.kumar7 <surya.kumar7@samsung.com>
Mon, 8 Oct 2018 09:48:04 +0000 (15:18 +0530)
committersurya.kumar7 <surya.kumar7@samsung.com>
Mon, 8 Oct 2018 10:28:17 +0000 (15:58 +0530)
If the encoding type extracted from config.xml is valid, use that,
otherwise resort to default encoding(UTF-8)

Depends on: https://review.tizen.org/gerrit/#/c/190889/
Depends on: https://review.tizen.org/gerrit/#/c/190893/

Change-Id: Ic95c2ade81f05e47463234b252e35db67a32463e
Signed-off-by: surya.kumar7 <surya.kumar7@samsung.com>
atom/browser/atom_browser_client.cc
tizen/browser/tizen_browser_parts.cc
tizen/browser/tizen_browser_parts.h
tizen/common/resource_manager.h

index b8577802170972c8831442c63f945c4af10edf2c..9b9cfd1ead2c8e0863b5c765d77a7ae7fac5b369 100644 (file)
@@ -59,8 +59,6 @@ bool g_suppress_renderer_process_restart = false;
 // Custom schemes to be registered to handle service worker.
 std::string g_custom_service_worker_schemes = "";
 
-const std::string kDefaultEncoding = "UTF-8";
-
 void Noop(scoped_refptr<content::SiteInstance>) {
 }
 
@@ -172,7 +170,8 @@ void AtomBrowserClient::OverrideWebkitPrefs(
   prefs->allow_file_access_from_file_urls = true;
   prefs->experimental_webgl_enabled = true;
   prefs->allow_running_insecure_content = false;
-  prefs->default_encoding = kDefaultEncoding;
+  // TODO: Encoding type should be set based on the app control received
+  prefs->default_encoding = atom::Browser::Get()->GetEncodingType();
   prefs->uses_encoding_detector = false;
 
   // Custom preferences of guest page.
index afae16881921ebe81605fee1c96edad7963e9b2b..9963419f24e0521ff6f88e81172d566f86af9685 100644 (file)
@@ -18,6 +18,7 @@
 #include "common/string_utils.h"
 #include "tizen/browser/tizen_browser_parts.h"
 #include "tizen/browser/vibration_manager.h"
+#include "tizen_src/ewk/efl_integration/text_encoding_map_efl.h"
 
 #if defined(TIZEN_VIDEO_HOLE)
 #include "atom/browser/native_window_efl.h"
@@ -29,6 +30,8 @@ namespace tizen {
 
 namespace {
 
+const std::string kDefaultEncoding = "UTF-8";
+
 const char* kDefaultCSPRule =
   "default-src *; script-src 'self'; style-src 'self'; object-src 'none';";
 
@@ -162,4 +165,12 @@ bool TizenBrowserParts::ShouldAllowNavigation(const std::string &url) {
   }
 }
 
+std::string TizenBrowserParts::GetEncodingType() {
+  std::unique_ptr<common::ResourceManager::Resource> res =
+      resource_manager_->GetDefaultResource();
+  if (TextEncodingMapEfl::GetInstance()->isTextEncodingValid(res->encoding().c_str()))
+    return res->encoding();
+  else return kDefaultEncoding;
+}
+
 } // namespace tizen
index 19b7072eb89d487080d6070beebfe72c1fc62d7f..973fe1aad0823bd5a75a157b1c8baddc3031f2f2 100644 (file)
@@ -35,6 +35,7 @@ class TizenBrowserParts {
   void Suspend(content::RenderViewHost* rvh);
   void Resume(content::RenderViewHost* rvh);
   void GetCSP(std::string& csp_rule, std::string& csp_report_rule);
+  std::string GetEncodingType();
   bool ShouldAllowNavigation(const std::string &url);
   void Initialize();
 
index 298236aeb8f50e98d67ca5400fd9b65c285c4bf1..3dc898926c20472ed77a120791920adcc40f0e52 100644 (file)
@@ -80,11 +80,12 @@ class ResourceManager {
   std::string DecryptResource(const std::string& path);
 
   void set_base_resource_path(const std::string& base_path);
+  // TODO: Make it a private member again
+  std::unique_ptr<Resource> GetDefaultResource();
 
  private:
   std::unique_ptr<Resource> GetMatchedResource(
       const wgt::parse::AppControlInfo&);
-  std::unique_ptr<Resource> GetDefaultResource();
 
   // for localization
   bool Exists(const std::string& path);