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 "base/command_line.h" | 5 #include "base/command_line.h" |
6 #include "base/macros.h" | 6 #include "base/macros.h" |
7 #include "base/strings/stringprintf.h" | 7 #include "base/strings/stringprintf.h" |
8 #include "content/browser/loader/resource_dispatcher_host_impl.h" | 8 #include "content/browser/loader/resource_dispatcher_host_impl.h" |
9 #include "content/public/browser/navigation_entry.h" | 9 #include "content/public/browser/navigation_entry.h" |
10 #include "content/public/browser/resource_dispatcher_host_delegate.h" | 10 #include "content/public/browser/resource_dispatcher_host_delegate.h" |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 | 286 |
287 // Make sure the request succeeded. | 287 // Make sure the request succeeded. |
288 EXPECT_TRUE(tracking_delegate().WaitForTrackedURLAndGetCompleted()); | 288 EXPECT_TRUE(tracking_delegate().WaitForTrackedURLAndGetCompleted()); |
289 } | 289 } |
290 | 290 |
291 // Tests that the |should_replace_current_entry| flag persists correctly across | 291 // Tests that the |should_replace_current_entry| flag persists correctly across |
292 // request transfers that began with a content-initiated in-process | 292 // request transfers that began with a content-initiated in-process |
293 // navigation. This test is the same as the test above, except transfering from | 293 // navigation. This test is the same as the test above, except transfering from |
294 // in-process. | 294 // in-process. |
295 IN_PROC_BROWSER_TEST_F(CrossSiteTransferTest, | 295 IN_PROC_BROWSER_TEST_F(CrossSiteTransferTest, |
296 ReplaceEntryInProcessThenTranfers) { | 296 ReplaceEntryInProcessThenTransfer) { |
297 const NavigationController& controller = | 297 const NavigationController& controller = |
298 shell()->web_contents()->GetController(); | 298 shell()->web_contents()->GetController(); |
299 | 299 |
300 // Navigate to a starting URL, so there is a history entry to replace. | 300 // Navigate to a starting URL, so there is a history entry to replace. |
301 GURL url = embedded_test_server()->GetURL("/site_isolation/blank.html?1"); | 301 GURL url = embedded_test_server()->GetURL("/site_isolation/blank.html?1"); |
302 EXPECT_TRUE(NavigateToURL(shell(), url)); | 302 EXPECT_TRUE(NavigateToURL(shell(), url)); |
303 | 303 |
304 // Force all future navigations to transfer. Note that this includes same-site | 304 // Force all future navigations to transfer. Note that this includes same-site |
305 // navigiations which may cause double process swaps (via OpenURL and then via | 305 // navigiations which may cause double process swaps (via OpenURL and then via |
306 // transfer). All navigations in this test are same-site, so it only swaps | 306 // transfer). All navigations in this test are same-site, so it only swaps |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 EXPECT_EQ(0, controller.GetCurrentEntryIndex()); | 360 EXPECT_EQ(0, controller.GetCurrentEntryIndex()); |
361 EXPECT_EQ(url2b, controller.GetEntryAtIndex(0)->GetURL()); | 361 EXPECT_EQ(url2b, controller.GetEntryAtIndex(0)->GetURL()); |
362 | 362 |
363 // Now repeat without replacement. | 363 // Now repeat without replacement. |
364 GURL url3b = | 364 GURL url3b = |
365 embedded_test_server()->GetURL("B.com", "/site_isolation/blank.html?3"); | 365 embedded_test_server()->GetURL("B.com", "/site_isolation/blank.html?3"); |
366 GURL url3a = embedded_test_server()->GetURL( | 366 GURL url3a = embedded_test_server()->GetURL( |
367 "A.com", "/cross-site/" + url3b.host() + url3b.PathForRequest()); | 367 "A.com", "/cross-site/" + url3b.host() + url3b.PathForRequest()); |
368 NavigateToURLContentInitiated(shell(), url3a, false, true); | 368 NavigateToURLContentInitiated(shell(), url3a, false, true); |
369 | 369 |
370 // There should be two history entries. url2b should have replaced url1. url2b | 370 // There should be two history entries. url2b should have replaced url1. url3b |
371 // should not have replaced url3b. | 371 // should not have replaced url2b. |
372 EXPECT_TRUE(controller.GetPendingEntry() == nullptr); | 372 EXPECT_TRUE(controller.GetPendingEntry() == nullptr); |
373 EXPECT_EQ(2, controller.GetEntryCount()); | 373 EXPECT_EQ(2, controller.GetEntryCount()); |
374 EXPECT_EQ(1, controller.GetCurrentEntryIndex()); | 374 EXPECT_EQ(1, controller.GetCurrentEntryIndex()); |
375 EXPECT_EQ(url2b, controller.GetEntryAtIndex(0)->GetURL()); | 375 EXPECT_EQ(url2b, controller.GetEntryAtIndex(0)->GetURL()); |
376 EXPECT_EQ(url3b, controller.GetEntryAtIndex(1)->GetURL()); | 376 EXPECT_EQ(url3b, controller.GetEntryAtIndex(1)->GetURL()); |
377 } | 377 } |
378 | 378 |
379 // Tests that the request is destroyed when a cross process navigation is | 379 // Tests that the request is destroyed when a cross process navigation is |
380 // cancelled. | 380 // cancelled. |
381 IN_PROC_BROWSER_TEST_F(CrossSiteTransferTest, NoLeakOnCrossSiteCancel) { | 381 IN_PROC_BROWSER_TEST_F(CrossSiteTransferTest, NoLeakOnCrossSiteCancel) { |
(...skipping 30 matching lines...) Expand all Loading... |
412 EXPECT_EQ(0, controller.GetCurrentEntryIndex()); | 412 EXPECT_EQ(0, controller.GetCurrentEntryIndex()); |
413 EXPECT_EQ(url1, controller.GetEntryAtIndex(0)->GetURL()); | 413 EXPECT_EQ(url1, controller.GetEntryAtIndex(0)->GetURL()); |
414 | 414 |
415 // Make sure the request for url2 did not complete. | 415 // Make sure the request for url2 did not complete. |
416 EXPECT_FALSE(tracking_delegate().WaitForTrackedURLAndGetCompleted()); | 416 EXPECT_FALSE(tracking_delegate().WaitForTrackedURLAndGetCompleted()); |
417 | 417 |
418 shell()->web_contents()->SetDelegate(old_delegate); | 418 shell()->web_contents()->SetDelegate(old_delegate); |
419 } | 419 } |
420 | 420 |
421 } // namespace content | 421 } // namespace content |
OLD | NEW |