summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorjorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-30 00:35:33 +0000
committerjorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-30 00:35:33 +0000
commita3929294e9176abc6085d87cb2c6f8f8417b58f3 (patch)
tree82db7bd5e99b1ddcc4ab0efb9c43decf3698b92c /webkit
parent2da90e5f4e6deae2902ea1de2f4a76544885e1d8 (diff)
downloadchromium_src-a3929294e9176abc6085d87cb2c6f8f8417b58f3.zip
chromium_src-a3929294e9176abc6085d87cb2c6f8f8417b58f3.tar.gz
chromium_src-a3929294e9176abc6085d87cb2c6f8f8417b58f3.tar.bz2
Continue eliminating direct NPN_ function calls that go from Chromium code to WebKit code. The long-term goal is to be able to link WebKit as a DLL.
TEST=none BUG=none Review URL: http://codereview.chromium.org/160310 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22031 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/api/public/WebBindings.h37
-rw-r--r--webkit/api/src/WebBindings.cpp55
2 files changed, 90 insertions, 2 deletions
diff --git a/webkit/api/public/WebBindings.h b/webkit/api/public/WebBindings.h
index 00d055c..17af60f 100644
--- a/webkit/api/public/WebBindings.h
+++ b/webkit/api/public/WebBindings.h
@@ -44,17 +44,29 @@ namespace WebKit {
// NPN Functions ------------------------------------------------------
// These are all defined in npruntime.h and are well documented.
+ // NPN_Construct
+ WEBKIT_API static bool construct(NPP npp, NPObject *npobj, const NPVariant *args, uint32_t argCount, NPVariant* result);
+
// NPN_CreateObject
WEBKIT_API static NPObject* createObject(NPP npp, NPClass* npClass);
+ // NPN_Enumerate
+ WEBKIT_API static bool enumerate(NPP id, NPObject* obj, NPIdentifier** identifier, uint32_t* val);
+
+ // NPN_EvaluateHelper
+ WEBKIT_API static bool evaluateHelper(NPP npp, bool popups_allowed, NPObject* npobj, NPString* npscript, NPVariant* result);
+
// NPN_GetIntIdentifier
- WEBKIT_API static NPIdentifier getIntIdentifier(int32_t);
+ WEBKIT_API static NPIdentifier getIntIdentifier(int32_t number);
// NPN_GetProperty
WEBKIT_API static bool getProperty(NPP npp, NPObject* obj, NPIdentifier propertyName, NPVariant *result);
// NPN_GetStringIdentifier
- WEBKIT_API static NPIdentifier getStringIdentifier(const NPUTF8*);
+ WEBKIT_API static NPIdentifier getStringIdentifier(const NPUTF8* string);
+
+ // NPN_GetStringIdentifiers
+ WEBKIT_API static void getStringIdentifiers(const NPUTF8** names, int32_t nameCount, NPIdentifier* identifiers);
// NPN_HasMethod
WEBKIT_API static bool hasMethod(NPP npp, NPObject* npObject, NPIdentifier methodName);
@@ -62,24 +74,45 @@ namespace WebKit {
// NPN_HasProperty
WEBKIT_API static bool hasProperty(NPP npp, NPObject* npObject, NPIdentifier propertyName);
+ // NPN_IdentifierIsString
+ WEBKIT_API static bool identifierIsString(NPIdentifier identifier);
+
// NPN_InitializeVariantWithStringCopy (though sometimes prefixed with an underscore)
WEBKIT_API static void initializeVariantWithStringCopy(NPVariant* variant, const NPString* value);
+ // NPN_IntFromIdentifier
+ WEBKIT_API static int32_t intFromIdentifier(NPIdentifier identifier);
+
// NPN_Invoke
WEBKIT_API static bool invoke(NPP npp, NPObject* npObject, NPIdentifier methodName, const NPVariant* arguments, uint32_t argumentCount, NPVariant* result);
+ // NPN_InvokeDefault
+ WEBKIT_API static bool invokeDefault(NPP id, NPObject* obj, const NPVariant* args, uint32_t count, NPVariant* result);
+
// NPN_ReleaseObject
WEBKIT_API static void releaseObject(NPObject* npObject);
// NPN_ReleaseVariantValue
WEBKIT_API static void releaseVariantValue(NPVariant* variant);
+ // NPN_RemoveProperty
+ WEBKIT_API static bool removeProperty(NPP id, NPObject* object, NPIdentifier identifier);
+
// NPN_RetainObject
WEBKIT_API static NPObject* retainObject(NPObject* npObject);
+ // NPN_SetException
+ WEBKIT_API static void setException(NPObject* obj, const NPUTF8* message);
+
+ // NPN_SetProperty
+ WEBKIT_API static bool setProperty(NPP id, NPObject* obj, NPIdentifier identifier, const NPVariant* variant);
+
// _NPN_UnregisterObject
WEBKIT_API static void unregisterObject(NPObject* npObject);
+ // NPN_UTF8FromIdentifier
+ WEBKIT_API static NPUTF8* utf8FromIdentifier(NPIdentifier identifier);
+
// Miscellaneous utility functions ------------------------------------
// Complement to NPN_Get___Identifier functions. Extracts data from the NPIdentifier data
diff --git a/webkit/api/src/WebBindings.cpp b/webkit/api/src/WebBindings.cpp
index b3cf59a..8e725e4 100644
--- a/webkit/api/src/WebBindings.cpp
+++ b/webkit/api/src/WebBindings.cpp
@@ -54,11 +54,26 @@ using namespace WebCore;
namespace WebKit {
+bool WebBindings::construct(NPP npp, NPObject *npobj, const NPVariant *args, uint32_t argCount, NPVariant* result)
+{
+ return NPN_Construct(npp, npobj, args, argCount, result);
+}
+
NPObject* WebBindings::createObject(NPP npp, NPClass* npClass)
{
return NPN_CreateObject(npp, npClass);
}
+bool WebBindings::enumerate(NPP id, NPObject* obj, NPIdentifier** identifier, uint32_t* val)
+{
+ return NPN_Enumerate(id, obj, identifier, val);
+}
+
+bool WebBindings::evaluateHelper(NPP npp, bool popups_allowed, NPObject* npobj, NPString* npscript, NPVariant* result)
+{
+ return NPN_EvaluateHelper(npp, popups_allowed, npobj, npscript, result);
+}
+
NPIdentifier WebBindings::getIntIdentifier(int32_t number)
{
return NPN_GetIntIdentifier(number);
@@ -74,6 +89,11 @@ NPIdentifier WebBindings::getStringIdentifier(const NPUTF8* string)
return NPN_GetStringIdentifier(string);
}
+void WebBindings::getStringIdentifiers(const NPUTF8** names, int32_t nameCount, NPIdentifier* identifiers)
+{
+ NPN_GetStringIdentifiers(names, nameCount, identifiers);
+}
+
bool WebBindings::hasMethod(NPP npp, NPObject* npObject, NPIdentifier methodName)
{
return NPN_HasMethod(npp, npObject, methodName);
@@ -84,6 +104,16 @@ bool WebBindings::hasProperty(NPP npp, NPObject* npObject, NPIdentifier property
return NPN_HasProperty(npp, npObject, propertyName);
}
+bool WebBindings::identifierIsString(NPIdentifier identifier)
+{
+ return NPN_IdentifierIsString(identifier);
+}
+
+int32_t WebBindings::intFromIdentifier(NPIdentifier identifier)
+{
+ return NPN_IntFromIdentifier(identifier);
+}
+
void WebBindings::initializeVariantWithStringCopy(NPVariant* variant, const NPString* value)
{
#if USE(V8)
@@ -98,6 +128,11 @@ bool WebBindings::invoke(NPP npp, NPObject* npObject, NPIdentifier methodName, c
return NPN_Invoke(npp, npObject, methodName, arguments, argumentCount, result);
}
+bool WebBindings::invokeDefault(NPP id, NPObject* obj, const NPVariant* args, uint32_t count, NPVariant* result)
+{
+ return NPN_InvokeDefault(id, obj, args, count, result);
+}
+
void WebBindings::releaseObject(NPObject* npObject)
{
return NPN_ReleaseObject(npObject);
@@ -108,11 +143,26 @@ void WebBindings::releaseVariantValue(NPVariant* variant)
NPN_ReleaseVariantValue(variant);
}
+bool WebBindings::removeProperty(NPP id, NPObject* object, NPIdentifier identifier)
+{
+ return NPN_RemoveProperty(id, object, identifier);
+}
+
NPObject* WebBindings::retainObject(NPObject* npObject)
{
return NPN_RetainObject(npObject);
}
+void WebBindings::setException(NPObject* obj, const NPUTF8* message)
+{
+ NPN_SetException(obj, message);
+}
+
+bool WebBindings::setProperty(NPP id, NPObject* obj, NPIdentifier identifier, const NPVariant* variant)
+{
+ return NPN_SetProperty(id, obj, identifier, variant);
+}
+
void WebBindings::unregisterObject(NPObject* npObject)
{
#if USE(V8)
@@ -120,6 +170,11 @@ void WebBindings::unregisterObject(NPObject* npObject)
#endif
}
+NPUTF8* WebBindings::utf8FromIdentifier(NPIdentifier identifier)
+{
+ return NPN_UTF8FromIdentifier(identifier);
+}
+
void WebBindings::extractIdentifierData(const NPIdentifier& identifier, const NPUTF8*& string, int32_t& number, bool& isString)
{
PrivateIdentifier* priv = static_cast<PrivateIdentifier*>(identifier);