121939df44de1705786c545cd1bf519d47250322dBen Murdoch/* 221939df44de1705786c545cd1bf519d47250322dBen Murdoch This file is part of the WebKit open source project. 321939df44de1705786c545cd1bf519d47250322dBen Murdoch This file has been generated by generate-bindings.pl. DO NOT MODIFY! 421939df44de1705786c545cd1bf519d47250322dBen Murdoch 521939df44de1705786c545cd1bf519d47250322dBen Murdoch This library is free software; you can redistribute it and/or 621939df44de1705786c545cd1bf519d47250322dBen Murdoch modify it under the terms of the GNU Library General Public 721939df44de1705786c545cd1bf519d47250322dBen Murdoch License as published by the Free Software Foundation; either 821939df44de1705786c545cd1bf519d47250322dBen Murdoch version 2 of the License, or (at your option) any later version. 921939df44de1705786c545cd1bf519d47250322dBen Murdoch 1021939df44de1705786c545cd1bf519d47250322dBen Murdoch This library is distributed in the hope that it will be useful, 1121939df44de1705786c545cd1bf519d47250322dBen Murdoch but WITHOUT ANY WARRANTY; without even the implied warranty of 1221939df44de1705786c545cd1bf519d47250322dBen Murdoch MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1321939df44de1705786c545cd1bf519d47250322dBen Murdoch Library General Public License for more details. 1421939df44de1705786c545cd1bf519d47250322dBen Murdoch 1521939df44de1705786c545cd1bf519d47250322dBen Murdoch You should have received a copy of the GNU Library General Public License 1621939df44de1705786c545cd1bf519d47250322dBen Murdoch along with this library; see the file COPYING.LIB. If not, write to 1721939df44de1705786c545cd1bf519d47250322dBen Murdoch the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 1821939df44de1705786c545cd1bf519d47250322dBen Murdoch Boston, MA 02111-1307, USA. 1921939df44de1705786c545cd1bf519d47250322dBen Murdoch*/ 2021939df44de1705786c545cd1bf519d47250322dBen Murdoch 2121939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "config.h" 2221939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "V8TestCallback.h" 2321939df44de1705786c545cd1bf519d47250322dBen Murdoch 2421939df44de1705786c545cd1bf519d47250322dBen Murdoch#if ENABLE(DATABASE) 2521939df44de1705786c545cd1bf519d47250322dBen Murdoch 2621939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "ScriptExecutionContext.h" 272daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#include "V8Binding.h" 2821939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "V8Class1.h" 2921939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "V8Class2.h" 3021939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "V8CustomVoidCallback.h" 312bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "V8DOMStringList.h" 3206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#include "V8Proxy.h" 332fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#include <wtf/GetPtr.h> 342fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#include <wtf/RefCounted.h> 352fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#include <wtf/RefPtr.h> 3621939df44de1705786c545cd1bf519d47250322dBen Murdoch 37545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch#include <wtf/Assertions.h> 38545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 3921939df44de1705786c545cd1bf519d47250322dBen Murdochnamespace WebCore { 4021939df44de1705786c545cd1bf519d47250322dBen Murdoch 41dd8bb3de4f353a81954234999f1fea748aee2ea9Ben MurdochV8TestCallback::V8TestCallback(v8::Local<v8::Object> callback, ScriptExecutionContext* context) 42dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch : ActiveDOMCallback(context) 43dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch , m_callback(v8::Persistent<v8::Object>::New(callback)) 4421939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_worldContext(UseCurrentWorld) 4521939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 4621939df44de1705786c545cd1bf519d47250322dBen Murdoch} 4721939df44de1705786c545cd1bf519d47250322dBen Murdoch 4821939df44de1705786c545cd1bf519d47250322dBen MurdochV8TestCallback::~V8TestCallback() 4921939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 5021939df44de1705786c545cd1bf519d47250322dBen Murdoch m_callback.Dispose(); 5121939df44de1705786c545cd1bf519d47250322dBen Murdoch} 5221939df44de1705786c545cd1bf519d47250322dBen Murdoch 5321939df44de1705786c545cd1bf519d47250322dBen Murdoch// Functions 5421939df44de1705786c545cd1bf519d47250322dBen Murdoch 55ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochbool V8TestCallback::callbackWithNoParam() 56ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch{ 57ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch if (!canInvokeCallback()) 58ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch return true; 59ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 60ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch v8::HandleScope handleScope; 61ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 62ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext); 63ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch if (v8Context.IsEmpty()) 64ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch return true; 65ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 66ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch v8::Context::Scope scope(v8Context); 67ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 68ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 69ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch v8::Handle<v8::Value> *argv = 0; 70ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 71ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch bool callbackReturnValue = false; 72ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch return !invokeCallback(m_callback, 0, argv, callbackReturnValue, scriptExecutionContext()); 73ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch} 74ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 75dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochbool V8TestCallback::callbackWithClass1Param(Class1* class1Param) 7621939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 77dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (!canInvokeCallback()) 78dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return true; 79dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 8021939df44de1705786c545cd1bf519d47250322dBen Murdoch v8::HandleScope handleScope; 8121939df44de1705786c545cd1bf519d47250322dBen Murdoch 82dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext); 8321939df44de1705786c545cd1bf519d47250322dBen Murdoch if (v8Context.IsEmpty()) 8421939df44de1705786c545cd1bf519d47250322dBen Murdoch return true; 8521939df44de1705786c545cd1bf519d47250322dBen Murdoch 8621939df44de1705786c545cd1bf519d47250322dBen Murdoch v8::Context::Scope scope(v8Context); 8721939df44de1705786c545cd1bf519d47250322dBen Murdoch 88545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch v8::Handle<v8::Value> class1ParamHandle = toV8(class1Param); 89545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch if (class1ParamHandle.IsEmpty()) { 90545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch CRASH(); 91545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return true; 92545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch } 93545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 9421939df44de1705786c545cd1bf519d47250322dBen Murdoch v8::Handle<v8::Value> argv[] = { 95545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch class1ParamHandle 9621939df44de1705786c545cd1bf519d47250322dBen Murdoch }; 9721939df44de1705786c545cd1bf519d47250322dBen Murdoch 9821939df44de1705786c545cd1bf519d47250322dBen Murdoch bool callbackReturnValue = false; 99dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return !invokeCallback(m_callback, 1, argv, callbackReturnValue, scriptExecutionContext()); 10021939df44de1705786c545cd1bf519d47250322dBen Murdoch} 10121939df44de1705786c545cd1bf519d47250322dBen Murdoch 102dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochbool V8TestCallback::callbackWithClass2Param(Class2* class2Param, const String& strArg) 10321939df44de1705786c545cd1bf519d47250322dBen Murdoch{ 104dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch if (!canInvokeCallback()) 105dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return true; 106dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 10721939df44de1705786c545cd1bf519d47250322dBen Murdoch v8::HandleScope handleScope; 10821939df44de1705786c545cd1bf519d47250322dBen Murdoch 109dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext); 11021939df44de1705786c545cd1bf519d47250322dBen Murdoch if (v8Context.IsEmpty()) 11121939df44de1705786c545cd1bf519d47250322dBen Murdoch return true; 11221939df44de1705786c545cd1bf519d47250322dBen Murdoch 11321939df44de1705786c545cd1bf519d47250322dBen Murdoch v8::Context::Scope scope(v8Context); 11421939df44de1705786c545cd1bf519d47250322dBen Murdoch 115545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch v8::Handle<v8::Value> class2ParamHandle = toV8(class2Param); 116545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch if (class2ParamHandle.IsEmpty()) { 117545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch CRASH(); 118545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return true; 119545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch } 1202fc2651226baac27029e38c9d6ef883fa32084dbSteve Block v8::Handle<v8::Value> strArgHandle = v8String(strArg); 121545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch if (strArgHandle.IsEmpty()) { 122545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch CRASH(); 123545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return true; 124545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch } 125545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 12621939df44de1705786c545cd1bf519d47250322dBen Murdoch v8::Handle<v8::Value> argv[] = { 127545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch class2ParamHandle, 128545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch strArgHandle 12921939df44de1705786c545cd1bf519d47250322dBen Murdoch }; 13021939df44de1705786c545cd1bf519d47250322dBen Murdoch 13121939df44de1705786c545cd1bf519d47250322dBen Murdoch bool callbackReturnValue = false; 132dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return !invokeCallback(m_callback, 2, argv, callbackReturnValue, scriptExecutionContext()); 13321939df44de1705786c545cd1bf519d47250322dBen Murdoch} 13421939df44de1705786c545cd1bf519d47250322dBen Murdoch 1352bde8e466a4451c7319e3a072d118917957d6554Steve Blockbool V8TestCallback::callbackWithStringList(PassRefPtr<DOMStringList> listParam) 1362bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 1372bde8e466a4451c7319e3a072d118917957d6554Steve Block if (!canInvokeCallback()) 1382bde8e466a4451c7319e3a072d118917957d6554Steve Block return true; 1392bde8e466a4451c7319e3a072d118917957d6554Steve Block 1402bde8e466a4451c7319e3a072d118917957d6554Steve Block v8::HandleScope handleScope; 1412bde8e466a4451c7319e3a072d118917957d6554Steve Block 1422bde8e466a4451c7319e3a072d118917957d6554Steve Block v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext); 1432bde8e466a4451c7319e3a072d118917957d6554Steve Block if (v8Context.IsEmpty()) 1442bde8e466a4451c7319e3a072d118917957d6554Steve Block return true; 1452bde8e466a4451c7319e3a072d118917957d6554Steve Block 1462bde8e466a4451c7319e3a072d118917957d6554Steve Block v8::Context::Scope scope(v8Context); 1472bde8e466a4451c7319e3a072d118917957d6554Steve Block 1482bde8e466a4451c7319e3a072d118917957d6554Steve Block v8::Handle<v8::Value> listParamHandle = toV8(listParam); 1492bde8e466a4451c7319e3a072d118917957d6554Steve Block if (listParamHandle.IsEmpty()) { 1502bde8e466a4451c7319e3a072d118917957d6554Steve Block CRASH(); 1512bde8e466a4451c7319e3a072d118917957d6554Steve Block return true; 1522bde8e466a4451c7319e3a072d118917957d6554Steve Block } 1532bde8e466a4451c7319e3a072d118917957d6554Steve Block 1542bde8e466a4451c7319e3a072d118917957d6554Steve Block v8::Handle<v8::Value> argv[] = { 1552bde8e466a4451c7319e3a072d118917957d6554Steve Block listParamHandle 1562bde8e466a4451c7319e3a072d118917957d6554Steve Block }; 1572bde8e466a4451c7319e3a072d118917957d6554Steve Block 1582bde8e466a4451c7319e3a072d118917957d6554Steve Block bool callbackReturnValue = false; 1592bde8e466a4451c7319e3a072d118917957d6554Steve Block return !invokeCallback(m_callback, 1, argv, callbackReturnValue, scriptExecutionContext()); 1602bde8e466a4451c7319e3a072d118917957d6554Steve Block} 1612bde8e466a4451c7319e3a072d118917957d6554Steve Block 16221939df44de1705786c545cd1bf519d47250322dBen Murdoch} // namespace WebCore 16321939df44de1705786c545cd1bf519d47250322dBen Murdoch 16421939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif // ENABLE(DATABASE) 165