[WRTjs][VD] Remove prefetching xwalk extension feature 55/289255/5 submit/tizen/20230305.160307
authorDongHyun Song <dh81.song@samsung.com>
Fri, 3 Mar 2023 07:36:31 +0000 (16:36 +0900)
committerBot Blink <blinkbot@samsung.com>
Fri, 3 Mar 2023 19:51:08 +0000 (19:51 +0000)
Prefetching is almost ineffective to load webapp, compared to its
complicated logic and heavy performing of DB file.

Change-Id: I1d0cd3130054e68d6b67e7035be2112c7e3365cb
Signed-off-by: DongHyun Song <dh81.song@samsung.com>
wrt/src/app/tv/wrt_main_delegate_tv.cc
wrt/xwalk_extensions/browser/tv/xwalk_extension_manager_tv.cc
wrt/xwalk_extensions/browser/tv/xwalk_extension_manager_tv.h
wrt/xwalk_extensions/browser/xwalk_extension_manager.h

index a0117a7..aaba6c0 100644 (file)
@@ -198,7 +198,6 @@ void WRTMainDelegateTV::CreateWorkers() {
       std::ignore = GetEncryptedFileHandler();
     }
     NativeWebRuntimeDelegateTV::GetInstance().BuildPrivilegeCache();
-    XWalkExtensionManager::GetInstance()->PrefetchExtensions();
     GroupZygoteProcess(false);
     reallaunch_mutex.unlock();
   });
index 0e2e2ff..3bdfea1 100644 (file)
@@ -16,9 +16,7 @@
 #include "wrt/src/browser/tv/input_device_manager.h"
 #include "wrt/src/browser/tv/native_web_runtime_delegate_tv.h"
 #include "wrt/src/browser/tv/tv_window_manager.h"
-#include "wrt/src/browser/tv/widget_state.h"
 #include "wrt/src/browser/tv/wrt_native_window_tv.h"
-#include "wrt/src/common/app_db.h"
 #include "wrt/src/common/constants.h"
 
 #ifndef XWALK_EXTENSION_PATH
@@ -99,25 +97,6 @@ void XWalkExtensionManagerTV::LoadExtensions(
     ParseUpgradableExtensions();
 }
 
