diff options
author | japhet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-01 21:18:30 +0000 |
---|---|---|
committer | japhet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-01 21:18:30 +0000 |
commit | 8d31cb067fb4b1111e236f6330dee1b5c097a81b (patch) | |
tree | 8a1503cf5cdc366c8b3c904224655b9878b3a0ad /webkit/tools/npapi_layout_test_plugin | |
parent | d728d7a1fcb715bd468597e9d7be169c3c6e7236 (diff) | |
download | chromium_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.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) { |