Index: Source/bindings/core/v8/DOMWrapperWorld.h |
diff --git a/Source/bindings/core/v8/DOMWrapperWorld.h b/Source/bindings/core/v8/DOMWrapperWorld.h |
index c15b7f32316d4ccd64ae7221da0baa022e347578..aeadf0611815e4309a02ae1ff14b3d0e32f98888 100644 |
--- a/Source/bindings/core/v8/DOMWrapperWorld.h |
+++ b/Source/bindings/core/v8/DOMWrapperWorld.h |
@@ -54,6 +54,9 @@ enum WorldIdConstants { |
TestingWorldId, |
}; |
+class DOMObjectHolderBase; |
+template<typename T> class DOMObjectHolder; |
+ |
// This class represent a collection of DOM wrappers for a specific world. |
class CORE_EXPORT DOMWrapperWorld : public RefCounted<DOMWrapperWorld> { |
public: |
@@ -123,52 +126,9 @@ public: |
worldOfInitializingWindow = world; |
} |
-private: |
- class DOMObjectHolderBase { |
- public: |
- DOMObjectHolderBase(v8::Isolate* isolate, v8::Local<v8::Value> wrapper) |
- : m_wrapper(isolate, wrapper) |
- , m_world(0) |
- { |
- } |
- virtual ~DOMObjectHolderBase() { } |
- |
- DOMWrapperWorld* world() const { return m_world; } |
- void setWorld(DOMWrapperWorld* world) { m_world = world; } |
- void setWeak(void (*callback)(const v8::WeakCallbackInfo<DOMObjectHolderBase>&)) |
- { |
- m_wrapper.setWeak(this, callback); |
- } |
- |
- private: |
- ScopedPersistent<v8::Value> m_wrapper; |
- DOMWrapperWorld* m_world; |
- }; |
- |
- template<typename T> |
- class DOMObjectHolder : public DOMObjectHolderBase { |
- public: |
- static PassOwnPtr<DOMObjectHolder<T>> create(v8::Isolate* isolate, T* object, v8::Local<v8::Value> wrapper) |
- { |
- return adoptPtr(new DOMObjectHolder(isolate, object, wrapper)); |
- } |
- |
- private: |
- DOMObjectHolder(v8::Isolate* isolate, T* object, v8::Local<v8::Value> wrapper) |
- : DOMObjectHolderBase(isolate, wrapper) |
- , m_object(object) |
- { |
- } |
- |
- Persistent<T> m_object; |
- }; |
- |
public: |
template<typename T> |
- void registerDOMObjectHolder(v8::Isolate* isolate, T* object, v8::Local<v8::Value> wrapper) |
- { |
- registerDOMObjectHolderInternal(DOMObjectHolder<T>::create(isolate, object, wrapper)); |
- } |
+ void registerDOMObjectHolder(v8::Isolate*, T*, v8::Local<v8::Value>); |
private: |
DOMWrapperWorld(v8::Isolate*, int worldId, int extensionGroup); |