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

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

Issue 879423003: Move Location to DOMWindow (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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..838b3a5da005b4c83fa83496a2e0db377410dbf4 100644
--- a/Source/core/frame/DOMWindow.cpp
+++ b/Source/core/frame/DOMWindow.cpp
@@ -6,13 +6,26 @@
#include "core/frame/DOMWindow.h"
#include "core/dom/SecurityContext.h"
+#include "core/frame/DOMWindowProperty.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()
+{
+}
+
+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,33 @@ bool DOMWindow::isInsecureScriptAccess(DOMWindow& callingWindow, const String& u
return true;
}
+void DOMWindow::reset()
+{
+ willDestroyDocumentInFrame();
+ m_properties.clear();
+ m_location = nullptr;
+}
+
+void DOMWindow::registerProperty(DOMWindowProperty* property)
+{
+ m_properties.add(property);
+}
+
+void DOMWindow::unregisterProperty(DOMWindowProperty* property)
+{
+ m_properties.remove(property);
+}
+
+void DOMWindow::willDestroyDocumentInFrame()
+{
+ for (const auto& domWindowProperty : m_properties)
+ domWindowProperty->willDestroyGlobalObjectInFrame();
+}
+
+void DOMWindow::willDetachDocumentFromFrame()
+{
+ for (const auto& domWindowProperty : m_properties)
+ domWindowProperty->willDetachGlobalObjectFromFrame();
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698