Index: chrome/browser/ui/startup/startup_browser_creator_browsertest.cc |
diff --git a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc |
index 1e1a055a550f0f221d0f53349bfb6dc77de50fcb..c647cb97d5f6493c2cbadba759fc3f78d099bb36 100644 |
--- a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc |
+++ b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc |
@@ -68,6 +68,10 @@ using testing::Return; |
#include "chrome/browser/supervised_user/supervised_user_service_factory.h" |
#endif |
+#if defined(OS_MACOSX) && !defined(OS_IOS) |
+#include "base/mac/scoped_nsautorelease_pool.h" |
+#endif // defined(OS_MACOSX) && !defined(OS_IOS) |
+ |
using extensions::Extension; |
namespace { |
@@ -97,6 +101,13 @@ class StartupBrowserCreatorTest : public ExtensionBrowserTest { |
return ExtensionBrowserTest::SetUpUserDataDirectory(); |
} |
+ void CloseBrowser(Browser* browser) { |
+ browser->window()->Close(); |
+#if defined(OS_MACOSX) && !defined(OS_IOS) |
+ AutoreleasePool()->Recycle(); |
+#endif // defined(OS_MACOSX) && !defined(OS_IOS) |
+ } |
+ |
void SetUpCommandLine(base::CommandLine* command_line) override { |
ExtensionBrowserTest::SetUpCommandLine(command_line); |
command_line->AppendSwitch(switches::kEnablePanels); |
@@ -217,7 +228,7 @@ IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, |
SessionStartupPref::SetStartupPref(browser()->profile(), pref); |
// Close the browser. |
- browser()->window()->Close(); |
+ CloseBrowser(browser()); |
// Do a simple non-process-startup browser launch. |
base::CommandLine dummy(base::CommandLine::NO_PROGRAM); |
@@ -632,7 +643,7 @@ IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, StartupURLsForTwoProfiles) { |
SessionStartupPref::SetStartupPref(other_profile, pref2); |
// Close the browser. |
- browser()->window()->Close(); |
+ CloseBrowser(browser()); |
// Do a simple non-process-startup browser launch. |
base::CommandLine dummy(base::CommandLine::NO_PROGRAM); |
@@ -690,7 +701,7 @@ IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, PRE_UpdateWithTwoProfiles) { |
chrome::NewTab(browser1); |
ui_test_utils::NavigateToURL(browser1, |
test_server()->GetURL("files/empty.html")); |
- browser1->window()->Close(); |
+ CloseBrowser(browser1); |
Browser* browser2 = new Browser( |
Browser::CreateParams(Browser::TYPE_TABBED, profile2, |
@@ -698,7 +709,7 @@ IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, PRE_UpdateWithTwoProfiles) { |
chrome::NewTab(browser2); |
ui_test_utils::NavigateToURL(browser2, |
test_server()->GetURL("files/form.html")); |
- browser2->window()->Close(); |
+ CloseBrowser(browser2); |
// Set different startup preferences for the 2 profiles. |
std::vector<GURL> urls1; |
@@ -846,12 +857,12 @@ IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, |
chrome::NewTab(browser_last); |
ui_test_utils::NavigateToURL(browser_last, |
test_server()->GetURL("files/empty.html")); |
- browser_last->window()->Close(); |
+ CloseBrowser(browser_last); |
// Close the main browser. |
chrome::HostDesktopType original_desktop_type = |
browser()->host_desktop_type(); |
- browser()->window()->Close(); |
+ CloseBrowser(browser()); |
// Do a simple non-process-startup browser launch. |
base::CommandLine dummy(base::CommandLine::NO_PROGRAM); |
@@ -949,7 +960,7 @@ IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, ProfilesLaunchedAfterCrash) { |
SessionStartupPref::SetStartupPref(profile_urls, pref_urls); |
// Simulate a launch after an unclear exit. |
- browser()->window()->Close(); |
+ CloseBrowser(browser()); |
static_cast<ProfileImpl*>(profile_home)->last_session_exit_type_ = |
Profile::EXIT_CRASHED; |
static_cast<ProfileImpl*>(profile_last)->last_session_exit_type_ = |