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) |
Mads Ager (chromium)
2014/09/18 12:00:59
It is probably a good idea to continue to trace th
sof
2014/09/18 13:31:15
Very good point, I hadn't realized the implication
|
+{ |
+#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 |