Reviewed by Darin and Adam.
<rdar://problem/5688975>
div element on microsoft site has wrong left offset.
Return true even if NPN_GetProperty returns null or undefined. This matches Firefox
(and is what the Silverlight plug-in expects).
* bindings/NP_jsobject.cpp:
(_NPN_GetProperty):
WebKitTools:
Reviewed by Darin and Adam.
<rdar://problem/5688975>
div element on microsoft site has wrong left offset.
Add new method for testing the return vale of NPN_GetProperty.
* DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.cpp:
(pluginInvoke):
LayoutTests:
Reviewed by Darin and Adam.
<rdar://problem/5688975>
div element on microsoft site has wrong left offset.
Add test.
* plugins/netscape-get-property-return-value-expected.txt: Added.
* plugins/netscape-get-property-return-value.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@29726
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2008-01-22 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Darin and Adam.
+
+ <rdar://problem/5688975>
+ div element on microsoft site has wrong left offset.
+
+ Return true even if NPN_GetProperty returns null or undefined. This matches Firefox
+ (and is what the Silverlight plug-in expects).
+
+ * bindings/NP_jsobject.cpp:
+ (_NPN_GetProperty):
+
2008-01-21 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
else
result = obj->imp->get(exec, i->value.number);
- if (result->isNull()) {
- NULL_TO_NPVARIANT(*variant);
- return false;
- }
- if (result->isUndefined()) {
- VOID_TO_NPVARIANT(*variant);
- return false;
- }
convertValueToNPVariant(exec, result, variant);
return true;
}
+2008-01-22 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Darin and Adam.
+
+ <rdar://problem/5688975>
+ div element on microsoft site has wrong left offset.
+
+ Add test.
+
+ * plugins/netscape-get-property-return-value-expected.txt: Added.
+ * plugins/netscape-get-property-return-value.html: Added.
+
2008-01-22 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Adam Roben.
--- /dev/null
+ This tests that we return the correct return value when a plug-in calls NPN_GetProperty.
+SUCCESS
--- /dev/null
+<html>
+<script>
+function runTest()
+{
+ if (window.layoutTestController)
+ layoutTestController.dumpAsText();
+
+ var plugin = document.getElementById("testPlugin");
+ var result = document.getElementById('result');
+
+ var o = { stringProperty : 'foo', nullProperty : null, undefinedProperty : undefined };
+
+ if (!plugin.testGetPropertyReturnValue(o, 'stringProperty')) {
+ result.innerHTML = "FAILURE: getting stringProperty returned false";
+ return;
+ }
+
+ if (!plugin.testGetPropertyReturnValue(o, 'nullProperty')) {
+ result.innerHTML = "FAILURE: getting nullProperty returned false";
+ return;
+ }
+
+ if (!plugin.testGetPropertyReturnValue(o, 'undefinedProperty')) {
+ result.innerHTML = "FAILURE: getting undefinedProperty returned false";
+ return;
+ }
+
+ if (!plugin.testGetPropertyReturnValue(o, 'nonExistentProperty')) {
+ result.innerHTML = "FAILURE: getting undefinedProperty returned false";
+ return;
+ }
+
+ result.innerHTML = 'SUCCESS';
+}
+</script>
+
+<body onload="runTest();">
+<embed id="testPlugin" type="application/x-webkit-test-netscape" width="200" height="200"></embed>
+This tests that we return the correct return value when a plug-in calls NPN_GetProperty.
+<div id="result">FAILURE</div>
+</body>
+</html>
+2008-01-22 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Darin and Adam.
+
+ <rdar://problem/5688975>
+ div element on microsoft site has wrong left offset.
+
+ Add new method for testing the return vale of NPN_GetProperty.
+
+ * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.cpp:
+ (pluginInvoke):
+
2008-01-22 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Adam Roben.
#define ID_TEST_GETINTIDENTIFIER 8
#define ID_TEST_GET_PROPERTY 9
#define ID_TEST_EVALUATE 10
-#define NUM_METHOD_IDENTIFIERS 11
+#define ID_TEST_GET_PROPERTY_RETURN_VALUE 11
+#define NUM_METHOD_IDENTIFIERS 12
static NPIdentifier pluginMethodIdentifiers[NUM_METHOD_IDENTIFIERS];
static const NPUTF8 *pluginMethodIdentifierNames[NUM_METHOD_IDENTIFIERS] = {
"testGetIntIdentifier",
"testGetProperty",
"testEvaluate",
+ "testGetPropertyReturnValue",
};
static NPUTF8* createCStringFromNPVariant(const NPVariant *variant)
VOID_TO_NPVARIANT(*result);
return false;
+ } else if (name == pluginMethodIdentifiers[ID_TEST_GET_PROPERTY_RETURN_VALUE] &&
+ argCount == 2 && NPVARIANT_IS_OBJECT(args[0]) && NPVARIANT_IS_STRING(args[1])) {
+ NPUTF8* propertyString = createCStringFromNPVariant(&args[1]);
+ NPIdentifier propertyIdentifier = browser->getstringidentifier(propertyString);
+ free(propertyString);
+
+ NPVariant variant;
+ bool retval = browser->getproperty(obj->npp, NPVARIANT_TO_OBJECT(args[0]), propertyIdentifier, &variant);
+ if (retval)
+ browser->releasevariantvalue(&variant);
+
+ BOOLEAN_TO_NPVARIANT(retval, *result);
+ return true;
}
-
return false;
}