diff options
Diffstat (limited to 'webkit/tools/npapi_layout_test_plugin')
-rw-r--r-- | webkit/tools/npapi_layout_test_plugin/PluginObject.cpp | 24 | ||||
-rw-r--r-- | webkit/tools/npapi_layout_test_plugin/PluginObject.h | 1 | ||||
-rw-r--r-- | webkit/tools/npapi_layout_test_plugin/main.cpp | 2 |
3 files changed, 27 insertions, 0 deletions
diff --git a/webkit/tools/npapi_layout_test_plugin/PluginObject.cpp b/webkit/tools/npapi_layout_test_plugin/PluginObject.cpp index be6c988..1a72899 100644 --- a/webkit/tools/npapi_layout_test_plugin/PluginObject.cpp +++ b/webkit/tools/npapi_layout_test_plugin/PluginObject.cpp @@ -892,3 +892,27 @@ void notifyStream(PluginObject* object, const char *url, const char *headers) object->lastHeaders = (headers ? strdup(headers) : NULL); } } + +void testNPRuntime(NPP npp) +{ + NPObject* windowScriptObject; + browser->getvalue(npp, NPNVWindowNPObject, &windowScriptObject); + + // Invoke + NPIdentifier testNPInvoke = browser->getstringidentifier("testNPInvoke"); + NPVariant args[7]; + + VOID_TO_NPVARIANT(args[0]); + NULL_TO_NPVARIANT(args[1]); + BOOLEAN_TO_NPVARIANT(true, args[2]); + INT32_TO_NPVARIANT(242, args[3]); + DOUBLE_TO_NPVARIANT(242.242, args[4]); + STRINGZ_TO_NPVARIANT("Hello, World", args[5]); + OBJECT_TO_NPVARIANT(windowScriptObject, args[6]); + + NPVariant result; + if (browser->invoke(npp, windowScriptObject, testNPInvoke, args, 7, &result)) + browser->releasevariantvalue(&result); + + browser->releaseobject(windowScriptObject); +} diff --git a/webkit/tools/npapi_layout_test_plugin/PluginObject.h b/webkit/tools/npapi_layout_test_plugin/PluginObject.h index 5027f22..7162954 100644 --- a/webkit/tools/npapi_layout_test_plugin/PluginObject.h +++ b/webkit/tools/npapi_layout_test_plugin/PluginObject.h @@ -48,3 +48,4 @@ typedef struct { extern NPClass *getPluginClass(void); extern void handleCallback(PluginObject* object, const char *url, NPReason reason, void *notifyData); extern void notifyStream(PluginObject* object, const char *url, const char *headers); +extern void testNPRuntime(NPP npp); diff --git a/webkit/tools/npapi_layout_test_plugin/main.cpp b/webkit/tools/npapi_layout_test_plugin/main.cpp index b546efe..e24e203 100644 --- a/webkit/tools/npapi_layout_test_plugin/main.cpp +++ b/webkit/tools/npapi_layout_test_plugin/main.cpp @@ -159,6 +159,8 @@ NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, ch obj->onURLNotify = strdup(argv[i]); else if (strcasecmp(argn[i], "logfirstsetwindow") == 0) obj->logSetWindow = TRUE; + else if (strcasecmp(argn[i], "testnpruntime") == 0) + testNPRuntime(instance); else if (strcasecmp(argn[i], "logSrc") == 0) { for (int i = 0; i < argc; i++) { if (strcasecmp(argn[i], "src") == 0) { |