Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / bindings / tests / results / V8TestCallbackInterface.cpp
index 9829233..b73b7ab 100644 (file)
@@ -20,10 +20,10 @@ namespace WebCore {
 
 V8TestCallbackInterface::V8TestCallbackInterface(v8::Handle<v8::Function> callback, ExecutionContext* context)
     : ActiveDOMCallback(context)
-    , m_isolate(toIsolate(context))
-    , m_callback(m_isolate, callback)
-    , m_world(DOMWrapperWorld::current(m_isolate))
 {
+    v8::Isolate* isolate = toIsolate(context);
+    m_callback.set(isolate, callback);
+    m_scriptState = ScriptState::current(isolate);
 }
 
 V8TestCallbackInterface::~V8TestCallbackInterface()
@@ -35,16 +35,14 @@ void V8TestCallbackInterface::voidMethod()
     if (!canInvokeCallback())
         return;
 
-    v8::HandleScope handleScope(m_isolate);
-
-    v8::Handle<v8::Context> v8Context = toV8Context(executionContext(), m_world.get());
-    if (v8Context.IsEmpty())
+    v8::Isolate* isolate = m_scriptState->isolate();
+    if (m_scriptState->contextIsEmpty())
         return;
 
-    v8::Context::Scope scope(v8Context);
+    ScriptState::Scope scope(m_scriptState.get());
     v8::Handle<v8::Value> *argv = 0;
 
-    invokeCallback(m_callback.newLocal(m_isolate), 0, argv, executionContext(), m_isolate);
+    invokeCallback(m_callback.newLocal(isolate), 0, argv, executionContext(), isolate);
 }
 
 bool V8TestCallbackInterface::booleanMethod()
@@ -52,16 +50,14 @@ bool V8TestCallbackInterface::booleanMethod()
     if (!canInvokeCallback())
         return true;
 
-    v8::HandleScope handleScope(m_isolate);
-
-    v8::Handle<v8::Context> v8Context = toV8Context(executionContext(), m_world.get());
-    if (v8Context.IsEmpty())
+    v8::Isolate* isolate = m_scriptState->isolate();
+    if (m_scriptState->contextIsEmpty())
         return true;
 
-    v8::Context::Scope scope(v8Context);
+    ScriptState::Scope scope(m_scriptState.get());
     v8::Handle<v8::Value> *argv = 0;
 
-    return invokeCallback(m_callback.newLocal(m_isolate), 0, argv, executionContext(), m_isolate);
+    return invokeCallback(m_callback.newLocal(isolate), 0, argv, executionContext(), isolate);
 }
 
 void V8TestCallbackInterface::voidMethodBooleanArg(bool boolArg)
@@ -69,14 +65,12 @@ void V8TestCallbackInterface::voidMethodBooleanArg(bool boolArg)
     if (!canInvokeCallback())
         return;
 
-    v8::HandleScope handleScope(m_isolate);
-
-    v8::Handle<v8::Context> v8Context = toV8Context(executionContext(), m_world.get());
-    if (v8Context.IsEmpty())
+    v8::Isolate* isolate = m_scriptState->isolate();
+    if (m_scriptState->contextIsEmpty())
         return;
 
-    v8::Context::Scope scope(v8Context);
-    v8::Handle<v8::Value> boolArgHandle = v8Boolean(boolArg, m_isolate);
+    ScriptState::Scope scope(m_scriptState.get());
+    v8::Handle<v8::Value> boolArgHandle = v8Boolean(boolArg, isolate);
     if (boolArgHandle.IsEmpty()) {
         if (!isScriptControllerTerminating())
             CRASH();
@@ -84,7 +78,7 @@ void V8TestCallbackInterface::voidMethodBooleanArg(bool boolArg)
     }
     v8::Handle<v8::Value> argv[] = { boolArgHandle };
 
-    invokeCallback(m_callback.newLocal(m_isolate), 1, argv, executionContext(), m_isolate);
+    invokeCallback(m_callback.newLocal(isolate), 1, argv, executionContext(), isolate);
 }
 
 void V8TestCallbackInterface::voidMethodSequenceArg(const Vector<RefPtr<TestInterfaceEmpty> >& sequenceArg)
