Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(970)

Unified Diff: Source/core/frame/DOMWindow.cpp

Issue 879423003: Move Location to DOMWindow (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address comments Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/frame/DOMWindow.cpp
diff --git a/Source/core/frame/DOMWindow.cpp b/Source/core/frame/DOMWindow.cpp
index 10606a074f8f36bb6f5dd7b735ef1a6dfd0ad80a..ac964179ebc13aa4526e8db405b9a08ca37b573c 100644
--- a/Source/core/frame/DOMWindow.cpp
+++ b/Source/core/frame/DOMWindow.cpp
@@ -8,11 +8,24 @@
#include "core/dom/SecurityContext.h"
#include "core/frame/Frame.h"
#include "core/frame/FrameClient.h"
+#include "core/frame/Location.h"
#include "platform/weborigin/KURL.h"
#include "platform/weborigin/SecurityOrigin.h"
namespace blink {
+DOMWindow::~DOMWindow()
+{
+ reset();
sof 2015/02/03 21:25:10 This is problematic in an Oilpan setting, as destr
sof 2015/02/03 21:28:06 s/rest/reset/g
Nate Chapin 2015/02/06 19:39:58 Resetting the location in willDetachFrameHost() ha
sof 2015/02/07 17:09:32 I see, somewhat similar to changes seen for https:
Nate Chapin 2015/02/09 19:05:57 There was a single layout test that had output cha
+}
+
+Location* DOMWindow::location() const
+{
+ if (!m_location)
+ m_location = Location::create(frame());
+ return m_location.get();
+}
+
bool DOMWindow::closed() const
{
return !frame() || !frame()->host();
@@ -92,4 +105,13 @@ bool DOMWindow::isInsecureScriptAccess(DOMWindow& callingWindow, const String& u
return true;
}
+void DOMWindow::reset()
+{
+ // Location needs to be reset manually because it doesn't inherit from DOMWindowProperty.
+ if (m_location) {
+ m_location->reset();
+ m_location = nullptr;
+ }
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698