Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(632)

Side by Side Diff: chrome/browser/crash_recovery_browsertest.cc

Issue 2248873002: Convert WindowOpenDisposition to an enum class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/command_updater.cc ('k') | chrome/browser/data_saver/data_saver_browsertest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <utility> 5 #include <utility>
6 6
7 #include "base/base_switches.h" 7 #include "base/base_switches.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 21 matching lines...) Expand all
32 32
33 // TODO(jam): http://crbug.com/350550 33 // TODO(jam): http://crbug.com/350550
34 #if !(defined(OS_CHROMEOS) && defined(ADDRESS_SANITIZER)) 34 #if !(defined(OS_CHROMEOS) && defined(ADDRESS_SANITIZER))
35 35
36 namespace { 36 namespace {
37 37
38 void SimulateRendererCrash(Browser* browser) { 38 void SimulateRendererCrash(Browser* browser) {
39 content::WindowedNotificationObserver observer( 39 content::WindowedNotificationObserver observer(
40 content::NOTIFICATION_WEB_CONTENTS_DISCONNECTED, 40 content::NOTIFICATION_WEB_CONTENTS_DISCONNECTED,
41 content::NotificationService::AllSources()); 41 content::NotificationService::AllSources());
42 browser->OpenURL(OpenURLParams( 42 browser->OpenURL(OpenURLParams(GURL(content::kChromeUICrashURL), Referrer(),
43 GURL(content::kChromeUICrashURL), Referrer(), CURRENT_TAB, 43 WindowOpenDisposition::CURRENT_TAB,
44 ui::PAGE_TRANSITION_TYPED, false)); 44 ui::PAGE_TRANSITION_TYPED, false));
45 observer.Wait(); 45 observer.Wait();
46 } 46 }
47 47
48 // A request handler which returns a different result each time but stays fresh 48 // A request handler which returns a different result each time but stays fresh
49 // into the far future. 49 // into the far future.
50 class CacheMaxAgeHandler { 50 class CacheMaxAgeHandler {
51 public: 51 public:
52 explicit CacheMaxAgeHandler(const std::string& path) 52 explicit CacheMaxAgeHandler(const std::string& path)
53 : path_(path), request_count_(0) { } 53 : path_(path), request_count_(0) { }
54 54
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 GURL url( 92 GURL url(
93 "data:text/html,<script>document.title=new Date().valueOf()</script>"); 93 "data:text/html,<script>document.title=new Date().valueOf()</script>");
94 ui_test_utils::NavigateToURL(browser(), url); 94 ui_test_utils::NavigateToURL(browser(), url);
95 95
96 base::string16 title_before_crash; 96 base::string16 title_before_crash;
97 base::string16 title_after_crash; 97 base::string16 title_after_crash;
98 98
99 ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), 99 ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(),
100 &title_before_crash)); 100 &title_before_crash));
101 SimulateRendererCrash(browser()); 101 SimulateRendererCrash(browser());
102 chrome::Reload(browser(), CURRENT_TAB); 102 chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
103 content::WaitForLoadStop(GetActiveWebContents()); 103 content::WaitForLoadStop(GetActiveWebContents());
104 ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), 104 ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(),
105 &title_after_crash)); 105 &title_after_crash));
106 EXPECT_NE(title_before_crash, title_after_crash); 106 EXPECT_NE(title_before_crash, title_after_crash);
107 } 107 }
108 108
109 // Test that reload after a crash forces a cache revalidation. 109 // Test that reload after a crash forces a cache revalidation.
110 IN_PROC_BROWSER_TEST_F(CrashRecoveryBrowserTest, ReloadCacheRevalidate) { 110 IN_PROC_BROWSER_TEST_F(CrashRecoveryBrowserTest, ReloadCacheRevalidate) {
111 const char kTestPath[] = "/test"; 111 const char kTestPath[] = "/test";
112 112
113 // Use the test server so as not to bypass cache behavior. The title of the 113 // Use the test server so as not to bypass cache behavior. The title of the
114 // active tab should change only when this URL is reloaded. 114 // active tab should change only when this URL is reloaded.
115 ASSERT_TRUE(embedded_test_server()->Start()); 115 ASSERT_TRUE(embedded_test_server()->Start());
116 embedded_test_server()->RegisterRequestHandler( 116 embedded_test_server()->RegisterRequestHandler(
117 base::Bind(&CacheMaxAgeHandler::HandleRequest, 117 base::Bind(&CacheMaxAgeHandler::HandleRequest,
118 base::Owned(new CacheMaxAgeHandler(kTestPath)))); 118 base::Owned(new CacheMaxAgeHandler(kTestPath))));
119 ui_test_utils::NavigateToURL(browser(), 119 ui_test_utils::NavigateToURL(browser(),
120 embedded_test_server()->GetURL(kTestPath)); 120 embedded_test_server()->GetURL(kTestPath));
121 121
122 base::string16 title_before_crash; 122 base::string16 title_before_crash;
123 base::string16 title_after_crash; 123 base::string16 title_after_crash;
124 124
125 ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), 125 ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(),
126 &title_before_crash)); 126 &title_before_crash));
127 SimulateRendererCrash(browser()); 127 SimulateRendererCrash(browser());
128 chrome::Reload(browser(), CURRENT_TAB); 128 chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
129 content::WaitForLoadStop(GetActiveWebContents()); 129 content::WaitForLoadStop(GetActiveWebContents());
130 ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), 130 ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(),
131 &title_after_crash)); 131 &title_after_crash));
132 EXPECT_NE(title_before_crash, title_after_crash); 132 EXPECT_NE(title_before_crash, title_after_crash);
133 } 133 }
134 134
135 // Tests that loading a crashed page in a new tab correctly updates the title. 135 // Tests that loading a crashed page in a new tab correctly updates the title.
136 // There was an earlier bug (1270510) in process-per-site in which the max page 136 // There was an earlier bug (1270510) in process-per-site in which the max page
137 // ID of the RenderProcessHost was stale, so the NavigationEntry in the new tab 137 // ID of the RenderProcessHost was stale, so the NavigationEntry in the new tab
138 // was not committed. This prevents regression of that bug. 138 // was not committed. This prevents regression of that bug.
139 IN_PROC_BROWSER_TEST_F(CrashRecoveryBrowserTest, LoadInNewTab) { 139 IN_PROC_BROWSER_TEST_F(CrashRecoveryBrowserTest, LoadInNewTab) {
140 const base::FilePath::CharType kTitle2File[] = 140 const base::FilePath::CharType kTitle2File[] =
141 FILE_PATH_LITERAL("title2.html"); 141 FILE_PATH_LITERAL("title2.html");
142 142
143 ui_test_utils::NavigateToURL( 143 ui_test_utils::NavigateToURL(
144 browser(), ui_test_utils::GetTestUrl( 144 browser(), ui_test_utils::GetTestUrl(
145 base::FilePath(base::FilePath::kCurrentDirectory), 145 base::FilePath(base::FilePath::kCurrentDirectory),
146 base::FilePath(kTitle2File))); 146 base::FilePath(kTitle2File)));
147 147
148 base::string16 title_before_crash; 148 base::string16 title_before_crash;
149 base::string16 title_after_crash; 149 base::string16 title_after_crash;
150 150
151 ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), 151 ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(),
152 &title_before_crash)); 152 &title_before_crash));
153 SimulateRendererCrash(browser()); 153 SimulateRendererCrash(browser());
154 chrome::Reload(browser(), CURRENT_TAB); 154 chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
155 content::WaitForLoadStop(GetActiveWebContents()); 155 content::WaitForLoadStop(GetActiveWebContents());
156 ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), 156 ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(),
157 &title_after_crash)); 157 &title_after_crash));
158 EXPECT_EQ(title_before_crash, title_after_crash); 158 EXPECT_EQ(title_before_crash, title_after_crash);
159 } 159 }
160 160
161 // Tests that reloads of navigation errors behave correctly after a crash. 161 // Tests that reloads of navigation errors behave correctly after a crash.
162 // Regression test for http://crbug.com/348918 162 // Regression test for http://crbug.com/348918
163 IN_PROC_BROWSER_TEST_F(CrashRecoveryBrowserTest, DoubleReloadWithError) { 163 IN_PROC_BROWSER_TEST_F(CrashRecoveryBrowserTest, DoubleReloadWithError) {
164 GURL url("chrome://bogus"); 164 GURL url("chrome://bogus");
165 ui_test_utils::NavigateToURL(browser(), url); 165 ui_test_utils::NavigateToURL(browser(), url);
166 ASSERT_EQ(url, GetActiveWebContents()->GetVisibleURL()); 166 ASSERT_EQ(url, GetActiveWebContents()->GetVisibleURL());
167 167
168 SimulateRendererCrash(browser()); 168 SimulateRendererCrash(browser());
169 169
170 chrome::Reload(browser(), CURRENT_TAB); 170 chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
171 content::WaitForLoadStop(GetActiveWebContents()); 171 content::WaitForLoadStop(GetActiveWebContents());
172 ASSERT_EQ(url, GetActiveWebContents()->GetVisibleURL()); 172 ASSERT_EQ(url, GetActiveWebContents()->GetVisibleURL());
173 173
174 chrome::Reload(browser(), CURRENT_TAB); 174 chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
175 content::WaitForLoadStop(GetActiveWebContents()); 175 content::WaitForLoadStop(GetActiveWebContents());
176 ASSERT_EQ(url, GetActiveWebContents()->GetVisibleURL()); 176 ASSERT_EQ(url, GetActiveWebContents()->GetVisibleURL());
177 } 177 }
178 178
179 } // namespace 179 } // namespace
180 180
181 #endif 181 #endif
OLDNEW
« no previous file with comments | « chrome/browser/command_updater.cc ('k') | chrome/browser/data_saver/data_saver_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698