Changeset 35049 in webkit
- Timestamp:
- Jul 7, 2008 4:51:56 PM (16 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r35047 r35049 1 2008-07-07 Cameron Zwarich <cwzwarich@uwaterloo.ca> 2 3 Reviewed by Geoff. 4 5 Bug 19907: REGRESSION(r34824-r34941): Reproducible crash trying to log in to MediaTemple.net Account Center 6 <https://bugs.webkit.org/show_bug.cgi?id=19907> 7 8 Clear exceptions set on ExecStates before returning from NPAPI 9 callbacks, in order to avoid causing problems for the next script that 10 executes. 11 12 While fixing this bug, the question was raised of whether we are 13 correctly propagating exception information back to the caller: 14 15 Bug 19936: Correctly propagate exception information from NPAPI callbacks 16 <https://bugs.webkit.org/show_bug.cgi?id=19936> 17 18 * bridge/NP_jsobject.cpp: 19 (_NPN_InvokeDefault): 20 (_NPN_Invoke): 21 (_NPN_Evaluate): 22 (_NPN_GetProperty): 23 (_NPN_SetProperty): 24 (_NPN_RemoveProperty): 25 (_NPN_HasProperty): 26 (_NPN_HasMethod): 27 (_NPN_Enumerate): 28 1 29 2008-07-07 Dan Bernstein <mitz@apple.com> 2 30 -
trunk/WebCore/bridge/NP_jsobject.cpp
r35007 r35049 124 124 // Convert and return the result of the function call. 125 125 convertValueToNPVariant(exec, resultV, result); 126 exec->clearException(); 126 127 return true; 127 128 } … … 172 173 // Convert and return the result of the function call. 173 174 convertValueToNPVariant(exec, resultV, result); 175 exec->clearException(); 174 176 return true; 175 177 } … … 209 211 210 212 convertValueToNPVariant(exec, result, variant); 211 213 exec->clearException(); 212 214 return true; 213 215 } … … 237 239 238 240 convertValueToNPVariant(exec, result, variant); 241 exec->clearException(); 239 242 return true; 240 243 } … … 266 269 else 267 270 obj->imp->put(exec, i->value.number, convertNPVariantToValue(exec, variant, rootObject)); 271 exec->clearException(); 268 272 return true; 269 273 } … … 287 291 PrivateIdentifier* i = static_cast<PrivateIdentifier*>(propertyName); 288 292 if (i->isString) { 289 if (!obj->imp->hasProperty(exec, identifierFromNPIdentifier(i->value.string))) 293 if (!obj->imp->hasProperty(exec, identifierFromNPIdentifier(i->value.string))) { 294 exec->clearException(); 290 295 return false; 296 } 291 297 } else { 292 if (!obj->imp->hasProperty(exec, i->value.number)) 298 if (!obj->imp->hasProperty(exec, i->value.number)) { 299 exec->clearException(); 293 300 return false; 301 } 294 302 } 295 303 … … 299 307 else 300 308 obj->imp->deleteProperty(exec, i->value.number); 301 309 310 exec->clearException(); 302 311 return true; 303 312 } … … 317 326 PrivateIdentifier* i = static_cast<PrivateIdentifier*>(propertyName); 318 327 JSLock lock(false); 319 if (i->isString) 320 return obj->imp->hasProperty(exec, identifierFromNPIdentifier(i->value.string)); 321 return obj->imp->hasProperty(exec, i->value.number); 328 if (i->isString) { 329 bool result = obj->imp->hasProperty(exec, identifierFromNPIdentifier(i->value.string)); 330 exec->clearException(); 331 return result; 332 } 333 334 bool result = obj->imp->hasProperty(exec, i->value.number); 335 exec->clearException(); 336 return result; 322 337 } 323 338 … … 344 359 JSLock lock(false); 345 360 JSValue* func = obj->imp->get(exec, identifierFromNPIdentifier(i->value.string)); 361 exec->clearException(); 346 362 return !func->isUndefined(); 347 363 } … … 383 399 *identifier = identifiers; 384 400 *count = size; 385 401 402 exec->clearException(); 386 403 return true; 387 404 }
Note: See TracChangeset
for help on using the changeset viewer.