| Index: Source/core/page/FrameTree.cpp
|
| diff --git a/Source/core/page/FrameTree.cpp b/Source/core/page/FrameTree.cpp
|
| index 1353965dd771ee3fd1349314a778ea4af4f418f9..fa1d27b1974ec8e9e5082fd29ea03ba8bde88abe 100644
|
| --- a/Source/core/page/FrameTree.cpp
|
| +++ b/Source/core/page/FrameTree.cpp
|
| @@ -50,6 +50,7 @@ FrameTree::FrameTree(Frame* thisFrame)
|
|
|
| FrameTree::~FrameTree()
|
| {
|
| +#if !ENABLE(OILPAN)
|
| // FIXME: Why is this here? Doesn't this parallel what we already do in ~LocalFrame?
|
| for (Frame* child = firstChild(); child; child = child->tree().nextSibling()) {
|
| if (child->isLocalFrame())
|
| @@ -57,6 +58,7 @@ FrameTree::~FrameTree()
|
| else if (child->isRemoteFrame())
|
| toRemoteFrame(child)->setView(nullptr);
|
| }
|
| +#endif
|
| }
|
|
|
| void FrameTree::setName(const AtomicString& name, const AtomicString& fallbackName)
|
| @@ -85,7 +87,7 @@ Frame* FrameTree::top() const
|
| if (!m_thisFrame->client())
|
| return m_thisFrame;
|
| Frame* candidate = m_thisFrame->client()->top();
|
| - return candidate ? candidate : m_thisFrame;
|
| + return candidate ? candidate : m_thisFrame.get();
|
| }
|
|
|
| Frame* FrameTree::previousSibling() const
|
| @@ -254,7 +256,7 @@ Frame* FrameTree::find(const AtomicString& name) const
|
| return top();
|
|
|
| if (name == "_parent")
|
| - return parent() ? parent() : m_thisFrame;
|
| + return parent() ? parent() : m_thisFrame.get();
|
|
|
| // Since "_blank" should never be any frame's name, the following just amounts to an optimization.
|
| if (name == "_blank")
|
| @@ -377,6 +379,11 @@ Frame* FrameTree::deepLastChild() const
|
| return result;
|
| }
|
|
|
| +void FrameTree::trace(Visitor* visitor)
|
| +{
|
| + visitor->trace(m_thisFrame);
|
| +}
|
| +
|
| } // namespace blink
|
|
|
| #ifndef NDEBUG
|
|
|