OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/lifetime/browser_close_manager.h" | 5 #include "chrome/browser/lifetime/browser_close_manager.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 #include "content/public/browser/browser_context.h" | 45 #include "content/public/browser/browser_context.h" |
46 #include "content/public/browser/download_item.h" | 46 #include "content/public/browser/download_item.h" |
47 #include "content/public/browser/download_manager.h" | 47 #include "content/public/browser/download_manager.h" |
48 #include "content/public/browser/notification_service.h" | 48 #include "content/public/browser/notification_service.h" |
49 #include "content/public/browser/render_frame_host.h" | 49 #include "content/public/browser/render_frame_host.h" |
50 #include "content/public/browser/render_view_host.h" | 50 #include "content/public/browser/render_view_host.h" |
51 #include "content/public/browser/render_widget_host.h" | 51 #include "content/public/browser/render_widget_host.h" |
52 #include "content/public/browser/web_contents.h" | 52 #include "content/public/browser/web_contents.h" |
53 #include "content/public/test/browser_test_utils.h" | 53 #include "content/public/test/browser_test_utils.h" |
54 #include "content/public/test/download_test_observer.h" | 54 #include "content/public/test/download_test_observer.h" |
55 #include "content/public/test/repeated_notification_observer.h" | |
56 #include "content/public/test/test_navigation_observer.h" | 55 #include "content/public/test/test_navigation_observer.h" |
57 #include "net/test/embedded_test_server/embedded_test_server.h" | 56 #include "net/test/embedded_test_server/embedded_test_server.h" |
58 #include "net/test/url_request/url_request_mock_http_job.h" | 57 #include "net/test/url_request/url_request_mock_http_job.h" |
59 #include "net/test/url_request/url_request_slow_download_job.h" | 58 #include "net/test/url_request/url_request_slow_download_job.h" |
60 | 59 |
61 #if defined(OS_CHROMEOS) | 60 #if defined(OS_CHROMEOS) |
62 #include "chromeos/chromeos_switches.h" | 61 #include "chromeos/chromeos_switches.h" |
63 #endif | 62 #endif |
64 | 63 |
65 namespace { | 64 namespace { |
(...skipping 10 matching lines...) Expand all Loading... |
76 void AcceptClose() { | 75 void AcceptClose() { |
77 GetNextDialog()->AcceptAppModalDialog(); | 76 GetNextDialog()->AcceptAppModalDialog(); |
78 } | 77 } |
79 | 78 |
80 // Note: call |PrepareForDialog| on the relevant WebContents or Browser before | 79 // Note: call |PrepareForDialog| on the relevant WebContents or Browser before |
81 // trying to close it, to avoid flakiness. https://crbug.com/519646 | 80 // trying to close it, to avoid flakiness. https://crbug.com/519646 |
82 void CancelClose() { | 81 void CancelClose() { |
83 GetNextDialog()->CancelAppModalDialog(); | 82 GetNextDialog()->CancelAppModalDialog(); |
84 } | 83 } |
85 | 84 |
| 85 class RepeatedNotificationObserver : public content::NotificationObserver { |
| 86 public: |
| 87 explicit RepeatedNotificationObserver(int type, int count) |
| 88 : num_outstanding_(count), running_(false) { |
| 89 registrar_.Add(this, type, content::NotificationService::AllSources()); |
| 90 } |
| 91 |
| 92 void Observe(int type, |
| 93 const content::NotificationSource& source, |
| 94 const content::NotificationDetails& details) override { |
| 95 ASSERT_GT(num_outstanding_, 0); |
| 96 if (!--num_outstanding_ && running_) { |
| 97 content::BrowserThread::PostTask( |
| 98 content::BrowserThread::UI, FROM_HERE, run_loop_.QuitClosure()); |
| 99 } |
| 100 } |
| 101 |
| 102 void Wait() { |
| 103 if (num_outstanding_ <= 0) |
| 104 return; |
| 105 |
| 106 running_ = true; |
| 107 run_loop_.Run(); |
| 108 running_ = false; |
| 109 } |
| 110 |
| 111 private: |
| 112 int num_outstanding_; |
| 113 content::NotificationRegistrar registrar_; |
| 114 bool running_; |
| 115 base::RunLoop run_loop_; |
| 116 |
| 117 DISALLOW_COPY_AND_ASSIGN(RepeatedNotificationObserver); |
| 118 }; |
| 119 |
86 class TabRestoreServiceChangesObserver | 120 class TabRestoreServiceChangesObserver |
87 : public sessions::TabRestoreServiceObserver { | 121 : public sessions::TabRestoreServiceObserver { |
88 public: | 122 public: |
89 explicit TabRestoreServiceChangesObserver(Profile* profile) | 123 explicit TabRestoreServiceChangesObserver(Profile* profile) |
90 : service_(TabRestoreServiceFactory::GetForProfile(profile)) { | 124 : service_(TabRestoreServiceFactory::GetForProfile(profile)) { |
91 if (service_) | 125 if (service_) |
92 service_->AddObserver(this); | 126 service_->AddObserver(this); |
93 } | 127 } |
94 | 128 |
95 ~TabRestoreServiceChangesObserver() override { | 129 ~TabRestoreServiceChangesObserver() override { |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 | 299 |
266 std::vector<Browser*> browsers_; | 300 std::vector<Browser*> browsers_; |
267 }; | 301 }; |
268 | 302 |
269 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, TestSingleTabShutdown) { | 303 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, TestSingleTabShutdown) { |
270 ASSERT_TRUE(embedded_test_server()->Start()); | 304 ASSERT_TRUE(embedded_test_server()->Start()); |
271 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 305 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
272 browser(), embedded_test_server()->GetURL("/beforeunload.html"))); | 306 browser(), embedded_test_server()->GetURL("/beforeunload.html"))); |
273 PrepareForDialog(browser()); | 307 PrepareForDialog(browser()); |
274 | 308 |
275 content::RepeatedNotificationObserver cancel_observer( | 309 RepeatedNotificationObserver cancel_observer( |
276 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); | 310 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); |
277 chrome::CloseAllBrowsersAndQuit(); | 311 chrome::CloseAllBrowsersAndQuit(); |
278 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 312 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
279 cancel_observer.Wait(); | 313 cancel_observer.Wait(); |
280 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 314 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
281 EXPECT_EQ(1, browser()->tab_strip_model()->count()); | 315 EXPECT_EQ(1, browser()->tab_strip_model()->count()); |
282 | 316 |
283 content::RepeatedNotificationObserver close_observer( | 317 RepeatedNotificationObserver close_observer( |
284 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 318 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
285 chrome::CloseAllBrowsersAndQuit(); | 319 chrome::CloseAllBrowsersAndQuit(); |
286 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 320 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
287 close_observer.Wait(); | 321 close_observer.Wait(); |
288 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 322 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
289 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 323 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
290 } | 324 } |
291 | 325 |
292 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, | 326 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, |
293 TestShutdownMoreThanOnce) { | 327 TestShutdownMoreThanOnce) { |
294 ASSERT_TRUE(embedded_test_server()->Start()); | 328 ASSERT_TRUE(embedded_test_server()->Start()); |
295 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 329 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
296 browser(), embedded_test_server()->GetURL("/beforeunload.html"))); | 330 browser(), embedded_test_server()->GetURL("/beforeunload.html"))); |
297 PrepareForDialog(browser()); | 331 PrepareForDialog(browser()); |
298 | 332 |
299 content::RepeatedNotificationObserver cancel_observer( | 333 RepeatedNotificationObserver cancel_observer( |
300 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); | 334 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); |
301 chrome::CloseAllBrowsersAndQuit(); | 335 chrome::CloseAllBrowsersAndQuit(); |
302 chrome::CloseAllBrowsersAndQuit(); | 336 chrome::CloseAllBrowsersAndQuit(); |
303 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 337 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
304 cancel_observer.Wait(); | 338 cancel_observer.Wait(); |
305 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 339 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
306 EXPECT_EQ(1, browser()->tab_strip_model()->count()); | 340 EXPECT_EQ(1, browser()->tab_strip_model()->count()); |
307 | 341 |
308 content::RepeatedNotificationObserver close_observer( | 342 RepeatedNotificationObserver close_observer( |
309 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 343 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
310 chrome::CloseAllBrowsersAndQuit(); | 344 chrome::CloseAllBrowsersAndQuit(); |
311 chrome::CloseAllBrowsersAndQuit(); | 345 chrome::CloseAllBrowsersAndQuit(); |
312 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 346 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
313 close_observer.Wait(); | 347 close_observer.Wait(); |
314 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 348 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
315 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 349 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
316 } | 350 } |
317 | 351 |
318 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, | 352 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, |
319 PRE_TestSessionRestore) { | 353 PRE_TestSessionRestore) { |
320 ASSERT_TRUE(embedded_test_server()->Start()); | 354 ASSERT_TRUE(embedded_test_server()->Start()); |
321 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 355 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
322 browser(), embedded_test_server()->GetURL("/beforeunload.html"))); | 356 browser(), embedded_test_server()->GetURL("/beforeunload.html"))); |
323 AddBlankTabAndShow(browser()); | 357 AddBlankTabAndShow(browser()); |
324 ASSERT_NO_FATAL_FAILURE( | 358 ASSERT_NO_FATAL_FAILURE( |
325 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIAboutURL))); | 359 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIAboutURL))); |
326 PrepareForDialog(browser()); | 360 PrepareForDialog(browser()); |
327 | 361 |
328 content::RepeatedNotificationObserver cancel_observer( | 362 RepeatedNotificationObserver cancel_observer( |
329 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); | 363 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); |
330 chrome::CloseAllBrowsersAndQuit(); | 364 chrome::CloseAllBrowsersAndQuit(); |
331 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 365 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
332 cancel_observer.Wait(); | 366 cancel_observer.Wait(); |
333 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 367 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
334 | 368 |
335 browser()->tab_strip_model() | 369 browser()->tab_strip_model() |
336 ->CloseWebContentsAt(1, TabStripModel::CLOSE_USER_GESTURE); | 370 ->CloseWebContentsAt(1, TabStripModel::CLOSE_USER_GESTURE); |
337 content::TestNavigationObserver navigation_observer( | 371 content::TestNavigationObserver navigation_observer( |
338 browser()->tab_strip_model()->GetActiveWebContents(), 1); | 372 browser()->tab_strip_model()->GetActiveWebContents(), 1); |
339 ASSERT_NO_FATAL_FAILURE(NavigateToURLWithDisposition( | 373 ASSERT_NO_FATAL_FAILURE(NavigateToURLWithDisposition( |
340 browser(), GURL(chrome::kChromeUIVersionURL), | 374 browser(), GURL(chrome::kChromeUIVersionURL), |
341 WindowOpenDisposition::CURRENT_TAB, ui_test_utils::BROWSER_TEST_NONE)); | 375 WindowOpenDisposition::CURRENT_TAB, ui_test_utils::BROWSER_TEST_NONE)); |
342 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 376 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
343 navigation_observer.Wait(); | 377 navigation_observer.Wait(); |
344 | 378 |
345 content::RepeatedNotificationObserver close_observer( | 379 RepeatedNotificationObserver close_observer( |
346 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 380 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
347 chrome::CloseAllBrowsersAndQuit(); | 381 chrome::CloseAllBrowsersAndQuit(); |
348 close_observer.Wait(); | 382 close_observer.Wait(); |
349 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 383 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
350 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 384 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
351 } | 385 } |
352 | 386 |
353 // Test that the tab closed after the aborted shutdown attempt is not re-opened | 387 // Test that the tab closed after the aborted shutdown attempt is not re-opened |
354 // when restoring the session. | 388 // when restoring the session. |
355 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, | 389 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, |
(...skipping 13 matching lines...) Expand all Loading... |
369 browsers_.push_back(CreateBrowser(browser()->profile())); | 403 browsers_.push_back(CreateBrowser(browser()->profile())); |
370 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 404 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
371 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); | 405 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); |
372 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 406 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
373 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); | 407 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); |
374 PrepareForDialog(browsers_[0]); | 408 PrepareForDialog(browsers_[0]); |
375 PrepareForDialog(browsers_[1]); | 409 PrepareForDialog(browsers_[1]); |
376 | 410 |
377 // Cancel shutdown on the first beforeunload event. | 411 // Cancel shutdown on the first beforeunload event. |
378 { | 412 { |
379 content::RepeatedNotificationObserver cancel_observer( | 413 RepeatedNotificationObserver cancel_observer( |
380 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); | 414 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); |
381 chrome::CloseAllBrowsersAndQuit(); | 415 chrome::CloseAllBrowsersAndQuit(); |
382 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 416 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
383 cancel_observer.Wait(); | 417 cancel_observer.Wait(); |
384 } | 418 } |
385 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 419 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
386 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); | 420 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); |
387 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); | 421 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); |
388 | 422 |
389 // Cancel shutdown on the second beforeunload event. | 423 // Cancel shutdown on the second beforeunload event. |
390 { | 424 { |
391 content::RepeatedNotificationObserver cancel_observer( | 425 RepeatedNotificationObserver cancel_observer( |
392 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); | 426 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); |
393 chrome::CloseAllBrowsersAndQuit(); | 427 chrome::CloseAllBrowsersAndQuit(); |
394 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 428 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
395 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 429 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
396 cancel_observer.Wait(); | 430 cancel_observer.Wait(); |
397 } | 431 } |
398 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 432 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
399 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); | 433 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); |
400 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); | 434 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); |
401 | 435 |
402 // Allow shutdown for both beforeunload events. | 436 // Allow shutdown for both beforeunload events. |
403 content::RepeatedNotificationObserver close_observer( | 437 RepeatedNotificationObserver close_observer( |
404 chrome::NOTIFICATION_BROWSER_CLOSED, 2); | 438 chrome::NOTIFICATION_BROWSER_CLOSED, 2); |
405 chrome::CloseAllBrowsersAndQuit(); | 439 chrome::CloseAllBrowsersAndQuit(); |
406 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 440 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
407 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 441 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
408 close_observer.Wait(); | 442 close_observer.Wait(); |
409 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 443 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
410 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 444 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
411 } | 445 } |
412 | 446 |
413 // Test that tabs in the same window with a beforeunload event that hangs are | 447 // Test that tabs in the same window with a beforeunload event that hangs are |
414 // treated the same as the user accepting the close, but do not close the tab | 448 // treated the same as the user accepting the close, but do not close the tab |
415 // early. | 449 // early. |
416 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, | 450 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, |
417 TestHangInBeforeUnloadMultipleTabs) { | 451 TestHangInBeforeUnloadMultipleTabs) { |
418 ASSERT_TRUE(embedded_test_server()->Start()); | 452 ASSERT_TRUE(embedded_test_server()->Start()); |
419 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 453 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
420 browsers_[0], embedded_test_server()->GetURL("/beforeunload_hang.html"))); | 454 browsers_[0], embedded_test_server()->GetURL("/beforeunload_hang.html"))); |
421 AddBlankTabAndShow(browsers_[0]); | 455 AddBlankTabAndShow(browsers_[0]); |
422 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 456 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
423 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); | 457 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); |
424 AddBlankTabAndShow(browsers_[0]); | 458 AddBlankTabAndShow(browsers_[0]); |
425 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 459 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
426 browsers_[0], embedded_test_server()->GetURL("/beforeunload_hang.html"))); | 460 browsers_[0], embedded_test_server()->GetURL("/beforeunload_hang.html"))); |
427 // Disable the hang monitor in the tab that is not expected to hang, so that | 461 // Disable the hang monitor in the tab that is not expected to hang, so that |
428 // the dialog is guaranteed to show. | 462 // the dialog is guaranteed to show. |
429 PrepareForDialog(browsers_[0]->tab_strip_model()->GetWebContentsAt(1)); | 463 PrepareForDialog(browsers_[0]->tab_strip_model()->GetWebContentsAt(1)); |
430 | 464 |
431 content::RepeatedNotificationObserver cancel_observer( | 465 RepeatedNotificationObserver cancel_observer( |
432 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); | 466 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); |
433 chrome::CloseAllBrowsersAndQuit(); | 467 chrome::CloseAllBrowsersAndQuit(); |
434 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 468 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
435 cancel_observer.Wait(); | 469 cancel_observer.Wait(); |
436 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 470 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
437 // All tabs should still be open. | 471 // All tabs should still be open. |
438 EXPECT_EQ(3, browsers_[0]->tab_strip_model()->count()); | 472 EXPECT_EQ(3, browsers_[0]->tab_strip_model()->count()); |
439 | 473 |
440 content::RepeatedNotificationObserver close_observer( | 474 RepeatedNotificationObserver close_observer( |
441 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 475 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
442 chrome::CloseAllBrowsersAndQuit(); | 476 chrome::CloseAllBrowsersAndQuit(); |
443 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 477 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
444 close_observer.Wait(); | 478 close_observer.Wait(); |
445 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 479 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
446 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 480 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
447 } | 481 } |
448 | 482 |
449 // Test that tabs in different windows with a beforeunload event that hangs are | 483 // Test that tabs in different windows with a beforeunload event that hangs are |
450 // treated the same as the user accepting the close, but do not close the tab | 484 // treated the same as the user accepting the close, but do not close the tab |
451 // early. | 485 // early. |
452 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, | 486 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, |
453 TestHangInBeforeUnloadMultipleWindows) { | 487 TestHangInBeforeUnloadMultipleWindows) { |
454 ASSERT_TRUE(embedded_test_server()->Start()); | 488 ASSERT_TRUE(embedded_test_server()->Start()); |
455 browsers_.push_back(CreateBrowser(browser()->profile())); | 489 browsers_.push_back(CreateBrowser(browser()->profile())); |
456 browsers_.push_back(CreateBrowser(browser()->profile())); | 490 browsers_.push_back(CreateBrowser(browser()->profile())); |
457 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 491 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
458 browsers_[0], embedded_test_server()->GetURL("/beforeunload_hang.html"))); | 492 browsers_[0], embedded_test_server()->GetURL("/beforeunload_hang.html"))); |
459 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 493 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
460 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); | 494 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); |
461 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 495 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
462 browsers_[2], embedded_test_server()->GetURL("/beforeunload_hang.html"))); | 496 browsers_[2], embedded_test_server()->GetURL("/beforeunload_hang.html"))); |
463 // Disable the hang monitor in the tab that is not expected to hang, so that | 497 // Disable the hang monitor in the tab that is not expected to hang, so that |
464 // the dialog is guaranteed to show. | 498 // the dialog is guaranteed to show. |
465 PrepareForDialog(browsers_[1]); | 499 PrepareForDialog(browsers_[1]); |
466 | 500 |
467 content::RepeatedNotificationObserver cancel_observer( | 501 RepeatedNotificationObserver cancel_observer( |
468 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); | 502 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); |
469 chrome::CloseAllBrowsersAndQuit(); | 503 chrome::CloseAllBrowsersAndQuit(); |
470 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 504 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
471 cancel_observer.Wait(); | 505 cancel_observer.Wait(); |
472 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 506 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
473 // All windows should still be open. | 507 // All windows should still be open. |
474 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); | 508 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); |
475 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); | 509 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); |
476 EXPECT_EQ(1, browsers_[2]->tab_strip_model()->count()); | 510 EXPECT_EQ(1, browsers_[2]->tab_strip_model()->count()); |
477 | 511 |
478 content::RepeatedNotificationObserver close_observer( | 512 RepeatedNotificationObserver close_observer( |
479 chrome::NOTIFICATION_BROWSER_CLOSED, 3); | 513 chrome::NOTIFICATION_BROWSER_CLOSED, 3); |
480 chrome::CloseAllBrowsersAndQuit(); | 514 chrome::CloseAllBrowsersAndQuit(); |
481 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 515 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
482 close_observer.Wait(); | 516 close_observer.Wait(); |
483 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 517 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
484 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 518 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
485 } | 519 } |
486 | 520 |
487 // Test that tabs that are slow to respond are not closed prematurely. | 521 // Test that tabs that are slow to respond are not closed prematurely. |
488 // Regression for crbug.com/365052 caused some of tabs to be closed even if | 522 // Regression for crbug.com/365052 caused some of tabs to be closed even if |
(...skipping 14 matching lines...) Expand all Loading... |
503 browsers_[0], | 537 browsers_[0], |
504 embedded_test_server()->GetURL((i == kResposiveTabIndex) | 538 embedded_test_server()->GetURL((i == kResposiveTabIndex) |
505 ? "/beforeunload.html" | 539 ? "/beforeunload.html" |
506 : "/beforeunload_slow.html"))); | 540 : "/beforeunload_slow.html"))); |
507 } | 541 } |
508 // Disable the hang monitor in the tab that is not expected to hang, so that | 542 // Disable the hang monitor in the tab that is not expected to hang, so that |
509 // the dialog is guaranteed to show. | 543 // the dialog is guaranteed to show. |
510 PrepareForDialog( | 544 PrepareForDialog( |
511 browsers_[0]->tab_strip_model()->GetWebContentsAt(kResposiveTabIndex)); | 545 browsers_[0]->tab_strip_model()->GetWebContentsAt(kResposiveTabIndex)); |
512 | 546 |
513 content::RepeatedNotificationObserver cancel_observer( | 547 RepeatedNotificationObserver cancel_observer( |
514 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); | 548 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); |
515 chrome::CloseAllBrowsersAndQuit(); | 549 chrome::CloseAllBrowsersAndQuit(); |
516 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 550 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
517 cancel_observer.Wait(); | 551 cancel_observer.Wait(); |
518 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 552 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
519 | 553 |
520 // All tabs should still be open. | 554 // All tabs should still be open. |
521 EXPECT_EQ(kTabCount, browsers_[0]->tab_strip_model()->count()); | 555 EXPECT_EQ(kTabCount, browsers_[0]->tab_strip_model()->count()); |
522 content::RepeatedNotificationObserver close_observer( | 556 RepeatedNotificationObserver close_observer( |
523 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 557 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
524 | 558 |
525 // Quit, this time accepting close confirmation dialog. | 559 // Quit, this time accepting close confirmation dialog. |
526 chrome::CloseAllBrowsersAndQuit(); | 560 chrome::CloseAllBrowsersAndQuit(); |
527 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 561 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
528 close_observer.Wait(); | 562 close_observer.Wait(); |
529 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 563 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
530 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 564 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
531 } | 565 } |
532 | 566 |
(...skipping 18 matching lines...) Expand all Loading... |
551 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 585 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
552 browsers_[i], | 586 browsers_[i], |
553 embedded_test_server()->GetURL((i == kResposiveBrowserIndex) | 587 embedded_test_server()->GetURL((i == kResposiveBrowserIndex) |
554 ? "/beforeunload.html" | 588 ? "/beforeunload.html" |
555 : "/beforeunload_slow.html"))); | 589 : "/beforeunload_slow.html"))); |
556 } | 590 } |
557 // Disable the hang monitor in the tab that is not expected to hang, so that | 591 // Disable the hang monitor in the tab that is not expected to hang, so that |
558 // the dialog is guaranteed to show. | 592 // the dialog is guaranteed to show. |
559 PrepareForDialog(browsers_[kResposiveBrowserIndex]); | 593 PrepareForDialog(browsers_[kResposiveBrowserIndex]); |
560 | 594 |
561 content::RepeatedNotificationObserver cancel_observer( | 595 RepeatedNotificationObserver cancel_observer( |
562 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, kResposiveBrowserIndex + 1); | 596 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, kResposiveBrowserIndex + 1); |
563 chrome::CloseAllBrowsersAndQuit(); | 597 chrome::CloseAllBrowsersAndQuit(); |
564 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 598 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
565 cancel_observer.Wait(); | 599 cancel_observer.Wait(); |
566 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 600 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
567 | 601 |
568 // All windows should still be open. | 602 // All windows should still be open. |
569 for (int i = 0; i < kBrowserCount; i++) | 603 for (int i = 0; i < kBrowserCount; i++) |
570 EXPECT_EQ(1, browsers_[i]->tab_strip_model()->count()); | 604 EXPECT_EQ(1, browsers_[i]->tab_strip_model()->count()); |
571 | 605 |
572 // Quit, this time accepting close confirmation dialog. | 606 // Quit, this time accepting close confirmation dialog. |
573 content::RepeatedNotificationObserver close_observer( | 607 RepeatedNotificationObserver close_observer( |
574 chrome::NOTIFICATION_BROWSER_CLOSED, kBrowserCount); | 608 chrome::NOTIFICATION_BROWSER_CLOSED, kBrowserCount); |
575 chrome::CloseAllBrowsersAndQuit(); | 609 chrome::CloseAllBrowsersAndQuit(); |
576 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 610 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
577 close_observer.Wait(); | 611 close_observer.Wait(); |
578 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 612 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
579 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 613 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
580 } | 614 } |
581 | 615 |
582 // Test that a window created during shutdown is closed. | 616 // Test that a window created during shutdown is closed. |
583 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, | 617 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, |
584 TestAddWindowDuringShutdown) { | 618 TestAddWindowDuringShutdown) { |
585 ASSERT_TRUE(embedded_test_server()->Start()); | 619 ASSERT_TRUE(embedded_test_server()->Start()); |
586 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 620 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
587 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); | 621 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); |
588 PrepareForDialog(browsers_[0]); | 622 PrepareForDialog(browsers_[0]); |
589 | 623 |
590 content::RepeatedNotificationObserver close_observer( | 624 RepeatedNotificationObserver close_observer( |
591 chrome::NOTIFICATION_BROWSER_CLOSED, 2); | 625 chrome::NOTIFICATION_BROWSER_CLOSED, 2); |
592 chrome::CloseAllBrowsersAndQuit(); | 626 chrome::CloseAllBrowsersAndQuit(); |
593 browsers_.push_back(CreateBrowser(browser()->profile())); | 627 browsers_.push_back(CreateBrowser(browser()->profile())); |
594 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 628 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
595 close_observer.Wait(); | 629 close_observer.Wait(); |
596 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 630 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
597 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 631 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
598 } | 632 } |
599 | 633 |
600 // Test that a window created during shutdown with a beforeunload handler can | 634 // Test that a window created during shutdown with a beforeunload handler can |
601 // cancel the shutdown. | 635 // cancel the shutdown. |
602 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, | 636 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, |
603 TestAddWindowWithBeforeUnloadDuringShutdown) { | 637 TestAddWindowWithBeforeUnloadDuringShutdown) { |
604 ASSERT_TRUE(embedded_test_server()->Start()); | 638 ASSERT_TRUE(embedded_test_server()->Start()); |
605 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 639 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
606 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); | 640 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); |
607 PrepareForDialog(browsers_[0]); | 641 PrepareForDialog(browsers_[0]); |
608 | 642 |
609 content::RepeatedNotificationObserver cancel_observer( | 643 RepeatedNotificationObserver cancel_observer( |
610 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); | 644 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); |
611 chrome::CloseAllBrowsersAndQuit(); | 645 chrome::CloseAllBrowsersAndQuit(); |
612 browsers_.push_back(CreateBrowser(browser()->profile())); | 646 browsers_.push_back(CreateBrowser(browser()->profile())); |
613 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 647 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
614 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); | 648 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); |
615 PrepareForDialog(browsers_[1]); | 649 PrepareForDialog(browsers_[1]); |
616 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 650 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
617 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 651 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
618 cancel_observer.Wait(); | 652 cancel_observer.Wait(); |
619 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 653 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
620 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); | 654 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); |
621 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); | 655 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); |
622 | 656 |
623 // Allow shutdown for both beforeunload dialogs. | 657 // Allow shutdown for both beforeunload dialogs. |
624 content::RepeatedNotificationObserver close_observer( | 658 RepeatedNotificationObserver close_observer( |
625 chrome::NOTIFICATION_BROWSER_CLOSED, 2); | 659 chrome::NOTIFICATION_BROWSER_CLOSED, 2); |
626 chrome::CloseAllBrowsersAndQuit(); | 660 chrome::CloseAllBrowsersAndQuit(); |
627 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 661 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
628 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 662 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
629 close_observer.Wait(); | 663 close_observer.Wait(); |
630 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 664 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
631 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 665 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
632 } | 666 } |
633 | 667 |
634 // Test that tabs added during shutdown are closed. | 668 // Test that tabs added during shutdown are closed. |
635 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, | 669 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, |
636 TestAddTabDuringShutdown) { | 670 TestAddTabDuringShutdown) { |
637 ASSERT_TRUE(embedded_test_server()->Start()); | 671 ASSERT_TRUE(embedded_test_server()->Start()); |
638 browsers_.push_back(CreateBrowser(browser()->profile())); | 672 browsers_.push_back(CreateBrowser(browser()->profile())); |
639 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 673 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
640 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); | 674 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); |
641 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 675 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
642 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); | 676 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); |
643 PrepareForDialog(browsers_[0]); | 677 PrepareForDialog(browsers_[0]); |
644 PrepareForDialog(browsers_[1]); | 678 PrepareForDialog(browsers_[1]); |
645 | 679 |
646 content::RepeatedNotificationObserver close_observer( | 680 RepeatedNotificationObserver close_observer( |
647 chrome::NOTIFICATION_BROWSER_CLOSED, 2); | 681 chrome::NOTIFICATION_BROWSER_CLOSED, 2); |
648 chrome::CloseAllBrowsersAndQuit(); | 682 chrome::CloseAllBrowsersAndQuit(); |
649 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 683 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
650 AddBlankTabAndShow(browsers_[0]); | 684 AddBlankTabAndShow(browsers_[0]); |
651 AddBlankTabAndShow(browsers_[1]); | 685 AddBlankTabAndShow(browsers_[1]); |
652 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 686 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
653 close_observer.Wait(); | 687 close_observer.Wait(); |
654 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 688 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
655 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 689 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
656 } | 690 } |
657 | 691 |
658 // Test that tabs created during shutdown with beforeunload handlers can cancel | 692 // Test that tabs created during shutdown with beforeunload handlers can cancel |
659 // the shutdown. | 693 // the shutdown. |
660 | 694 |
661 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, | 695 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, |
662 TestAddTabWithBeforeUnloadDuringShutdown) { | 696 TestAddTabWithBeforeUnloadDuringShutdown) { |
663 ASSERT_TRUE(embedded_test_server()->Start()); | 697 ASSERT_TRUE(embedded_test_server()->Start()); |
664 browsers_.push_back(CreateBrowser(browser()->profile())); | 698 browsers_.push_back(CreateBrowser(browser()->profile())); |
665 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 699 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
666 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); | 700 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); |
667 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 701 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
668 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); | 702 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); |
669 PrepareForDialog(browsers_[0]); | 703 PrepareForDialog(browsers_[0]); |
670 PrepareForDialog(browsers_[1]); | 704 PrepareForDialog(browsers_[1]); |
671 | 705 |
672 content::RepeatedNotificationObserver cancel_observer( | 706 RepeatedNotificationObserver cancel_observer( |
673 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); | 707 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); |
674 chrome::CloseAllBrowsersAndQuit(); | 708 chrome::CloseAllBrowsersAndQuit(); |
675 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 709 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
676 AddBlankTabAndShow(browsers_[0]); | 710 AddBlankTabAndShow(browsers_[0]); |
677 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 711 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
678 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); | 712 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); |
679 AddBlankTabAndShow(browsers_[1]); | 713 AddBlankTabAndShow(browsers_[1]); |
680 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 714 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
681 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); | 715 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); |
682 PrepareForDialog(browsers_[0]); | 716 PrepareForDialog(browsers_[0]); |
683 PrepareForDialog(browsers_[1]); | 717 PrepareForDialog(browsers_[1]); |
684 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 718 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
685 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 719 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
686 cancel_observer.Wait(); | 720 cancel_observer.Wait(); |
687 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 721 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
688 EXPECT_EQ(2, browsers_[0]->tab_strip_model()->count()); | 722 EXPECT_EQ(2, browsers_[0]->tab_strip_model()->count()); |
689 EXPECT_EQ(2, browsers_[1]->tab_strip_model()->count()); | 723 EXPECT_EQ(2, browsers_[1]->tab_strip_model()->count()); |
690 | 724 |
691 content::RepeatedNotificationObserver close_observer( | 725 RepeatedNotificationObserver close_observer( |
692 chrome::NOTIFICATION_BROWSER_CLOSED, 2); | 726 chrome::NOTIFICATION_BROWSER_CLOSED, 2); |
693 chrome::CloseAllBrowsersAndQuit(); | 727 chrome::CloseAllBrowsersAndQuit(); |
694 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 728 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
695 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 729 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
696 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 730 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
697 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 731 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
698 | 732 |
699 close_observer.Wait(); | 733 close_observer.Wait(); |
700 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 734 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
701 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 735 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
806 browser2->tab_strip_model()->GetWebContentsAt(1)->GetURL()); | 840 browser2->tab_strip_model()->GetWebContentsAt(1)->GetURL()); |
807 } | 841 } |
808 | 842 |
809 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, | 843 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, |
810 TestCloseTabDuringShutdown) { | 844 TestCloseTabDuringShutdown) { |
811 ASSERT_TRUE(embedded_test_server()->Start()); | 845 ASSERT_TRUE(embedded_test_server()->Start()); |
812 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 846 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
813 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); | 847 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); |
814 PrepareForDialog(browsers_[0]); | 848 PrepareForDialog(browsers_[0]); |
815 | 849 |
816 content::RepeatedNotificationObserver cancel_observer( | 850 RepeatedNotificationObserver cancel_observer( |
817 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); | 851 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); |
818 chrome::CloseAllBrowsersAndQuit(); | 852 chrome::CloseAllBrowsersAndQuit(); |
819 | 853 |
820 browsers_.push_back(CreateBrowser(browser()->profile())); | 854 browsers_.push_back(CreateBrowser(browser()->profile())); |
821 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 855 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
822 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); | 856 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); |
823 PrepareForDialog(browsers_[1]); | 857 PrepareForDialog(browsers_[1]); |
824 browsers_[1]->tab_strip_model()->CloseAllTabs(); | 858 browsers_[1]->tab_strip_model()->CloseAllTabs(); |
825 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 859 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
826 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 860 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
827 cancel_observer.Wait(); | 861 cancel_observer.Wait(); |
828 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 862 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
829 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); | 863 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); |
830 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); | 864 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); |
831 | 865 |
832 content::RepeatedNotificationObserver close_observer( | 866 RepeatedNotificationObserver close_observer( |
833 chrome::NOTIFICATION_BROWSER_CLOSED, 2); | 867 chrome::NOTIFICATION_BROWSER_CLOSED, 2); |
834 chrome::CloseAllBrowsersAndQuit(); | 868 chrome::CloseAllBrowsersAndQuit(); |
835 browsers_[1]->tab_strip_model()->CloseAllTabs(); | 869 browsers_[1]->tab_strip_model()->CloseAllTabs(); |
836 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 870 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
837 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 871 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
838 | 872 |
839 close_observer.Wait(); | 873 close_observer.Wait(); |
840 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 874 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
841 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 875 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
842 } | 876 } |
843 | 877 |
844 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, | 878 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, |
845 TestOpenAndCloseWindowDuringShutdown) { | 879 TestOpenAndCloseWindowDuringShutdown) { |
846 ASSERT_TRUE(embedded_test_server()->Start()); | 880 ASSERT_TRUE(embedded_test_server()->Start()); |
847 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 881 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
848 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); | 882 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); |
849 PrepareForDialog(browsers_[0]); | 883 PrepareForDialog(browsers_[0]); |
850 | 884 |
851 content::RepeatedNotificationObserver cancel_observer( | 885 RepeatedNotificationObserver cancel_observer( |
852 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); | 886 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); |
853 chrome::CloseAllBrowsersAndQuit(); | 887 chrome::CloseAllBrowsersAndQuit(); |
854 | 888 |
855 browsers_.push_back(CreateBrowser(browser()->profile())); | 889 browsers_.push_back(CreateBrowser(browser()->profile())); |
856 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 890 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
857 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); | 891 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); |
858 PrepareForDialog(browsers_[1]); | 892 PrepareForDialog(browsers_[1]); |
859 ASSERT_FALSE(browsers_[1]->ShouldCloseWindow()); | 893 ASSERT_FALSE(browsers_[1]->ShouldCloseWindow()); |
860 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 894 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
861 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 895 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
862 cancel_observer.Wait(); | 896 cancel_observer.Wait(); |
863 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 897 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
864 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); | 898 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); |
865 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); | 899 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); |
866 | 900 |
867 content::RepeatedNotificationObserver close_observer( | 901 RepeatedNotificationObserver close_observer( |
868 chrome::NOTIFICATION_BROWSER_CLOSED, 2); | 902 chrome::NOTIFICATION_BROWSER_CLOSED, 2); |
869 chrome::CloseAllBrowsersAndQuit(); | 903 chrome::CloseAllBrowsersAndQuit(); |
870 ASSERT_FALSE(browsers_[1]->ShouldCloseWindow()); | 904 ASSERT_FALSE(browsers_[1]->ShouldCloseWindow()); |
871 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 905 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
872 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 906 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
873 | 907 |
874 close_observer.Wait(); | 908 close_observer.Wait(); |
875 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 909 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
876 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 910 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
877 } | 911 } |
878 | 912 |
879 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, | 913 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerBrowserTest, |
880 TestCloseWindowDuringShutdown) { | 914 TestCloseWindowDuringShutdown) { |
881 ASSERT_TRUE(embedded_test_server()->Start()); | 915 ASSERT_TRUE(embedded_test_server()->Start()); |
882 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 916 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
883 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); | 917 browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); |
884 browsers_.push_back(CreateBrowser(browser()->profile())); | 918 browsers_.push_back(CreateBrowser(browser()->profile())); |
885 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( | 919 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( |
886 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); | 920 browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); |
887 PrepareForDialog(browsers_[0]); | 921 PrepareForDialog(browsers_[0]); |
888 PrepareForDialog(browsers_[1]); | 922 PrepareForDialog(browsers_[1]); |
889 | 923 |
890 content::RepeatedNotificationObserver cancel_observer( | 924 RepeatedNotificationObserver cancel_observer( |
891 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); | 925 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); |
892 chrome::CloseAllBrowsersAndQuit(); | 926 chrome::CloseAllBrowsersAndQuit(); |
893 | 927 |
894 ASSERT_FALSE(browsers_[0]->ShouldCloseWindow()); | 928 ASSERT_FALSE(browsers_[0]->ShouldCloseWindow()); |
895 ASSERT_NO_FATAL_FAILURE(CancelClose()); | 929 ASSERT_NO_FATAL_FAILURE(CancelClose()); |
896 cancel_observer.Wait(); | 930 cancel_observer.Wait(); |
897 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 931 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
898 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); | 932 EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count()); |
899 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); | 933 EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count()); |
900 | 934 |
901 content::RepeatedNotificationObserver close_observer( | 935 RepeatedNotificationObserver close_observer( |
902 chrome::NOTIFICATION_BROWSER_CLOSED, 2); | 936 chrome::NOTIFICATION_BROWSER_CLOSED, 2); |
903 chrome::CloseAllBrowsersAndQuit(); | 937 chrome::CloseAllBrowsersAndQuit(); |
904 ASSERT_FALSE(browsers_[0]->ShouldCloseWindow()); | 938 ASSERT_FALSE(browsers_[0]->ShouldCloseWindow()); |
905 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 939 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
906 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 940 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
907 | 941 |
908 close_observer.Wait(); | 942 close_observer.Wait(); |
909 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 943 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
910 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 944 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
911 } | 945 } |
(...skipping 29 matching lines...) Expand all Loading... |
941 // Mac has its own in-progress download prompt in app_controller_mac.mm, so | 975 // Mac has its own in-progress download prompt in app_controller_mac.mm, so |
942 // BrowserCloseManager should simply close all browsers. If there are no | 976 // BrowserCloseManager should simply close all browsers. If there are no |
943 // browsers, it should not crash. | 977 // browsers, it should not crash. |
944 #if defined(OS_MACOSX) | 978 #if defined(OS_MACOSX) |
945 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithDownloadsBrowserTest, | 979 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithDownloadsBrowserTest, |
946 TestWithDownloads) { | 980 TestWithDownloads) { |
947 ASSERT_TRUE(embedded_test_server()->Start()); | 981 ASSERT_TRUE(embedded_test_server()->Start()); |
948 SetDownloadPathForProfile(browser()->profile()); | 982 SetDownloadPathForProfile(browser()->profile()); |
949 ASSERT_NO_FATAL_FAILURE(CreateStalledDownload(browser())); | 983 ASSERT_NO_FATAL_FAILURE(CreateStalledDownload(browser())); |
950 | 984 |
951 content::RepeatedNotificationObserver close_observer( | 985 RepeatedNotificationObserver close_observer( |
952 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 986 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
953 | 987 |
954 TestBrowserCloseManager::AttemptClose( | 988 TestBrowserCloseManager::AttemptClose( |
955 TestBrowserCloseManager::NO_USER_CHOICE); | 989 TestBrowserCloseManager::NO_USER_CHOICE); |
956 close_observer.Wait(); | 990 close_observer.Wait(); |
957 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 991 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
958 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 992 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
959 EXPECT_EQ(1, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); | 993 EXPECT_EQ(1, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); |
960 | 994 |
961 // Attempting to close again should not crash. | 995 // Attempting to close again should not crash. |
(...skipping 28 matching lines...) Expand all Loading... |
990 ui_test_utils::BROWSER_TEST_NONE); | 1024 ui_test_utils::BROWSER_TEST_NONE); |
991 observer.WaitForFinished(); | 1025 observer.WaitForFinished(); |
992 | 1026 |
993 // Check that the download manager has the expected state. | 1027 // Check that the download manager has the expected state. |
994 EXPECT_EQ(1, content::BrowserContext::GetDownloadManager( | 1028 EXPECT_EQ(1, content::BrowserContext::GetDownloadManager( |
995 browser()->profile())->InProgressCount()); | 1029 browser()->profile())->InProgressCount()); |
996 EXPECT_EQ(0, content::BrowserContext::GetDownloadManager( | 1030 EXPECT_EQ(0, content::BrowserContext::GetDownloadManager( |
997 browser()->profile())->NonMaliciousInProgressCount()); | 1031 browser()->profile())->NonMaliciousInProgressCount()); |
998 | 1032 |
999 // Close the browser with no user action. | 1033 // Close the browser with no user action. |
1000 content::RepeatedNotificationObserver close_observer( | 1034 RepeatedNotificationObserver close_observer( |
1001 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 1035 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
1002 TestBrowserCloseManager::AttemptClose( | 1036 TestBrowserCloseManager::AttemptClose( |
1003 TestBrowserCloseManager::NO_USER_CHOICE); | 1037 TestBrowserCloseManager::NO_USER_CHOICE); |
1004 close_observer.Wait(); | 1038 close_observer.Wait(); |
1005 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 1039 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
1006 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 1040 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
1007 } | 1041 } |
1008 | 1042 |
1009 // Test shutdown with a download in progress. | 1043 // Test shutdown with a download in progress. |
1010 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithDownloadsBrowserTest, | 1044 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithDownloadsBrowserTest, |
1011 TestWithDownloads) { | 1045 TestWithDownloads) { |
1012 ASSERT_TRUE(embedded_test_server()->Start()); | 1046 ASSERT_TRUE(embedded_test_server()->Start()); |
1013 SetDownloadPathForProfile(browser()->profile()); | 1047 SetDownloadPathForProfile(browser()->profile()); |
1014 ASSERT_NO_FATAL_FAILURE(CreateStalledDownload(browser())); | 1048 ASSERT_NO_FATAL_FAILURE(CreateStalledDownload(browser())); |
1015 content::TestNavigationObserver navigation_observer( | 1049 content::TestNavigationObserver navigation_observer( |
1016 browser()->tab_strip_model()->GetActiveWebContents(), 1); | 1050 browser()->tab_strip_model()->GetActiveWebContents(), 1); |
1017 TestBrowserCloseManager::AttemptClose( | 1051 TestBrowserCloseManager::AttemptClose( |
1018 TestBrowserCloseManager::USER_CHOICE_USER_CANCELS_CLOSE); | 1052 TestBrowserCloseManager::USER_CHOICE_USER_CANCELS_CLOSE); |
1019 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 1053 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
1020 navigation_observer.Wait(); | 1054 navigation_observer.Wait(); |
1021 EXPECT_EQ(GURL(chrome::kChromeUIDownloadsURL), | 1055 EXPECT_EQ(GURL(chrome::kChromeUIDownloadsURL), |
1022 browser()->tab_strip_model()->GetActiveWebContents()->GetURL()); | 1056 browser()->tab_strip_model()->GetActiveWebContents()->GetURL()); |
1023 | 1057 |
1024 content::RepeatedNotificationObserver close_observer( | 1058 RepeatedNotificationObserver close_observer( |
1025 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 1059 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
1026 | 1060 |
1027 TestBrowserCloseManager::AttemptClose( | 1061 TestBrowserCloseManager::AttemptClose( |
1028 TestBrowserCloseManager::USER_CHOICE_USER_ALLOWS_CLOSE); | 1062 TestBrowserCloseManager::USER_CHOICE_USER_ALLOWS_CLOSE); |
1029 close_observer.Wait(); | 1063 close_observer.Wait(); |
1030 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 1064 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
1031 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 1065 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
1032 if (browser_defaults::kBrowserAliveWithNoWindows) | 1066 if (browser_defaults::kBrowserAliveWithNoWindows) |
1033 EXPECT_EQ(1, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); | 1067 EXPECT_EQ(1, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); |
1034 else | 1068 else |
1035 EXPECT_EQ(0, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); | 1069 EXPECT_EQ(0, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); |
1036 } | 1070 } |
1037 | 1071 |
1038 // Test shutdown with a download in progress in an off-the-record profile. | 1072 // Test shutdown with a download in progress in an off-the-record profile. |
1039 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithDownloadsBrowserTest, | 1073 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithDownloadsBrowserTest, |
1040 TestWithOffTheRecordDownloads) { | 1074 TestWithOffTheRecordDownloads) { |
1041 ASSERT_TRUE(embedded_test_server()->Start()); | 1075 ASSERT_TRUE(embedded_test_server()->Start()); |
1042 Profile* otr_profile = browser()->profile()->GetOffTheRecordProfile(); | 1076 Profile* otr_profile = browser()->profile()->GetOffTheRecordProfile(); |
1043 SetDownloadPathForProfile(otr_profile); | 1077 SetDownloadPathForProfile(otr_profile); |
1044 Browser* otr_browser = CreateBrowser(otr_profile); | 1078 Browser* otr_browser = CreateBrowser(otr_profile); |
1045 { | 1079 { |
1046 content::RepeatedNotificationObserver close_observer( | 1080 RepeatedNotificationObserver close_observer( |
1047 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 1081 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
1048 browser()->window()->Close(); | 1082 browser()->window()->Close(); |
1049 close_observer.Wait(); | 1083 close_observer.Wait(); |
1050 } | 1084 } |
1051 ASSERT_NO_FATAL_FAILURE(CreateStalledDownload(otr_browser)); | 1085 ASSERT_NO_FATAL_FAILURE(CreateStalledDownload(otr_browser)); |
1052 content::TestNavigationObserver navigation_observer( | 1086 content::TestNavigationObserver navigation_observer( |
1053 otr_browser->tab_strip_model()->GetActiveWebContents(), 1); | 1087 otr_browser->tab_strip_model()->GetActiveWebContents(), 1); |
1054 TestBrowserCloseManager::AttemptClose( | 1088 TestBrowserCloseManager::AttemptClose( |
1055 TestBrowserCloseManager::USER_CHOICE_USER_CANCELS_CLOSE); | 1089 TestBrowserCloseManager::USER_CHOICE_USER_CANCELS_CLOSE); |
1056 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 1090 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
1057 navigation_observer.Wait(); | 1091 navigation_observer.Wait(); |
1058 EXPECT_EQ(GURL(chrome::kChromeUIDownloadsURL), | 1092 EXPECT_EQ(GURL(chrome::kChromeUIDownloadsURL), |
1059 otr_browser->tab_strip_model()->GetActiveWebContents()->GetURL()); | 1093 otr_browser->tab_strip_model()->GetActiveWebContents()->GetURL()); |
1060 | 1094 |
1061 content::RepeatedNotificationObserver close_observer( | 1095 RepeatedNotificationObserver close_observer( |
1062 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 1096 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
1063 | 1097 |
1064 TestBrowserCloseManager::AttemptClose( | 1098 TestBrowserCloseManager::AttemptClose( |
1065 TestBrowserCloseManager::USER_CHOICE_USER_ALLOWS_CLOSE); | 1099 TestBrowserCloseManager::USER_CHOICE_USER_ALLOWS_CLOSE); |
1066 close_observer.Wait(); | 1100 close_observer.Wait(); |
1067 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 1101 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
1068 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 1102 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
1069 EXPECT_EQ(0, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); | 1103 EXPECT_EQ(0, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); |
1070 } | 1104 } |
1071 | 1105 |
(...skipping 13 matching lines...) Expand all Loading... |
1085 ui_test_utils::NavigateToURL(otr_browser, GURL("about:blank")); | 1119 ui_test_utils::NavigateToURL(otr_browser, GURL("about:blank")); |
1086 navigation_observer.Wait(); | 1120 navigation_observer.Wait(); |
1087 | 1121 |
1088 int num_downloads_blocking = 0; | 1122 int num_downloads_blocking = 0; |
1089 ASSERT_EQ( | 1123 ASSERT_EQ( |
1090 Browser::DOWNLOAD_CLOSE_OK, | 1124 Browser::DOWNLOAD_CLOSE_OK, |
1091 otr_browser->OkToCloseWithInProgressDownloads(&num_downloads_blocking)); | 1125 otr_browser->OkToCloseWithInProgressDownloads(&num_downloads_blocking)); |
1092 ASSERT_EQ(0, num_downloads_blocking); | 1126 ASSERT_EQ(0, num_downloads_blocking); |
1093 | 1127 |
1094 { | 1128 { |
1095 content::RepeatedNotificationObserver close_observer( | 1129 RepeatedNotificationObserver close_observer( |
1096 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 1130 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
1097 otr_browser->window()->Close(); | 1131 otr_browser->window()->Close(); |
1098 close_observer.Wait(); | 1132 close_observer.Wait(); |
1099 } | 1133 } |
1100 | 1134 |
1101 ASSERT_EQ( | 1135 ASSERT_EQ( |
1102 Browser::DOWNLOAD_CLOSE_BROWSER_SHUTDOWN, | 1136 Browser::DOWNLOAD_CLOSE_BROWSER_SHUTDOWN, |
1103 browser()->OkToCloseWithInProgressDownloads(&num_downloads_blocking)); | 1137 browser()->OkToCloseWithInProgressDownloads(&num_downloads_blocking)); |
1104 ASSERT_EQ(1, num_downloads_blocking); | 1138 ASSERT_EQ(1, num_downloads_blocking); |
1105 | 1139 |
1106 { | 1140 { |
1107 content::RepeatedNotificationObserver close_observer( | 1141 RepeatedNotificationObserver close_observer( |
1108 chrome::NOTIFICATION_BROWSER_CLOSED, 2); | 1142 chrome::NOTIFICATION_BROWSER_CLOSED, 2); |
1109 TestBrowserCloseManager::AttemptClose( | 1143 TestBrowserCloseManager::AttemptClose( |
1110 TestBrowserCloseManager::USER_CHOICE_USER_ALLOWS_CLOSE); | 1144 TestBrowserCloseManager::USER_CHOICE_USER_ALLOWS_CLOSE); |
1111 close_observer.Wait(); | 1145 close_observer.Wait(); |
1112 } | 1146 } |
1113 | 1147 |
1114 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 1148 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
1115 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 1149 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
1116 if (browser_defaults::kBrowserAliveWithNoWindows) | 1150 if (browser_defaults::kBrowserAliveWithNoWindows) |
1117 EXPECT_EQ(1, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); | 1151 EXPECT_EQ(1, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); |
(...skipping 17 matching lines...) Expand all Loading... |
1135 Profile::CreateProfile(path, NULL, Profile::CREATE_MODE_SYNCHRONOUS); | 1169 Profile::CreateProfile(path, NULL, Profile::CREATE_MODE_SYNCHRONOUS); |
1136 } | 1170 } |
1137 profile_manager->RegisterTestingProfile(other_profile, true, false); | 1171 profile_manager->RegisterTestingProfile(other_profile, true, false); |
1138 Browser* other_profile_browser = CreateBrowser(other_profile); | 1172 Browser* other_profile_browser = CreateBrowser(other_profile); |
1139 | 1173 |
1140 ASSERT_TRUE(embedded_test_server()->Start()); | 1174 ASSERT_TRUE(embedded_test_server()->Start()); |
1141 SetDownloadPathForProfile(browser()->profile()); | 1175 SetDownloadPathForProfile(browser()->profile()); |
1142 SetDownloadPathForProfile(other_profile); | 1176 SetDownloadPathForProfile(other_profile); |
1143 ASSERT_NO_FATAL_FAILURE(CreateStalledDownload(browser())); | 1177 ASSERT_NO_FATAL_FAILURE(CreateStalledDownload(browser())); |
1144 { | 1178 { |
1145 content::RepeatedNotificationObserver close_observer( | 1179 RepeatedNotificationObserver close_observer( |
1146 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 1180 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
1147 browser()->window()->Close(); | 1181 browser()->window()->Close(); |
1148 close_observer.Wait(); | 1182 close_observer.Wait(); |
1149 } | 1183 } |
1150 | 1184 |
1151 // When the shutdown is cancelled, the downloads page should be opened in a | 1185 // When the shutdown is cancelled, the downloads page should be opened in a |
1152 // browser for that profile. Because there are no browsers for that profile, a | 1186 // browser for that profile. Because there are no browsers for that profile, a |
1153 // new browser should be opened. | 1187 // new browser should be opened. |
1154 ui_test_utils::BrowserAddedObserver new_browser_observer; | 1188 ui_test_utils::BrowserAddedObserver new_browser_observer; |
1155 TestBrowserCloseManager::AttemptClose( | 1189 TestBrowserCloseManager::AttemptClose( |
1156 TestBrowserCloseManager::USER_CHOICE_USER_CANCELS_CLOSE); | 1190 TestBrowserCloseManager::USER_CHOICE_USER_CANCELS_CLOSE); |
1157 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 1191 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
1158 Browser* opened_browser = new_browser_observer.WaitForSingleNewBrowser(); | 1192 Browser* opened_browser = new_browser_observer.WaitForSingleNewBrowser(); |
1159 EXPECT_EQ( | 1193 EXPECT_EQ( |
1160 GURL(chrome::kChromeUIDownloadsURL), | 1194 GURL(chrome::kChromeUIDownloadsURL), |
1161 opened_browser->tab_strip_model()->GetActiveWebContents()->GetURL()); | 1195 opened_browser->tab_strip_model()->GetActiveWebContents()->GetURL()); |
1162 EXPECT_EQ(GURL("about:blank"), | 1196 EXPECT_EQ(GURL("about:blank"), |
1163 other_profile_browser->tab_strip_model()->GetActiveWebContents() | 1197 other_profile_browser->tab_strip_model()->GetActiveWebContents() |
1164 ->GetURL()); | 1198 ->GetURL()); |
1165 | 1199 |
1166 content::RepeatedNotificationObserver close_observer( | 1200 RepeatedNotificationObserver close_observer( |
1167 chrome::NOTIFICATION_BROWSER_CLOSED, 2); | 1201 chrome::NOTIFICATION_BROWSER_CLOSED, 2); |
1168 TestBrowserCloseManager::AttemptClose( | 1202 TestBrowserCloseManager::AttemptClose( |
1169 TestBrowserCloseManager::USER_CHOICE_USER_ALLOWS_CLOSE); | 1203 TestBrowserCloseManager::USER_CHOICE_USER_ALLOWS_CLOSE); |
1170 close_observer.Wait(); | 1204 close_observer.Wait(); |
1171 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 1205 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
1172 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 1206 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
1173 if (browser_defaults::kBrowserAliveWithNoWindows) | 1207 if (browser_defaults::kBrowserAliveWithNoWindows) |
1174 EXPECT_EQ(1, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); | 1208 EXPECT_EQ(1, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); |
1175 else | 1209 else |
1176 EXPECT_EQ(0, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); | 1210 EXPECT_EQ(0, DownloadCoreService::NonMaliciousDownloadCountAllProfiles()); |
(...skipping 11 matching lines...) Expand all Loading... |
1188 | 1222 |
1189 content::WindowedNotificationObserver cancel_observer( | 1223 content::WindowedNotificationObserver cancel_observer( |
1190 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, | 1224 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, |
1191 content::NotificationService::AllSources()); | 1225 content::NotificationService::AllSources()); |
1192 TestBrowserCloseManager::AttemptClose( | 1226 TestBrowserCloseManager::AttemptClose( |
1193 TestBrowserCloseManager::USER_CHOICE_USER_CANCELS_CLOSE); | 1227 TestBrowserCloseManager::USER_CHOICE_USER_CANCELS_CLOSE); |
1194 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 1228 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
1195 cancel_observer.Wait(); | 1229 cancel_observer.Wait(); |
1196 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 1230 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
1197 | 1231 |
1198 content::RepeatedNotificationObserver close_observer( | 1232 RepeatedNotificationObserver close_observer( |
1199 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 1233 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
1200 TestBrowserCloseManager::AttemptClose( | 1234 TestBrowserCloseManager::AttemptClose( |
1201 TestBrowserCloseManager::USER_CHOICE_USER_ALLOWS_CLOSE); | 1235 TestBrowserCloseManager::USER_CHOICE_USER_ALLOWS_CLOSE); |
1202 ASSERT_NO_FATAL_FAILURE(AcceptClose()); | 1236 ASSERT_NO_FATAL_FAILURE(AcceptClose()); |
1203 close_observer.Wait(); | 1237 close_observer.Wait(); |
1204 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 1238 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
1205 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 1239 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
1206 } | 1240 } |
1207 | 1241 |
1208 #endif // defined(OS_MACOSX) | 1242 #endif // defined(OS_MACOSX) |
(...skipping 25 matching lines...) Expand all Loading... |
1234 | 1268 |
1235 // Check that background mode is suspended when closing all browsers unless we | 1269 // Check that background mode is suspended when closing all browsers unless we |
1236 // are quitting and that background mode is resumed when a new browser window is | 1270 // are quitting and that background mode is resumed when a new browser window is |
1237 // opened. | 1271 // opened. |
1238 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithBackgroundModeBrowserTest, | 1272 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithBackgroundModeBrowserTest, |
1239 CloseAllBrowsersWithBackgroundMode) { | 1273 CloseAllBrowsersWithBackgroundMode) { |
1240 EXPECT_FALSE(IsBackgroundModeSuspended()); | 1274 EXPECT_FALSE(IsBackgroundModeSuspended()); |
1241 std::unique_ptr<ScopedKeepAlive> tmp_keep_alive; | 1275 std::unique_ptr<ScopedKeepAlive> tmp_keep_alive; |
1242 Profile* profile = browser()->profile(); | 1276 Profile* profile = browser()->profile(); |
1243 { | 1277 { |
1244 content::RepeatedNotificationObserver close_observer( | 1278 RepeatedNotificationObserver close_observer( |
1245 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 1279 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
1246 tmp_keep_alive.reset(new ScopedKeepAlive(KeepAliveOrigin::PANEL_VIEW, | 1280 tmp_keep_alive.reset(new ScopedKeepAlive(KeepAliveOrigin::PANEL_VIEW, |
1247 KeepAliveRestartOption::DISABLED)); | 1281 KeepAliveRestartOption::DISABLED)); |
1248 chrome::CloseAllBrowsers(); | 1282 chrome::CloseAllBrowsers(); |
1249 close_observer.Wait(); | 1283 close_observer.Wait(); |
1250 } | 1284 } |
1251 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 1285 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
1252 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 1286 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
1253 EXPECT_TRUE(IsBackgroundModeSuspended()); | 1287 EXPECT_TRUE(IsBackgroundModeSuspended()); |
1254 | 1288 |
1255 // Background mode should be resumed when a new browser window is opened. | 1289 // Background mode should be resumed when a new browser window is opened. |
1256 ui_test_utils::BrowserAddedObserver new_browser_observer; | 1290 ui_test_utils::BrowserAddedObserver new_browser_observer; |
1257 chrome::NewEmptyWindow(profile); | 1291 chrome::NewEmptyWindow(profile); |
1258 new_browser_observer.WaitForSingleNewBrowser(); | 1292 new_browser_observer.WaitForSingleNewBrowser(); |
1259 tmp_keep_alive.reset(); | 1293 tmp_keep_alive.reset(); |
1260 EXPECT_FALSE(IsBackgroundModeSuspended()); | 1294 EXPECT_FALSE(IsBackgroundModeSuspended()); |
1261 content::RepeatedNotificationObserver close_observer( | 1295 RepeatedNotificationObserver close_observer( |
1262 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 1296 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
1263 | 1297 |
1264 // Background mode should not be suspended when quitting. | 1298 // Background mode should not be suspended when quitting. |
1265 chrome::CloseAllBrowsersAndQuit(); | 1299 chrome::CloseAllBrowsersAndQuit(); |
1266 close_observer.Wait(); | 1300 close_observer.Wait(); |
1267 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 1301 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
1268 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 1302 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
1269 EXPECT_FALSE(IsBackgroundModeSuspended()); | 1303 EXPECT_FALSE(IsBackgroundModeSuspended()); |
1270 } | 1304 } |
1271 | 1305 |
1272 // Check that closing the last browser window individually does not affect | 1306 // Check that closing the last browser window individually does not affect |
1273 // background mode. | 1307 // background mode. |
1274 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithBackgroundModeBrowserTest, | 1308 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithBackgroundModeBrowserTest, |
1275 DISABLED_CloseSingleBrowserWithBackgroundMode) { | 1309 DISABLED_CloseSingleBrowserWithBackgroundMode) { |
1276 content::RepeatedNotificationObserver close_observer( | 1310 RepeatedNotificationObserver close_observer( |
1277 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 1311 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
1278 EXPECT_FALSE(IsBackgroundModeSuspended()); | 1312 EXPECT_FALSE(IsBackgroundModeSuspended()); |
1279 browser()->window()->Close(); | 1313 browser()->window()->Close(); |
1280 close_observer.Wait(); | 1314 close_observer.Wait(); |
1281 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 1315 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
1282 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 1316 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
1283 EXPECT_FALSE(IsBackgroundModeSuspended()); | 1317 EXPECT_FALSE(IsBackgroundModeSuspended()); |
1284 } | 1318 } |
1285 | 1319 |
1286 // Check that closing all browsers with no browser windows open suspends | 1320 // Check that closing all browsers with no browser windows open suspends |
1287 // background mode but does not cause Chrome to quit. | 1321 // background mode but does not cause Chrome to quit. |
1288 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithBackgroundModeBrowserTest, | 1322 IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithBackgroundModeBrowserTest, |
1289 DISABLED_CloseAllBrowsersWithNoOpenBrowsersWithBackground
Mode) { | 1323 DISABLED_CloseAllBrowsersWithNoOpenBrowsersWithBackground
Mode) { |
1290 content::RepeatedNotificationObserver close_observer( | 1324 RepeatedNotificationObserver close_observer( |
1291 chrome::NOTIFICATION_BROWSER_CLOSED, 1); | 1325 chrome::NOTIFICATION_BROWSER_CLOSED, 1); |
1292 EXPECT_FALSE(IsBackgroundModeSuspended()); | 1326 EXPECT_FALSE(IsBackgroundModeSuspended()); |
1293 ScopedKeepAlive tmp_keep_alive(KeepAliveOrigin::PANEL_VIEW, | 1327 ScopedKeepAlive tmp_keep_alive(KeepAliveOrigin::PANEL_VIEW, |
1294 KeepAliveRestartOption::DISABLED); | 1328 KeepAliveRestartOption::DISABLED); |
1295 browser()->window()->Close(); | 1329 browser()->window()->Close(); |
1296 close_observer.Wait(); | 1330 close_observer.Wait(); |
1297 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 1331 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
1298 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 1332 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
1299 EXPECT_FALSE(IsBackgroundModeSuspended()); | 1333 EXPECT_FALSE(IsBackgroundModeSuspended()); |
1300 | 1334 |
1301 chrome::CloseAllBrowsers(); | 1335 chrome::CloseAllBrowsers(); |
1302 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 1336 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
1303 EXPECT_TRUE(BrowserList::GetInstance()->empty()); | 1337 EXPECT_TRUE(BrowserList::GetInstance()->empty()); |
1304 EXPECT_TRUE(IsBackgroundModeSuspended()); | 1338 EXPECT_TRUE(IsBackgroundModeSuspended()); |
1305 } | 1339 } |
1306 | 1340 |
1307 INSTANTIATE_TEST_CASE_P(BrowserCloseManagerWithBackgroundModeBrowserTest, | 1341 INSTANTIATE_TEST_CASE_P(BrowserCloseManagerWithBackgroundModeBrowserTest, |
1308 BrowserCloseManagerWithBackgroundModeBrowserTest, | 1342 BrowserCloseManagerWithBackgroundModeBrowserTest, |
1309 testing::Bool()); | 1343 testing::Bool()); |
OLD | NEW |