Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(64)

Side by Side Diff: Source/web/tests/WebFrameTest.cpp

Issue 1173513002: Fix Blink commit type for subframes after initial about:blank load. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Try removing Nasko's original fix Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 5974 matching lines...) Expand 10 before | Expand all | Expand 10 after
5985 } 5985 }
5986 5986
5987 bool replacesCurrentHistoryItem() { return m_replacesCurrentHistoryItem; } 5987 bool replacesCurrentHistoryItem() { return m_replacesCurrentHistoryItem; }
5988 WebFrame* frame() { return m_frame; } 5988 WebFrame* frame() { return m_frame; }
5989 5989
5990 private: 5990 private:
5991 bool m_replacesCurrentHistoryItem; 5991 bool m_replacesCurrentHistoryItem;
5992 WebFrame* m_frame; 5992 WebFrame* m_frame;
5993 }; 5993 };
5994 5994
5995 // Test which ensures that the first navigation in a subframe will always 5995 // Tests that the first navigation in an initially blank subframe will result in
5996 // result in history entry being replaced and not a new one added. 5996 // a history entry being replaced and not a new one being added.
5997 TEST_P(ParameterizedWebFrameTest, DISABLED_FirstFrameNavigationReplacesHistory) 5997 TEST_P(ParameterizedWebFrameTest, FirstBlankSubframeNavigation)
Charlie Reis 2015/06/11 16:43:48 This was Nasko's test from https://codereview.chro
5998 { 5998 {
5999 registerMockedHttpURLLoad("history.html"); 5999 registerMockedHttpURLLoad("history.html");
6000 registerMockedHttpURLLoad("find.html"); 6000 registerMockedHttpURLLoad("find.html");
6001 6001
6002 FrameTestHelpers::WebViewHelper webViewHelper(this); 6002 FrameTestHelpers::WebViewHelper webViewHelper(this);
6003 TestHistoryWebFrameClient client; 6003 TestHistoryWebFrameClient client;
6004 webViewHelper.initializeAndLoad("about:blank", true, &client); 6004 webViewHelper.initializeAndLoad("about:blank", true, &client);
6005 EXPECT_TRUE(client.replacesCurrentHistoryItem());
6006 6005
6007 WebFrame* frame = webViewHelper.webView()->mainFrame(); 6006 WebFrame* frame = webViewHelper.webView()->mainFrame();
6008 6007
6009 FrameTestHelpers::loadFrame(frame, 6008 frame->executeScript(WebScriptSource(WebString::fromUTF8(
6010 "javascript:document.body.appendChild(document.createElement('iframe'))" ); 6009 "document.body.appendChild(document.createElement('iframe'))")));
6010
6011 WebFrame* iframe = frame->firstChild(); 6011 WebFrame* iframe = frame->firstChild();
6012 EXPECT_EQ(client.frame(), iframe); 6012 ASSERT_EQ(&client, toWebLocalFrameImpl(iframe)->client());
6013 EXPECT_EQ(iframe, client.frame());
6014
6015 std::string url1 = m_baseURL + "history.html";
6016 FrameTestHelpers::loadFrame(iframe, url1);
6017 EXPECT_EQ(iframe, client.frame());
6018 EXPECT_EQ(url1, iframe->document().url().string().utf8());
6013 EXPECT_TRUE(client.replacesCurrentHistoryItem()); 6019 EXPECT_TRUE(client.replacesCurrentHistoryItem());
6014 6020
6015 FrameTestHelpers::loadFrame(frame, 6021 std::string url2 = m_baseURL + "find.html";
6016 "javascript:window.frames[0].location.assign('" + m_baseURL + "history.h tml')"); 6022 FrameTestHelpers::loadFrame(iframe, url2);
6017 EXPECT_EQ(client.frame(), iframe); 6023 EXPECT_EQ(iframe, client.frame());
6018 EXPECT_TRUE(client.replacesCurrentHistoryItem()); 6024 EXPECT_EQ(url2, iframe->document().url().string().utf8());
6019
6020 FrameTestHelpers::loadFrame(frame,
6021 "javascript:window.frames[0].location.assign('" + m_baseURL + "find.html ')");
6022 EXPECT_EQ(client.frame(), iframe);
6023 EXPECT_FALSE(client.replacesCurrentHistoryItem());
6024
6025 // Repeat the test, but start out the iframe with initial URL, which is not
6026 // "about:blank".
6027 FrameTestHelpers::loadFrame(frame,
6028 "javascript:var f = document.createElement('iframe'); "
6029 "f.src = '" + m_baseURL + "history.html';"
6030 "document.body.appendChild(f)");
6031
6032 iframe = frame->firstChild()->nextSibling();
6033 EXPECT_EQ(client.frame(), iframe);
6034 EXPECT_TRUE(client.replacesCurrentHistoryItem());
6035
6036 FrameTestHelpers::loadFrame(frame,
6037 "javascript:window.frames[1].location.assign('" + m_baseURL + "find.html ')");
6038 EXPECT_EQ(client.frame(), iframe);
6039 EXPECT_FALSE(client.replacesCurrentHistoryItem()); 6025 EXPECT_FALSE(client.replacesCurrentHistoryItem());
6040 } 6026 }
6041 6027
6028 // Tests that a navigation in a frame with a non-blank initial URL will create
6029 // a new history item, unlike the case above.
6030 TEST_P(ParameterizedWebFrameTest, FirstNonBlankSubframeNavigation)
6031 {
6032 registerMockedHttpURLLoad("history.html");
6033 registerMockedHttpURLLoad("find.html");
6034
6035 FrameTestHelpers::WebViewHelper webViewHelper(this);
6036 TestHistoryWebFrameClient client;
6037 webViewHelper.initializeAndLoad("about:blank", true, &client);
6038
6039 WebFrame* frame = webViewHelper.webView()->mainFrame();
6040
6041 std::string url1 = m_baseURL + "history.html";
6042 FrameTestHelpers::loadFrame(frame,
6043 "javascript:var f = document.createElement('iframe'); "
6044 "f.src = '" + url1 + "';"
6045 "document.body.appendChild(f)");
6046
6047 WebFrame* iframe = frame->firstChild();
6048 EXPECT_EQ(iframe, client.frame());
6049 EXPECT_EQ(url1, iframe->document().url().string().utf8());
6050
6051 std::string url2 = m_baseURL + "find.html";
6052 FrameTestHelpers::loadFrame(iframe, url2);
6053 EXPECT_EQ(iframe, client.frame());
6054 EXPECT_EQ(url2, iframe->document().url().string().utf8());
6055 EXPECT_FALSE(client.replacesCurrentHistoryItem());
6056 }
6057
6042 // Test verifies that layout will change a layer's scrollable attibutes 6058 // Test verifies that layout will change a layer's scrollable attibutes
6043 TEST_F(WebFrameTest, overflowHiddenRewrite) 6059 TEST_F(WebFrameTest, overflowHiddenRewrite)
6044 { 6060 {
6045 registerMockedHttpURLLoad("non-scrollable.html"); 6061 registerMockedHttpURLLoad("non-scrollable.html");
6046 OwnPtr<FakeCompositingWebViewClient> fakeCompositingWebViewClient = adoptPtr (new FakeCompositingWebViewClient()); 6062 OwnPtr<FakeCompositingWebViewClient> fakeCompositingWebViewClient = adoptPtr (new FakeCompositingWebViewClient());
6047 FrameTestHelpers::WebViewHelper webViewHelper; 6063 FrameTestHelpers::WebViewHelper webViewHelper;
6048 webViewHelper.initialize(true, 0, fakeCompositingWebViewClient.get(), &confi gueCompositingWebView); 6064 webViewHelper.initialize(true, 0, fakeCompositingWebViewClient.get(), &confi gueCompositingWebView);
6049 6065
6050 webViewHelper.webView()->resize(WebSize(100, 100)); 6066 webViewHelper.webView()->resize(WebSize(100, 100));
6051 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "non-scrollable.html"); 6067 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "non-scrollable.html");
(...skipping 1413 matching lines...) Expand 10 before | Expand all | Expand 10 after
7465 7481
7466 EXPECT_EQ(parent, firstFrame->parent()); 7482 EXPECT_EQ(parent, firstFrame->parent());
7467 EXPECT_EQ(parent, secondFrame->parent()); 7483 EXPECT_EQ(parent, secondFrame->parent());
7468 EXPECT_EQ(parent, thirdFrame->parent()); 7484 EXPECT_EQ(parent, thirdFrame->parent());
7469 EXPECT_EQ(parent, fourthFrame->parent()); 7485 EXPECT_EQ(parent, fourthFrame->parent());
7470 7486
7471 view->close(); 7487 view->close();
7472 } 7488 }
7473 7489
7474 } // namespace blink 7490 } // namespace blink
OLDNEW
« Source/core/loader/FrameLoader.cpp ('K') | « Source/web/WebLocalFrameImpl.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698