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

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: Add LocalFrame::detachView() + more Oilpan frame finalization comments 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
Index: Source/web/WebFrame.cpp
diff --git a/Source/web/WebFrame.cpp b/Source/web/WebFrame.cpp
index 7fbdac76057e344dda465878c00fb1a4cde75209..65132a3e5cadbe0f19760c6f6f19157d72bfa694 100644
--- a/Source/web/WebFrame.cpp
+++ b/Source/web/WebFrame.cpp
@@ -28,7 +28,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 +230,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

Powered by Google App Engine
This is Rietveld 408576698