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

Unified Diff: chrome/browser/lifetime/browser_close_manager_browsertest.cc

Issue 2964163002: Revert of Fix for URL opening code (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/lifetime/browser_close_manager_browsertest.cc
diff --git a/chrome/browser/lifetime/browser_close_manager_browsertest.cc b/chrome/browser/lifetime/browser_close_manager_browsertest.cc
index 0a4173af4a372dd04b97612ef05191edd3397219..d4e0baaa7a1bb318ad7d72161e65f32cd74a5ba9 100644
--- a/chrome/browser/lifetime/browser_close_manager_browsertest.cc
+++ b/chrome/browser/lifetime/browser_close_manager_browsertest.cc
@@ -52,7 +52,6 @@
#include "content/public/browser/web_contents.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/download_test_observer.h"
-#include "content/public/test/repeated_notification_observer.h"
#include "content/public/test/test_navigation_observer.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
#include "net/test/url_request/url_request_mock_http_job.h"
@@ -82,6 +81,41 @@
void CancelClose() {
GetNextDialog()->CancelAppModalDialog();
}
+
+class RepeatedNotificationObserver : public content::NotificationObserver {
+ public:
+ explicit RepeatedNotificationObserver(int type, int count)
+ : num_outstanding_(count), running_(false) {
+ registrar_.Add(this, type, content::NotificationService::AllSources());
+ }
+
+ void Observe(int type,
+ const content::NotificationSource& source,
+ const content::NotificationDetails& details) override {
+ ASSERT_GT(num_outstanding_, 0);
+ if (!--num_outstanding_ && running_) {
+ content::BrowserThread::PostTask(
+ content::BrowserThread::UI, FROM_HERE, run_loop_.QuitClosure());
+ }
+ }
+
+ void Wait() {
+ if (num_outstanding_ <= 0)
+ return;
+
+ running_ = true;
+ run_loop_.Run();
+ running_ = false;
+ }
+
+ private:
+ int num_outstanding_;
+ content::NotificationRegistrar registrar_;
+ bool running_;
+ base::RunLoop run_loop_;
+
+ DISALLOW_COPY_AND_ASSIGN(RepeatedNotificationObserver);
+};
class TabRestoreServiceChangesObserver
: public sessions::TabRestoreServiceObserver {
@@ -272,7 +306,7 @@
browser(), embedded_test_server()->GetURL("/beforeunload.html")));
PrepareForDialog(browser());
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(CancelClose());
@@ -280,7 +314,7 @@
EXPECT_FALSE(browser_shutdown::IsTryingToQuit());
EXPECT_EQ(1, browser()->tab_strip_model()->count());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(AcceptClose());
@@ -296,7 +330,7 @@
browser(), embedded_test_server()->GetURL("/beforeunload.html")));
PrepareForDialog(browser());
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1);
chrome::CloseAllBrowsersAndQuit();
chrome::CloseAllBrowsersAndQuit();
@@ -305,7 +339,7 @@
EXPECT_FALSE(browser_shutdown::IsTryingToQuit());
EXPECT_EQ(1, browser()->tab_strip_model()->count());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
chrome::CloseAllBrowsersAndQuit();
chrome::CloseAllBrowsersAndQuit();
@@ -325,7 +359,7 @@
ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIAboutURL)));
PrepareForDialog(browser());
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(CancelClose());
@@ -342,7 +376,7 @@
ASSERT_NO_FATAL_FAILURE(AcceptClose());
navigation_observer.Wait();
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
chrome::CloseAllBrowsersAndQuit();
close_observer.Wait();
@@ -376,7 +410,7 @@
// Cancel shutdown on the first beforeunload event.
{
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(CancelClose());
@@ -388,7 +422,7 @@
// Cancel shutdown on the second beforeunload event.
{
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(AcceptClose());
@@ -400,7 +434,7 @@
EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count());
// Allow shutdown for both beforeunload events.
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 2);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(AcceptClose());
@@ -428,7 +462,7 @@
// the dialog is guaranteed to show.
PrepareForDialog(browsers_[0]->tab_strip_model()->GetWebContentsAt(1));
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(CancelClose());
@@ -437,7 +471,7 @@
// All tabs should still be open.
EXPECT_EQ(3, browsers_[0]->tab_strip_model()->count());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(AcceptClose());
@@ -464,7 +498,7 @@
// the dialog is guaranteed to show.
PrepareForDialog(browsers_[1]);
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(CancelClose());
@@ -475,7 +509,7 @@
EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count());
EXPECT_EQ(1, browsers_[2]->tab_strip_model()->count());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 3);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(AcceptClose());
@@ -510,7 +544,7 @@
PrepareForDialog(
browsers_[0]->tab_strip_model()->GetWebContentsAt(kResposiveTabIndex));
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(CancelClose());
@@ -519,7 +553,7 @@
// All tabs should still be open.
EXPECT_EQ(kTabCount, browsers_[0]->tab_strip_model()->count());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
// Quit, this time accepting close confirmation dialog.
@@ -558,7 +592,7 @@
// the dialog is guaranteed to show.
PrepareForDialog(browsers_[kResposiveBrowserIndex]);
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, kResposiveBrowserIndex + 1);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(CancelClose());
@@ -570,7 +604,7 @@
EXPECT_EQ(1, browsers_[i]->tab_strip_model()->count());
// Quit, this time accepting close confirmation dialog.
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, kBrowserCount);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(AcceptClose());
@@ -587,7 +621,7 @@
browsers_[0], embedded_test_server()->GetURL("/beforeunload.html")));
PrepareForDialog(browsers_[0]);
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 2);
chrome::CloseAllBrowsersAndQuit();
browsers_.push_back(CreateBrowser(browser()->profile()));
@@ -606,7 +640,7 @@
browsers_[0], embedded_test_server()->GetURL("/beforeunload.html")));
PrepareForDialog(browsers_[0]);
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2);
chrome::CloseAllBrowsersAndQuit();
browsers_.push_back(CreateBrowser(browser()->profile()));
@@ -621,7 +655,7 @@
EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count());
// Allow shutdown for both beforeunload dialogs.
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 2);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(AcceptClose());
@@ -643,7 +677,7 @@
PrepareForDialog(browsers_[0]);
PrepareForDialog(browsers_[1]);
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 2);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(AcceptClose());
@@ -669,7 +703,7 @@
PrepareForDialog(browsers_[0]);
PrepareForDialog(browsers_[1]);
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(AcceptClose());
@@ -688,7 +722,7 @@
EXPECT_EQ(2, browsers_[0]->tab_strip_model()->count());
EXPECT_EQ(2, browsers_[1]->tab_strip_model()->count());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 2);
chrome::CloseAllBrowsersAndQuit();
ASSERT_NO_FATAL_FAILURE(AcceptClose());
@@ -813,7 +847,7 @@
browsers_[0], embedded_test_server()->GetURL("/beforeunload.html")));
PrepareForDialog(browsers_[0]);
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1);
chrome::CloseAllBrowsersAndQuit();
@@ -829,7 +863,7 @@
EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count());
EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 2);
chrome::CloseAllBrowsersAndQuit();
browsers_[1]->tab_strip_model()->CloseAllTabs();
@@ -848,7 +882,7 @@
browsers_[0], embedded_test_server()->GetURL("/beforeunload.html")));
PrepareForDialog(browsers_[0]);
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2);
chrome::CloseAllBrowsersAndQuit();
@@ -864,7 +898,7 @@
EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count());
EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 2);
chrome::CloseAllBrowsersAndQuit();
ASSERT_FALSE(browsers_[1]->ShouldCloseWindow());
@@ -887,7 +921,7 @@
PrepareForDialog(browsers_[0]);
PrepareForDialog(browsers_[1]);
- content::RepeatedNotificationObserver cancel_observer(
+ RepeatedNotificationObserver cancel_observer(
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1);
chrome::CloseAllBrowsersAndQuit();
@@ -898,7 +932,7 @@
EXPECT_EQ(1, browsers_[0]->tab_strip_model()->count());
EXPECT_EQ(1, browsers_[1]->tab_strip_model()->count());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 2);
chrome::CloseAllBrowsersAndQuit();
ASSERT_FALSE(browsers_[0]->ShouldCloseWindow());
@@ -948,7 +982,7 @@
SetDownloadPathForProfile(browser()->profile());
ASSERT_NO_FATAL_FAILURE(CreateStalledDownload(browser()));
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
TestBrowserCloseManager::AttemptClose(
@@ -997,7 +1031,7 @@
browser()->profile())->NonMaliciousInProgressCount());
// Close the browser with no user action.
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
TestBrowserCloseManager::AttemptClose(
TestBrowserCloseManager::NO_USER_CHOICE);
@@ -1021,7 +1055,7 @@
EXPECT_EQ(GURL(chrome::kChromeUIDownloadsURL),
browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
TestBrowserCloseManager::AttemptClose(
@@ -1043,7 +1077,7 @@
SetDownloadPathForProfile(otr_profile);
Browser* otr_browser = CreateBrowser(otr_profile);
{
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
browser()->window()->Close();
close_observer.Wait();
@@ -1058,7 +1092,7 @@
EXPECT_EQ(GURL(chrome::kChromeUIDownloadsURL),
otr_browser->tab_strip_model()->GetActiveWebContents()->GetURL());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
TestBrowserCloseManager::AttemptClose(
@@ -1092,7 +1126,7 @@
ASSERT_EQ(0, num_downloads_blocking);
{
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
otr_browser->window()->Close();
close_observer.Wait();
@@ -1104,7 +1138,7 @@
ASSERT_EQ(1, num_downloads_blocking);
{
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 2);
TestBrowserCloseManager::AttemptClose(
TestBrowserCloseManager::USER_CHOICE_USER_ALLOWS_CLOSE);
@@ -1142,7 +1176,7 @@
SetDownloadPathForProfile(other_profile);
ASSERT_NO_FATAL_FAILURE(CreateStalledDownload(browser()));
{
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
browser()->window()->Close();
close_observer.Wait();
@@ -1163,7 +1197,7 @@
other_profile_browser->tab_strip_model()->GetActiveWebContents()
->GetURL());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 2);
TestBrowserCloseManager::AttemptClose(
TestBrowserCloseManager::USER_CHOICE_USER_ALLOWS_CLOSE);
@@ -1195,7 +1229,7 @@
cancel_observer.Wait();
EXPECT_FALSE(browser_shutdown::IsTryingToQuit());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
TestBrowserCloseManager::AttemptClose(
TestBrowserCloseManager::USER_CHOICE_USER_ALLOWS_CLOSE);
@@ -1241,7 +1275,7 @@
std::unique_ptr<ScopedKeepAlive> tmp_keep_alive;
Profile* profile = browser()->profile();
{
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
tmp_keep_alive.reset(new ScopedKeepAlive(KeepAliveOrigin::PANEL_VIEW,
KeepAliveRestartOption::DISABLED));
@@ -1258,7 +1292,7 @@
new_browser_observer.WaitForSingleNewBrowser();
tmp_keep_alive.reset();
EXPECT_FALSE(IsBackgroundModeSuspended());
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
// Background mode should not be suspended when quitting.
@@ -1273,7 +1307,7 @@
// background mode.
IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithBackgroundModeBrowserTest,
DISABLED_CloseSingleBrowserWithBackgroundMode) {
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
EXPECT_FALSE(IsBackgroundModeSuspended());
browser()->window()->Close();
@@ -1287,7 +1321,7 @@
// background mode but does not cause Chrome to quit.
IN_PROC_BROWSER_TEST_P(BrowserCloseManagerWithBackgroundModeBrowserTest,
DISABLED_CloseAllBrowsersWithNoOpenBrowsersWithBackgroundMode) {
- content::RepeatedNotificationObserver close_observer(
+ RepeatedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED, 1);
EXPECT_FALSE(IsBackgroundModeSuspended());
ScopedKeepAlive tmp_keep_alive(KeepAliveOrigin::PANEL_VIEW,
« no previous file with comments | « chrome/browser/app_controller_mac_browsertest.mm ('k') | chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698