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 1132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1143 contents()->TestDidNavigate(webui_rfh, entry_id, true, url1, | 1143 contents()->TestDidNavigate(webui_rfh, entry_id, true, url1, |
1144 ui::PAGE_TRANSITION_TYPED); | 1144 ui::PAGE_TRANSITION_TYPED); |
1145 NavigationEntry* entry1 = controller().GetLastCommittedEntry(); | 1145 NavigationEntry* entry1 = controller().GetLastCommittedEntry(); |
1146 SiteInstance* instance1 = contents()->GetSiteInstance(); | 1146 SiteInstance* instance1 = contents()->GetSiteInstance(); |
1147 | 1147 |
1148 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); | 1148 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); |
1149 EXPECT_EQ(webui_rfh, main_test_rfh()); | 1149 EXPECT_EQ(webui_rfh, main_test_rfh()); |
1150 EXPECT_EQ(url1, entry1->GetURL()); | 1150 EXPECT_EQ(url1, entry1->GetURL()); |
1151 EXPECT_EQ(instance1, | 1151 EXPECT_EQ(instance1, |
1152 NavigationEntryImpl::FromNavigationEntry(entry1)->site_instance()); | 1152 NavigationEntryImpl::FromNavigationEntry(entry1)->site_instance()); |
1153 EXPECT_TRUE(webui_rfh->GetRenderViewHost()->GetEnabledBindings() & | 1153 EXPECT_TRUE(webui_rfh->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); |
1154 BINDINGS_POLICY_WEB_UI); | |
1155 | 1154 |
1156 // Navigate to new site. | 1155 // Navigate to new site. |
1157 const GURL url2("http://www.google.com"); | 1156 const GURL url2("http://www.google.com"); |
1158 controller().LoadURL( | 1157 controller().LoadURL( |
1159 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 1158 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
1160 entry_id = controller().GetPendingEntry()->GetUniqueID(); | 1159 entry_id = controller().GetPendingEntry()->GetUniqueID(); |
1161 EXPECT_TRUE(contents()->CrossProcessNavigationPending()); | 1160 EXPECT_TRUE(contents()->CrossProcessNavigationPending()); |
1162 TestRenderFrameHost* google_rfh = contents()->GetPendingMainFrame(); | 1161 TestRenderFrameHost* google_rfh = contents()->GetPendingMainFrame(); |
1163 | 1162 |
1164 // Simulate beforeunload approval. | 1163 // Simulate beforeunload approval. |
1165 EXPECT_TRUE(webui_rfh->is_waiting_for_beforeunload_ack()); | 1164 EXPECT_TRUE(webui_rfh->is_waiting_for_beforeunload_ack()); |
1166 webui_rfh->PrepareForCommit(); | 1165 webui_rfh->PrepareForCommit(); |
1167 | 1166 |
1168 // DidNavigate from the pending page. | 1167 // DidNavigate from the pending page. |
1169 contents()->TestDidNavigate(google_rfh, entry_id, true, url2, | 1168 contents()->TestDidNavigate(google_rfh, entry_id, true, url2, |
1170 ui::PAGE_TRANSITION_TYPED); | 1169 ui::PAGE_TRANSITION_TYPED); |
1171 NavigationEntry* entry2 = controller().GetLastCommittedEntry(); | 1170 NavigationEntry* entry2 = controller().GetLastCommittedEntry(); |
1172 SiteInstance* instance2 = contents()->GetSiteInstance(); | 1171 SiteInstance* instance2 = contents()->GetSiteInstance(); |
1173 | 1172 |
1174 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); | 1173 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); |
1175 EXPECT_EQ(google_rfh, main_test_rfh()); | 1174 EXPECT_EQ(google_rfh, main_test_rfh()); |
1176 EXPECT_NE(instance1, instance2); | 1175 EXPECT_NE(instance1, instance2); |
1177 EXPECT_FALSE(contents()->GetPendingMainFrame()); | 1176 EXPECT_FALSE(contents()->GetPendingMainFrame()); |
1178 EXPECT_EQ(url2, entry2->GetURL()); | 1177 EXPECT_EQ(url2, entry2->GetURL()); |
1179 EXPECT_EQ(instance2, | 1178 EXPECT_EQ(instance2, |
1180 NavigationEntryImpl::FromNavigationEntry(entry2)->site_instance()); | 1179 NavigationEntryImpl::FromNavigationEntry(entry2)->site_instance()); |
1181 EXPECT_FALSE(google_rfh->GetRenderViewHost()->GetEnabledBindings() & | 1180 EXPECT_FALSE(google_rfh->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); |
1182 BINDINGS_POLICY_WEB_UI); | |
1183 | 1181 |
1184 // Navigate to third page on same site. | 1182 // Navigate to third page on same site. |
1185 const GURL url3("http://news.google.com"); | 1183 const GURL url3("http://news.google.com"); |
1186 controller().LoadURL( | 1184 controller().LoadURL( |
1187 url3, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 1185 url3, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
1188 entry_id = controller().GetPendingEntry()->GetUniqueID(); | 1186 entry_id = controller().GetPendingEntry()->GetUniqueID(); |
1189 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); | 1187 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); |
1190 main_test_rfh()->PrepareForCommit(); | 1188 main_test_rfh()->PrepareForCommit(); |
1191 contents()->TestDidNavigate(google_rfh, entry_id, true, url3, | 1189 contents()->TestDidNavigate(google_rfh, entry_id, true, url3, |
1192 ui::PAGE_TRANSITION_TYPED); | 1190 ui::PAGE_TRANSITION_TYPED); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1254 contents()->TestDidNavigate(webui_rfh, entry_id, true, url1, | 1252 contents()->TestDidNavigate(webui_rfh, entry_id, true, url1, |
1255 ui::PAGE_TRANSITION_TYPED); | 1253 ui::PAGE_TRANSITION_TYPED); |
1256 NavigationEntry* entry1 = controller().GetLastCommittedEntry(); | 1254 NavigationEntry* entry1 = controller().GetLastCommittedEntry(); |
1257 SiteInstance* instance1 = contents()->GetSiteInstance(); | 1255 SiteInstance* instance1 = contents()->GetSiteInstance(); |
1258 | 1256 |
1259 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); | 1257 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); |
1260 EXPECT_EQ(webui_rfh, main_test_rfh()); | 1258 EXPECT_EQ(webui_rfh, main_test_rfh()); |
1261 EXPECT_EQ(url1, entry1->GetURL()); | 1259 EXPECT_EQ(url1, entry1->GetURL()); |
1262 EXPECT_EQ(instance1, | 1260 EXPECT_EQ(instance1, |
1263 NavigationEntryImpl::FromNavigationEntry(entry1)->site_instance()); | 1261 NavigationEntryImpl::FromNavigationEntry(entry1)->site_instance()); |
1264 EXPECT_TRUE(webui_rfh->GetRenderViewHost()->GetEnabledBindings() & | 1262 EXPECT_TRUE(webui_rfh->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); |
1265 BINDINGS_POLICY_WEB_UI); | |
1266 | 1263 |
1267 // Navigate to new site. | 1264 // Navigate to new site. |
1268 const GURL url2("http://www.google.com"); | 1265 const GURL url2("http://www.google.com"); |
1269 controller().LoadURL(url2, Referrer(), ui::PAGE_TRANSITION_TYPED, | 1266 controller().LoadURL(url2, Referrer(), ui::PAGE_TRANSITION_TYPED, |
1270 std::string()); | 1267 std::string()); |
1271 entry_id = controller().GetPendingEntry()->GetUniqueID(); | 1268 entry_id = controller().GetPendingEntry()->GetUniqueID(); |
1272 EXPECT_TRUE(contents()->CrossProcessNavigationPending()); | 1269 EXPECT_TRUE(contents()->CrossProcessNavigationPending()); |
1273 TestRenderFrameHost* google_rfh = contents()->GetPendingMainFrame(); | 1270 TestRenderFrameHost* google_rfh = contents()->GetPendingMainFrame(); |
1274 | 1271 |
1275 // Simulate beforeunload approval. | 1272 // Simulate beforeunload approval. |
1276 EXPECT_TRUE(webui_rfh->is_waiting_for_beforeunload_ack()); | 1273 EXPECT_TRUE(webui_rfh->is_waiting_for_beforeunload_ack()); |
1277 webui_rfh->PrepareForCommit(); | 1274 webui_rfh->PrepareForCommit(); |
1278 | 1275 |
1279 // DidNavigate from the pending page. | 1276 // DidNavigate from the pending page. |
1280 contents()->TestDidNavigate(google_rfh, entry_id, true, url2, | 1277 contents()->TestDidNavigate(google_rfh, entry_id, true, url2, |
1281 ui::PAGE_TRANSITION_TYPED); | 1278 ui::PAGE_TRANSITION_TYPED); |
1282 NavigationEntry* entry2 = controller().GetLastCommittedEntry(); | 1279 NavigationEntry* entry2 = controller().GetLastCommittedEntry(); |
1283 SiteInstance* instance2 = contents()->GetSiteInstance(); | 1280 SiteInstance* instance2 = contents()->GetSiteInstance(); |
1284 | 1281 |
1285 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); | 1282 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); |
1286 EXPECT_EQ(google_rfh, main_test_rfh()); | 1283 EXPECT_EQ(google_rfh, main_test_rfh()); |
1287 EXPECT_NE(instance1, instance2); | 1284 EXPECT_NE(instance1, instance2); |
1288 EXPECT_FALSE(contents()->GetPendingMainFrame()); | 1285 EXPECT_FALSE(contents()->GetPendingMainFrame()); |
1289 EXPECT_EQ(url2, entry2->GetURL()); | 1286 EXPECT_EQ(url2, entry2->GetURL()); |
1290 EXPECT_EQ(instance2, | 1287 EXPECT_EQ(instance2, |
1291 NavigationEntryImpl::FromNavigationEntry(entry2)->site_instance()); | 1288 NavigationEntryImpl::FromNavigationEntry(entry2)->site_instance()); |
1292 EXPECT_FALSE(google_rfh->GetRenderViewHost()->GetEnabledBindings() & | 1289 EXPECT_FALSE(google_rfh->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); |
1293 BINDINGS_POLICY_WEB_UI); | |
1294 | 1290 |
1295 // Navigate to third page on same site. | 1291 // Navigate to third page on same site. |
1296 const GURL url3("http://news.google.com"); | 1292 const GURL url3("http://news.google.com"); |
1297 controller().LoadURL(url3, Referrer(), ui::PAGE_TRANSITION_TYPED, | 1293 controller().LoadURL(url3, Referrer(), ui::PAGE_TRANSITION_TYPED, |
1298 std::string()); | 1294 std::string()); |
1299 entry_id = controller().GetPendingEntry()->GetUniqueID(); | 1295 entry_id = controller().GetPendingEntry()->GetUniqueID(); |
1300 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); | 1296 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); |
1301 main_test_rfh()->PrepareForCommit(); | 1297 main_test_rfh()->PrepareForCommit(); |
1302 contents()->TestDidNavigate(google_rfh, entry_id, true, url3, | 1298 contents()->TestDidNavigate(google_rfh, entry_id, true, url3, |
1303 ui::PAGE_TRANSITION_TYPED); | 1299 ui::PAGE_TRANSITION_TYPED); |
(...skipping 2135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3439 // An automatic navigation. | 3435 // An automatic navigation. |
3440 main_test_rfh()->SendNavigateWithModificationCallback( | 3436 main_test_rfh()->SendNavigateWithModificationCallback( |
3441 0, true, GURL(url::kAboutBlankURL), base::Bind(SetAsNonUserGesture)); | 3437 0, true, GURL(url::kAboutBlankURL), base::Bind(SetAsNonUserGesture)); |
3442 | 3438 |
3443 EXPECT_EQ(1u, dialog_manager.reset_count()); | 3439 EXPECT_EQ(1u, dialog_manager.reset_count()); |
3444 | 3440 |
3445 contents()->SetJavaScriptDialogManagerForTesting(nullptr); | 3441 contents()->SetJavaScriptDialogManagerForTesting(nullptr); |
3446 } | 3442 } |
3447 | 3443 |
3448 } // namespace content | 3444 } // namespace content |
OLD | NEW |