From b452d9f08b908ac3bc21804e461350a8ac196aa6 Mon Sep 17 00:00:00 2001 From: "jaekuk, lee" Date: Wed, 22 Mar 2017 17:58:39 +0900 Subject: [PATCH] Revert "Bringup with updated chromium-efl(m56.0.2924)" Change-Id: I1deb2e97e4a52a24f99622cc2ffc6902c9565609 Signed-off-by: jaekuk, lee --- extensions/renderer/xwalk_module_system.cc | 12 +++--- extensions/renderer/xwalk_module_system.h | 4 +- extensions/renderer/xwalk_v8tools_module.cc | 61 +++++++++++++---------------- 3 files changed, 36 insertions(+), 41 deletions(-) mode change 100644 => 100755 extensions/renderer/xwalk_module_system.cc mode change 100644 => 100755 extensions/renderer/xwalk_module_system.h mode change 100644 => 100755 extensions/renderer/xwalk_v8tools_module.cc diff --git a/extensions/renderer/xwalk_module_system.cc b/extensions/renderer/xwalk_module_system.cc old mode 100644 new mode 100755 index 2218188..b14f12c --- a/extensions/renderer/xwalk_module_system.cc +++ b/extensions/renderer/xwalk_module_system.cc @@ -255,7 +255,7 @@ bool XWalkModuleSystem::SetTrampolineAccessorForEntryPoint( params->Set(v8::Integer::New(isolate, 1), entry); // FIXME(cmarcelo): ensure that trampoline is readonly. - value.As()->SetAccessor(context, + value.As()->SetAccessor( v8::String::NewFromUtf8(isolate, basename.c_str()), TrampolineCallback, TrampolineSetterCallback, params); return true; @@ -294,7 +294,7 @@ bool XWalkModuleSystem::InstallTrampoline(v8::Handle context, return false; } - std::vector::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 data) { - v8::HandleScope handle_scope(isolate); v8::Local params = data.As(); void* ptr = params->Get( v8::Integer::New(isolate, 0)).As()->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 XWalkModuleSystem::RefetchHolder( // static void XWalkModuleSystem::TrampolineCallback( - v8::Local property, + v8::Local property, const v8::PropertyCallbackInfo& info) { XWalkModuleSystem::LoadExtensionForTrampoline(info.GetIsolate(), info.Data()); v8::Handle holder = RefetchHolder(info.GetIsolate(), info.Data()); @@ -429,7 +429,7 @@ void XWalkModuleSystem::TrampolineCallback( // static void XWalkModuleSystem::TrampolineSetterCallback( - v8::Local property, + v8::Local property, v8::Local value, const v8::PropertyCallbackInfo& info) { XWalkModuleSystem::LoadExtensionForTrampoline(info.GetIsolate(), info.Data()); diff --git a/extensions/renderer/xwalk_module_system.h b/extensions/renderer/xwalk_module_system.h old mode 100644 new mode 100755 index e8bf6bf..b70603a --- a/extensions/renderer/xwalk_module_system.h +++ b/extensions/renderer/xwalk_module_system.h @@ -77,10 +77,10 @@ class XWalkModuleSystem { ExtensionModuleEntry* entry); static void TrampolineCallback( - v8::Local property, + v8::Local property, const v8::PropertyCallbackInfo& info); static void TrampolineSetterCallback( - v8::Local property, + v8::Local property, v8::Local value, const v8::PropertyCallbackInfo& info); static void LoadExtensionForTrampoline( diff --git a/extensions/renderer/xwalk_v8tools_module.cc b/extensions/renderer/xwalk_v8tools_module.cc old mode 100644 new mode 100755 index 4fcad37..72e1a4d --- a/extensions/renderer/xwalk_v8tools_module.cc +++ b/extensions/renderer/xwalk_v8tools_module.cc @@ -21,48 +21,43 @@ void ForceSetPropertyCallback( info[0].As()->ForceSet(info[1], info[2]); } -// ================ -// lifecycleTracker -// ================ -struct LifecycleTrackerWrapper { - v8::Global handle; - v8::Global destructor; -}; - void LifecycleTrackerCleanup( - const v8::WeakCallbackInfo& data) { - LifecycleTrackerWrapper* wrapper = data.GetParameter(); + const v8::WeakCallbackData >& data) { + v8::Isolate* isolate = data.GetIsolate(); + v8::HandleScope handle_scope(isolate); - if (!wrapper->destructor.IsEmpty()) { - v8::HandleScope handle_scope(data.GetIsolate()); - v8::Local context = v8::Context::New(data.GetIsolate()); - v8::Context::Scope scope(context); + v8::Local tracker = data.GetValue(); + v8::Handle function = + tracker->Get(v8::String::NewFromUtf8(isolate, "destructor")); - v8::Local 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 context = v8::Context::New(isolate); - v8::TryCatch try_catch(data.GetIsolate()); - destructor->Call(context->Global(), 0, nullptr); + v8::TryCatch try_catch; + v8::Handle::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& info) { - v8::Isolate* isolate = info.GetIsolate(); - v8::HandleScope handle_scope(info.GetIsolate()); - - v8::Local 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* tracker = + new v8::Persistent(isolate, v8::Object::New(isolate)); + tracker->SetWeak(tracker, &LifecycleTrackerCleanup); + + info.GetReturnValue().Set(*tracker); } } // namespace -- 2.7.4