Index: third_party/WebKit/Source/web/WebFrame.cpp |
diff --git a/third_party/WebKit/Source/web/WebFrame.cpp b/third_party/WebKit/Source/web/WebFrame.cpp |
index a1f3cd60efa89ff2014de9e3dc694cbe09fd68de..5e979c40ed4872e19c0d7a41a73e207ada4aca20 100644 |
--- a/third_party/WebKit/Source/web/WebFrame.cpp |
+++ b/third_party/WebKit/Source/web/WebFrame.cpp |
@@ -74,14 +74,10 @@ bool WebFrame::swap(WebFrame* frame) |
} |
if (m_opener) { |
- m_opener->m_openedFrameTracker->remove(this); |
- m_opener->m_openedFrameTracker->add(frame); |
- swap(m_opener, frame->m_opener); |
- } |
- if (!m_openedFrameTracker->isEmpty()) { |
- m_openedFrameTracker->updateOpener(frame); |
- frame->m_openedFrameTracker.reset(m_openedFrameTracker.release()); |
+ frame->setOpener(m_opener); |
+ setOpener(nullptr); |
} |
+ m_openedFrameTracker->transferTo(frame); |
FrameHost* host = oldFrame->host(); |
AtomicString name = oldFrame->tree().name(); |