| Index: Source/core/frame/LocalFrame.cpp
|
| diff --git a/Source/core/frame/LocalFrame.cpp b/Source/core/frame/LocalFrame.cpp
|
| index d7362b387583bdce737827918f1543e45b9ab428..cf3618a1065afb3094fbac4d99fa8a67ed0ce02c 100644
|
| --- a/Source/core/frame/LocalFrame.cpp
|
| +++ b/Source/core/frame/LocalFrame.cpp
|
| @@ -30,6 +30,7 @@
|
| #include "config.h"
|
| #include "core/frame/LocalFrame.h"
|
|
|
| +#include "bindings/core/dart/DartController.h"
|
| #include "bindings/core/v8/ScriptController.h"
|
| #include "core/dom/DocumentType.h"
|
| #include "core/editing/Editor.h"
|
| @@ -366,6 +367,7 @@ void LocalFrame::willDetachFrameHost()
|
| if (page() && page()->focusController().focusedFrame() == this)
|
| page()->focusController().setFocusedFrame(nullptr);
|
| script().clearScriptObjects();
|
| + dart().clearScriptObjects();
|
|
|
| if (page() && page()->scrollingCoordinator() && m_view)
|
| page()->scrollingCoordinator()->willDestroyScrollableArea(m_view.get());
|
| @@ -389,8 +391,10 @@ void LocalFrame::setDOMWindow(PassRefPtrWillBeRawPtr<LocalDOMWindow> domWindow)
|
| // explicitly notified that this frame is going away.
|
| if (m_domWindow && host())
|
| host()->consoleMessageStorage().frameWindowDiscarded(m_domWindow.get());
|
| - if (domWindow)
|
| + if (domWindow) {
|
| script().clearWindowProxy();
|
| + dart().clearWindowShell();
|
| + }
|
|
|
| if (m_domWindow)
|
| m_domWindow->reset();
|
| @@ -832,6 +836,7 @@ inline LocalFrame::LocalFrame(FrameLoaderClient* client, FrameHost* host, FrameO
|
| , m_loader(this)
|
| , m_navigationScheduler(this)
|
| , m_script(ScriptController::create(this))
|
| + , m_dart(adoptPtr(new DartController(this)))
|
| , m_editor(Editor::create(*this))
|
| , m_spellChecker(SpellChecker::create(*this))
|
| , m_selection(FrameSelection::create(this))
|
|
|