| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009 Google 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 are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 461 | 461 |
| 462 // FIXME: Move staticNPObjectMap() to DOMDataStore. | 462 // FIXME: Move staticNPObjectMap() to DOMDataStore. |
| 463 // Use V8DOMWrapper::createWrapper() and | 463 // Use V8DOMWrapper::createWrapper() and |
| 464 // V8DOMWrapper::associateObjectWithWrapper() | 464 // V8DOMWrapper::associateObjectWithWrapper() |
| 465 // to create a wrapper object. | 465 // to create a wrapper object. |
| 466 v8::Handle<v8::Function> v8Function = npObjectDesc.Get(isolate)->GetFunction
(); | 466 v8::Handle<v8::Function> v8Function = npObjectDesc.Get(isolate)->GetFunction
(); |
| 467 v8::Local<v8::Object> value = V8ObjectConstructor::newInstance(isolate, v8Fu
nction); | 467 v8::Local<v8::Object> value = V8ObjectConstructor::newInstance(isolate, v8Fu
nction); |
| 468 if (value.IsEmpty()) | 468 if (value.IsEmpty()) |
| 469 return value; | 469 return value; |
| 470 | 470 |
| 471 V8DOMWrapper::setNativeInfo(value, npObjectTypeInfo(), object); | 471 V8DOMWrapper::setNativeInfo(value, npObjectTypeInfo(), npObjectToInternalPoi
nter(object)); |
| 472 | 472 |
| 473 // KJS retains the object as part of its wrapper (see Bindings::CInstance). | 473 // KJS retains the object as part of its wrapper (see Bindings::CInstance). |
| 474 _NPN_RetainObject(object); | 474 _NPN_RetainObject(object); |
| 475 _NPN_RegisterObject(object, root); | 475 _NPN_RegisterObject(object, root); |
| 476 | 476 |
| 477 WrapperConfiguration configuration = buildWrapperConfiguration(object, Wrapp
erConfiguration::Dependent); | 477 WrapperConfiguration configuration = buildWrapperConfiguration(object, Wrapp
erConfiguration::Dependent); |
| 478 staticNPObjectMap().set(object, value, configuration); | 478 staticNPObjectMap().set(object, value, configuration); |
| 479 ASSERT(V8DOMWrapper::isDOMWrapper(value)); | 479 ASSERT(V8DOMWrapper::isDOMWrapper(value)); |
| 480 return value; | 480 return value; |
| 481 } | 481 } |
| 482 | 482 |
| 483 void forgetV8ObjectForNPObject(NPObject* object) | 483 void forgetV8ObjectForNPObject(NPObject* object) |
| 484 { | 484 { |
| 485 v8::Isolate* isolate = v8::Isolate::GetCurrent(); | 485 v8::Isolate* isolate = v8::Isolate::GetCurrent(); |
| 486 v8::HandleScope scope(isolate); | 486 v8::HandleScope scope(isolate); |
| 487 v8::Handle<v8::Object> wrapper = staticNPObjectMap().newLocal(object, isolat
e); | 487 v8::Handle<v8::Object> wrapper = staticNPObjectMap().newLocal(object, isolat
e); |
| 488 if (!wrapper.IsEmpty()) { | 488 if (!wrapper.IsEmpty()) { |
| 489 V8DOMWrapper::clearNativeInfo(wrapper, npObjectTypeInfo()); | 489 V8DOMWrapper::clearNativeInfo(wrapper, npObjectTypeInfo()); |
| 490 staticNPObjectMap().removeAndDispose(object); | 490 staticNPObjectMap().removeAndDispose(object); |
| 491 _NPN_ReleaseObject(object); | 491 _NPN_ReleaseObject(object); |
| 492 } | 492 } |
| 493 } | 493 } |
| 494 | 494 |
| 495 } // namespace blink | 495 } // namespace blink |
| OLD | NEW |