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