Chromium Code Reviews| 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/files/file_path.h" | 6 #include "base/files/file_path.h" |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "base/time/time.h" | 8 #include "base/time/time.h" |
| 9 #include "content/browser/frame_host/cross_site_transferring_request.h" | 9 #include "content/browser/frame_host/cross_site_transferring_request.h" |
| 10 #include "content/browser/frame_host/navigation_before_commit_info.h" | 10 #include "content/browser/frame_host/navigation_before_commit_info.h" |
| (...skipping 975 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 986 | 986 |
| 987 // No cross-process transition happens because we are already in the right | 987 // No cross-process transition happens because we are already in the right |
| 988 // SiteInstance. We should grant bindings immediately. | 988 // SiteInstance. We should grant bindings immediately. |
| 989 EXPECT_EQ(host2, manager2->current_frame_host()); | 989 EXPECT_EQ(host2, manager2->current_frame_host()); |
| 990 EXPECT_TRUE( | 990 EXPECT_TRUE( |
| 991 host2->render_view_host()->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); | 991 host2->render_view_host()->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); |
| 992 | 992 |
| 993 manager2->DidNavigateFrame(host2); | 993 manager2->DidNavigateFrame(host2); |
| 994 } | 994 } |
| 995 | 995 |
| 996 // Test that WebUI can be navigated to in single-process mode. | |
| 997 TEST_F(RenderFrameHostManagerTest, | |
| 998 CanNavigateBetweenNormalPagesAndWebUIInSingleProcess) { | |
| 999 const GURL kNormalUrl1("http://chromium.org"); | |
| 1000 const GURL kNormalUrl2("http://example.com"); | |
| 1001 const GURL kWebUIUrl("chrome://foo"); | |
| 1002 | |
| 1003 // We both set flag on RenderProcesHost and append the switch due to the fact | |
| 1004 // that some code checks the switch directly instead of relying | |
| 1005 // on RenderProcessHost | |
|
nasko
2014/09/29 22:21:48
sidenote: It is best to have one source of truth i
Krzysztof Olczyk
2014/10/01 10:17:47
Done: https://code.google.com/p/chromium/issues/de
| |
| 1006 RenderProcessHost::SetRunRendererInProcess(true); | |
| 1007 CommandLine::ForCurrentProcess()->AppendSwitch(switches::kSingleProcess); | |
| 1008 set_should_create_webui(true); | |
| 1009 | |
| 1010 RenderFrameHostManager* manager = | |
| 1011 static_cast<TestWebContents*>( | |
|
nasko
2014/09/29 22:21:48
nit: this line should be able to fit on the previo
Krzysztof Olczyk
2014/10/01 10:17:47
Done
| |
| 1012 web_contents())->GetRenderManagerForTesting(); | |
| 1013 | |
| 1014 NavigateAndCommit(kNormalUrl1); | |
| 1015 EXPECT_EQ(kNormalUrl1, | |
| 1016 manager->current_frame_host()->GetSiteInstance()->GetSiteURL()); | |
| 1017 EXPECT_FALSE(manager->web_ui()); | |
| 1018 NavigateAndCommit(kWebUIUrl); | |
| 1019 EXPECT_EQ(kWebUIUrl, | |
| 1020 manager->current_frame_host()->GetSiteInstance()->GetSiteURL()); | |
| 1021 EXPECT_TRUE(manager->web_ui()); | |
| 1022 NavigateAndCommit(kNormalUrl2); | |
| 1023 EXPECT_EQ(kNormalUrl2, | |
| 1024 manager->current_frame_host()->GetSiteInstance()->GetSiteURL()); | |
| 1025 EXPECT_FALSE(manager->web_ui()); | |
| 1026 } | |
| 1027 | |
| 996 // Tests that we don't end up in an inconsistent state if a page does a back and | 1028 // Tests that we don't end up in an inconsistent state if a page does a back and |
| 997 // then reload. http://crbug.com/51680 | 1029 // then reload. http://crbug.com/51680 |
| 998 TEST_F(RenderFrameHostManagerTest, PageDoesBackAndReload) { | 1030 TEST_F(RenderFrameHostManagerTest, PageDoesBackAndReload) { |
| 999 const GURL kUrl1("http://www.google.com/"); | 1031 const GURL kUrl1("http://www.google.com/"); |
| 1000 const GURL kUrl2("http://www.evil-site.com/"); | 1032 const GURL kUrl2("http://www.evil-site.com/"); |
| 1001 | 1033 |
| 1002 // Navigate to a safe site, then an evil site. | 1034 // Navigate to a safe site, then an evil site. |
| 1003 // This will switch RenderFrameHosts. We cannot assert that the first and | 1035 // This will switch RenderFrameHosts. We cannot assert that the first and |
| 1004 // second RFHs are different, though, because the first one may be promptly | 1036 // second RFHs are different, though, because the first one may be promptly |
| 1005 // deleted. | 1037 // deleted. |
| (...skipping 848 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1854 EXPECT_EQ(kUrl0_site, main_test_rfh()->GetSiteInstance()->GetSiteURL()); | 1886 EXPECT_EQ(kUrl0_site, main_test_rfh()->GetSiteInstance()->GetSiteURL()); |
| 1855 | 1887 |
| 1856 // Confirms that a valid, request-matching commit is correctly processed. | 1888 // Confirms that a valid, request-matching commit is correctly processed. |
| 1857 nbc_info.navigation_url = kUrl2; | 1889 nbc_info.navigation_url = kUrl2; |
| 1858 nbc_info.navigation_request_id = request_id2; | 1890 nbc_info.navigation_request_id = request_id2; |
| 1859 render_manager->CommitNavigation(nbc_info); | 1891 render_manager->CommitNavigation(nbc_info); |
| 1860 EXPECT_EQ(kUrl2_site, main_test_rfh()->GetSiteInstance()->GetSiteURL()); | 1892 EXPECT_EQ(kUrl2_site, main_test_rfh()->GetSiteInstance()->GetSiteURL()); |
| 1861 } | 1893 } |
| 1862 | 1894 |
| 1863 } // namespace content | 1895 } // namespace content |
| OLD | NEW |