Reviewed by Beth Dakin.
authortomernic <tomernic@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 11 Jul 2006 07:30:58 +0000 (07:30 +0000)
committertomernic <tomernic@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 11 Jul 2006 07:30:58 +0000 (07:30 +0000)
        <http://bugzilla.opendarwin.org/show_bug.cgi?id=9844>:
        Add DOM access test to DumpRenderTree's Netscape plug-in

        * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
        (testDOMAccess):
        (pluginInvoke):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@15331 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKitTools/ChangeLog
WebKitTools/DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c

index 62ccce4e068530583ac0066271283e3a7141e37b..3811e60e6daa2f64117fa9a040c3d333fbf87b2b 100644 (file)
@@ -1,3 +1,14 @@
+2006-07-10  Tim Omernick  <timo@apple.com>
+
+        Reviewed by Beth Dakin.
+
+        <http://bugzilla.opendarwin.org/show_bug.cgi?id=9844>:
+        Add DOM access test to DumpRenderTree's Netscape plug-in
+
+        * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
+        (testDOMAccess):
+        (pluginInvoke):
+
 2006-07-10  Mark Rowe  <opendarwin.org@bdash.net.nz>
 
         Reviewed by Darin.
index fb14438d79647651ee58080c64c6b86027915fb2..22c41f07cc955c84e356a5ddc0d1cd2b5cfff8e5 100644 (file)
@@ -76,14 +76,16 @@ static const NPUTF8 *pluginPropertyIdentifierNames[NUM_PROPERTY_IDENTIFIERS] = {
 #define ID_TEST_CALLBACK_METHOD     0
 #define ID_TEST_GETURL              1
 #define ID_REMOVE_DEFAULT_METHOD    2
+#define ID_TEST_DOM_ACCESS          3
 
-#define NUM_METHOD_IDENTIFIERS      3
+#define NUM_METHOD_IDENTIFIERS      4
 
 static NPIdentifier pluginMethodIdentifiers[NUM_METHOD_IDENTIFIERS];
 static const NPUTF8 *pluginMethodIdentifierNames[NUM_METHOD_IDENTIFIERS] = {
     "testCallback",
     "getURL",
     "removeDefaultMethod",
+    "testDOMAccess"
 };
 
 static NPUTF8* createCStringFromNPVariant(const NPVariant *variant)
@@ -131,6 +133,27 @@ static bool pluginSetProperty(NPObject *obj, NPIdentifier name, const NPVariant
     return false;
 }
 
+static void testDOMAccess(PluginObject *obj)
+{
+    // Get plug-in's DOM element
+    NPObject *elementObject;
+    if (browser->getvalue(obj->npp, NPNVPluginElementNPObject, &elementObject) == NPERR_NO_ERROR) {
+        // Get style
+        NPVariant styleVariant;
+        NPIdentifier styleIdentifier = browser->getstringidentifier("style");
+        if (browser->getproperty(obj->npp, elementObject, styleIdentifier, &styleVariant) && NPVARIANT_IS_OBJECT(styleVariant)) {
+            // Set style.border
+            NPIdentifier borderIdentifier = browser->getstringidentifier("border");
+            NPVariant borderVariant;
+            STRINGZ_TO_NPVARIANT("3px solid red", borderVariant);
+            browser->setproperty(obj->npp, NPVARIANT_TO_OBJECT(styleVariant), borderIdentifier, &borderVariant);
+            browser->releasevariantvalue(&styleVariant);
+        }
+        
+        browser->releaseobject(elementObject);
+    }
+}
+
 static bool pluginInvoke(NPObject *header, NPIdentifier name, const NPVariant *args, uint32_t argCount, NPVariant *result)
 {
     PluginObject *obj = (PluginObject *)header;
@@ -166,6 +189,10 @@ static bool pluginInvoke(NPObject *header, NPIdentifier name, const NPVariant *a
         pluginClass.invokeDefault = 0;
         VOID_TO_NPVARIANT(*result);
         return true;
+    } else if (name == pluginMethodIdentifiers[ID_TEST_DOM_ACCESS]) {
+        testDOMAccess(obj);
+        VOID_TO_NPVARIANT(*result);
+        return true;
     }
 
     return false;