Changeset 64246 in webkit
- Timestamp:
- Jul 28, 2010 5:14:08 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r64244 r64246 1 2010-07-28 Anders Carlsson <andersca@apple.com> 2 3 Reviewed by Sam Weinig. 4 5 Implement NPN_InvokeDefault and NPN_Construct 6 https://bugs.webkit.org/show_bug.cgi?id=43160 7 8 * platform/mac-wk2/Skipped: 9 Remove plugins/npruntime/invoke-default.html 10 1 11 2010-07-28 Tony Chang <tony@chromium.org> 2 12 -
trunk/LayoutTests/platform/mac-wk2/Skipped
r64244 r64246 1415 1415 plugins/npruntime/enumerate.html 1416 1416 plugins/npruntime/get-property-return-value.html 1417 plugins/npruntime/invoke-default.html1418 1417 plugins/npruntime/npruntime.html 1419 1418 plugins/npruntime/round-trip-npobject.html -
trunk/WebKit2/ChangeLog
r64244 r64246 1 2010-07-28 Anders Carlsson <andersca@apple.com> 2 3 Reviewed by Sam Weinig. 4 5 Implement NPN_InvokeDefault and NPN_Construct 6 https://bugs.webkit.org/show_bug.cgi?id=43160 7 8 * WebProcess/Plugins/NPJSObject.cpp: 9 (WebKit::NPJSObject::invoke): 10 Just call invoke directly. 11 12 (WebKit::NPJSObject::invokeDefault): 13 Call invoke. 14 15 (WebKit::NPJSObject::construct): 16 Implement this. 17 18 (WebKit::NPJSObject::invoke): 19 Add new invoke overload that takes the function as a JSValue. 20 21 (WebKit::NPJSObject::npClass): 22 Add NP_Construct. 23 24 (WebKit::NPJSObject::NP_InvokeDefault): 25 Call NPJSObject::invokeDefault. 26 27 (WebKit::NPJSObject::NP_Construct): 28 Call NPJSObject::construct. 29 30 * WebProcess/Plugins/NPJSObject.h: 31 * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: 32 (WebKit::NPN_GetValue): 33 Handle the Core Animation drawing model and the Carbon event model. 34 35 (WebKit::NPN_InvokeDefault): 36 Call the NPClass::invokeDefault function. 37 38 (WebKit::NPN_Construct): 39 Call the NPClass::construct function. 40 1 41 2010-07-28 Anders Carlsson <andersca@apple.com> 2 42 -
trunk/WebKit2/WebProcess/Plugins/NPJSObject.cpp
r64244 r64246 117 117 118 118 JSValue function = m_jsObject->get(exec, identifierFromIdentifierRep(exec, identifierRep)); 119 CallData callData; 120 CallType callType = getCallData(function, callData); 121 if (callType == CallTypeNone) 122 return false; 123 124 // Convert the passed in arguments. 125 MarkedArgumentBuffer argumentList; 126 for (uint32_t i = 0; i < argumentCount; ++i) 127 argumentList.append(m_objectMap->convertNPVariantToJSValue(exec, arguments[i])); 128 129 exec->globalData().timeoutChecker.start(); 130 JSValue value = JSC::call(exec, function, callType, callData, m_jsObject, argumentList); 131 exec->globalData().timeoutChecker.stop(); 132 133 // Convert and return the result of the function call. 134 m_objectMap->convertJSValueToNPVariant(exec, value, *result); 135 exec->clearException(); 136 137 return true; 119 return invoke(exec, function, arguments, argumentCount, result); 120 } 121 122 bool NPJSObject::invokeDefault(const NPVariant *arguments, uint32_t argumentCount, NPVariant *result) 123 { 124 ExecState* exec = m_objectMap->globalExec(); 125 if (!exec) 126 return false; 127 128 JSLock lock(SilenceAssertionsOnly); 129 130 JSValue function = m_jsObject; 131 return invoke(exec, function, arguments, argumentCount, result); 138 132 } 139 133 … … 175 169 m_objectMap->convertJSValueToNPVariant(exec, jsResult, *result); 176 170 exec->clearException(); 171 return true; 172 } 173 174 bool NPJSObject::construct(const NPVariant *arguments, uint32_t argumentCount, NPVariant *result) 175 { 176 ExecState* exec = m_objectMap->globalExec(); 177 if (!exec) 178 return false; 179 180 JSLock lock(SilenceAssertionsOnly); 181 182 ConstructData constructData; 183 ConstructType constructType = getConstructData(m_jsObject, constructData); 184 if (constructType == ConstructTypeNone) 185 return false; 186 187 // Convert the passed in arguments. 188 MarkedArgumentBuffer argumentList; 189 for (uint32_t i = 0; i < argumentCount; ++i) 190 argumentList.append(m_objectMap->convertNPVariantToJSValue(exec, arguments[i])); 191 192 exec->globalData().timeoutChecker.start(); 193 JSValue value = JSC::construct(exec, m_jsObject, constructType, constructData, argumentList); 194 exec->globalData().timeoutChecker.stop(); 195 196 // Convert and return the new object. 197 m_objectMap->convertJSValueToNPVariant(exec, value, *result); 198 exec->clearException(); 199 200 return true; 201 } 202 203 bool NPJSObject::invoke(ExecState* exec, JSValue function, const NPVariant* arguments, uint32_t argumentCount, NPVariant* result) 204 { 205 CallData callData; 206 CallType callType = getCallData(function, callData); 207 if (callType == CallTypeNone) 208 return false; 209 210 // Convert the passed in arguments. 211 MarkedArgumentBuffer argumentList; 212 for (uint32_t i = 0; i < argumentCount; ++i) 213 argumentList.append(m_objectMap->convertNPVariantToJSValue(exec, arguments[i])); 214 215 exec->globalData().timeoutChecker.start(); 216 JSValue value = JSC::call(exec, function, callType, callData, m_jsObject, argumentList); 217 exec->globalData().timeoutChecker.stop(); 218 219 // Convert and return the result of the function call. 220 m_objectMap->convertJSValueToNPVariant(exec, value, *result); 221 exec->clearException(); 222 177 223 return true; 178 224 } … … 193 239 0, 194 240 0, 195 0241 NP_Construct 196 242 }; 197 243 … … 222 268 } 223 269 224 bool NPJSObject::NP_InvokeDefault(NPObject*, const NPVariant* arguments, uint32_t argumentCount, NPVariant* result) 270 bool NPJSObject::NP_InvokeDefault(NPObject* npObject, const NPVariant* arguments, uint32_t argumentCount, NPVariant* result) 271 { 272 return toNPJSObject(npObject)->invokeDefault(arguments, argumentCount, result); 273 } 274 275 bool NPJSObject::NP_HasProperty(NPObject* npObject, NPIdentifier propertyName) 276 { 277 return toNPJSObject(npObject)->hasProperty(propertyName); 278 } 279 280 bool NPJSObject::NP_GetProperty(NPObject* npObject, NPIdentifier propertyName, NPVariant* result) 281 { 282 return toNPJSObject(npObject)->getProperty(propertyName, result); 283 } 284 285 bool NPJSObject::NP_SetProperty(NPObject*, NPIdentifier propertyName, const NPVariant* value) 225 286 { 226 287 notImplemented(); 227 288 return false; 228 289 } 229 230 bool NPJSObject::NP_HasProperty(NPObject* npObject, NPIdentifier propertyName) 231 { 232 return toNPJSObject(npObject)->hasProperty(propertyName); 233 } 234 235 bool NPJSObject::NP_GetProperty(NPObject* npObject, NPIdentifier propertyName, NPVariant* result) 236 { 237 return toNPJSObject(npObject)->getProperty(propertyName, result); 238 } 239 240 bool NPJSObject::NP_SetProperty(NPObject*, NPIdentifier propertyName, const NPVariant* value) 241 { 242 notImplemented(); 243 return false; 244 } 245 290 291 bool NPJSObject::NP_Construct(NPObject* npObject, const NPVariant* arguments, uint32_t argumentCount, NPVariant* result) 292 { 293 return toNPJSObject(npObject)->construct(arguments, argumentCount, result); 294 } 295 246 296 } // namespace WebKit -
trunk/WebKit2/WebProcess/Plugins/NPJSObject.h
r64244 r64246 61 61 62 62 bool hasMethod(NPIdentifier methodName); 63 bool invoke(NPIdentifier methodName, const NPVariant *arguments, uint32_t argumentCount, NPVariant *result); 63 bool invoke(NPIdentifier methodName, const NPVariant* arguments, uint32_t argumentCount, NPVariant* result); 64 bool invokeDefault(const NPVariant* arguments, uint32_t argumentCount, NPVariant* result); 64 65 bool hasProperty(NPIdentifier propertyName); 65 66 bool getProperty(NPIdentifier propertyName, NPVariant* result); 67 bool construct(const NPVariant* arguments, uint32_t argumentCount, NPVariant* result); 68 69 bool invoke(JSC::ExecState*, JSC::JSValue function, const NPVariant* arguments, uint32_t argumentCount, NPVariant* result); 66 70 67 71 static NPClass* npClass(); … … 69 73 static void NP_Deallocate(NPObject*); 70 74 static bool NP_HasMethod(NPObject*, NPIdentifier methodName); 71 static bool NP_Invoke(NPObject*, NPIdentifier methodName, const NPVariant *arguments, uint32_t argumentCount, NPVariant *result);72 static bool NP_InvokeDefault(NPObject*, const NPVariant *arguments, uint32_t argumentCount, NPVariant *result);75 static bool NP_Invoke(NPObject*, NPIdentifier methodName, const NPVariant* arguments, uint32_t argumentCount, NPVariant* result); 76 static bool NP_InvokeDefault(NPObject*, const NPVariant* arguments, uint32_t argumentCount, NPVariant* result); 73 77 static bool NP_HasProperty(NPObject*, NPIdentifier propertyName); 74 78 static bool NP_GetProperty(NPObject*, NPIdentifier propertyName, NPVariant* result); 75 79 static bool NP_SetProperty(NPObject*, NPIdentifier propertyName, const NPVariant* value); 80 static bool NP_Construct(NPObject*, const NPVariant* arguments, uint32_t argumentCount, NPVariant* result); 76 81 77 82 NPRuntimeObjectMap* m_objectMap; -
trunk/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp
r64244 r64246 408 408 case NPNVsupportsCoreGraphicsBool: 409 409 // Always claim to support the Core Graphics drawing model. 410 *(NPBool *)value = true; 410 *(NPBool*)value = true; 411 break; 412 413 case NPNVsupportsCoreAnimationBool: 414 // FIXME: We should support the Core Animation drawing model. 415 *(NPBool*)value = false; 411 416 break; 412 417 413 418 case NPNVsupportsCocoaBool: 414 419 // Always claim to support the Cocoa event model. 415 *(NPBool *)value = true; 420 *(NPBool*)value = true; 421 break; 422 423 case NPNVsupportsCarbonBool: 424 // FIXME: We should support the Carbon event model. 425 *(NPBool*)value = false; 416 426 break; 417 427 #endif … … 539 549 } 540 550 541 static bool NPN_InvokeDefault(NPP npp, NPObject *npobj, const NPVariant *args, uint32_t argCount, NPVariant *result) 542 { 543 notImplemented(); 551 static bool NPN_InvokeDefault(NPP, NPObject *npObject, const NPVariant *arguments, uint32_t argumentCount, NPVariant *result) 552 { 553 if (npObject->_class->invokeDefault) 554 return npObject->_class->invokeDefault(npObject, arguments, argumentCount, result); 555 544 556 return false; 545 557 } … … 621 633 } 622 634 623 static bool NPN_Construct(NPP npp, NPObject* npobj, const NPVariant* args, uint32_t argCount, NPVariant* result) 624 { 625 notImplemented(); 635 static bool NPN_Construct(NPP, NPObject* npObject, const NPVariant* arguments, uint32_t argumentCount, NPVariant* result) 636 { 637 if (NP_CLASS_STRUCT_VERSION_HAS_CTOR(npObject->_class) && npObject->_class->construct) 638 return npObject->_class->construct(npObject, arguments, argumentCount, result); 639 626 640 return false; 627 641 }
Note: See TracChangeset
for help on using the changeset viewer.