@@ -92,14 +86,12 @@ void V8TestCallbackInterface::voidMethodSequenceArg(const Vector<RefPtr<TestInte
     if (!canInvokeCallback())
         return;
 
-    v8::HandleScope handleScope(m_isolate);
-
-    v8::Handle<v8::Context> v8Context = toV8Context(executionContext(), m_world.get());
-    if (v8Context.IsEmpty())
+    v8::Isolate* isolate = m_scriptState->isolate();
+    if (m_scriptState->contextIsEmpty())
         return;
 
-    v8::Context::Scope scope(v8Context);
-    v8::Handle<v8::Value> sequenceArgHandle = v8Array(sequenceArg, m_isolate);
+    ScriptState::Scope scope(m_scriptState.get());
+    v8::Handle<v8::Value> sequenceArgHandle = v8Array(sequenceArg, isolate);
     if (sequenceArgHandle.IsEmpty()) {
         if (!isScriptControllerTerminating())
             CRASH();
@@ -107,7 +99,7 @@ void V8TestCallbackInterface::voidMethodSequenceArg(const Vector<RefPtr<TestInte
     }
     v8::Handle<v8::Value> argv[] = { sequenceArgHandle };
 
-    invokeCallback(m_callback.newLocal(m_isolate), 1, argv, executionContext(), m_isolate);
+    invokeCallback(m_callback.newLocal(isolate), 1, argv, executionContext(), isolate);
 }
 
 void V8TestCallbackInterface::voidMethodFloatArg(float floatArg)
@@ -115,14 +107,12 @@ void V8TestCallbackInterface::voidMethodFloatArg(float floatArg)
     if (!canInvokeCallback())
         return;
 
-    v8::HandleScope handleScope(m_isolate);
-
-    v8::Handle<v8::Context> v8Context = toV8Context(executionContext(), m_world.get());
-    if (v8Context.IsEmpty())
+    v8::Isolate* isolate = m_scriptState->isolate();
+    if (m_scriptState->contextIsEmpty())
         return;
 
-    v8::Context::Scope scope(v8Context);
-    v8::Handle<v8::Value> floatArgHandle = v8::Number::New(m_isolate, floatArg);
+    ScriptState::Scope scope(m_scriptState.get());
+    v8::Handle<v8::Value> floatArgHandle = v8::Number::New(isolate, floatArg);
     if (floatArgHandle.IsEmpty()) {
         if (!isScriptControllerTerminating())
             CRASH();
@@ -130,7 +120,7 @@ void V8TestCallbackInterface::voidMethodFloatArg(float floatArg)
     }
     v8::Handle<v8::Value> argv[] = { floatArgHandle };
 
-    invokeCallback(m_callback.newLocal(m_isolate), 1, argv, executionContext(), m_isolate);
+    invokeCallback(m_callback.newLocal(isolate), 1, argv, executionContext(), isolate);
 }
 
 void V8TestCallbackInterface::voidMethodTestInterfaceEmptyArg(TestInterfaceEmpty* testInterfaceEmptyArg)
