OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2010 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 17 matching lines...) Expand all Loading... |
28 #include <string.h> | 28 #include <string.h> |
29 | 29 |
30 using namespace std; | 30 using namespace std; |
31 | 31 |
32 class NPRuntimeRemoveProperty : public PluginTest { | 32 class NPRuntimeRemoveProperty : public PluginTest { |
33 public: | 33 public: |
34 NPRuntimeRemoveProperty(NPP npp, const string& identifier) | 34 NPRuntimeRemoveProperty(NPP npp, const string& identifier) |
35 : PluginTest(npp, identifier) | 35 : PluginTest(npp, identifier) |
36 { | 36 { |
37 } | 37 } |
38 | 38 |
39 private: | 39 private: |
40 struct TestObject : Object<TestObject> { | 40 struct TestObject : Object<TestObject> { |
41 public: | 41 public: |
42 TestObject() | 42 TestObject() |
43 : m_lastRemovedProperty(0) | 43 : m_lastRemovedProperty(0) |
44 { | 44 { |
45 } | 45 } |
46 | 46 |
47 bool hasProperty(NPIdentifier propertyName) | 47 bool hasProperty(NPIdentifier propertyName) |
48 { | 48 { |
49 if (identifierIs(propertyName, "lastRemovedProperty")) | 49 if (identifierIs(propertyName, "lastRemovedProperty")) |
50 return true; | 50 return true; |
51 | 51 |
52 return false; | 52 return false; |
53 } | 53 } |
54 | 54 |
55 bool getProperty(NPIdentifier propertyName, NPVariant* result) | 55 bool getProperty(NPIdentifier propertyName, NPVariant* result) |
56 { | 56 { |
57 assert(identifierIs(propertyName, "lastRemovedProperty")); | 57 assert(identifierIs(propertyName, "lastRemovedProperty")); |
58 | 58 |
59 if (!m_lastRemovedProperty) | 59 if (!m_lastRemovedProperty) |
60 return false; | 60 return false; |
61 | 61 |
62 if (pluginTest()->NPN_IdentifierIsString(m_lastRemovedProperty)) { | 62 if (pluginTest()->NPN_IdentifierIsString(m_lastRemovedProperty)) { |
63 char* lastRemovedPropertyName = pluginTest()->NPN_UTF8FromIdenti
fier(m_lastRemovedProperty); | 63 char* lastRemovedPropertyName = pluginTest()->NPN_UTF8FromIdenti
fier(m_lastRemovedProperty); |
64 | 64 |
65 STRINGZ_TO_NPVARIANT(lastRemovedPropertyName, *result); | 65 STRINGZ_TO_NPVARIANT(lastRemovedPropertyName, *result); |
66 return true; | 66 return true; |
67 } | 67 } |
68 | 68 |
69 int intIdentifier = pluginTest()->NPN_IntFromIdentifier(m_lastRemove
dProperty); | 69 int intIdentifier = pluginTest()->NPN_IntFromIdentifier(m_lastRemove
dProperty); |
70 DOUBLE_TO_NPVARIANT(intIdentifier, *result); | 70 DOUBLE_TO_NPVARIANT(intIdentifier, *result); |
71 return true; | 71 return true; |
72 } | 72 } |
73 | 73 |
74 bool removeProperty(NPIdentifier propertyName) | 74 bool removeProperty(NPIdentifier propertyName) |
(...skipping 29 matching lines...) Expand all Loading... |
104 | 104 |
105 bool invoke(NPIdentifier methodName, const NPVariant* arguments, uint32_
t argumentCount, NPVariant* result) | 105 bool invoke(NPIdentifier methodName, const NPVariant* arguments, uint32_
t argumentCount, NPVariant* result) |
106 { | 106 { |
107 assert(identifierIs(methodName, "testRemoveProperty")); | 107 assert(identifierIs(methodName, "testRemoveProperty")); |
108 | 108 |
109 if (argumentCount != 2) | 109 if (argumentCount != 2) |
110 return false; | 110 return false; |
111 | 111 |
112 if (!NPVARIANT_IS_OBJECT(arguments[0])) | 112 if (!NPVARIANT_IS_OBJECT(arguments[0])) |
113 return false; | 113 return false; |
114 | 114 |
115 if (!NPVARIANT_IS_STRING(arguments[1]) && !NPVARIANT_IS_DOUBLE(argum
ents[1])) | 115 if (!NPVARIANT_IS_STRING(arguments[1]) && !NPVARIANT_IS_DOUBLE(argum
ents[1])) |
116 return false; | 116 return false; |
117 | 117 |
118 NPIdentifier propertyName; | 118 NPIdentifier propertyName; |
119 if (NPVARIANT_IS_STRING(arguments[1])) { | 119 if (NPVARIANT_IS_STRING(arguments[1])) { |
120 string propertyNameString(arguments[1].value.stringValue.UTF8Cha
racters, | 120 string propertyNameString(arguments[1].value.stringValue.UTF8Cha
racters, |
121 arguments[1].value.stringValue.UTF8Len
gth); | 121 arguments[1].value.stringValue.UTF8Len
gth); |
122 | 122 |
123 propertyName = pluginTest()->NPN_GetStringIdentifier(propertyNam
eString.c_str()); | 123 propertyName = pluginTest()->NPN_GetStringIdentifier(propertyNam
eString.c_str()); |
124 } else { | 124 } else { |
125 int32_t number = static_cast<int32_t>(arguments[1].value.doubleV
alue); | 125 int32_t number = static_cast<int32_t>(arguments[1].value.doubleV
alue); |
126 propertyName = pluginTest()->NPN_GetIntIdentifier(number); | 126 propertyName = pluginTest()->NPN_GetIntIdentifier(number); |
127 } | 127 } |
128 | 128 |
129 pluginTest()->NPN_RemoveProperty(NPVARIANT_TO_OBJECT(arguments[0]),
propertyName); | 129 pluginTest()->NPN_RemoveProperty(NPVARIANT_TO_OBJECT(arguments[0]),
propertyName); |
130 | 130 |
131 VOID_TO_NPVARIANT(*result); | 131 VOID_TO_NPVARIANT(*result); |
132 return true; | 132 return true; |
133 } | 133 } |
134 | 134 |
135 bool hasProperty(NPIdentifier propertyName) | 135 bool hasProperty(NPIdentifier propertyName) |
136 { | 136 { |
137 if (identifierIs(propertyName, "testObject")) | 137 if (identifierIs(propertyName, "testObject")) |
138 return true; | 138 return true; |
139 | 139 |
140 return false; | 140 return false; |
141 } | 141 } |
142 | 142 |
143 bool getProperty(NPIdentifier propertyName, NPVariant* result) | 143 bool getProperty(NPIdentifier propertyName, NPVariant* result) |
144 { | 144 { |
145 assert(identifierIs(propertyName, "testObject")); | 145 assert(identifierIs(propertyName, "testObject")); |
146 | 146 |
147 if (!m_testObject) | 147 if (!m_testObject) |
148 m_testObject = TestObject::create(pluginTest()); | 148 m_testObject = TestObject::create(pluginTest()); |
149 | 149 |
150 OBJECT_TO_NPVARIANT(pluginTest()->NPN_RetainObject(m_testObject), *r
esult); | 150 OBJECT_TO_NPVARIANT(pluginTest()->NPN_RetainObject(m_testObject), *r
esult); |
151 return true; | 151 return true; |
152 } | 152 } |
153 | 153 |
154 private: | 154 private: |
155 NPObject* m_testObject; | 155 NPObject* m_testObject; |
156 }; | 156 }; |
157 | 157 |
158 virtual NPError NPP_GetValue(NPPVariable variable, void *value) | 158 virtual NPError NPP_GetValue(NPPVariable variable, void *value) |
159 { | 159 { |
160 if (variable != NPPVpluginScriptableNPObject) | 160 if (variable != NPPVpluginScriptableNPObject) |
161 return NPERR_GENERIC_ERROR; | 161 return NPERR_GENERIC_ERROR; |
162 | 162 |
163 *(NPObject**)value = PluginObject::create(this); | 163 *(NPObject**)value = PluginObject::create(this); |
164 | 164 |
165 return NPERR_NO_ERROR; | 165 return NPERR_NO_ERROR; |
166 } | 166 } |
167 | 167 |
168 }; | 168 }; |
169 | 169 |
170 static PluginTest::Register<NPRuntimeRemoveProperty> npRuntimeRemoveProperty("np
runtime-remove-property"); | 170 static PluginTest::Register<NPRuntimeRemoveProperty> npRuntimeRemoveProperty("np
runtime-remove-property"); |
OLD | NEW |