Index: Source/core/frame/LocalDOMWindow.cpp |
diff --git a/Source/core/frame/LocalDOMWindow.cpp b/Source/core/frame/LocalDOMWindow.cpp |
index 330ecedd3935f06c134ef88d5b910aa8148e6a9c..471e16f25666b66c7786b7a2d79b197e0bd5cacd 100644 |
--- a/Source/core/frame/LocalDOMWindow.cpp |
+++ b/Source/core/frame/LocalDOMWindow.cpp |
@@ -591,6 +591,7 @@ void LocalDOMWindow::willDetachFrameHost() |
{ |
frame()->host()->eventHandlerRegistry().didRemoveAllEventHandlers(*this); |
frame()->host()->consoleMessageStorage().frameWindowDiscarded(this); |
+ resetLocation(); |
LocalDOMWindow::notifyContextDestroyed(); |
} |
@@ -632,13 +633,14 @@ void LocalDOMWindow::reset() |
m_console = nullptr; |
m_navigator = nullptr; |
m_performance = nullptr; |
- m_location = nullptr; |
m_media = nullptr; |
m_applicationCache = nullptr; |
#if ENABLE(ASSERT) |
m_hasBeenReset = true; |
#endif |
+ resetLocation(); |
+ |
LocalDOMWindow::notifyContextDestroyed(); |
} |
@@ -772,13 +774,6 @@ Performance* LocalDOMWindow::performance() const |
return m_performance.get(); |
} |
-Location* LocalDOMWindow::location() const |
-{ |
- if (!m_location) |
- m_location = Location::create(frame()); |
- return m_location.get(); |
-} |
- |
void LocalDOMWindow::postMessage(PassRefPtr<SerializedScriptValue> message, const MessagePortArray* ports, const String& targetOrigin, LocalDOMWindow* source, ExceptionState& exceptionState) |
{ |
if (!isCurrentlyDisplayedInFrame()) |
@@ -1821,7 +1816,6 @@ void LocalDOMWindow::trace(Visitor* visitor) |
visitor->trace(m_toolbar); |
visitor->trace(m_console); |
visitor->trace(m_navigator); |
- visitor->trace(m_location); |
visitor->trace(m_media); |
visitor->trace(m_applicationCache); |
visitor->trace(m_performance); |