Index: Source/core/frame/LocalDOMWindow.h |
diff --git a/Source/core/frame/LocalDOMWindow.h b/Source/core/frame/LocalDOMWindow.h |
index 88d1c7d514f69c024e5002ea78893d146382f828..54128d2cc0caa7ef140c363b7909efc279b4a1bf 100644 |
--- a/Source/core/frame/LocalDOMWindow.h |
+++ b/Source/core/frame/LocalDOMWindow.h |
@@ -66,7 +66,6 @@ enum PageshowEventPersistence { |
// please ping dcheng@chromium.org first. You probably don't want to do that. |
class CORE_EXPORT LocalDOMWindow final : public DOMWindow, public WillBeHeapSupplementable<LocalDOMWindow>, public DOMWindowLifecycleNotifier { |
WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LocalDOMWindow); |
- WILL_BE_USING_PRE_FINALIZER(LocalDOMWindow, dispose); |
public: |
static PassRefPtrWillBeRawPtr<Document> createDocument(const String& mimeType, const DocumentInit&, bool forceXHTML); |
static PassRefPtrWillBeRawPtr<LocalDOMWindow> create(LocalFrame& frame) |
@@ -74,7 +73,11 @@ public: |
return adoptRefWillBeNoop(new LocalDOMWindow(frame)); |
} |
virtual ~LocalDOMWindow(); |
- void dispose(); |
+ |
+ // LocalDOMWindow is eagerly finalized to allow the destructor |
+ // to remove any event listeners still attached. |
+ EAGERLY_FINALIZE(); |
+ DECLARE_VIRTUAL_TRACE(); |
PassRefPtrWillBeRawPtr<Document> installNewDocument(const String& mimeType, const DocumentInit&, bool forceXHTML = false); |
@@ -83,7 +86,6 @@ public: |
virtual LocalDOMWindow* toDOMWindow() override; |
// DOMWindow overrides: |
- DECLARE_VIRTUAL_TRACE(); |
bool isLocalDOMWindow() const override { return true; } |
virtual LocalFrame* frame() const override; |
Screen* screen() const override; |