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

Unified Diff: Source/web/WebFrame.cpp

Issue 517043003: Move Frame to the Oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Experiment: also clear FrameView and FrameLoader during owner disconnect for non-Oilpan Created 6 years, 3 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
« no previous file with comments | « Source/web/SpellCheckerClientImpl.cpp ('k') | Source/web/WebLocalFrameImpl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/web/WebFrame.cpp
diff --git a/Source/web/WebFrame.cpp b/Source/web/WebFrame.cpp
index 7fbdac76057e344dda465878c00fb1a4cde75209..826f69d06bb99574a13a752590594315a9d81917 100644
--- a/Source/web/WebFrame.cpp
+++ b/Source/web/WebFrame.cpp
@@ -8,6 +8,7 @@
#include "core/frame/RemoteFrame.h"
#include "core/html/HTMLFrameOwnerElement.h"
#include "platform/UserGestureIndicator.h"
+#include "platform/heap/Handle.h"
#include "web/OpenedFrameTracker.h"
#include "web/WebLocalFrameImpl.h"
#include "web/WebRemoteFrameImpl.h"
@@ -28,7 +29,7 @@ Frame* toCoreFrame(const WebFrame* frame)
bool WebFrame::swap(WebFrame* frame)
{
using std::swap;
- RefPtr<Frame> oldFrame = toCoreFrame(this);
+ RefPtrWillBeRawPtr<Frame> oldFrame = toCoreFrame(this);
// All child frames must be detached first.
oldFrame->detachChildren();
@@ -230,4 +231,20 @@ WebFrame::~WebFrame()
m_openedFrameTracker.reset(0);
}
+void WebFrame::traceChildren(Visitor* visitor, WebFrame* frame)
+{
+#if ENABLE(OILPAN)
+ // Trace the children frames.
+ WebFrame* child = frame ? frame->firstChild() : 0;
+ while (child) {
+ if (child->isWebLocalFrame())
+ visitor->trace(toWebLocalFrameImpl(child));
+ else
+ visitor->trace(toWebRemoteFrameImpl(child));
+
+ child = child->nextSibling();
+ }
+#endif
+}
+
} // namespace blink
« no previous file with comments | « Source/web/SpellCheckerClientImpl.cpp ('k') | Source/web/WebLocalFrameImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698