| 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/file_path.h" | 6 #include "base/file_path.h" |
| 7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
| 8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/defaults.h" | 9 #include "chrome/browser/defaults.h" |
| 10 #include "chrome/browser/first_run/first_run.h" | 10 #include "chrome/browser/first_run/first_run.h" |
| (...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 // here to avoid a crash. | 468 // here to avoid a crash. |
| 469 window.tabs.clear(); | 469 window.tabs.clear(); |
| 470 } | 470 } |
| 471 | 471 |
| 472 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, Basic) { | 472 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, Basic) { |
| 473 ui_test_utils::NavigateToURL(browser(), url1_); | 473 ui_test_utils::NavigateToURL(browser(), url1_); |
| 474 ui_test_utils::NavigateToURL(browser(), url2_); | 474 ui_test_utils::NavigateToURL(browser(), url2_); |
| 475 | 475 |
| 476 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); | 476 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); |
| 477 ASSERT_EQ(1u, BrowserList::size()); | 477 ASSERT_EQ(1u, BrowserList::size()); |
| 478 ASSERT_EQ(url2_, new_browser->GetSelectedWebContents()->GetURL()); | 478 ASSERT_EQ(url2_, new_browser->GetActiveWebContents()->GetURL()); |
| 479 GoBack(new_browser); | 479 GoBack(new_browser); |
| 480 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); | 480 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL()); |
| 481 } | 481 } |
| 482 | 482 |
| 483 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, RestoresForwardAndBackwardNavs) { | 483 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, RestoresForwardAndBackwardNavs) { |
| 484 ui_test_utils::NavigateToURL(browser(), url1_); | 484 ui_test_utils::NavigateToURL(browser(), url1_); |
| 485 ui_test_utils::NavigateToURL(browser(), url2_); | 485 ui_test_utils::NavigateToURL(browser(), url2_); |
| 486 ui_test_utils::NavigateToURL(browser(), url3_); | 486 ui_test_utils::NavigateToURL(browser(), url3_); |
| 487 | 487 |
| 488 GoBack(browser()); | 488 GoBack(browser()); |
| 489 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); | 489 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); |
| 490 ASSERT_EQ(1u, BrowserList::size()); | 490 ASSERT_EQ(1u, BrowserList::size()); |
| 491 ASSERT_EQ(url2_, new_browser->GetSelectedWebContents()->GetURL()); | 491 ASSERT_EQ(url2_, new_browser->GetActiveWebContents()->GetURL()); |
| 492 GoForward(new_browser); | 492 GoForward(new_browser); |
| 493 ASSERT_EQ(url3_, new_browser->GetSelectedWebContents()->GetURL()); | 493 ASSERT_EQ(url3_, new_browser->GetActiveWebContents()->GetURL()); |
| 494 GoBack(new_browser); | 494 GoBack(new_browser); |
| 495 ASSERT_EQ(url2_, new_browser->GetSelectedWebContents()->GetURL()); | 495 ASSERT_EQ(url2_, new_browser->GetActiveWebContents()->GetURL()); |
| 496 | 496 |
| 497 // Test renderer-initiated back/forward as well. | 497 // Test renderer-initiated back/forward as well. |
| 498 GURL go_back_url("javascript:history.back();"); | 498 GURL go_back_url("javascript:history.back();"); |
| 499 ui_test_utils::NavigateToURL(new_browser, go_back_url); | 499 ui_test_utils::NavigateToURL(new_browser, go_back_url); |
| 500 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); | 500 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL()); |
| 501 } | 501 } |
| 502 | 502 |
| 503 // Tests that the SiteInstances used for entries in a restored tab's history | 503 // Tests that the SiteInstances used for entries in a restored tab's history |
| 504 // are given appropriate max page IDs, so that going back to a restored | 504 // are given appropriate max page IDs, so that going back to a restored |
| 505 // cross-site page and then forward again works. (Bug 1204135) | 505 // cross-site page and then forward again works. (Bug 1204135) |
| 506 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, | 506 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, |
| 507 RestoresCrossSiteForwardAndBackwardNavs) { | 507 RestoresCrossSiteForwardAndBackwardNavs) { |
| 508 ASSERT_TRUE(test_server()->Start()); | 508 ASSERT_TRUE(test_server()->Start()); |
| 509 | 509 |
| 510 GURL cross_site_url(test_server()->GetURL("files/title2.html")); | 510 GURL cross_site_url(test_server()->GetURL("files/title2.html")); |
| 511 | 511 |
| 512 // Visit URLs on different sites. | 512 // Visit URLs on different sites. |
| 513 ui_test_utils::NavigateToURL(browser(), url1_); | 513 ui_test_utils::NavigateToURL(browser(), url1_); |
| 514 ui_test_utils::NavigateToURL(browser(), cross_site_url); | 514 ui_test_utils::NavigateToURL(browser(), cross_site_url); |
| 515 ui_test_utils::NavigateToURL(browser(), url2_); | 515 ui_test_utils::NavigateToURL(browser(), url2_); |
| 516 | 516 |
| 517 GoBack(browser()); | 517 GoBack(browser()); |
| 518 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); | 518 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); |
| 519 ASSERT_EQ(1u, BrowserList::size()); | 519 ASSERT_EQ(1u, BrowserList::size()); |
| 520 ASSERT_EQ(1, new_browser->tab_count()); | 520 ASSERT_EQ(1, new_browser->tab_count()); |
| 521 | 521 |
| 522 // Check that back and forward work as expected. | 522 // Check that back and forward work as expected. |
| 523 ASSERT_EQ(cross_site_url, new_browser->GetSelectedWebContents()->GetURL()); | 523 ASSERT_EQ(cross_site_url, new_browser->GetActiveWebContents()->GetURL()); |
| 524 | 524 |
| 525 GoBack(new_browser); | 525 GoBack(new_browser); |
| 526 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); | 526 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL()); |
| 527 | 527 |
| 528 GoForward(new_browser); | 528 GoForward(new_browser); |
| 529 ASSERT_EQ(cross_site_url, new_browser->GetSelectedWebContents()->GetURL()); | 529 ASSERT_EQ(cross_site_url, new_browser->GetActiveWebContents()->GetURL()); |
| 530 | 530 |
| 531 // Test renderer-initiated back/forward as well. | 531 // Test renderer-initiated back/forward as well. |
| 532 GURL go_forward_url("javascript:history.forward();"); | 532 GURL go_forward_url("javascript:history.forward();"); |
| 533 ui_test_utils::NavigateToURL(new_browser, go_forward_url); | 533 ui_test_utils::NavigateToURL(new_browser, go_forward_url); |
| 534 ASSERT_EQ(url2_, new_browser->GetSelectedWebContents()->GetURL()); | 534 ASSERT_EQ(url2_, new_browser->GetActiveWebContents()->GetURL()); |
| 535 } | 535 } |
| 536 | 536 |
| 537 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, TwoTabsSecondSelected) { | 537 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, TwoTabsSecondSelected) { |
| 538 ui_test_utils::NavigateToURL(browser(), url1_); | 538 ui_test_utils::NavigateToURL(browser(), url1_); |
| 539 | 539 |
| 540 ui_test_utils::NavigateToURLWithDisposition( | 540 ui_test_utils::NavigateToURLWithDisposition( |
| 541 browser(), url2_, NEW_FOREGROUND_TAB, | 541 browser(), url2_, NEW_FOREGROUND_TAB, |
| 542 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 542 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 543 | 543 |
| 544 Browser* new_browser = QuitBrowserAndRestore(browser(), 2); | 544 Browser* new_browser = QuitBrowserAndRestore(browser(), 2); |
| 545 | 545 |
| 546 ASSERT_EQ(1u, BrowserList::size()); | 546 ASSERT_EQ(1u, BrowserList::size()); |
| 547 ASSERT_EQ(2, new_browser->tab_count()); | 547 ASSERT_EQ(2, new_browser->tab_count()); |
| 548 ASSERT_EQ(1, new_browser->active_index()); | 548 ASSERT_EQ(1, new_browser->active_index()); |
| 549 ASSERT_EQ(url2_, new_browser->GetSelectedWebContents()->GetURL()); | 549 ASSERT_EQ(url2_, new_browser->GetActiveWebContents()->GetURL()); |
| 550 | 550 |
| 551 ASSERT_EQ(url1_, new_browser->GetWebContentsAt(0)->GetURL()); | 551 ASSERT_EQ(url1_, new_browser->GetWebContentsAt(0)->GetURL()); |
| 552 } | 552 } |
| 553 | 553 |
| 554 // Creates two tabs, closes one, quits and makes sure only one tab is restored. | 554 // Creates two tabs, closes one, quits and makes sure only one tab is restored. |
| 555 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, ClosedTabStaysClosed) { | 555 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, ClosedTabStaysClosed) { |
| 556 ui_test_utils::NavigateToURL(browser(), url1_); | 556 ui_test_utils::NavigateToURL(browser(), url1_); |
| 557 | 557 |
| 558 ui_test_utils::NavigateToURLWithDisposition( | 558 ui_test_utils::NavigateToURLWithDisposition( |
| 559 browser(), url2_, NEW_FOREGROUND_TAB, | 559 browser(), url2_, NEW_FOREGROUND_TAB, |
| 560 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 560 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 561 browser()->CloseTab(); | 561 browser()->CloseTab(); |
| 562 | 562 |
| 563 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); | 563 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); |
| 564 | 564 |
| 565 AssertOneWindowWithOneTab(new_browser); | 565 AssertOneWindowWithOneTab(new_browser); |
| 566 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); | 566 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL()); |
| 567 } | 567 } |
| 568 | 568 |
| 569 // Test to verify that the print preview tab is not restored. | 569 // Test to verify that the print preview tab is not restored. |
| 570 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, DontRestorePrintPreviewTabTest) { | 570 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, DontRestorePrintPreviewTabTest) { |
| 571 ui_test_utils::NavigateToURL(browser(), url1_); | 571 ui_test_utils::NavigateToURL(browser(), url1_); |
| 572 | 572 |
| 573 // Append the print preview tab. | 573 // Append the print preview tab. |
| 574 ui_test_utils::NavigateToURLWithDisposition( | 574 ui_test_utils::NavigateToURLWithDisposition( |
| 575 browser(), GURL(chrome::kChromeUIPrintURL), NEW_FOREGROUND_TAB, | 575 browser(), GURL(chrome::kChromeUIPrintURL), NEW_FOREGROUND_TAB, |
| 576 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 576 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 577 | 577 |
| 578 // Restart and make sure we have only one window with one tab and the url | 578 // Restart and make sure we have only one window with one tab and the url |
| 579 // is url1_. | 579 // is url1_. |
| 580 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); | 580 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); |
| 581 | 581 |
| 582 AssertOneWindowWithOneTab(new_browser); | 582 AssertOneWindowWithOneTab(new_browser); |
| 583 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); | 583 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL()); |
| 584 } | 584 } |
| 585 | 585 |
| 586 // Creates a tabbed browser and popup and makes sure we restore both. | 586 // Creates a tabbed browser and popup and makes sure we restore both. |
| 587 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, NormalAndPopup) { | 587 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, NormalAndPopup) { |
| 588 if (!browser_defaults::kRestorePopups) | 588 if (!browser_defaults::kRestorePopups) |
| 589 return; // Test only applicable if restoring popups. | 589 return; // Test only applicable if restoring popups. |
| 590 | 590 |
| 591 ui_test_utils::NavigateToURL(browser(), url1_); | 591 ui_test_utils::NavigateToURL(browser(), url1_); |
| 592 | 592 |
| 593 // Make sure we have one window. | 593 // Make sure we have one window. |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 651 ASSERT_EQ(2u, BrowserList::size()); | 651 ASSERT_EQ(2u, BrowserList::size()); |
| 652 | 652 |
| 653 // Close the first window. The only window left is the App window. | 653 // Close the first window. The only window left is the App window. |
| 654 CloseBrowserSynchronously(browser()); | 654 CloseBrowserSynchronously(browser()); |
| 655 | 655 |
| 656 // Restore the session, which should bring back the first window with url1_. | 656 // Restore the session, which should bring back the first window with url1_. |
| 657 Browser* new_browser = QuitBrowserAndRestore(app_window, 1); | 657 Browser* new_browser = QuitBrowserAndRestore(app_window, 1); |
| 658 | 658 |
| 659 AssertOneWindowWithOneTab(new_browser); | 659 AssertOneWindowWithOneTab(new_browser); |
| 660 | 660 |
| 661 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); | 661 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL()); |
| 662 } | 662 } |
| 663 | 663 |
| 664 #endif // !defined(OS_CHROMEOS) && !defined(OS_MACOSX) | 664 #endif // !defined(OS_CHROMEOS) && !defined(OS_MACOSX) |
| 665 | 665 |
| 666 // Creates two windows, closes one, restores, make sure only one window open. | 666 // Creates two windows, closes one, restores, make sure only one window open. |
| 667 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, TwoWindowsCloseOneRestoreOnlyOne) { | 667 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, TwoWindowsCloseOneRestoreOnlyOne) { |
| 668 ui_test_utils::NavigateToURL(browser(), url1_); | 668 ui_test_utils::NavigateToURL(browser(), url1_); |
| 669 | 669 |
| 670 // Open a second window. | 670 // Open a second window. |
| 671 ui_test_utils::NavigateToURLWithDisposition( | 671 ui_test_utils::NavigateToURLWithDisposition( |
| 672 browser(), GURL(chrome::kAboutBlankURL), NEW_WINDOW, | 672 browser(), GURL(chrome::kAboutBlankURL), NEW_WINDOW, |
| 673 ui_test_utils::BROWSER_TEST_WAIT_FOR_BROWSER); | 673 ui_test_utils::BROWSER_TEST_WAIT_FOR_BROWSER); |
| 674 | 674 |
| 675 ASSERT_EQ(2u, BrowserList::size()); | 675 ASSERT_EQ(2u, BrowserList::size()); |
| 676 | 676 |
| 677 // Close it. | 677 // Close it. |
| 678 Browser* new_window = *(++BrowserList::begin()); | 678 Browser* new_window = *(++BrowserList::begin()); |
| 679 CloseBrowserSynchronously(new_window); | 679 CloseBrowserSynchronously(new_window); |
| 680 | 680 |
| 681 // Restart and make sure we have only one window with one tab and the url | 681 // Restart and make sure we have only one window with one tab and the url |
| 682 // is url1_. | 682 // is url1_. |
| 683 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); | 683 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); |
| 684 | 684 |
| 685 AssertOneWindowWithOneTab(new_browser); | 685 AssertOneWindowWithOneTab(new_browser); |
| 686 | 686 |
| 687 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); | 687 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL()); |
| 688 } | 688 } |
| 689 | 689 |
| 690 // Make sure after a restore the number of processes matches that of the number | 690 // Make sure after a restore the number of processes matches that of the number |
| 691 // of processes running before the restore. This creates a new tab so that | 691 // of processes running before the restore. This creates a new tab so that |
| 692 // we should have two new tabs running. (This test will pass in both | 692 // we should have two new tabs running. (This test will pass in both |
| 693 // process-per-site and process-per-site-instance, because we treat the new tab | 693 // process-per-site and process-per-site-instance, because we treat the new tab |
| 694 // as a special case in process-per-site-instance so that it only ever uses one | 694 // as a special case in process-per-site-instance so that it only ever uses one |
| 695 // process.) | 695 // process.) |
| 696 // | 696 // |
| 697 // Flaky: http://code.google.com/p/chromium/issues/detail?id=52022 | 697 // Flaky: http://code.google.com/p/chromium/issues/detail?id=52022 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 751 | 751 |
| 752 // Restore the session again, globbering the existing tab. | 752 // Restore the session again, globbering the existing tab. |
| 753 SessionRestore::RestoreSession( | 753 SessionRestore::RestoreSession( |
| 754 profile, new_browser, | 754 profile, new_browser, |
| 755 SessionRestore::CLOBBER_CURRENT_TAB | SessionRestore::SYNCHRONOUS, | 755 SessionRestore::CLOBBER_CURRENT_TAB | SessionRestore::SYNCHRONOUS, |
| 756 std::vector<GURL>()); | 756 std::vector<GURL>()); |
| 757 | 757 |
| 758 // The pinned tab is the selected tab. | 758 // The pinned tab is the selected tab. |
| 759 ASSERT_EQ(2, new_browser->tab_count()); | 759 ASSERT_EQ(2, new_browser->tab_count()); |
| 760 EXPECT_EQ(0, new_browser->active_index()); | 760 EXPECT_EQ(0, new_browser->active_index()); |
| 761 EXPECT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); | 761 EXPECT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL()); |
| 762 EXPECT_EQ(url2_, new_browser->GetWebContentsAt(1)->GetURL()); | 762 EXPECT_EQ(url2_, new_browser->GetWebContentsAt(1)->GetURL()); |
| 763 } | 763 } |
| OLD | NEW |