| 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 #if defined(OS_POSIX) | 5 #if defined(OS_POSIX) |
| 6 #include <signal.h> | 6 #include <signal.h> |
| 7 #endif | 7 #endif |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 #include "content/public/browser/browser_thread.h" | 25 #include "content/public/browser/browser_thread.h" |
| 26 #include "content/public/browser/notification_service.h" | 26 #include "content/public/browser/notification_service.h" |
| 27 #include "content/public/browser/render_frame_host.h" | 27 #include "content/public/browser/render_frame_host.h" |
| 28 #include "content/public/browser/web_contents.h" | 28 #include "content/public/browser/web_contents.h" |
| 29 #include "content/public/common/content_switches.h" | 29 #include "content/public/common/content_switches.h" |
| 30 #include "content/public/test/browser_test_utils.h" | 30 #include "content/public/test/browser_test_utils.h" |
| 31 #include "net/test/embedded_test_server/embedded_test_server.h" | 31 #include "net/test/embedded_test_server/embedded_test_server.h" |
| 32 #include "net/test/url_request/url_request_mock_http_job.h" | 32 #include "net/test/url_request/url_request_mock_http_job.h" |
| 33 #include "net/url_request/url_request_test_util.h" | 33 #include "net/url_request/url_request_test_util.h" |
| 34 | 34 |
| 35 #if defined(OS_WIN) | |
| 36 // For version specific disabled tests below (http://crbug.com/267597). | |
| 37 #include "base/win/windows_version.h" | |
| 38 #endif | |
| 39 | |
| 40 using base::TimeDelta; | 35 using base::TimeDelta; |
| 41 using content::BrowserThread; | 36 using content::BrowserThread; |
| 42 | 37 |
| 43 const char NOLISTENERS_HTML[] = | 38 const char NOLISTENERS_HTML[] = |
| 44 "<html><head><title>nolisteners</title></head><body></body></html>"; | 39 "<html><head><title>nolisteners</title></head><body></body></html>"; |
| 45 | 40 |
| 46 const char UNLOAD_HTML[] = | 41 const char UNLOAD_HTML[] = |
| 47 "<html><head><title>unload</title></head><body>" | 42 "<html><head><title>unload</title></head><body>" |
| 48 "<script>window.onunload=function(e){}</script></body></html>"; | 43 "<script>window.onunload=function(e){}</script></body></html>"; |
| 49 | 44 |
| (...skipping 704 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 754 EXPECT_EQ("", GetCookies("unload_sleep_before_cookie")); | 749 EXPECT_EQ("", GetCookies("unload_sleep_before_cookie")); |
| 755 | 750 |
| 756 content::WindowedNotificationObserver window_observer( | 751 content::WindowedNotificationObserver window_observer( |
| 757 chrome::NOTIFICATION_BROWSER_CLOSED, | 752 chrome::NOTIFICATION_BROWSER_CLOSED, |
| 758 content::NotificationService::AllSources()); | 753 content::NotificationService::AllSources()); |
| 759 chrome::CloseTab(browser()); | 754 chrome::CloseTab(browser()); |
| 760 window_observer.Wait(); | 755 window_observer.Wait(); |
| 761 } | 756 } |
| 762 | 757 |
| 763 // Fails on Mac, Linux, Win7 (http://crbug.com/301173). | 758 // Fails on Mac, Linux, Win7 (http://crbug.com/301173). |
| 759 // Flaky on Windows bots (http://crbug.com/267597). |
| 764 IN_PROC_BROWSER_TEST_F(FastUnloadTest, DISABLED_ClosingLastTabFinishesUnload) { | 760 IN_PROC_BROWSER_TEST_F(FastUnloadTest, DISABLED_ClosingLastTabFinishesUnload) { |
| 765 #if defined(OS_WIN) | |
| 766 // Flaky on Win7+ bots (http://crbug.com/267597). | |
| 767 if (base::win::GetVersion() >= base::win::VERSION_WIN7) | |
| 768 return; | |
| 769 #endif | |
| 770 // Check for cookie set in unload handler of PRE_ test. | 761 // Check for cookie set in unload handler of PRE_ test. |
| 771 NavigateToPage("no_listeners"); | 762 NavigateToPage("no_listeners"); |
| 772 EXPECT_EQ("unloaded=ohyeah", GetCookies("no_listeners")); | 763 EXPECT_EQ("unloaded=ohyeah", GetCookies("no_listeners")); |
| 773 } | 764 } |
| 774 | 765 |
| 775 // Test that fast-tab-close does not break window close. | 766 // Test that fast-tab-close does not break window close. |
| 776 IN_PROC_BROWSER_TEST_F(FastUnloadTest, PRE_WindowCloseFinishesUnload) { | 767 IN_PROC_BROWSER_TEST_F(FastUnloadTest, PRE_WindowCloseFinishesUnload) { |
| 777 NavigateToPage("no_listeners"); | 768 NavigateToPage("no_listeners"); |
| 778 | 769 |
| 779 // The unload handler sleeps before setting the cookie to catch cases when | 770 // The unload handler sleeps before setting the cookie to catch cases when |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 925 base::Bind(&UnloadResults::AddSuccess, base::Unretained(&unload_results)), | 916 base::Bind(&UnloadResults::AddSuccess, base::Unretained(&unload_results)), |
| 926 base::Bind(&UnloadResults::AddAbort, base::Unretained(&unload_results)), | 917 base::Bind(&UnloadResults::AddAbort, base::Unretained(&unload_results)), |
| 927 true); | 918 true); |
| 928 window_observer.Wait(); | 919 window_observer.Wait(); |
| 929 EXPECT_EQ(1, unload_results.get_successes()); | 920 EXPECT_EQ(1, unload_results.get_successes()); |
| 930 EXPECT_EQ(0, unload_results.get_aborts()); | 921 EXPECT_EQ(0, unload_results.get_aborts()); |
| 931 } | 922 } |
| 932 | 923 |
| 933 // TODO(ojan): Add tests for unload/beforeunload that have multiple tabs | 924 // TODO(ojan): Add tests for unload/beforeunload that have multiple tabs |
| 934 // and multiple windows. | 925 // and multiple windows. |
| OLD | NEW |