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 |