Chromium Code Reviews| Index: Source/web/OpenedFrameTracker.cpp |
| diff --git a/Source/web/OpenedFrameTracker.cpp b/Source/web/OpenedFrameTracker.cpp |
| index 2120f339a6d4f91c0ebb075c83f58f4eae36aed4..ec3f62f253cb84037081a08a0310e3db60f94761 100644 |
| --- a/Source/web/OpenedFrameTracker.cpp |
| +++ b/Source/web/OpenedFrameTracker.cpp |
| @@ -5,6 +5,7 @@ |
| #include "config.h" |
| #include "web/OpenedFrameTracker.h" |
| +#include "platform/heap/Handle.h" |
| #include "public/web/WebFrame.h" |
| namespace blink { |
| @@ -15,7 +16,10 @@ OpenedFrameTracker::OpenedFrameTracker() |
| OpenedFrameTracker::~OpenedFrameTracker() |
| { |
| +#if !ENABLE(OILPAN) |
| + // Oilpan takes care of clearing weak m_opener fields during GC. |
| updateOpener(0); |
| +#endif |
| } |
| bool OpenedFrameTracker::isEmpty() const |
| @@ -40,4 +44,13 @@ void OpenedFrameTracker::updateOpener(WebFrame* frame) |
| (*it)->m_opener = frame; |
| } |
| +void OpenedFrameTracker::traceFrames(Visitor* visitor) |
| +{ |
| +#if ENABLE(OILPAN) |
| + HashSet<WebFrame*>::iterator end = m_openedFrames.end(); |
| + for (HashSet<WebFrame*>::iterator it = m_openedFrames.begin(); it != end; ++it) |
| + WebFrame::traceFrame(visitor, *it); |
|
dcheng
2014/09/25 08:04:54
Doesn't this mean the opened frame tracker is keep
sof
2014/09/25 08:11:47
Isn't that handled by the explicit removal that's
|
| +#endif |
| +} |
| + |
| } // namespace blink |