| Index: Source/web/tests/WebFrameTest.cpp
|
| diff --git a/Source/web/tests/WebFrameTest.cpp b/Source/web/tests/WebFrameTest.cpp
|
| index 70e662429ce313e0ee97e79ff60ea38a95dbb9d2..a250276f3fdbfc71224549eabac3aa9de77c2e51 100644
|
| --- a/Source/web/tests/WebFrameTest.cpp
|
| +++ b/Source/web/tests/WebFrameTest.cpp
|
| @@ -7043,6 +7043,36 @@ TEST_F(WebFrameSwapTest, SwapMainFrame)
|
| remoteFrame->close();
|
| }
|
|
|
| +namespace {
|
| +
|
| +class SwapMainFrameWhenTitleChangesWebFrameClient : public FrameTestHelpers::TestWebFrameClient {
|
| +public:
|
| + SwapMainFrameWhenTitleChangesWebFrameClient() {}
|
| + ~SwapMainFrameWhenTitleChangesWebFrameClient() override {}
|
| +
|
| + void didReceiveTitle(WebLocalFrame* frame, const WebString&, WebTextDirection) override
|
| + {
|
| + if (!frame->parent())
|
| + frame->swap(WebRemoteFrame::create(WebTreeScopeType::Document, nullptr));
|
| + }
|
| +};
|
| +
|
| +} // anonymous namespace
|
| +
|
| +TEST_F(WebFrameTest, SwapMainFrameWhileLoading)
|
| +{
|
| + SwapMainFrameWhenTitleChangesWebFrameClient frameClient;
|
| +
|
| + FrameTestHelpers::WebViewHelper webViewHelper;
|
| + registerMockedHttpURLLoad("frame-a-b-c.html");
|
| + registerMockedHttpURLLoad("subframe-a.html");
|
| + registerMockedHttpURLLoad("subframe-b.html");
|
| + registerMockedHttpURLLoad("subframe-c.html");
|
| + registerMockedHttpURLLoad("subframe-hello.html");
|
| +
|
| + webViewHelper.initializeAndLoad(m_baseURL + "frame-a-b-c.html", true, &frameClient);
|
| +}
|
| +
|
| void swapAndVerifyFirstChildConsistency(const char* const message, WebFrame* parent, WebFrame* newChild)
|
| {
|
| SCOPED_TRACE(message);
|
|
|