diff options
author | Ben Murdoch <benm@google.com> | 2011-05-05 14:36:32 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-05-10 15:38:30 +0100 |
commit | f05b935882198ccf7d81675736e3aeb089c5113a (patch) | |
tree | 4ea0ca838d9ef1b15cf17ddb3928efb427c7e5a1 /WebKitTools/DumpRenderTree/TestNetscapePlugIn/TestObject.cpp | |
parent | 60fbdcc62bced8db2cb1fd233cc4d1e4ea17db1b (diff) | |
download | external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.zip external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.gz external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.bz2 |
Merge WebKit at r74534: Initial merge by git.
Change-Id: I6ccd1154fa1b19c2ec2a66878eb675738735f1eb
Diffstat (limited to 'WebKitTools/DumpRenderTree/TestNetscapePlugIn/TestObject.cpp')
-rw-r--r-- | WebKitTools/DumpRenderTree/TestNetscapePlugIn/TestObject.cpp | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/WebKitTools/DumpRenderTree/TestNetscapePlugIn/TestObject.cpp b/WebKitTools/DumpRenderTree/TestNetscapePlugIn/TestObject.cpp deleted file mode 100644 index 9e65f11..0000000 --- a/WebKitTools/DumpRenderTree/TestNetscapePlugIn/TestObject.cpp +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright (C) 2007 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "TestObject.h" -#include "PluginObject.h" - -#include <string.h> -#include <stdlib.h> - -static bool testEnumerate(NPObject *npobj, NPIdentifier **value, uint32_t *count); -static bool testHasMethod(NPObject*, NPIdentifier name); -static bool testInvoke(NPObject*, NPIdentifier name, const NPVariant* args, uint32_t argCount, NPVariant* result); -static bool testHasProperty(NPObject*, NPIdentifier name); -static bool testGetProperty(NPObject*, NPIdentifier name, NPVariant*); -static NPObject *testAllocate(NPP npp, NPClass *theClass); -static void testDeallocate(NPObject *obj); -static bool testConstruct(NPObject* obj, const NPVariant* args, uint32_t argCount, NPVariant* result); - -static NPClass testClass = { - NP_CLASS_STRUCT_VERSION, - testAllocate, - testDeallocate, - 0, - testHasMethod, - testInvoke, - 0, - testHasProperty, - testGetProperty, - 0, - 0, - testEnumerate, - testConstruct -}; - -NPClass *getTestClass(void) -{ - return &testClass; -} - -static int testObjectCount = 0; - -int getTestObjectCount() -{ - return testObjectCount; -} - -typedef struct { - NPObject header; - NPObject* testObject; -} TestObject; - -static bool identifiersInitialized = false; - -#define NUM_ENUMERATABLE_TEST_IDENTIFIERS 2 - -enum { - ID_PROPERTY_FOO = 0, - ID_PROPERTY_BAR, - ID_PROPERTY_OBJECT_POINTER, - ID_PROPERTY_TEST_OBJECT, - ID_PROPERTY_REF_COUNT, - NUM_TEST_IDENTIFIERS, -}; - -static NPIdentifier testIdentifiers[NUM_TEST_IDENTIFIERS]; -static const NPUTF8 *testIdentifierNames[NUM_TEST_IDENTIFIERS] = { - "foo", - "bar", - "objectPointer", - "testObject", - "refCount", -}; - -#define ID_THROW_EXCEPTION_METHOD 0 -#define NUM_METHOD_IDENTIFIERS 1 - -static NPIdentifier testMethodIdentifiers[NUM_METHOD_IDENTIFIERS]; -static const NPUTF8 *testMethodIdentifierNames[NUM_METHOD_IDENTIFIERS] = { - "throwException", -}; - -static void initializeIdentifiers(void) -{ - browser->getstringidentifiers(testIdentifierNames, NUM_TEST_IDENTIFIERS, testIdentifiers); - browser->getstringidentifiers(testMethodIdentifierNames, NUM_METHOD_IDENTIFIERS, testMethodIdentifiers); -} - -static NPObject* testAllocate(NPP /*npp*/, NPClass* /*theClass*/) -{ - TestObject* newInstance = static_cast<TestObject*>(malloc(sizeof(TestObject))); - newInstance->testObject = 0; - ++testObjectCount; - - if (!identifiersInitialized) { - identifiersInitialized = true; - initializeIdentifiers(); - } - - return reinterpret_cast<NPObject*>(newInstance); -} - -static void testDeallocate(NPObject *obj) -{ - TestObject* testObject = reinterpret_cast<TestObject*>(obj); - if (testObject->testObject) - browser->releaseobject(testObject->testObject); - - --testObjectCount; - free(obj); -} - -static bool testHasMethod(NPObject*, NPIdentifier name) -{ - for (unsigned i = 0; i < NUM_METHOD_IDENTIFIERS; i++) { - if (testMethodIdentifiers[i] == name) - return true; - } - return false; -} - -static bool testInvoke(NPObject* header, NPIdentifier name, const NPVariant* /*args*/, uint32_t /*argCount*/, NPVariant* /*result*/) -{ - if (name == testMethodIdentifiers[ID_THROW_EXCEPTION_METHOD]) { - browser->setexception(header, "test object throwException SUCCESS"); - return true; - } - return false; -} - -static bool testHasProperty(NPObject*, NPIdentifier name) -{ - for (unsigned i = 0; i < NUM_TEST_IDENTIFIERS; i++) { - if (testIdentifiers[i] == name) - return true; - } - - return false; -} - -static bool testGetProperty(NPObject* npobj, NPIdentifier name, NPVariant* result) -{ - if (name == testIdentifiers[ID_PROPERTY_FOO]) { - char* mem = static_cast<char*>(browser->memalloc(4)); - strcpy(mem, "foo"); - STRINGZ_TO_NPVARIANT(mem, *result); - return true; - } - if (name == testIdentifiers[ID_PROPERTY_OBJECT_POINTER]) { - int32_t objectPointer = static_cast<int32_t>(reinterpret_cast<long long>(npobj)); - - INT32_TO_NPVARIANT(objectPointer, *result); - return true; - } - if (name == testIdentifiers[ID_PROPERTY_TEST_OBJECT]) { - TestObject* testObject = reinterpret_cast<TestObject*>(npobj); - if (!testObject->testObject) - testObject->testObject = browser->createobject(0, &testClass); - browser->retainobject(testObject->testObject); - OBJECT_TO_NPVARIANT(testObject->testObject, *result); - return true; - } - if (name == testIdentifiers[ID_PROPERTY_REF_COUNT]) { - INT32_TO_NPVARIANT(npobj->referenceCount, *result); - return true; - } - - return false; -} - -static bool testEnumerate(NPObject* /*npobj*/, NPIdentifier **value, uint32_t *count) -{ - *count = NUM_ENUMERATABLE_TEST_IDENTIFIERS; - - *value = (NPIdentifier*)browser->memalloc(NUM_ENUMERATABLE_TEST_IDENTIFIERS * sizeof(NPIdentifier)); - memcpy(*value, testIdentifiers, sizeof(NPIdentifier) * NUM_ENUMERATABLE_TEST_IDENTIFIERS); - - return true; -} - -static bool testConstruct(NPObject* npobj, const NPVariant* /*args*/, uint32_t /*argCount*/, NPVariant* result) -{ - browser->retainobject(npobj); - - // Just return the same object. - OBJECT_TO_NPVARIANT(npobj, *result); - return true; -} |