Revert "Bringup with updated chromium-efl(m56.0.2924)" 16/120316/2 accepted/tizen/common/20170322.153954 accepted/tizen/ivi/20170323.000732 accepted/tizen/mobile/20170323.000201 accepted/tizen/tv/20170323.000508 accepted/tizen/unified/20170323.000807 accepted/tizen/wearable/20170323.000637 submit/tizen/20170322.091134
authorjaekuk, lee <juku1999@samsung.com>
Wed, 22 Mar 2017 08:58:39 +0000 (17:58 +0900)
committerjaekuk lee <juku1999@samsung.com>
Wed, 22 Mar 2017 08:59:25 +0000 (01:59 -0700)
Change-Id: I1deb2e97e4a52a24f99622cc2ffc6902c9565609
Signed-off-by: jaekuk, lee <juku1999@samsung.com>
extensions/renderer/xwalk_module_system.cc [changed mode: 0644->0755]
extensions/renderer/xwalk_module_system.h [changed mode: 0644->0755]
extensions/renderer/xwalk_v8tools_module.cc [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 2218188..b14f12c
@@ -255,7 +255,7 @@ bool XWalkModuleSystem::SetTrampolineAccessorForEntryPoint(
   params->Set(v8::Integer::New(isolate, 1), entry);
 
   // FIXME(cmarcelo): ensure that trampoline is readonly.
-  value.As<v8::Object>()->SetAccessor(context,
+  value.As<v8::Object>()->SetAccessor(
       v8::String::NewFromUtf8(isolate, basename.c_str()),
       TrampolineCallback, TrampolineSetterCallback, params);
   return true;
@@ -294,7 +294,7 @@ bool XWalkModuleSystem::InstallTrampoline(v8::Handle<v8::Context> context,
     return false;
   }
 
-  std::vector<std::string>::const_iterator it = entry->entry_points.begin();
+  auto it = entry->entry_points.begin();
   for (; it != entry->entry_points.end(); ++it) {
     ret = SetTrampolineAccessorForEntryPoint(context, *it, entry_ptr);
     if (!ret) {
@@ -326,7 +326,7 @@ void XWalkModuleSystem::Initialize() {
 
   MarkModulesWithTrampoline();
 
-  ExtensionModules::iterator it = extension_modules_.begin();
+  auto it = extension_modules_.begin();
   for (; it != extension_modules_.end(); ++it) {
     if (it->use_trampoline && InstallTrampoline(context, &*it))
       continue;
@@ -367,7 +367,6 @@ void XWalkModuleSystem::DeleteExtensionModules() {
 void XWalkModuleSystem::LoadExtensionForTrampoline(
     v8::Isolate* isolate,
     v8::Local<v8::Value> data) {
-  v8::HandleScope handle_scope(isolate);
   v8::Local<v8::Array> params = data.As<v8::Array>();
   void* ptr = params->Get(
       v8::Integer::New(isolate, 0)).As<v8::External>()->Value();
@@ -392,6 +391,7 @@ void XWalkModuleSystem::LoadExtensionForTrampoline(
           isolate,
           module_system->require_native_template_);
 
+
   XWalkExtensionModule* module = entry->module;
   module->LoadExtensionCode(module_system->GetV8Context(),
                             require_native_template->GetFunction());
@@ -417,7 +417,7 @@ v8::Handle<v8::Value> XWalkModuleSystem::RefetchHolder(
 
 // static
 void XWalkModuleSystem::TrampolineCallback(
-    v8::Local<v8::Name> property,
+    v8::Local<v8::String> property,
     const v8::PropertyCallbackInfo<v8::Value>& info) {
   XWalkModuleSystem::LoadExtensionForTrampoline(info.GetIsolate(), info.Data());
   v8::Handle<v8::Value> holder = RefetchHolder(info.GetIsolate(), info.Data());
@@ -429,7 +429,7 @@ void XWalkModuleSystem::TrampolineCallback(
 
 // static
 void XWalkModuleSystem::TrampolineSetterCallback(
-    v8::Local<v8::Name> property,
+    v8::Local<v8::String> property,
     v8::Local<v8::Value> value,
     const v8::PropertyCallbackInfo<void>& info) {
   XWalkModuleSystem::LoadExtensionForTrampoline(info.GetIsolate(), info.Data());
old mode 100644 (file)
new mode 100755 (executable)
index e8bf6bf..b70603a
@@ -77,10 +77,10 @@ class XWalkModuleSystem {
                          ExtensionModuleEntry* entry);
 
   static void TrampolineCallback(
-      v8::Local<v8::Name> property,
+      v8::Local<v8::String> property,
       const v8::PropertyCallbackInfo<v8::Value>& info);
   static void TrampolineSetterCallback(
-      v8::Local<v8::Name> property,
+      v8::Local<v8::String> property,
       v8::Local<v8::Value> value,
       const v8::PropertyCallbackInfo<void>& info);
   static void LoadExtensionForTrampoline(
old mode 100644 (file)
new mode 100755 (executable)
index 4fcad37..72e1a4d
@@ -21,48 +21,43 @@ void ForceSetPropertyCallback(
   info[0].As<v8::Object>()->ForceSet(info[1], info[2]);
 }
 
-// ================
-// lifecycleTracker
-// ================
-struct LifecycleTrackerWrapper {
-  v8::Global<v8::Object> handle;
-  v8::Global<v8::Function> destructor;
-};
-
 void LifecycleTrackerCleanup(
-    const v8::WeakCallbackInfo<LifecycleTrackerWrapper>& data) {
-  LifecycleTrackerWrapper* wrapper = data.GetParameter();
+    const v8::WeakCallbackData<v8::Object,
+                               v8::Persistent<v8::Object> >& data) {
+  v8::Isolate* isolate = data.GetIsolate();
+  v8::HandleScope handle_scope(isolate);
 
-  if (!wrapper->destructor.IsEmpty()) {
-    v8::HandleScope handle_scope(data.GetIsolate());
-    v8::Local<v8::Context> context = v8::Context::New(data.GetIsolate());
-    v8::Context::Scope scope(context);
+  v8::Local<v8::Object> tracker = data.GetValue();
+  v8::Handle<v8::Value> function =
+      tracker->Get(v8::String::NewFromUtf8(isolate, "destructor"));
 
-    v8::Local<v8::Function> destructor =
-      wrapper->destructor.Get(data.GetIsolate());
+  if (function.IsEmpty() || !function->IsFunction()) {
+    LOGGER(WARN) << "Destructor function not set for LifecycleTracker.";
+    data.GetParameter()->Reset();
+    delete data.GetParameter();
+    return;
+  }
 
-    v8::MicrotasksScope microtasks(
-        data.GetIsolate(), v8::MicrotasksScope::kDoNotRunMicrotasks);
+  v8::Handle<v8::Context> context = v8::Context::New(isolate);
 
-    v8::TryCatch try_catch(data.GetIsolate());
-    destructor->Call(context->Global(), 0, nullptr);
+  v8::TryCatch try_catch;
+  v8::Handle<v8::Function>::Cast(function)->Call(context->Global(), 0, NULL);
+  if (try_catch.HasCaught())
+    LOGGER(WARN) << "Exception when running LifecycleTracker destructor";
 
-    if (try_catch.HasCaught()) {
-      LOGGER(WARN) << "Exception when running LifecycleTracker destructor";
-    }
-  }
+  data.GetParameter()->Reset();
+  delete data.GetParameter();
 }
 
 void LifecycleTracker(const v8::FunctionCallbackInfo<v8::Value>& info) {
-  v8::Isolate* isolate = info.GetIsolate();
-       v8::HandleScope handle_scope(info.GetIsolate());
-
-  v8::Local<v8::Object> tracker = v8::Object::New(isolate);
-  LifecycleTrackerWrapper* wrapper = new LifecycleTrackerWrapper;
-  wrapper->handle.Reset(isolate, tracker);
-  wrapper->handle.SetWeak(wrapper, LifecycleTrackerCleanup,
-                          v8::WeakCallbackType::kParameter);
-  info.GetReturnValue().Set(wrapper->handle);
+  v8::Isolate* isolate = v8::Isolate::GetCurrent();
+  v8::HandleScope handle_scope(isolate);
+
+  v8::Persistent<v8::Object>* tracker =
+      new v8::Persistent<v8::Object>(isolate, v8::Object::New(isolate));
+  tracker->SetWeak(tracker, &LifecycleTrackerCleanup);
+
+  info.GetReturnValue().Set(*tracker);
 }
 
 }  // namespace