Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <stdint.h> | 5 #include <stdint.h> |
| 6 #include <utility> | 6 #include <utility> |
| 7 | 7 |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 967 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 978 entry_id = controller().GetPendingEntry()->GetUniqueID(); | 978 entry_id = controller().GetPendingEntry()->GetUniqueID(); |
| 979 contents()->TestDidNavigate(pending_rfh, entry_id, true, url2, | 979 contents()->TestDidNavigate(pending_rfh, entry_id, true, url2, |
| 980 ui::PAGE_TRANSITION_TYPED); | 980 ui::PAGE_TRANSITION_TYPED); |
| 981 EXPECT_FALSE( | 981 EXPECT_FALSE( |
| 982 contents()->GetRenderManager()->GetRenderFrameProxyHost(instance)); | 982 contents()->GetRenderManager()->GetRenderFrameProxyHost(instance)); |
| 983 } | 983 } |
| 984 | 984 |
| 985 // Tests that WebContentsImpl uses the current URL, not the SiteInstance's site, | 985 // Tests that WebContentsImpl uses the current URL, not the SiteInstance's site, |
| 986 // to determine whether a navigation is cross-site. | 986 // to determine whether a navigation is cross-site. |
| 987 TEST_F(WebContentsImplTest, CrossSiteComparesAgainstCurrentPage) { | 987 TEST_F(WebContentsImplTest, CrossSiteComparesAgainstCurrentPage) { |
| 988 // The assumptions this test makes aren't valid with --site-per-process. For | |
| 989 // example, a cross-site URL won't ever commit in the old RFH. | |
| 990 if (AreAllSitesIsolatedForTesting()) | |
| 991 return; | |
| 992 | |
| 988 TestRenderFrameHost* orig_rfh = main_test_rfh(); | 993 TestRenderFrameHost* orig_rfh = main_test_rfh(); |
| 989 SiteInstance* instance1 = contents()->GetSiteInstance(); | 994 SiteInstance* instance1 = contents()->GetSiteInstance(); |
| 990 | 995 |
| 991 // Navigate to URL. | 996 // Navigate to URL. |
| 992 const GURL url("http://www.google.com"); | 997 const GURL url("http://www.google.com"); |
| 993 controller().LoadURL( | 998 controller().LoadURL( |
| 994 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 999 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
| 995 int entry_id = controller().GetPendingEntry()->GetUniqueID(); | 1000 int entry_id = controller().GetPendingEntry()->GetUniqueID(); |
| 996 main_test_rfh()->PrepareForCommit(); | 1001 main_test_rfh()->PrepareForCommit(); |
| 997 contents()->TestDidNavigate(orig_rfh, entry_id, true, url, | 1002 contents()->TestDidNavigate(orig_rfh, entry_id, true, url, |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 1015 ui::PAGE_TRANSITION_TYPED); | 1020 ui::PAGE_TRANSITION_TYPED); |
| 1016 SiteInstance* instance2 = contents2->GetSiteInstance(); | 1021 SiteInstance* instance2 = contents2->GetSiteInstance(); |
| 1017 EXPECT_NE(instance1, instance2); | 1022 EXPECT_NE(instance1, instance2); |
| 1018 EXPECT_FALSE(contents2->CrossProcessNavigationPending()); | 1023 EXPECT_FALSE(contents2->CrossProcessNavigationPending()); |
| 1019 | 1024 |
| 1020 // Simulate a link click in first contents to second site. Doesn't switch | 1025 // Simulate a link click in first contents to second site. Doesn't switch |
| 1021 // SiteInstances, because we don't intercept Blink navigations. | 1026 // SiteInstances, because we don't intercept Blink navigations. |
| 1022 orig_rfh->SendRendererInitiatedNavigationRequest(url2, true); | 1027 orig_rfh->SendRendererInitiatedNavigationRequest(url2, true); |
| 1023 orig_rfh->PrepareForCommit(); | 1028 orig_rfh->PrepareForCommit(); |
| 1024 contents()->TestDidNavigate(orig_rfh, 0, true, url2, | 1029 contents()->TestDidNavigate(orig_rfh, 0, true, url2, |
| 1025 ui::PAGE_TRANSITION_TYPED); | 1030 ui::PAGE_TRANSITION_TYPED); |
|
Charlie Reis
2017/06/12 23:08:17
It's unfortunate this wasn't failing already befor
alexmos
2017/06/14 22:39:05
Yes, and that's a really good idea to start catchi
| |
| 1026 SiteInstance* instance3 = contents()->GetSiteInstance(); | 1031 SiteInstance* instance3 = contents()->GetSiteInstance(); |
| 1027 EXPECT_EQ(instance1, instance3); | 1032 EXPECT_EQ(instance1, instance3); |
| 1028 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); | 1033 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); |
| 1029 | 1034 |
| 1030 // Navigate to the new site. Doesn't switch SiteInstancees, because we | 1035 // Navigate to the new site. Doesn't switch SiteInstancees, because we |
| 1031 // compare against the current URL, not the SiteInstance's site. | 1036 // compare against the current URL, not the SiteInstance's site. |
| 1032 const GURL url3("http://mail.yahoo.com"); | 1037 const GURL url3("http://mail.yahoo.com"); |
| 1033 controller().LoadURL( | 1038 controller().LoadURL( |
| 1034 url3, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 1039 url3, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
| 1035 entry_id = controller().GetPendingEntry()->GetUniqueID(); | 1040 entry_id = controller().GetPendingEntry()->GetUniqueID(); |
| (...skipping 2407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3443 // An automatic navigation. | 3448 // An automatic navigation. |
| 3444 main_test_rfh()->SendNavigateWithModificationCallback( | 3449 main_test_rfh()->SendNavigateWithModificationCallback( |
| 3445 0, true, GURL(url::kAboutBlankURL), base::Bind(SetAsNonUserGesture)); | 3450 0, true, GURL(url::kAboutBlankURL), base::Bind(SetAsNonUserGesture)); |
| 3446 | 3451 |
| 3447 EXPECT_EQ(1u, dialog_manager.reset_count()); | 3452 EXPECT_EQ(1u, dialog_manager.reset_count()); |
| 3448 | 3453 |
| 3449 contents()->SetJavaScriptDialogManagerForTesting(nullptr); | 3454 contents()->SetJavaScriptDialogManagerForTesting(nullptr); |
| 3450 } | 3455 } |
| 3451 | 3456 |
| 3452 } // namespace content | 3457 } // namespace content |
| OLD | NEW |