Plug RemoteFrame leak in WebFrameTest.SwapMainFrameWhileLoading.
R=haraken
BUG=526423
Review URL: https://codereview.chromium.org/1414193002
Cr-Commit-Position: refs/heads/master@{#355029}
diff --git a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
index 581120e4..5fe0cd64 100644
--- a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
+++ b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
@@ -7078,14 +7078,26 @@
class SwapMainFrameWhenTitleChangesWebFrameClient : public FrameTestHelpers::TestWebFrameClient {
public:
- SwapMainFrameWhenTitleChangesWebFrameClient() {}
- ~SwapMainFrameWhenTitleChangesWebFrameClient() override {}
+ SwapMainFrameWhenTitleChangesWebFrameClient()
+ : m_remoteFrame(nullptr)
+ {
+ }
+
+ ~SwapMainFrameWhenTitleChangesWebFrameClient() override
+ {
+ if (m_remoteFrame)
+ m_remoteFrame->close();
+ }
void didReceiveTitle(WebLocalFrame* frame, const WebString&, WebTextDirection) override
{
- if (!frame->parent())
- frame->swap(WebRemoteFrame::create(WebTreeScopeType::Document, nullptr));
+ if (!frame->parent()) {
+ m_remoteFrame = WebRemoteFrame::create(WebTreeScopeType::Document, nullptr);
+ frame->swap(m_remoteFrame);
+ }
}
+private:
+ WebRemoteFrame* m_remoteFrame;
};
} // anonymous namespace