summaryrefslogtreecommitdiffstats
path: root/webkit/tools/npapi_layout_test_plugin
diff options
context:
space:
mode:
authorjaphet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-01 21:18:30 +0000
committerjaphet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-01 21:18:30 +0000
commit8d31cb067fb4b1111e236f6330dee1b5c097a81b (patch)
tree8a1503cf5cdc366c8b3c904224655b9878b3a0ad /webkit/tools/npapi_layout_test_plugin
parentd728d7a1fcb715bd468597e9d7be169c3c6e7236 (diff)
downloadchromium_src-8d31cb067fb4b1111e236f6330dee1b5c097a81b.zip
chromium_src-8d31cb067fb4b1111e236f6330dee1b5c097a81b.tar.gz
chromium_src-8d31cb067fb4b1111e236f6330dee1b5c097a81b.tar.bz2
Implement the required functionality in the test plugin for LayoutTests/plugins/npruntime.html.
BUG=10401 TEST=plugins/npruntime.html Review URL: http://codereview.chromium.org/242097 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27768 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/tools/npapi_layout_test_plugin')
-rw-r--r--webkit/tools/npapi_layout_test_plugin/PluginObject.cpp24
-rw-r--r--webkit/tools/npapi_layout_test_plugin/PluginObject.h1
-rw-r--r--webkit/tools/npapi_layout_test_plugin/main.cpp2
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) {