Index: Source/core/frame/LocalDOMWindow.h |
diff --git a/Source/core/frame/LocalDOMWindow.h b/Source/core/frame/LocalDOMWindow.h |
index 3a164c88aebdaef4f3b56c1286fde41188ced2c1..d1f179ac792adbeb02118fa885ecb59b1460558d 100644 |
--- a/Source/core/frame/LocalDOMWindow.h |
+++ b/Source/core/frame/LocalDOMWindow.h |
@@ -301,16 +301,24 @@ private: |
// has a frame() accessor that returns Frame* for bindings code, and |
// FrameDestructionObserver, which has a frame() accessor that returns a |
// LocalFrame*. |
- class WindowFrameObserver final : public FrameDestructionObserver { |
+ class WindowFrameObserver final : public NoBaseWillBeGarbageCollected<WindowFrameObserver>, public FrameDestructionObserver { |
+ WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED; |
+ WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(WindowFrameObserver); |
+ DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(WindowFrameObserver); |
public: |
- WindowFrameObserver(LocalDOMWindow&, LocalFrame&); |
+ static PassOwnPtrWillBeRawPtr<WindowFrameObserver> create(LocalDOMWindow*, LocalFrame&); |
+ |
+ virtual void trace(Visitor*) override; |
private: |
+ WindowFrameObserver(LocalDOMWindow*, LocalFrame&); |
+ |
// FrameDestructionObserver overrides: |
void willDetachFrameHost() override; |
- LocalDOMWindow& m_window; |
+ RawPtrWillBeMember<LocalDOMWindow> m_window; |
}; |
+ friend WTF::OwnedPtrDeleter<WindowFrameObserver>; |
explicit LocalDOMWindow(LocalFrame&); |
@@ -332,7 +340,7 @@ private: |
void willDetachFrameHost(); |
void removeAllEventListenersInternal(BroadcastListenerRemoval); |
- WindowFrameObserver m_frameObserver; |
+ OwnPtrWillBeMember<WindowFrameObserver> m_frameObserver; |
RefPtrWillBeMember<Document> m_document; |
bool m_shouldPrintWhenFinishedLoading; |