-void XWalkExtensionManagerTV::UnloadExtensions() {
-  XWalkExtensionManager::UnloadExtensions();
-  SaveLoadedExtensions();
-}
-
-void XWalkExtensionManagerTV::CreateInstance(
-    const std::string& name, CreateInstanceCallback callback) {
-  XWalkExtensionManager::CreateInstance(name, std::move(callback));
-
-  auto it = extensions_.find(name);
-  if (it == extensions_.end())
-    return;
-
-  auto widget_state = wrt::WidgetStateProvider::GetWidgetStatus();
-  if (widget_state == "init" || widget_state == "load") {
-    loaded_extensions_[name] = it->second->GetLibraryPath();
-  }
-}
-
 std::string XWalkExtensionManagerTV::HandleRuntimeMessageInternal(
     const std::string& type, const std::string& value) {
   if (electron::Browser::Get()->is_quitting()) {
@@ -243,74 +222,6 @@ bool XWalkExtensionManagerTV::IsPreloadedExtension(std::string extension_name) {
   return preload_extensions_.find(extension_name) != preload_extensions_.end();
 }
 
-void XWalkExtensionManagerTV::SaveLoadedExtensions() {
-  for (auto& extension : preload_extensions_) {
-    loaded_extensions_.erase(extension.first);
-  }
-
-  for (const auto& it : prefetched_extensions_)
-    loaded_extensions_.erase(it.first);
-
-  if (!loaded_extensions_.size())
-    return;
-
-  std::string extension_list;
-  for (const auto& it : prefetched_extensions_)
-    extension_list.append(it.first + ":").append(it.second + ",");
-  for (const auto& it : loaded_extensions_)
-    extension_list.append(it.first + ":").append(it.second + ",");
-  extension_list.erase(extension_list.size() - 1);
-
-  LOG(INFO) << "SaveLoadedExtensions : " << extension_list;
-  auto widget_version =
-      wrt::ApplicationData::GetInstance().widget_info().version();
-  auto& db = wrt::AppDB::GetInstance();
-  db.Set("loaded_extension", widget_version, extension_list);
-}
-
-void XWalkExtensionManagerTV::PrefetchExtensions() {
-  static bool prefetched;
-  if (prefetched)
-    return;
-  prefetched = true;
-
-  if (electron::Browser::Get()->is_quitting())
-    return;
-
-  auto widget_version =
-      wrt::ApplicationData::GetInstance().widget_info().version();
-  auto& db = wrt::AppDB::GetInstance();
-  auto loaded_extensions = db.Get("loaded_extension", widget_version);
-  if (loaded_extensions.empty())
-    return;
-
-  LOG(INFO) << "PrefetchExtensions : " << loaded_extensions;
-
-  auto extension_list = base::SplitString(loaded_extensions, ",",
-      base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
-  for (const auto& it : extension_list) {
-    auto extension_info =
-        base::SplitString(it, ":", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
-    if (extension_info.size() != 2)
-      continue;
-    if (extension_info[1].find(XWALK_EXTENSION_PATH) != std::string::npos &&
-        !GetUpgradableLibPath(extension_info[0]).empty()) {
-      // Skip if same RO so is in upgradable list
-      continue;
-    }
-    if (extension_info[1].find(XWALK_EXTENSION_PATH) == std::string::npos &&
-        GetUpgradableLibPath(extension_info[0]).empty()) {
-      // Skip if RW so is not in upgradable list
-      continue;
-    }
-    void* dlhandle = dlopen(extension_info[1].c_str(), RTLD_LAZY);
-    if (!dlhandle)
-      LOG(WARNING) << extension_info[1] << " fail to load libs : " << dlerror();
-    else
-      prefetched_extensions_[extension_info[0]] = extension_info[1];
-  }
-}
-
 bool XWalkExtensionManagerTV::NeedHandleUpgradeWebapiJson() {
   auto upgrade_webapis_json_path =
       wrt::NativeWebRuntimeDelegateTV::GetInstance().GetUpgradeWebapiJsonPath();
index 07ae27a..65d4c90 100644 (file)
@@ -17,14 +17,10 @@ class XWalkExtensionManagerTV : public XWalkExtensionManager {
  private:
   // XWalkExtensionManager:
   void LoadExtensions(wrt::ApplicationData::AppType app_type) override;
-  void CreateInstance(const std::string& name,
-                      CreateInstanceCallback callback) override;
-  void PrefetchExtensions() override;
   void PreloadExtensions() override;
   void ParseUpgradableExtensions() override;
   void RegisterUpgradableExtensions() override;
   void SetCachedPrivileges() override;
-  void UnloadExtensions() override;
   std::string GetUpgradableLibPath(const std::string& name) override;
   std::string HandleRuntimeMessageInternal(
       const std::string& type, const std::string& value) override;
@@ -33,11 +29,8 @@ class XWalkExtensionManagerTV : public XWalkExtensionManager {
   bool IsPreloadedExtension(std::string extension_name);
   bool NeedHandleUpgradeWebapiJson();
   bool OpenTizenCommonExntension();
-  void SaveLoadedExtensions();
 
   using ExtensionInfo = std::map<std::string, std::string>;
-  ExtensionInfo loaded_extensions_;
-  ExtensionInfo prefetched_extensions_;
   ExtensionInfo force_update_extensions_;
   ExtensionInfo system_default_extensions_;
   std::map<std::string, ExtensionInfo>
index 578052a..b8260e9 100644 (file)
@@ -53,7 +53,6 @@ class XWalkExtensionManager : public mojom::XWalkExtensionBrowser {
   virtual void UnloadExtensions();
 
   // product specific functions
-  virtual void PrefetchExtensions() {}
   virtual void ParseUpgradableExtensions() {}
   virtual void RegisterUpgradableExtensions() {}
   virtual void SetCachedPrivileges() {}