Reviewed by Darin.
[WebKit-https.git] / WebKitTools / DumpRenderTree / TestNetscapePlugIn.subproj / PluginObject.c
index 65d6457789532a267f9e6c40dac67528e8d09bb3..1612b0e3baf4b5b7b46a18a31f1517333f839811 100644 (file)
@@ -71,11 +71,13 @@ static const NPUTF8 *pluginPropertyIdentifierNames[NUM_PROPERTY_IDENTIFIERS] = {
 };
 
 #define ID_TEST_CALLBACK_METHOD     0
-#define NUM_METHOD_IDENTIFIERS      1
+#define ID_TEST_GETURL              1
+#define NUM_METHOD_IDENTIFIERS      2
 
 static NPIdentifier pluginMethodIdentifiers[NUM_METHOD_IDENTIFIERS];
 static const NPUTF8 *pluginMethodIdentifierNames[NUM_METHOD_IDENTIFIERS] = {
-    "testCallback"
+    "testCallback",
+    "getURL"
 };
 
 static void initializeIdentifiers()
@@ -138,8 +140,25 @@ void pluginInvoke (PluginObject *obj, NPIdentifier name, NPVariant *args, unsign
             NPIdentifier callbackMethodID = browser->getstringidentifier(callbackString);
             browser->invoke(obj->npp, windowScriptObject, callbackMethodID, 0, 0, &browserResult);
         }
+    } else if (name == pluginMethodIdentifiers[ID_TEST_GETURL]) {
+        if (argCount == 2 && args[0].type == NPVariantType_String && args[1].type == NPVariantType_String) {
+            NPString argString = args[0].value.stringValue;
+            int size = argString.UTF8Length + 1;
+            NPUTF8 urlString[size];
+            strncpy(urlString, argString.UTF8Characters, argString.UTF8Length);
+            urlString[size - 1] = '\0';
+
+            argString = args[1].value.stringValue;
+            size = argString.UTF8Length + 1;
+            NPUTF8 targetString[size];
+            strncpy(targetString, argString.UTF8Characters, argString.UTF8Length);
+            targetString[size - 1] = '\0';
+            
+            browser->geturl(obj->npp, urlString, targetString);
+        }
     }
 
+
     result->type = NPVariantType_Void;
 }