| 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 <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/process/launch.h" | 9 #include "base/process/launch.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 DISABLED_RestoreOnNewWindowWithNoTabbedBrowsers | 292 DISABLED_RestoreOnNewWindowWithNoTabbedBrowsers |
| 293 #else | 293 #else |
| 294 #define MAYBE_RestoreOnNewWindowWithNoTabbedBrowsers \ | 294 #define MAYBE_RestoreOnNewWindowWithNoTabbedBrowsers \ |
| 295 RestoreOnNewWindowWithNoTabbedBrowsers | 295 RestoreOnNewWindowWithNoTabbedBrowsers |
| 296 #endif | 296 #endif |
| 297 | 297 |
| 298 // Makes sure when session restore is triggered in the same process we don't end | 298 // Makes sure when session restore is triggered in the same process we don't end |
| 299 // up with an extra tab. | 299 // up with an extra tab. |
| 300 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, | 300 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, |
| 301 MAYBE_RestoreOnNewWindowWithNoTabbedBrowsers) { | 301 MAYBE_RestoreOnNewWindowWithNoTabbedBrowsers) { |
| 302 if (browser_defaults::kRestorePopups) | |
| 303 return; | |
| 304 | |
| 305 const base::FilePath::CharType* kTitle1File = | 302 const base::FilePath::CharType* kTitle1File = |
| 306 FILE_PATH_LITERAL("title1.html"); | 303 FILE_PATH_LITERAL("title1.html"); |
| 307 GURL url(ui_test_utils::GetTestUrl(base::FilePath( | 304 GURL url(ui_test_utils::GetTestUrl(base::FilePath( |
| 308 base::FilePath::kCurrentDirectory), base::FilePath(kTitle1File))); | 305 base::FilePath::kCurrentDirectory), base::FilePath(kTitle1File))); |
| 309 ui_test_utils::NavigateToURL(browser(), url); | 306 ui_test_utils::NavigateToURL(browser(), url); |
| 310 | 307 |
| 311 // Turn on session restore. | 308 // Turn on session restore. |
| 312 SessionStartupPref::SetStartupPref( | 309 SessionStartupPref::SetStartupPref( |
| 313 browser()->profile(), | 310 browser()->profile(), |
| 314 SessionStartupPref(SessionStartupPref::LAST)); | 311 SessionStartupPref(SessionStartupPref::LAST)); |
| (...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 847 navigate_params.disposition = NEW_BACKGROUND_TAB; | 844 navigate_params.disposition = NEW_BACKGROUND_TAB; |
| 848 ui_test_utils::NavigateToURL(&navigate_params); | 845 ui_test_utils::NavigateToURL(&navigate_params); |
| 849 | 846 |
| 850 Browser* new_browser = QuitBrowserAndRestore(browser(), 3); | 847 Browser* new_browser = QuitBrowserAndRestore(browser(), 3); |
| 851 | 848 |
| 852 ASSERT_EQ(url1_, | 849 ASSERT_EQ(url1_, |
| 853 new_browser->tab_strip_model()->GetActiveWebContents()->GetURL()); | 850 new_browser->tab_strip_model()->GetActiveWebContents()->GetURL()); |
| 854 ASSERT_EQ(new_browser->tab_strip_model()->active_index(), 1); | 851 ASSERT_EQ(new_browser->tab_strip_model()->active_index(), 1); |
| 855 } | 852 } |
| 856 | 853 |
| 857 // Creates a tabbed browser and popup and makes sure we restore both. | |
| 858 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, NormalAndPopup) { | |
| 859 if (!browser_defaults::kRestorePopups) | |
| 860 return; // Test only applicable if restoring popups. | |
| 861 | |
| 862 ui_test_utils::NavigateToURL(browser(), url1_); | |
| 863 | |
| 864 // Make sure we have one window. | |
| 865 AssertOneWindowWithOneTab(browser()); | |
| 866 | |
| 867 // Open a popup. | |
| 868 Browser* popup = new Browser( | |
| 869 Browser::CreateParams(Browser::TYPE_POPUP, browser()->profile(), | |
| 870 browser()->host_desktop_type())); | |
| 871 popup->window()->Show(); | |
| 872 ASSERT_EQ(2u, active_browser_list_->size()); | |
| 873 | |
| 874 ui_test_utils::NavigateToURL(popup, url1_); | |
| 875 | |
| 876 // Simulate an exit by shuting down the session service. If we don't do this | |
| 877 // the first window close is treated as though the user closed the window | |
| 878 // and won't be restored. | |
| 879 SessionServiceFactory::ShutdownForProfile(browser()->profile()); | |
| 880 | |
| 881 // Restart and make sure we have two windows. | |
| 882 QuitBrowserAndRestore(browser(), 1); | |
| 883 | |
| 884 ASSERT_EQ(2u, active_browser_list_->size()); | |
| 885 | |
| 886 Browser* browser1 = active_browser_list_->get(0); | |
| 887 Browser* browser2 = active_browser_list_->get(1); | |
| 888 | |
| 889 Browser::Type type1 = browser1->type(); | |
| 890 Browser::Type type2 = browser2->type(); | |
| 891 | |
| 892 // The order of whether the normal window or popup is first depends upon | |
| 893 // activation order, which is not necessarily consistant across runs. | |
| 894 if (type1 == Browser::TYPE_TABBED) { | |
| 895 EXPECT_EQ(type2, Browser::TYPE_POPUP); | |
| 896 } else { | |
| 897 EXPECT_EQ(type1, Browser::TYPE_POPUP); | |
| 898 EXPECT_EQ(type2, Browser::TYPE_TABBED); | |
| 899 } | |
| 900 } | |
| 901 | |
| 902 #if !defined(OS_CHROMEOS) && !defined(OS_MACOSX) | 854 #if !defined(OS_CHROMEOS) && !defined(OS_MACOSX) |
| 903 // This test doesn't apply to the Mac version; see GetCommandLineForRelaunch | 855 // This test doesn't apply to the Mac version; see GetCommandLineForRelaunch |
| 904 // for details. It was disabled for a long time so might never have worked on | 856 // for details. It was disabled for a long time so might never have worked on |
| 905 // ChromeOS. | 857 // ChromeOS. |
| 906 | 858 |
| 907 // Launches an app window, closes tabbed browser, launches and makes sure | 859 // Launches an app window, closes tabbed browser, launches and makes sure |
| 908 // we restore the tabbed browser url. | 860 // we restore the tabbed browser url. |
| 909 // If this test flakes, use http://crbug.com/29110 | 861 // If this test flakes, use http://crbug.com/29110 |
| 910 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, | 862 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, |
| 911 RestoreAfterClosingTabbedBrowserWithAppAndLaunching) { | 863 RestoreAfterClosingTabbedBrowserWithAppAndLaunching) { |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1182 content::NavigationController* controller = | 1134 content::NavigationController* controller = |
| 1183 &browser()->tab_strip_model()->GetActiveWebContents()->GetController(); | 1135 &browser()->tab_strip_model()->GetActiveWebContents()->GetController(); |
| 1184 EXPECT_TRUE( | 1136 EXPECT_TRUE( |
| 1185 controller->GetDefaultSessionStorageNamespace()->should_persist()); | 1137 controller->GetDefaultSessionStorageNamespace()->should_persist()); |
| 1186 | 1138 |
| 1187 // Quit and restore. Check that no extra tabs were created. | 1139 // Quit and restore. Check that no extra tabs were created. |
| 1188 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); | 1140 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); |
| 1189 ASSERT_EQ(1u, active_browser_list_->size()); | 1141 ASSERT_EQ(1u, active_browser_list_->size()); |
| 1190 EXPECT_EQ(1, new_browser->tab_strip_model()->count()); | 1142 EXPECT_EQ(1, new_browser->tab_strip_model()->count()); |
| 1191 } | 1143 } |
| OLD | NEW |