blob: a1860586a5ba678d68be2b4376e36c3d3035451c [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2011 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
#include "swt.h"
#include "webkit_win32.h"
#include "webkit_win32_stats.h"
#define WebKit_win32_NATIVE(func) Java_org_eclipse_swt_internal_webkit_WebKit_1win32_##func
#ifndef NO_willPerformClientRedirectToURL_1CALLBACK
static jintLong willPerformClientRedirectToURL_CALLBACK;
static HRESULT CALLBACK willPerformClientRedirectToURL(void* ppVTable, jintLong webView, BSTR url, double delaySeconds, DATE fireDate, jintLong frame)
{
return ((HRESULT (CALLBACK *)(void*, jintLong, BSTR, double*, DATE*, jintLong))willPerformClientRedirectToURL_CALLBACK)(ppVTable, webView, url, &delaySeconds, &fireDate, frame);
}
extern "C" JNIEXPORT jintLong JNICALL WebKit_win32_NATIVE(willPerformClientRedirectToURL_1CALLBACK) (JNIEnv *env, jclass that, jintLong func);
JNIEXPORT jintLong JNICALL WebKit_win32_NATIVE(willPerformClientRedirectToURL_1CALLBACK) (JNIEnv *env, jclass that, jintLong func)
{
willPerformClientRedirectToURL_CALLBACK = func;
return (jintLong)willPerformClientRedirectToURL;
}
#endif
#ifndef NO_JSObjectCallAsFunctionProc_1CALLBACK
static jintLong JSObjectCallAsFunctionProc_CALLBACK;
static JSValueRef JSObjectCallAsFunctionProc(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
return ((JSValueRef (CALLBACK *)(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*))JSObjectCallAsFunctionProc_CALLBACK)(ctx, function, thisObject, argumentCount, arguments, exception);
}
extern "C" JNIEXPORT jintLong JNICALL WebKit_win32_NATIVE(JSObjectCallAsFunctionProc_1CALLBACK) (JNIEnv *env, jclass that, jintLong func);
JNIEXPORT jintLong JNICALL WebKit_win32_NATIVE(JSObjectCallAsFunctionProc_1CALLBACK) (JNIEnv *env, jclass that, jintLong func)
{
JSObjectCallAsFunctionProc_CALLBACK = func;
return (jintLong)JSObjectCallAsFunctionProc;
}
#endif
#ifndef NO_JSObjectGetPropertyProc_1CALLBACK
static jintLong JSObjectGetPropertyProc_CALLBACK;
static JSValueRef JSObjectGetPropertyProc(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception)
{
return ((JSValueRef (CALLBACK *)(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*))JSObjectGetPropertyProc_CALLBACK)(ctx, object, propertyName, exception);
}
extern "C" JNIEXPORT jintLong JNICALL WebKit_win32_NATIVE(JSObjectGetPropertyProc_1CALLBACK) (JNIEnv *env, jclass that, jintLong func);
JNIEXPORT jintLong JNICALL WebKit_win32_NATIVE(JSObjectGetPropertyProc_1CALLBACK) (JNIEnv *env, jclass that, jintLong func)
{
JSObjectGetPropertyProc_CALLBACK = func;
return (jintLong)JSObjectGetPropertyProc;
}
#endif
#ifndef NO_JSObjectHasPropertyProc_1CALLBACK
static jintLong JSObjectHasPropertyProc_CALLBACK;
static bool JSObjectHasPropertyProc(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName)
{
return ((bool (CALLBACK *)(JSContextRef, JSObjectRef, JSStringRef))JSObjectHasPropertyProc_CALLBACK)(ctx, object, propertyName);
}
extern "C" JNIEXPORT jintLong JNICALL WebKit_win32_NATIVE(JSObjectHasPropertyProc_1CALLBACK) (JNIEnv *env, jclass that, jintLong func);
JNIEXPORT jintLong JNICALL WebKit_win32_NATIVE(JSObjectHasPropertyProc_1CALLBACK) (JNIEnv *env, jclass that, jintLong func)
{
JSObjectHasPropertyProc_CALLBACK = func;
return (jintLong)JSObjectHasPropertyProc;
}
#endif
#ifndef NO_WebKitCreateInstance
extern "C" JNIEXPORT jint JNICALL WebKit_win32_NATIVE(WebKitCreateInstance)(JNIEnv *env, jclass that, jbyteArray arg0, jintLong arg1, jbyteArray arg2, jintLongArray arg3);
JNIEXPORT jint JNICALL WebKit_win32_NATIVE(WebKitCreateInstance)
(JNIEnv *env, jclass that, jbyteArray arg0, jintLong arg1, jbyteArray arg2, jintLongArray arg3)
{
jbyte *lparg0=NULL;
jbyte *lparg2=NULL;
jintLong *lparg3=NULL;
jint rc = 0;
WebKit_win32_NATIVE_ENTER(env, that, WebKitCreateInstance_FUNC);
if (arg0) if ((lparg0 = env->GetByteArrayElements(arg0, NULL)) == NULL) goto fail;
if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
if (arg3) if ((lparg3 = env->GetIntLongArrayElements(arg3, NULL)) == NULL) goto fail;
/*
rc = (jint)WebKitCreateInstance(lparg0, arg1, lparg2, lparg3);
*/
{
WebKit_LOAD_FUNCTION(fp, WebKitCreateInstance)
if (fp) {
rc = (jint)((jint (*)(jbyte *, jintLong, jbyte *, jintLong *))fp)(lparg0, arg1, lparg2, lparg3);
}
}
fail:
if (arg3 && lparg3) env->ReleaseIntLongArrayElements(arg3, lparg3, 0);
if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
if (arg0 && lparg0) env->ReleaseByteArrayElements(arg0, lparg0, 0);
WebKit_win32_NATIVE_EXIT(env, that, WebKitCreateInstance_FUNC);
return rc;
}
#endif