@@ -138,14 +128,12 @@ void V8TestCallbackInterface::voidMethodTestInterfaceEmptyArg(TestInterfaceEmpty
     if (!canInvokeCallback())
         return;
 
-    v8::HandleScope handleScope(m_isolate);
-
-    v8::Handle<v8::Context> v8Context = toV8Context(executionContext(), m_world.get());
-    if (v8Context.IsEmpty())
+    v8::Isolate* isolate = m_scriptState->isolate();
+    if (m_scriptState->contextIsEmpty())
         return;
 
-    v8::Context::Scope scope(v8Context);
-    v8::Handle<v8::Value> testInterfaceEmptyArgHandle = toV8(testInterfaceEmptyArg, v8::Handle<v8::Object>(), m_isolate);
+    ScriptState::Scope scope(m_scriptState.get());
+    v8::Handle<v8::Value> testInterfaceEmptyArgHandle = toV8(testInterfaceEmptyArg, v8::Handle<v8::Object>(), isolate);
     if (testInterfaceEmptyArgHandle.IsEmpty()) {
         if (!isScriptControllerTerminating())
             CRASH();
@@ -153,7 +141,7 @@ void V8TestCallbackInterface::voidMethodTestInterfaceEmptyArg(TestInterfaceEmpty
     }
     v8::Handle<v8::Value> argv[] = { testInterfaceEmptyArgHandle };
 
-    invokeCallback(m_callback.newLocal(m_isolate), 1, argv, executionContext(), m_isolate);
+    invokeCallback(m_callback.newLocal(isolate), 1, argv, executionContext(), isolate);
 }
 
 void V8TestCallbackInterface::voidMethodTestInterfaceEmptyStringArg(TestInterfaceEmpty* testInterfaceEmptyArg, const String& stringArg)
@@ -161,20 +149,18 @@ void V8TestCallbackInterface::voidMethodTestInterfaceEmptyStringArg(TestInterfac
     if (!canInvokeCallback())
         return;
 
-    v8::HandleScope handleScope(m_isolate);
-
-    v8::Handle<v8::Context> v8Context = toV8Context(executionContext(), m_world.get());
-    if (v8Context.IsEmpty())
+    v8::Isolate* isolate = m_scriptState->isolate();
+    if (m_scriptState->contextIsEmpty())
         return;
 
-    v8::Context::Scope scope(v8Context);
-    v8::Handle<v8::Value> testInterfaceEmptyArgHandle = toV8(testInterfaceEmptyArg, v8::Handle<v8::Object>(), m_isolate);
+    ScriptState::Scope scope(m_scriptState.get());
+    v8::Handle<v8::Value> testInterfaceEmptyArgHandle = toV8(testInterfaceEmptyArg, v8::Handle<v8::Object>(), isolate);
     if (testInterfaceEmptyArgHandle.IsEmpty()) {
         if (!isScriptControllerTerminating())
             CRASH();
         return;
     }
-    v8::Handle<v8::Value> stringArgHandle = v8String(m_isolate, stringArg);
+    v8::Handle<v8::Value> stringArgHandle = v8String(isolate, stringArg);
     if (stringArgHandle.IsEmpty()) {
         if (!isScriptControllerTerminating())
             CRASH();
@@ -182,7 +168,7 @@ void V8TestCallbackInterface::voidMethodTestInterfaceEmptyStringArg(TestInterfac
     }
     v8::Handle<v8::Value> argv[] = { testInterfaceEmptyArgHandle, stringArgHandle };
 
-    invokeCallback(m_callback.newLocal(m_isolate), 2, argv, executionContext(), m_isolate);
+    invokeCallback(m_callback.newLocal(isolate), 2, argv, executionContext(), isolate);
 }
 
 void V8TestCallbackInterface::callbackWithThisValueVoidMethodStringArg(ScriptValue thisValue, const String& stringArg)
@@ -190,13 +176,11 @@ void V8TestCallbackInterface::callbackWithThisValueVoidMethodStringArg(ScriptVal
     if (!canInvokeCallback())
         return;
 
-    v8::HandleScope handleScope(m_isolate);
-
-    v8::Handle<v8::Context> v8Context = toV8Context(executionContext(), m_world.get());
-    if (v8Context.IsEmpty())
+    v8::Isolate* isolate = m_scriptState->isolate();
+    if (m_scriptState->contextIsEmpty())
         return;
 
-    v8::Context::Scope scope(v8Context);
+    ScriptState::Scope scope(m_scriptState.get());
     v8::Handle<v8::Value> thisHandle = thisValue.v8Value();
     if (thisHandle.IsEmpty()) {
         if (!isScriptControllerTerminating())
@@ -204,7 +188,7 @@ void V8TestCallbackInterface::callbackWithThisValueVoidMethodStringArg(ScriptVal
         return;
     }
     ASSERT(thisHandle->IsObject());
-    v8::Handle<v8::Value> stringArgHandle = v8String(m_isolate, stringArg);
+    v8::Handle<v8::Value> stringArgHandle = v8String(isolate, stringArg);
     if (stringArgHandle.IsEmpty()) {
         if (!isScriptControllerTerminating())
             CRASH();
@@ -212,7 +196,7 @@ void V8TestCallbackInterface::callbackWithThisValueVoidMethodStringArg(ScriptVal
     }
     v8::Handle<v8::Value> argv[] = { stringArgHandle };
 
-    invokeCallback(m_callback.newLocal(m_isolate), v8::Handle<v8::Object>::Cast(thisHandle), 1, argv, executionContext(), m_isolate);
+    invokeCallback(m_callback.newLocal(isolate), v8::Handle<v8::Object>::Cast(thisHandle), 1, argv, executionContext(), isolate);
 }
 
 void V8TestCallbackInterface::voidMethodWillBeGarbageCollectedSequenceArg(const WillBeHeapVector<RefPtrWillBeMember<TestInterfaceWillBeGarbageCollected> >& sequenceArg)
@@ -220,14 +204,12 @@ void V8TestCallbackInterface::voidMethodWillBeGarbageCollectedSequenceArg(const
     if (!canInvokeCallback())
         return;
 
-    v8::HandleScope handleScope(m_isolate);
-
-    v8::Handle<v8::Context> v8Context = toV8Context(executionContext(), m_world.get());
-    if (v8Context.IsEmpty())
+    v8::Isolate* isolate = m_scriptState->isolate();
+    if (m_scriptState->contextIsEmpty())
         return;
 
-    v8::Context::Scope scope(v8Context);
-    v8::Handle<v8::Value> sequenceArgHandle = v8Array(sequenceArg, m_isolate);
+    ScriptState::Scope scope(m_scriptState.get());
+    v8::Handle<v8::Value> sequenceArgHandle = v8Array(sequenceArg, isolate);
     if (sequenceArgHandle.IsEmpty()) {
         if (!isScriptControllerTerminating())
             CRASH();
@@ -235,7 +217,7 @@ void V8TestCallbackInterface::voidMethodWillBeGarbageCollectedSequenceArg(const
     }
     v8::Handle<v8::Value> argv[] = { sequenceArgHandle };
 
-    invokeCallback(m_callback.newLocal(m_isolate), 1, argv, executionContext(), m_isolate);
+    invokeCallback(m_callback.newLocal(isolate), 1, argv, executionContext(), isolate);
 }
 
 void V8TestCallbackInterface::voidMethodWillBeGarbageCollectedArrayArg(const WillBeHeapVector<RefPtrWillBeMember<TestInterfaceWillBeGarbageCollected> >& arrayArg)
@@ -243,14 +225,12 @@ void V8TestCallbackInterface::voidMethodWillBeGarbageCollectedArrayArg(const Wil
     if (!canInvokeCallback())
         return;
 
-    v8::HandleScope handleScope(m_isolate);
-
-    v8::Handle<v8::Context> v8Context = toV8Context(executionContext(), m_world.get());
-    if (v8Context.IsEmpty())
+    v8::Isolate* isolate = m_scriptState->isolate();
+    if (m_scriptState->contextIsEmpty())
         return;
 
-    v8::Context::Scope scope(v8Context);
-    v8::Handle<v8::Value> arrayArgHandle = v8Array(arrayArg, m_isolate);
+    ScriptState::Scope scope(m_scriptState.get());
+    v8::Handle<v8::Value> arrayArgHandle = v8Array(arrayArg, isolate);
     if (arrayArgHandle.IsEmpty()) {
         if (!isScriptControllerTerminating())
             CRASH();
@@ -258,7 +238,7 @@ void V8TestCallbackInterface::voidMethodWillBeGarbageCollectedArrayArg(const Wil
     }
     v8::Handle<v8::Value> argv[] = { arrayArgHandle };
 
-    invokeCallback(m_callback.newLocal(m_isolate), 1, argv, executionContext(), m_isolate);
+    invokeCallback(m_callback.newLocal(isolate), 1, argv, executionContext(), isolate);
 }
 
 } // namespace WebCore