From 1ff269229837dab2a7476e0266c48eb513bc7b2c Mon Sep 17 00:00:00 2001 From: JongHeon Choi Date: Tue, 19 Apr 2016 15:05:19 +0900 Subject: [PATCH] Fixed extensions initialize in single process mode --- extensions/renderer/xwalk_extension_renderer_controller.cc | 8 +++++++- extensions/renderer/xwalk_extension_renderer_controller.h | 1 + runtime/renderer/injected_bundle.cc | 8 ++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/extensions/renderer/xwalk_extension_renderer_controller.cc b/extensions/renderer/xwalk_extension_renderer_controller.cc index 71230a4..6e570aa 100644 --- a/extensions/renderer/xwalk_extension_renderer_controller.cc +++ b/extensions/renderer/xwalk_extension_renderer_controller.cc @@ -44,7 +44,8 @@ XWalkExtensionRendererController::GetInstance() { } XWalkExtensionRendererController::XWalkExtensionRendererController() - : extensions_client_(new XWalkExtensionClient()) { + : initialized_(false), + extensions_client_(new XWalkExtensionClient()) { } XWalkExtensionRendererController::~XWalkExtensionRendererController() { @@ -78,7 +79,12 @@ void XWalkExtensionRendererController::WillReleaseScriptContext( } void XWalkExtensionRendererController::InitializeExtensions() { + if (initialized_) { + LOGGER(DEBUG) << "already initialized"; + return; + } extensions_client_->Initialize(); + initialized_ = true; } } // namespace extensions diff --git a/extensions/renderer/xwalk_extension_renderer_controller.h b/extensions/renderer/xwalk_extension_renderer_controller.h index 37f2863..ac7d295 100644 --- a/extensions/renderer/xwalk_extension_renderer_controller.h +++ b/extensions/renderer/xwalk_extension_renderer_controller.h @@ -28,6 +28,7 @@ class XWalkExtensionRendererController { virtual ~XWalkExtensionRendererController(); private: + bool initialized_; std::unique_ptr extensions_client_; }; diff --git a/runtime/renderer/injected_bundle.cc b/runtime/renderer/injected_bundle.cc index c8177d5..0abd02d 100755 --- a/runtime/renderer/injected_bundle.cc +++ b/runtime/renderer/injected_bundle.cc @@ -106,6 +106,12 @@ extern "C" void DynamicSetWidgetInfo(const char* tizen_id) { SCOPE_PROFILE(); LOGGER(DEBUG) << "InjectedBundle::DynamicSetWidgetInfo !!" << tizen_id; ecore_init(); + + STEP_PROFILE_START("Initialize XWalkExtensionRendererController"); + auto& controller = extensions::XWalkExtensionRendererController::GetInstance(); + controller.InitializeExtensions(); + STEP_PROFILE_END("Initialize XWalkExtensionRendererController"); + runtime::BundleGlobalData::GetInstance()->Initialize(tizen_id); } @@ -151,6 +157,8 @@ extern "C" void DynamicPluginStopSession( extern "C" void DynamicUrlParsing( std::string* old_url, std::string* new_url, const char* /*tizen_id*/) { + SCOPE_PROFILE(); + auto res_manager = runtime::BundleGlobalData::GetInstance()->resource_manager(); if (res_manager == NULL) { -- 2.7.4