OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <set> | 5 #include <set> |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
9 #include "base/location.h" | 9 #include "base/location.h" |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
(...skipping 989 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1000 GetCrossSiteURL("nocontent"))); | 1000 GetCrossSiteURL("nocontent"))); |
1001 | 1001 |
1002 // We should still be looking at the normal page. Because we started from a | 1002 // We should still be looking at the normal page. Because we started from a |
1003 // blank new tab, the typed URL will still be visible until the user clears it | 1003 // blank new tab, the typed URL will still be visible until the user clears it |
1004 // manually. The last committed URL will be the previous page. | 1004 // manually. The last committed URL will be the previous page. |
1005 scoped_refptr<SiteInstance> post_nav_site_instance( | 1005 scoped_refptr<SiteInstance> post_nav_site_instance( |
1006 shell()->web_contents()->GetSiteInstance()); | 1006 shell()->web_contents()->GetSiteInstance()); |
1007 EXPECT_EQ(orig_site_instance, post_nav_site_instance); | 1007 EXPECT_EQ(orig_site_instance, post_nav_site_instance); |
1008 EXPECT_EQ("/nocontent", | 1008 EXPECT_EQ("/nocontent", |
1009 shell()->web_contents()->GetVisibleURL().path()); | 1009 shell()->web_contents()->GetVisibleURL().path()); |
1010 EXPECT_FALSE( | 1010 EXPECT_TRUE(shell()->web_contents()->GetController().IsInitialNavigation()); |
1011 shell()->web_contents()->GetController().GetLastCommittedEntry()); | |
1012 | 1011 |
1013 // Renderer-initiated navigations should work. | 1012 // Renderer-initiated navigations should work. |
1014 base::string16 expected_title = ASCIIToUTF16("Title Of Awesomeness"); | 1013 base::string16 expected_title = ASCIIToUTF16("Title Of Awesomeness"); |
1015 TitleWatcher title_watcher(shell()->web_contents(), expected_title); | 1014 TitleWatcher title_watcher(shell()->web_contents(), expected_title); |
1016 GURL url = test_server()->GetURL("files/title2.html"); | 1015 GURL url = test_server()->GetURL("files/title2.html"); |
1017 EXPECT_TRUE(ExecuteScript( | 1016 EXPECT_TRUE(ExecuteScript( |
1018 shell()->web_contents(), | 1017 shell()->web_contents(), |
1019 base::StringPrintf("location.href = '%s'", url.spec().c_str()))); | 1018 base::StringPrintf("location.href = '%s'", url.spec().c_str()))); |
1020 ASSERT_EQ(expected_title, title_watcher.WaitAndGetTitle()); | 1019 ASSERT_EQ(expected_title, title_watcher.WaitAndGetTitle()); |
1021 | 1020 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1069 EXPECT_TRUE(ExecuteScriptAndExtractBool( | 1068 EXPECT_TRUE(ExecuteScriptAndExtractBool( |
1070 orig_contents, | 1069 orig_contents, |
1071 "window.domAutomationController.send(modifyNewWindow());", | 1070 "window.domAutomationController.send(modifyNewWindow());", |
1072 &success)); | 1071 &success)); |
1073 EXPECT_TRUE(success); | 1072 EXPECT_TRUE(success); |
1074 ASSERT_EQ(expected_title, title_watcher.WaitAndGetTitle()); | 1073 ASSERT_EQ(expected_title, title_watcher.WaitAndGetTitle()); |
1075 | 1074 |
1076 // At this point, we should no longer be showing the destination URL. | 1075 // At this point, we should no longer be showing the destination URL. |
1077 // The visible entry should be null, resulting in about:blank in the address | 1076 // The visible entry should be null, resulting in about:blank in the address |
1078 // bar. | 1077 // bar. |
1079 EXPECT_FALSE(contents->GetController().GetVisibleEntry()); | 1078 EXPECT_FALSE(contents->GetController().GetPendingEntry()); |
| 1079 EXPECT_EQ(GURL(url::kAboutBlankURL), |
| 1080 contents->GetController().GetVisibleEntry()->GetURL()); |
1080 } | 1081 } |
1081 | 1082 |
1082 // Test for crbug.com/9682. We should not show the URL for a pending renderer- | 1083 // Test for crbug.com/9682. We should not show the URL for a pending renderer- |
1083 // initiated navigation in a new tab if it is not the initial navigation. In | 1084 // initiated navigation in a new tab if it is not the initial navigation. In |
1084 // this case, the renderer will not notify us of a modification, so we cannot | 1085 // this case, the renderer will not notify us of a modification, so we cannot |
1085 // show the pending URL without allowing a spoof. | 1086 // show the pending URL without allowing a spoof. |
1086 IN_PROC_BROWSER_TEST_F(RenderFrameHostManagerTest, | 1087 IN_PROC_BROWSER_TEST_F(RenderFrameHostManagerTest, |
1087 DontShowLoadingURLIfNotInitialNav) { | 1088 DontShowLoadingURLIfNotInitialNav) { |
1088 ASSERT_TRUE(test_server()->Start()); | 1089 ASSERT_TRUE(test_server()->Start()); |
1089 | 1090 |
(...skipping 12 matching lines...) Expand all Loading... |
1102 "window.domAutomationController.send(" | 1103 "window.domAutomationController.send(" |
1103 "clickNoContentScriptedTargetedLink());", | 1104 "clickNoContentScriptedTargetedLink());", |
1104 &success)); | 1105 &success)); |
1105 EXPECT_TRUE(success); | 1106 EXPECT_TRUE(success); |
1106 | 1107 |
1107 // Wait for the window to open. | 1108 // Wait for the window to open. |
1108 Shell* new_shell = new_shell_observer.GetShell(); | 1109 Shell* new_shell = new_shell_observer.GetShell(); |
1109 | 1110 |
1110 // Ensure the destination URL is not visible, because it is not the initial | 1111 // Ensure the destination URL is not visible, because it is not the initial |
1111 // navigation. | 1112 // navigation. |
| 1113 // TODO(creis): It is, right? |
1112 WebContents* contents = new_shell->web_contents(); | 1114 WebContents* contents = new_shell->web_contents(); |
1113 EXPECT_FALSE(contents->GetController().IsInitialNavigation()); | 1115 EXPECT_FALSE(contents->GetController().IsInitialNavigation()); |
1114 EXPECT_FALSE(contents->GetController().GetVisibleEntry()); | 1116 |
| 1117 // TODO(creis): There's definitely a regression right now, since we're not |
| 1118 // receiving DidAccessInitialDocument. Can we verify that happens, and then |
| 1119 // check that the omnibox shows about:blank? |
| 1120 EXPECT_FALSE(contents->GetController().GetPendingEntry()); |
| 1121 EXPECT_EQ(GURL(url::kAboutBlankURL), |
| 1122 contents->GetController().GetVisibleEntry()->GetURL()); |
1115 } | 1123 } |
1116 | 1124 |
1117 // Crashes under ThreadSanitizer, http://crbug.com/356758. | 1125 // Crashes under ThreadSanitizer, http://crbug.com/356758. |
1118 #if defined(THREAD_SANITIZER) | 1126 #if defined(THREAD_SANITIZER) |
1119 #define MAYBE_BackForwardNotStale DISABLED_BackForwardNotStale | 1127 #define MAYBE_BackForwardNotStale DISABLED_BackForwardNotStale |
1120 #else | 1128 #else |
1121 #define MAYBE_BackForwardNotStale BackForwardNotStale | 1129 #define MAYBE_BackForwardNotStale BackForwardNotStale |
1122 #endif | 1130 #endif |
1123 // Test for http://crbug.com/93427. Ensure that cross-site navigations | 1131 // Test for http://crbug.com/93427. Ensure that cross-site navigations |
1124 // do not cause back/forward navigations to be considered stale by the | 1132 // do not cause back/forward navigations to be considered stale by the |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1307 RenderViewHostDestructionObserver rvh_observers(shell()->web_contents()); | 1315 RenderViewHostDestructionObserver rvh_observers(shell()->web_contents()); |
1308 | 1316 |
1309 GURL navigated_url(embedded_test_server()->GetURL("/title2.html")); | 1317 GURL navigated_url(embedded_test_server()->GetURL("/title2.html")); |
1310 GURL view_source_url(kViewSourceScheme + std::string(":") + | 1318 GURL view_source_url(kViewSourceScheme + std::string(":") + |
1311 navigated_url.spec()); | 1319 navigated_url.spec()); |
1312 | 1320 |
1313 // Let's ensure that when we start with a blank window, navigating away to a | 1321 // Let's ensure that when we start with a blank window, navigating away to a |
1314 // view-source URL, we create a new SiteInstance. | 1322 // view-source URL, we create a new SiteInstance. |
1315 RenderViewHost* blank_rvh = shell()->web_contents()->GetRenderViewHost(); | 1323 RenderViewHost* blank_rvh = shell()->web_contents()->GetRenderViewHost(); |
1316 SiteInstance* blank_site_instance = blank_rvh->GetSiteInstance(); | 1324 SiteInstance* blank_site_instance = blank_rvh->GetSiteInstance(); |
1317 EXPECT_EQ(shell()->web_contents()->GetLastCommittedURL(), GURL::EmptyGURL()); | 1325 EXPECT_EQ(GURL(url::kAboutBlankURL), |
1318 EXPECT_EQ(blank_site_instance->GetSiteURL(), GURL::EmptyGURL()); | 1326 shell()->web_contents()->GetLastCommittedURL()); |
| 1327 EXPECT_EQ(GURL::EmptyGURL(), blank_site_instance->GetSiteURL()); |
1319 rvh_observers.EnsureRVHGetsDestructed(blank_rvh); | 1328 rvh_observers.EnsureRVHGetsDestructed(blank_rvh); |
1320 | 1329 |
1321 // Now navigate to the view-source URL and ensure we got a different | 1330 // Now navigate to the view-source URL and ensure we got a different |
1322 // SiteInstance and RenderViewHost. | 1331 // SiteInstance and RenderViewHost. |
1323 NavigateToURL(shell(), view_source_url); | 1332 NavigateToURL(shell(), view_source_url); |
1324 EXPECT_NE(blank_rvh, shell()->web_contents()->GetRenderViewHost()); | 1333 EXPECT_NE(blank_rvh, shell()->web_contents()->GetRenderViewHost()); |
1325 EXPECT_NE(blank_site_instance, shell()->web_contents()-> | 1334 EXPECT_NE(blank_site_instance, shell()->web_contents()-> |
1326 GetRenderViewHost()->GetSiteInstance()); | 1335 GetRenderViewHost()->GetSiteInstance()); |
1327 rvh_observers.EnsureRVHGetsDestructed( | 1336 rvh_observers.EnsureRVHGetsDestructed( |
1328 shell()->web_contents()->GetRenderViewHost()); | 1337 shell()->web_contents()->GetRenderViewHost()); |
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2071 std::string result; | 2080 std::string result; |
2072 EXPECT_TRUE(ExecuteScriptAndExtractString( | 2081 EXPECT_TRUE(ExecuteScriptAndExtractString( |
2073 shell()->web_contents(), | 2082 shell()->web_contents(), |
2074 "window.domAutomationController.send(getLastOpenedWindowLocation());", | 2083 "window.domAutomationController.send(getLastOpenedWindowLocation());", |
2075 &result)); | 2084 &result)); |
2076 EXPECT_EQ(expected_url.spec(), result); | 2085 EXPECT_EQ(expected_url.spec(), result); |
2077 } | 2086 } |
2078 | 2087 |
2079 | 2088 |
2080 } // namespace content | 2089 } // namespace content |
OLD | NEW |