diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-25 20:14:29 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-25 20:14:29 +0000 |
commit | a4fe67013ea54ca4f550d8c27b55b180fe0c4a70 (patch) | |
tree | a2eb4697a22a3ea49aeece7a395286a6e84fda0f /chrome/browser | |
parent | f82480eb8c899f51177505494a485587c60e7ad4 (diff) | |
download | chromium_src-a4fe67013ea54ca4f550d8c27b55b180fe0c4a70.zip chromium_src-a4fe67013ea54ca4f550d8c27b55b180fe0c4a70.tar.gz chromium_src-a4fe67013ea54ca4f550d8c27b55b180fe0c4a70.tar.bz2 |
Consolidate Browser Creation.
. Make all instantiators use a single ctor that takes CreateParams.
. Get rid of InitBrowserWindow() and make CreateBrowserWindow() a anonymous namespace function in browser.cc
http://crbug.com/133576
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10692195
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148396 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
72 files changed, 340 insertions, 394 deletions
diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm index 8e3a4c0..f80e028 100644 --- a/chrome/browser/app_controller_mac.mm +++ b/chrome/browser/app_controller_mac.mm @@ -675,7 +675,7 @@ const AEEventClass kAECloudPrintUninstallClass = 'GCPu'; // downloads page if the user chooses to wait. Browser* browser = browser::FindBrowserWithProfile(profiles[i]); if (!browser) { - browser = Browser::Create(profiles[i]); + browser = new Browser(Browser::CreateParams(profiles[i])); browser->window()->Show(); } DCHECK(browser); @@ -1093,7 +1093,7 @@ const AEEventClass kAECloudPrintUninstallClass = 'GCPu'; Browser* browser = browser::GetLastActiveBrowser(); // if no browser window exists then create one with no tabs to be filled in if (!browser) { - browser = Browser::Create([self lastProfile]); + browser = new Browser(Browser::CreateParams([self lastProfile])); browser->window()->Show(); } diff --git a/chrome/browser/automation/testing_automation_provider.cc b/chrome/browser/automation/testing_automation_provider.cc index dc4f811..d3b4613 100644 --- a/chrome/browser/automation/testing_automation_provider.cc +++ b/chrome/browser/automation/testing_automation_provider.cc @@ -1194,8 +1194,8 @@ void TestingAutomationProvider::OpenNewBrowserWindowOfType( new BrowserOpenedNotificationObserver(this, reply_message, false); // We may have no current browser windows open so don't rely on // asking an existing browser to execute the IDC_NEWWINDOW command - Browser* browser = new Browser(static_cast<Browser::Type>(type), profile_); - browser->InitBrowserWindow(); + Browser* browser = new Browser( + Browser::CreateParams(static_cast<Browser::Type>(type), profile_)); chrome::AddBlankTab(browser, true); if (show) browser->window()->Show(); diff --git a/chrome/browser/browser_focus_uitest.cc b/chrome/browser/browser_focus_uitest.cc index fd3eace..a876a5a 100644 --- a/chrome/browser/browser_focus_uitest.cc +++ b/chrome/browser/browser_focus_uitest.cc @@ -276,7 +276,7 @@ IN_PROC_BROWSER_TEST_F(BrowserFocusTest, DISABLED_BrowsersRememberFocus) { // of Activate() is not well defined and can vary by window manager. #if defined(OS_WIN) // Open a new browser window. - Browser* browser2 = Browser::Create(browser()->profile()); + Browser* browser2 = new Browser(Browser::CreateParams(browser()->profile())); ASSERT_TRUE(browser2); chrome::AddBlankTab(browser2, true); browser2->window()->Show(); @@ -430,7 +430,7 @@ IN_PROC_BROWSER_TEST_F(BrowserFocusTest, ASSERT_TRUE(test_server()->Start()); // Open a new browser window. - Browser* browser2 = Browser::Create(browser()->profile()); + Browser* browser2 = new Browser(Browser::CreateParams(browser()->profile())); ASSERT_TRUE(browser2); chrome::AddBlankTab(browser2, true); browser2->window()->Show(); diff --git a/chrome/browser/captive_portal/captive_portal_browsertest.cc b/chrome/browser/captive_portal/captive_portal_browsertest.cc index be6530e..43b9f57 100644 --- a/chrome/browser/captive_portal/captive_portal_browsertest.cc +++ b/chrome/browser/captive_portal/captive_portal_browsertest.cc @@ -1876,7 +1876,7 @@ IN_PROC_BROWSER_TEST_F(CaptivePortalBrowserTest, DISABLED_ReloadTimeout) { // the background one. // Disabled: http://crbug.com/134357 IN_PROC_BROWSER_TEST_F(CaptivePortalBrowserTest, DISABLED_TwoWindows) { - Browser* browser2 = Browser::Create(browser()->profile()); + Browser* browser2 = new Browser(Browser::CreateParams(browser()->profile())); // Navigate the new browser window so it'll be shown and we can pick the // active window. ui_test_utils::NavigateToURL(browser2, GURL(chrome::kAboutBlankURL)); diff --git a/chrome/browser/chromeos/enrollment_dialog_view.cc b/chrome/browser/chromeos/enrollment_dialog_view.cc index 3ce38e9..ea41927 100644 --- a/chrome/browser/chromeos/enrollment_dialog_view.cc +++ b/chrome/browser/chromeos/enrollment_dialog_view.cc @@ -108,11 +108,12 @@ int EnrollmentDialogView::GetDialogButtons() const { } bool EnrollmentDialogView::Accept() { + // TODO(beng): use Navigate(). // Navigate to the target URI in a browser tab. Browser* browser = browser::FindTabbedBrowser(profile_, false); if (!browser) { // Couldn't find a tabbed browser: create one. - browser = Browser::Create(profile_); + browser = new Browser(Browser::CreateParams(profile_)); } DCHECK(browser); chrome::AddSelectedTabWithURL(browser, target_uri_, diff --git a/chrome/browser/chromeos/media/media_player.cc b/chrome/browser/chromeos/media/media_player.cc index 7ff501e..fc6ff1a 100644 --- a/chrome/browser/chromeos/media/media_player.cc +++ b/chrome/browser/chromeos/media/media_player.cc @@ -132,7 +132,7 @@ void MediaPlayer::PopupMediaPlayer() { kPopupHeight); Profile* profile = ProfileManager::GetDefaultProfileOrOffTheRecord(); - mediaplayer_browser_ = Browser::CreateWithParams( + mediaplayer_browser_ = new Browser( Browser::CreateParams::CreateForApp(Browser::TYPE_PANEL, kMediaPlayerAppName, bounds, diff --git a/chrome/browser/debugger/devtools_window.cc b/chrome/browser/debugger/devtools_window.cc index 2fbd35d..e08f488 100644 --- a/chrome/browser/debugger/devtools_window.cc +++ b/chrome/browser/debugger/devtools_window.cc @@ -379,8 +379,7 @@ void DevToolsWindow::CreateDevToolsBrowser() { defaults->SetBoolean("always_on_top", false); } - browser_ = Browser::CreateWithParams( - Browser::CreateParams::CreateForDevTools(profile_)); + browser_ = new Browser(Browser::CreateParams::CreateForDevTools(profile_)); browser_->tab_strip_model()->AddTabContents( tab_contents_, -1, content::PAGE_TRANSITION_START_PAGE, TabStripModel::ADD_ACTIVE); diff --git a/chrome/browser/extensions/api/extension_action/browser_action_apitest.cc b/chrome/browser/extensions/api/extension_action/browser_action_apitest.cc index 3d2bbe2..13e46a8 100644 --- a/chrome/browser/extensions/api/extension_action/browser_action_apitest.cc +++ b/chrome/browser/extensions/api/extension_action/browser_action_apitest.cc @@ -295,7 +295,8 @@ IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, IncognitoBasic) { // Open an incognito window and test that the browser action isn't there by // default. Profile* incognito_profile = browser()->profile()->GetOffTheRecordProfile(); - Browser* incognito_browser = Browser::Create(incognito_profile); + Browser* incognito_browser = + new Browser(Browser::CreateParams(incognito_profile)); ASSERT_EQ(0, BrowserActionTestUtil(incognito_browser).NumberOfBrowserActions()); @@ -307,7 +308,7 @@ IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, IncognitoBasic) { SetIsIncognitoEnabled(extension->id(), true); chrome::CloseWindow(incognito_browser); - incognito_browser = Browser::Create(incognito_profile); + incognito_browser = new Browser(Browser::CreateParams(incognito_profile)); ASSERT_EQ(1, BrowserActionTestUtil(incognito_browser).NumberOfBrowserActions()); @@ -345,7 +346,8 @@ IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, IncognitoDragging) { service->extension_prefs()->SetIsIncognitoEnabled(extension_c->id(), true); Profile* incognito_profile = browser()->profile()->GetOffTheRecordProfile(); - Browser* incognito_browser = Browser::Create(incognito_profile); + Browser* incognito_browser = + new Browser(Browser::CreateParams(incognito_profile)); BrowserActionTestUtil incognito_bar(incognito_browser); // Navigate just to have a tab in this window, otherwise wonky things happen. diff --git a/chrome/browser/extensions/api/identity/identity_api.cc b/chrome/browser/extensions/api/identity/identity_api.cc index f5a2dbb..e4064ae 100644 --- a/chrome/browser/extensions/api/identity/identity_api.cc +++ b/chrome/browser/extensions/api/identity/identity_api.cc @@ -177,8 +177,8 @@ void IdentityGetAuthTokenFunction::ShowLoginPopup() { if (login_ui) { login_ui->FocusUI(); } else { - Browser* browser = Browser::CreateWithParams(Browser::CreateParams( - Browser::TYPE_POPUP, profile())); + Browser* browser = + new Browser(Browser::CreateParams(Browser::TYPE_POPUP, profile())); // TODO(munjal): Change the source from SOURCE_NTP_LINK to something else // once we have added a new source for extension API. GURL signin_url(SyncPromoUI::GetSyncPromoURL(GURL(), diff --git a/chrome/browser/extensions/api/tabs/tabs.cc b/chrome/browser/extensions/api/tabs/tabs.cc index e3fe523..cf8585a 100644 --- a/chrome/browser/extensions/api/tabs/tabs.cc +++ b/chrome/browser/extensions/api/tabs/tabs.cc @@ -242,7 +242,7 @@ Browser* CreateBrowserWindow(const Browser::CreateParams& params, new_window = browser::FindTabbedBrowser(profile, false); if (!new_window) - new_window = Browser::CreateWithParams(params); + new_window = new Browser(params); return new_window; } @@ -595,9 +595,8 @@ bool CreateWindowFunction::RunImpl() { } // Create a new BrowserWindow. - Browser::CreateParams create_params; + Browser::CreateParams create_params(window_type, window_profile); if (extension_id.empty()) { - create_params = Browser::CreateParams(window_type, window_profile); create_params.initial_bounds = window_bounds; } else { create_params = Browser::CreateParams::CreateForApp( @@ -1043,7 +1042,7 @@ bool CreateTabFunction::RunImpl() { Profile* profile = browser->profile()->GetOriginalProfile(); browser = browser::FindTabbedBrowser(profile, false); if (!browser) { - browser = Browser::Create(profile); + browser = new Browser(Browser::CreateParams(profile)); browser->window()->Show(); } } diff --git a/chrome/browser/extensions/api/tabs/tabs_test.cc b/chrome/browser/extensions/api/tabs/tabs_test.cc index 63f95f8..613d5e2 100644 --- a/chrome/browser/extensions/api/tabs/tabs_test.cc +++ b/chrome/browser/extensions/api/tabs/tabs_test.cc @@ -85,7 +85,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, GetWindow) { // minimize/maximize programmatically? // Popup. - Browser* popup_browser = Browser::CreateWithParams( + Browser* popup_browser = new Browser( Browser::CreateParams(Browser::TYPE_POPUP, browser()->profile())); result.reset(utils::ToDictionary( utils::RunFunctionAndReturnSingleResult( @@ -96,7 +96,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, GetWindow) { EXPECT_EQ("popup", utils::GetString(result.get(), "type")); // Panel. - Browser* panel_browser = Browser::CreateWithParams( + Browser* panel_browser = new Browser( Browser::CreateParams(Browser::TYPE_PANEL, browser()->profile())); result.reset(utils::ToDictionary( utils::RunFunctionAndReturnSingleResult( @@ -489,7 +489,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, DontCreateTabInClosingPopupWindow) { // Test creates new popup window, closes it right away and then tries to open // a new tab in it. Tab should not be opened in the popup window, but in a // tabbed browser window. - Browser* popup_browser = Browser::CreateWithParams( + Browser* popup_browser = new Browser( Browser::CreateParams(Browser::TYPE_POPUP, browser()->profile())); int window_id = ExtensionTabUtil::GetWindowId(popup_browser); chrome::CloseWindow(popup_browser); diff --git a/chrome/browser/extensions/extension_install_ui_browsertest.cc b/chrome/browser/extensions/extension_install_ui_browsertest.cc index 2f26389..7cea175 100644 --- a/chrome/browser/extensions/extension_install_ui_browsertest.cc +++ b/chrome/browser/extensions/extension_install_ui_browsertest.cc @@ -122,7 +122,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionInstallUIBrowserTest, IN_PROC_BROWSER_TEST_F(ExtensionInstallUIBrowserTest, AppInstallConfirmation_Incognito) { Profile* incognito_profile = browser()->profile()->GetOffTheRecordProfile(); - Browser* incognito_browser = Browser::Create(incognito_profile); + Browser* incognito_browser = + new Browser(Browser::CreateParams(incognito_profile)); int num_incognito_tabs = incognito_browser->tab_count(); int num_normal_tabs = browser()->tab_count(); diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc index df9df2b..55d9c4c 100644 --- a/chrome/browser/extensions/extension_tab_util.cc +++ b/chrome/browser/extensions/extension_tab_util.cc @@ -231,7 +231,7 @@ void ExtensionTabUtil::CreateTab(WebContents* web_contents, Browser* browser = browser::FindTabbedBrowser(profile, false); const bool browser_created = !browser; if (!browser) - browser = Browser::Create(profile); + browser = new Browser(Browser::CreateParams(profile)); TabContents* tab_contents = new TabContents(web_contents); chrome::NavigateParams params(browser, tab_contents); diff --git a/chrome/browser/managed_mode_unittest.cc b/chrome/browser/managed_mode_unittest.cc index 0242c90..5fb03cf 100644 --- a/chrome/browser/managed_mode_unittest.cc +++ b/chrome/browser/managed_mode_unittest.cc @@ -65,19 +65,16 @@ class FakeManagedMode : public ManagedMode { class MockBrowserWindow : public TestBrowserWindow { public: - explicit MockBrowserWindow(Browser* browser) : TestBrowserWindow(browser) { - } - MOCK_METHOD0(Close, void()); }; class BrowserFixture { public: BrowserFixture(FakeManagedMode* managed_mode, - TestingProfile* profile) - : browser_(Browser::TYPE_TABBED, profile), - window_(&browser_) { - browser_.SetWindowForTesting(&window_); + TestingProfile* profile) { + Browser::CreateParams params(profile); + params.window = &window_; + browser_.reset(new Browser(params)); } ~BrowserFixture() { @@ -88,7 +85,7 @@ class BrowserFixture { } private: - Browser browser_; + scoped_ptr<Browser> browser_; StrictMock<MockBrowserWindow> window_; }; diff --git a/chrome/browser/notifications/notification_options_menu_model.cc b/chrome/browser/notifications/notification_options_menu_model.cc index 68288e9..c59565e 100644 --- a/chrome/browser/notifications/notification_options_menu_model.cc +++ b/chrome/browser/notifications/notification_options_menu_model.cc @@ -254,7 +254,7 @@ void NotificationOptionsMenuModel::ExecuteCommand(int command_id) { if (!browser) { // It is possible that there is no browser window (e.g. when there are // background pages, or for a chrome frame process on windows). - browser = Browser::Create(balloon_->profile()); + browser = new Browser(Browser::CreateParams(balloon_->profile())); } chrome::ShowContentSettings(browser, CONTENT_SETTINGS_TYPE_NOTIFICATIONS); break; diff --git a/chrome/browser/printing/print_preview_tab_controller.cc b/chrome/browser/printing/print_preview_tab_controller.cc index e200210..04bf2e0 100644 --- a/chrome/browser/printing/print_preview_tab_controller.cc +++ b/chrome/browser/printing/print_preview_tab_controller.cc @@ -422,7 +422,7 @@ TabContents* PrintPreviewTabController::CreatePrintPreviewTab( Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext()); if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kChromeFrame)) { - Browser* current_browser = Browser::CreateWithParams( + Browser* current_browser = new Browser( Browser::CreateParams(Browser::TYPE_POPUP, profile)); if (!current_browser) { NOTREACHED() << "Failed to create popup browser window"; diff --git a/chrome/browser/profiles/avatar_menu_model.cc b/chrome/browser/profiles/avatar_menu_model.cc index 2e83ea3..2691136 100644 --- a/chrome/browser/profiles/avatar_menu_model.cc +++ b/chrome/browser/profiles/avatar_menu_model.cc @@ -93,7 +93,7 @@ void AvatarMenuModel::EditProfile(size_t index) { if (!browser) { Profile* profile = g_browser_process->profile_manager()->GetProfileByPath( profile_info_->GetPathOfProfileAtIndex(GetItemAt(index).model_index)); - browser = Browser::Create(profile); + browser = new Browser(Browser::CreateParams(profile)); } std::string page = chrome::kManageProfileSubPage; page += "#"; diff --git a/chrome/browser/profiles/profile_manager_unittest.cc b/chrome/browser/profiles/profile_manager_unittest.cc index 0da7d6a..e16bad7 100644 --- a/chrome/browser/profiles/profile_manager_unittest.cc +++ b/chrome/browser/profiles/profile_manager_unittest.cc @@ -28,6 +28,7 @@ #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" +#include "chrome/test/base/test_browser_window.h" #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_pref_service.h" #include "chrome/test/base/testing_profile.h" @@ -414,14 +415,16 @@ TEST_F(ProfileManagerTest, LastOpenedProfiles) { ASSERT_EQ(0U, last_opened_profiles.size()); // Create a browser for profile1. - scoped_ptr<Browser> browser1a(new Browser(Browser::TYPE_TABBED, profile1)); + scoped_ptr<Browser> browser1a( + chrome::CreateBrowserWithTestWindowForProfile(profile1)); last_opened_profiles = profile_manager->GetLastOpenedProfiles(); ASSERT_EQ(1U, last_opened_profiles.size()); EXPECT_EQ(profile1, last_opened_profiles[0]); // And for profile2. - scoped_ptr<Browser> browser2(new Browser(Browser::TYPE_TABBED, profile2)); + scoped_ptr<Browser> browser2( + chrome::CreateBrowserWithTestWindowForProfile(profile2)); last_opened_profiles = profile_manager->GetLastOpenedProfiles(); ASSERT_EQ(2U, last_opened_profiles.size()); @@ -429,7 +432,8 @@ TEST_F(ProfileManagerTest, LastOpenedProfiles) { EXPECT_EQ(profile2, last_opened_profiles[1]); // Adding more browsers doesn't change anything. - scoped_ptr<Browser> browser1b(new Browser(Browser::TYPE_TABBED, profile1)); + scoped_ptr<Browser> browser1b( + chrome::CreateBrowserWithTestWindowForProfile(profile1)); last_opened_profiles = profile_manager->GetLastOpenedProfiles(); ASSERT_EQ(2U, last_opened_profiles.size()); EXPECT_EQ(profile1, last_opened_profiles[0]); @@ -471,10 +475,12 @@ TEST_F(ProfileManagerTest, LastOpenedProfilesAtShutdown) { ASSERT_TRUE(profile2); // Create a browser for profile1. - scoped_ptr<Browser> browser1(new Browser(Browser::TYPE_TABBED, profile1)); + scoped_ptr<Browser> browser1( + chrome::CreateBrowserWithTestWindowForProfile(profile1)); // And for profile2. - scoped_ptr<Browser> browser2(new Browser(Browser::TYPE_TABBED, profile2)); + scoped_ptr<Browser> browser2( + chrome::CreateBrowserWithTestWindowForProfile(profile2)); std::vector<Profile*> last_opened_profiles = profile_manager->GetLastOpenedProfiles(); @@ -524,21 +530,24 @@ TEST_F(ProfileManagerTest, LastOpenedProfilesDoesNotContainIncognito) { ASSERT_EQ(0U, last_opened_profiles.size()); // Create a browser for profile1. - scoped_ptr<Browser> browser1(new Browser(Browser::TYPE_TABBED, profile1)); + scoped_ptr<Browser> browser1( + chrome::CreateBrowserWithTestWindowForProfile(profile1)); last_opened_profiles = profile_manager->GetLastOpenedProfiles(); ASSERT_EQ(1U, last_opened_profiles.size()); EXPECT_EQ(profile1, last_opened_profiles[0]); // And for profile2. - scoped_ptr<Browser> browser2a(new Browser(Browser::TYPE_TABBED, profile2)); + scoped_ptr<Browser> browser2a( + chrome::CreateBrowserWithTestWindowForProfile(profile2)); last_opened_profiles = profile_manager->GetLastOpenedProfiles(); ASSERT_EQ(1U, last_opened_profiles.size()); EXPECT_EQ(profile1, last_opened_profiles[0]); // Adding more browsers doesn't change anything. - scoped_ptr<Browser> browser2b(new Browser(Browser::TYPE_TABBED, profile1)); + scoped_ptr<Browser> browser2b( + chrome::CreateBrowserWithTestWindowForProfile(profile1)); last_opened_profiles = profile_manager->GetLastOpenedProfiles(); ASSERT_EQ(1U, last_opened_profiles.size()); EXPECT_EQ(profile1, last_opened_profiles[0]); diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/sessions/session_restore.cc index 8262bb790..5298b08 100644 --- a/chrome/browser/sessions/session_restore.cc +++ b/chrome/browser/sessions/session_restore.cc @@ -578,7 +578,8 @@ class SessionRestoreImpl : public content::NotificationObserver { bool use_new_window = disposition == NEW_WINDOW; - Browser* browser = use_new_window ? Browser::Create(profile_) : browser_; + Browser* browser = use_new_window ? + new Browser(Browser::CreateParams(profile_)) : browser_; RecordAppLaunchForTab(browser, tab, selected_index); @@ -663,7 +664,7 @@ class SessionRestoreImpl : public content::NotificationObserver { Browser* FinishedTabCreation(bool succeeded, bool created_tabbed_browser) { Browser* browser = NULL; if (!created_tabbed_browser && always_create_tabbed_browser_) { - browser = Browser::Create(profile_); + browser = new Browser(Browser::CreateParams(profile_)); if (urls_to_open_.empty()) { // No tab browsers were created and no URLs were supplied on the command // line. Add an empty URL, which is treated as opening the users home @@ -927,7 +928,7 @@ class SessionRestoreImpl : public content::NotificationObserver { params.initial_bounds = bounds; params.initial_show_state = show_state; params.is_session_restore = true; - return Browser::CreateWithParams(params); + return new Browser(params); } void ShowBrowser(Browser* browser, int selected_tab_index) { diff --git a/chrome/browser/sessions/session_restore_browsertest.cc b/chrome/browser/sessions/session_restore_browsertest.cc index 8528a14..154bf0a 100644 --- a/chrome/browser/sessions/session_restore_browsertest.cc +++ b/chrome/browser/sessions/session_restore_browsertest.cc @@ -227,8 +227,8 @@ IN_PROC_BROWSER_TEST_F(SessionRestoreTest, // Create a new popup. Profile* profile = browser()->profile(); - Browser* popup = Browser::CreateWithParams( - Browser::CreateParams(Browser::TYPE_POPUP, profile)); + Browser* popup = + new Browser(Browser::CreateParams(Browser::TYPE_POPUP, profile)); popup->window()->Show(); // Close the browser. @@ -601,7 +601,7 @@ IN_PROC_BROWSER_TEST_F(SessionRestoreTest, NormalAndPopup) { AssertOneWindowWithOneTab(browser()); // Open a popup. - Browser* popup = Browser::CreateWithParams( + Browser* popup = new Browser( Browser::CreateParams(Browser::TYPE_POPUP, browser()->profile())); popup->window()->Show(); ASSERT_EQ(2u, BrowserList::size()); diff --git a/chrome/browser/sync/sync_global_error_unittest.cc b/chrome/browser/sync/sync_global_error_unittest.cc index 312a5a4..dd25d23 100644 --- a/chrome/browser/sync/sync_global_error_unittest.cc +++ b/chrome/browser/sync/sync_global_error_unittest.cc @@ -28,6 +28,8 @@ using content::BrowserThread; namespace { +#if 0 +// TODO(altimofeev) See below. class BrowserMock: public Browser { public: explicit BrowserMock(Type type, Profile* profile) : Browser(type, profile) {} @@ -35,6 +37,7 @@ class BrowserMock: public Browser { MOCK_METHOD2(ExecuteCommandWithDisposition, void(int command_id, WindowOpenDisposition)); }; +#endif class LoginUIServiceMock: public LoginUIService { public: @@ -53,6 +56,8 @@ class SyncGlobalErrorTest : public BrowserWithTestWindowTest { SyncGlobalErrorTest() {} virtual ~SyncGlobalErrorTest() {} +#if 0 + // TODO(altimofeev): see below. virtual void SetUp() OVERRIDE { testing::Test::SetUp(); @@ -65,6 +70,7 @@ class SyncGlobalErrorTest : public BrowserWithTestWindowTest { virtual void TearDown() OVERRIDE { testing::Test::TearDown(); } +#endif private: DISALLOW_COPY_AND_ASSIGN(SyncGlobalErrorTest); diff --git a/chrome/browser/sync/test/integration/sync_test.cc b/chrome/browser/sync/test/integration/sync_test.cc index 05fca77..8bab5a9 100644 --- a/chrome/browser/sync/test/integration/sync_test.cc +++ b/chrome/browser/sync/test/integration/sync_test.cc @@ -281,7 +281,7 @@ void SyncTest::InitializeInstance(int index) { EXPECT_FALSE(GetProfile(index) == NULL) << "Could not create Profile " << index << "."; - browsers_[index] = Browser::Create(GetProfile(index)); + browsers_[index] = new Browser(Browser::CreateParams(GetProfile(index))); EXPECT_FALSE(GetBrowser(index) == NULL) << "Could not create Browser " << index << "."; diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc index 777e9a9..597c664 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc @@ -244,6 +244,14 @@ bool AllowPanels(const std::string& app_name) { web_app::GetExtensionIdFromApplicationName(app_name)); } +BrowserWindow* CreateBrowserWindow(Browser* browser) { +#if !defined(USE_ASH) + if (browser->is_type_panel()) + return PanelManager::GetInstance()->CreatePanel(browser)->browser_window(); +#endif + return BrowserWindow::CreateBrowserWindow(browser); +} + } // namespace //////////////////////////////////////////////////////////////////////////////// @@ -252,8 +260,19 @@ bool AllowPanels(const std::string& app_name) { Browser::CreateParams::CreateParams() : type(TYPE_TABBED), profile(NULL), + app_type(APP_TYPE_HOST), initial_show_state(ui::SHOW_STATE_DEFAULT), - is_session_restore(false) { + is_session_restore(false), + window(NULL) { +} + +Browser::CreateParams::CreateParams(Profile* profile) + : type(TYPE_TABBED), + profile(profile), + app_type(APP_TYPE_HOST), + initial_show_state(ui::SHOW_STATE_DEFAULT), + is_session_restore(false), + window(NULL) { } Browser::CreateParams::CreateParams(Type type, Profile* profile) @@ -261,7 +280,8 @@ Browser::CreateParams::CreateParams(Type type, Profile* profile) profile(profile), app_type(APP_TYPE_HOST), initial_show_state(ui::SHOW_STATE_DEFAULT), - is_session_restore(false) { + is_session_restore(false), + window(NULL) { } // static @@ -295,21 +315,23 @@ Browser::CreateParams Browser::CreateParams::CreateForDevTools( /////////////////////////////////////////////////////////////////////////////// // Browser, Constructors, Creation, Showing: -Browser::Browser(Type type, Profile* profile) - : type_(type), - profile_(profile), +Browser::Browser(const CreateParams& params) + : type_(params.type), + profile_(params.profile), window_(NULL), ALLOW_THIS_IN_INITIALIZER_LIST( tab_strip_model_delegate_( new chrome::BrowserTabStripModelDelegate(this))), ALLOW_THIS_IN_INITIALIZER_LIST( tab_strip_model_(new TabStripModel(tab_strip_model_delegate_.get(), - profile))), - app_type_(APP_TYPE_HOST), + params.profile))), + app_name_(params.app_name), + app_type_(params.app_type), chrome_updater_factory_(this), cancel_download_confirmation_state_(NOT_PROMPTED), - initial_show_state_(ui::SHOW_STATE_DEFAULT), - is_session_restore_(false), + override_bounds_(params.initial_bounds), + initial_show_state_(params.initial_show_state), + is_session_restore_(params.is_session_restore), ALLOW_THIS_IN_INITIALIZER_LIST( unload_controller_(new chrome::UnloadController(this))), weak_factory_(this), @@ -330,6 +352,8 @@ Browser::Browser(Type type, Profile* profile) ALLOW_THIS_IN_INITIALIZER_LIST( command_controller_(new chrome::BrowserCommandController(this))), window_has_shown_(false) { + if (!app_name_.empty()) + chrome::RegisterAppPrefs(app_name_, profile_); tab_strip_model_->AddObserver(this); toolbar_model_.reset(new ToolbarModel(toolbar_model_delegate_.get())); @@ -372,8 +396,53 @@ Browser::Browser(Type type, Profile* profile) UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_INIT); - FilePath profile_path = profile->GetPath(); + FilePath profile_path = profile_->GetPath(); ProfileMetrics::LogProfileLaunch(profile_path); + + window_ = params.window ? params.window : CreateBrowserWindow(this); + + // TODO(beng): move to BrowserFrameWin. +#if defined(OS_WIN) && !defined(USE_AURA) + // Set the app user model id for this application to that of the application + // name. See http://crbug.com/7028. + ui::win::SetAppIdForWindow( + is_app() && !is_type_panel() ? + ShellIntegration::GetAppModelIdForProfile(UTF8ToWide(app_name_), + profile_->GetPath()) : + ShellIntegration::GetChromiumModelIdForProfile(profile_->GetPath()), + window()->GetNativeWindow()); + + if (is_type_panel()) { + ui::win::SetAppIconForWindow(ShellIntegration::GetChromiumIconPath(), + window()->GetNativeWindow()); + } +#endif + + // Create the extension window controller before sending notifications. + extension_window_controller_.reset( + new BrowserExtensionWindowController(this)); + + // TODO(beng): Move BrowserList::AddBrowser() to the end of this function and + // replace uses of this with BL's notifications. + content::NotificationService::current()->Notify( + chrome::NOTIFICATION_BROWSER_WINDOW_READY, + content::Source<Browser>(this), + content::NotificationService::NoDetails()); + + // TODO(beng): move to ChromeBrowserMain: + PrefService* local_state = g_browser_process->local_state(); + if (local_state && local_state->FindPreference( + prefs::kAutofillPersonalDataManagerFirstRun) && + local_state->GetBoolean(prefs::kAutofillPersonalDataManagerFirstRun)) { + // Notify PDM that this is a first run. +#if defined(OS_WIN) + ImportAutofillDataWin(PersonalDataManagerFactory::GetForProfile(profile_)); +#endif // defined(OS_WIN) + // Reset the preference so we don't call it again for subsequent windows. + local_state->ClearPref(prefs::kAutofillPersonalDataManagerFirstRun); + } + + fullscreen_controller_ = new FullscreenController(window_, profile_, this); } Browser::~Browser() { @@ -428,79 +497,6 @@ Browser::~Browser() { select_file_dialog_->ListenerDestroyed(); } -// static -Browser* Browser::Create(Profile* profile) { - Browser* browser = new Browser(TYPE_TABBED, profile); - browser->InitBrowserWindow(); - return browser; -} - -// static -Browser* Browser::CreateWithParams(const CreateParams& params) { - if (!params.app_name.empty()) - chrome::RegisterAppPrefs(params.app_name, params.profile); - - Browser* browser = new Browser(params.type, params.profile); - browser->app_name_ = params.app_name; - browser->app_type_ = params.app_type; - browser->set_override_bounds(params.initial_bounds); - browser->set_initial_show_state(params.initial_show_state); - browser->set_is_session_restore(params.is_session_restore); - - browser->InitBrowserWindow(); - return browser; -} - -void Browser::InitBrowserWindow() { - DCHECK(!window_); - - window_ = CreateBrowserWindow(); - fullscreen_controller_ = new FullscreenController(window_, profile_, this); - -#if defined(OS_WIN) && !defined(USE_AURA) - // Set the app user model id for this application to that of the application - // name. See http://crbug.com/7028. - ui::win::SetAppIdForWindow( - is_app() && !is_type_panel() ? - ShellIntegration::GetAppModelIdForProfile(UTF8ToWide(app_name_), - profile_->GetPath()) : - ShellIntegration::GetChromiumModelIdForProfile(profile_->GetPath()), - window()->GetNativeWindow()); - - if (is_type_panel()) { - ui::win::SetAppIconForWindow(ShellIntegration::GetChromiumIconPath(), - window()->GetNativeWindow()); - } -#endif - - // Create the extension window controller before sending notifications. - extension_window_controller_.reset( - new BrowserExtensionWindowController(this)); - - content::NotificationService::current()->Notify( - chrome::NOTIFICATION_BROWSER_WINDOW_READY, - content::Source<Browser>(this), - content::NotificationService::NoDetails()); - - PrefService* local_state = g_browser_process->local_state(); - if (local_state && local_state->FindPreference( - prefs::kAutofillPersonalDataManagerFirstRun) && - local_state->GetBoolean(prefs::kAutofillPersonalDataManagerFirstRun)) { - // Notify PDM that this is a first run. -#if defined(OS_WIN) - ImportAutofillDataWin(PersonalDataManagerFactory::GetForProfile(profile_)); -#endif // defined(OS_WIN) - // Reset the preference so we don't call it again for subsequent windows. - local_state->ClearPref(prefs::kAutofillPersonalDataManagerFirstRun); - } -} - -void Browser::SetWindowForTesting(BrowserWindow* window) { - DCHECK(!window_); - window_ = window; - fullscreen_controller_ = new FullscreenController(window_, profile_, this); -} - /////////////////////////////////////////////////////////////////////////////// // Getters & Setters @@ -1219,17 +1215,6 @@ void Browser::ShowFirstRunBubble() { } /////////////////////////////////////////////////////////////////////////////// -// Browser, protected: - -BrowserWindow* Browser::CreateBrowserWindow() { -#if !defined(USE_ASH) - if (is_type_panel()) - return PanelManager::GetInstance()->CreatePanel(this)->browser_window(); -#endif - return BrowserWindow::CreateBrowserWindow(this); -} - -/////////////////////////////////////////////////////////////////////////////// // Browser, content::WebContentsDelegate implementation: WebContents* Browser::OpenURLFromTab(WebContents* source, diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h index 315af02..6c24eb6 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h @@ -155,6 +155,7 @@ class Browser : public TabStripModelObserver, struct CreateParams { CreateParams(); + explicit CreateParams(Profile* profile); CreateParams(Type type, Profile* profile); static CreateParams CreateForApp(Type type, @@ -185,25 +186,17 @@ class Browser : public TabStripModelObserver, ui::WindowShowState initial_show_state; bool is_session_restore; + + // Supply a custom BrowserWindow implementation, to be used instead of the + // default. Intended for testing. + BrowserWindow* window; }; // Constructors, Creation, Showing ////////////////////////////////////////// - // Creates a new browser of the given |type| and for the given |profile|. The - // Browser has a NULL window after its construction, InitBrowserWindow must - // be called after configuration for window() to be valid. - // Avoid using this constructor directly if you can use one of the Create*() - // methods below. This applies to almost all non-testing code. - Browser(Type type, Profile* profile); + explicit Browser(const CreateParams& params); virtual ~Browser(); - // Creates a normal tabbed browser with the specified profile. The Browser's - // window is created by this function call. - static Browser* Create(Profile* profile); - - // Like Create, but creates a browser of the specified parameters. - static Browser* CreateWithParams(const CreateParams& params); - // Set overrides for the initial window bounds and maximized state. void set_override_bounds(const gfx::Rect& bounds) { override_bounds_ = bounds; @@ -226,16 +219,6 @@ class Browser : public TabStripModelObserver, return is_session_restore_; } - // Creates the Browser Window. Prefer to use the static helpers above where - // possible. This does not show the window. You need to call window()->Show() - // to show it. - void InitBrowserWindow(); - - // Sets the BrowserWindow. This is intended for tests only. - // Use CreateBrowserWindow outside of testing, or the static convenience - // methods that create a BrowserWindow for you. - void SetWindowForTesting(BrowserWindow* window); - // Accessors //////////////////////////////////////////////////////////////// Type type() const { return type_; } @@ -484,11 +467,6 @@ class Browser : public TabStripModelObserver, return extension_window_controller_.get(); } - protected: - // Funnel for the factory method in BrowserWindow. This allows subclasses to - // set their own window. - virtual BrowserWindow* CreateBrowserWindow(); - private: friend class BrowserTest; friend class FullscreenControllerTest; diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc index 3de80e4..c41124b 100644 --- a/chrome/browser/ui/browser_browsertest.cc +++ b/chrome/browser/ui/browser_browsertest.cc @@ -1042,10 +1042,9 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, StartMaximized) { // end up maximized). Browser::Type types[] = { Browser::TYPE_TABBED, Browser::TYPE_POPUP }; for (size_t i = 0; i < ARRAYSIZE_UNSAFE(types); ++i) { - Browser* max_browser = new Browser(types[i], browser()->profile()); - max_browser->set_initial_show_state(ui::SHOW_STATE_MAXIMIZED); - max_browser->InitBrowserWindow(); - AddBlankTabAndShow(max_browser); + Browser::CreateParams params(types[i], browser()->profile()); + params.initial_show_state = ui::SHOW_STATE_MAXIMIZED; + AddBlankTabAndShow(new Browser(params)); } } @@ -1062,10 +1061,9 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_StartMinimized) { // end up minimized). Browser::Type types[] = { Browser::TYPE_TABBED, Browser::TYPE_POPUP }; for (size_t i = 0; i < ARRAYSIZE_UNSAFE(types); ++i) { - Browser* min_browser = new Browser(types[i], browser()->profile()); - min_browser->set_initial_show_state(ui::SHOW_STATE_MINIMIZED); - min_browser->InitBrowserWindow(); - AddBlankTabAndShow(min_browser); + Browser::CreateParams params(types[i], browser()->profile()); + params.initial_show_state = ui::SHOW_STATE_MINIMIZED; + AddBlankTabAndShow(new Browser(params)); } } @@ -1125,7 +1123,8 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, DisableMenuItemsWhenIncognitoIsForced) { EXPECT_TRUE(command_updater->IsCommandEnabled(IDC_NEW_INCOGNITO_WINDOW)); // Create a new browser. - Browser* new_browser = Browser::Create(browser()->profile()); + Browser* new_browser = + new Browser(Browser::CreateParams(browser()->profile())); CommandUpdater* new_command_updater = new_browser->command_controller()->command_updater(); // It should have Bookmarks & Settings commands disabled by default. @@ -1157,7 +1156,8 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, EXPECT_TRUE(command_updater->IsCommandEnabled(IDC_OPTIONS)); // Create a new browser. - Browser* new_browser = Browser::Create(browser()->profile()); + Browser* new_browser = + new Browser(Browser::CreateParams(browser()->profile())); CommandUpdater* new_command_updater = new_browser->command_controller()->command_updater(); EXPECT_FALSE(new_command_updater->IsCommandEnabled(IDC_NEW_INCOGNITO_WINDOW)); @@ -1188,7 +1188,7 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, // Create a popup (non-main-UI-type) browser. Settings command as well // as Extensions should be disabled. - Browser* popup_browser = browser()->CreateWithParams( + Browser* popup_browser = new Browser( Browser::CreateParams(Browser::TYPE_POPUP, browser()->profile())); CommandUpdater* popup_command_updater = popup_browser->command_controller()->command_updater(); @@ -1204,7 +1204,7 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, IN_PROC_BROWSER_TEST_F(BrowserTest, DisableOptionsAndImportMenuItemsConsistently) { // Create a popup browser. - Browser* popup_browser = browser()->CreateWithParams( + Browser* popup_browser = new Browser( Browser::CreateParams(Browser::TYPE_POPUP, browser()->profile())); CommandUpdater* command_updater = popup_browser->command_controller()->command_updater(); @@ -1371,7 +1371,7 @@ IN_PROC_BROWSER_TEST_F(BrowserTest2, NoTabsInPopups) { EXPECT_EQ(1, browser()->tab_count()); // Open a popup browser with a single blank foreground tab. - Browser* popup_browser = browser()->CreateWithParams( + Browser* popup_browser = new Browser( Browser::CreateParams(Browser::TYPE_POPUP, browser()->profile())); chrome::AddBlankTab(popup_browser, true); EXPECT_EQ(1, popup_browser->tab_count()); @@ -1388,9 +1388,8 @@ IN_PROC_BROWSER_TEST_F(BrowserTest2, NoTabsInPopups) { EXPECT_EQ(2, browser()->tab_count()); // Open an app frame browser with a single blank foreground tab. - Browser* app_browser = browser()->CreateWithParams( - Browser::CreateParams::CreateForApp( - L"Test", browser()->profile(), false)); + Browser* app_browser = new Browser(Browser::CreateParams::CreateForApp( + L"Test", browser()->profile(), false)); chrome::AddBlankTab(app_browser, true); EXPECT_EQ(1, app_browser->tab_count()); @@ -1407,9 +1406,8 @@ IN_PROC_BROWSER_TEST_F(BrowserTest2, NoTabsInPopups) { EXPECT_EQ(3, browser()->tab_count()); // Open an app frame popup browser with a single blank foreground tab. - Browser* app_popup_browser = browser()->CreateWithParams( - Browser::CreateParams::CreateForApp( - L"Test", browser()->profile(), false)); + Browser* app_popup_browser = new Browser(Browser::CreateParams::CreateForApp( + L"Test", browser()->profile(), false)); chrome::AddBlankTab(app_popup_browser, true); EXPECT_EQ(1, app_popup_browser->tab_count()); diff --git a/chrome/browser/ui/browser_close_browsertest.cc b/chrome/browser/ui/browser_close_browsertest.cc index 1eb4ab1..c8baf02 100644 --- a/chrome/browser/ui/browser_close_browsertest.cc +++ b/chrome/browser/ui/browser_close_browsertest.cc @@ -171,7 +171,7 @@ class BrowserCloseTest : public InProcessBrowserTest { // Create a Browser (with associated window) on the specified profile. Browser* CreateBrowserOnProfile(Profile* profile) { - Browser* new_browser = Browser::Create(profile); + Browser* new_browser = new Browser(Browser::CreateParams(profile)); chrome::AddSelectedTabWithURL(new_browser, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_START_PAGE); ui_test_utils::WaitForLoadStop( diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc index 14c1957..3806908 100644 --- a/chrome/browser/ui/browser_commands.cc +++ b/chrome/browser/ui/browser_commands.cc @@ -101,7 +101,7 @@ WebContents* GetOrCloneTabForDisposition(Browser* browser, } case NEW_WINDOW: { current_tab = current_tab->Clone(); - Browser* b = Browser::Create(browser->profile()); + Browser* b = new Browser(Browser::CreateParams(browser->profile())); b->tab_strip_model()->AddTabContents( current_tab, -1, content::PAGE_TRANSITION_LINK, TabStripModel::ADD_ACTIVE); @@ -254,7 +254,7 @@ void NewEmptyWindow(Profile* profile) { } Browser* OpenEmptyWindow(Profile* profile) { - Browser* browser = Browser::Create(profile); + Browser* browser = new Browser(Browser::CreateParams(profile)); AddBlankTab(browser, true); browser->window()->Show(); return browser; @@ -507,13 +507,13 @@ void DuplicateTabAt(Browser* browser, int index) { if (browser->is_app()) { CHECK(!browser->is_type_popup()); CHECK(!browser->is_type_panel()); - browser = Browser::CreateWithParams( + browser = new Browser( Browser::CreateParams::CreateForApp(Browser::TYPE_POPUP, browser->app_name(), gfx::Rect(), browser->profile())); } else if (browser->is_type_popup()) { - browser = Browser::CreateWithParams( + browser = new Browser( Browser::CreateParams(Browser::TYPE_POPUP, browser->profile())); } @@ -547,7 +547,7 @@ void ConvertPopupToTabbedBrowser(Browser* browser) { content::RecordAction(UserMetricsAction("ShowAsTab")); TabContents* contents = browser->tab_strip_model()->DetachTabContentsAt(browser->active_index()); - Browser* b = Browser::Create(browser->profile()); + Browser* b = new Browser(Browser::CreateParams(browser->profile())); b->tab_strip_model()->AppendTabContents(contents, true); b->window()->Show(); } @@ -926,7 +926,7 @@ void ViewSource(Browser* browser, view_source_contents, add_types); } else { - Browser* b = Browser::CreateWithParams( + Browser* b = new Browser( Browser::CreateParams(Browser::TYPE_TABBED, browser->profile())); // Preserve the size of the original window. The new window has already @@ -977,7 +977,7 @@ void ConvertTabToAppWindow(Browser* browser, if (index >= 0) browser->tab_strip_model()->DetachTabContentsAt(index); - Browser* app_browser = Browser::CreateWithParams( + Browser* app_browser = new Browser( Browser::CreateParams::CreateForApp( Browser::TYPE_POPUP, app_name, gfx::Rect(), browser->profile())); TabContents* tab_contents = TabContents::FromWebContents(contents); diff --git a/chrome/browser/ui/browser_finder.cc b/chrome/browser/ui/browser_finder.cc index 788c94b..7877afd 100644 --- a/chrome/browser/ui/browser_finder.cc +++ b/chrome/browser/ui/browser_finder.cc @@ -111,7 +111,7 @@ Browser* FindTabbedBrowser(Profile* profile, bool match_original_profiles) { Browser* FindOrCreateTabbedBrowser(Profile* profile) { Browser* browser = FindTabbedBrowser(profile, false); if (!browser) - browser = Browser::Create(profile); + browser = new Browser(Browser::CreateParams(profile)); return browser; } diff --git a/chrome/browser/ui/browser_list_impl.cc b/chrome/browser/ui/browser_list_impl.cc index 5105928..557064f 100644 --- a/chrome/browser/ui/browser_list_impl.cc +++ b/chrome/browser/ui/browser_list_impl.cc @@ -95,12 +95,7 @@ void BrowserListImpl::RemoveBrowser(Browser* browser) { RemoveBrowserFrom(browser, &browsers_); - // Do some basic checking to try to catch evil observers - // that change the list from under us. - size_t original_count = observers_.size(); FOR_EACH_OBSERVER(BrowserListObserver, observers_, OnBrowserRemoved(browser)); - DCHECK_EQ(original_count, observers_.size()) - << "observer list modified during notification"; g_browser_process->ReleaseModule(); diff --git a/chrome/browser/ui/browser_list_observer.h b/chrome/browser/ui/browser_list_observer.h index 4a52594..0b80981 100644 --- a/chrome/browser/ui/browser_list_observer.h +++ b/chrome/browser/ui/browser_list_observer.h @@ -9,8 +9,6 @@ class Browser; namespace chrome { -// Implementations must not change the contents of the BrowserList inside any -// of these methods. class BrowserListObserver { public: // Called immediately after a browser is added to the list diff --git a/chrome/browser/ui/browser_mac.cc b/chrome/browser/ui/browser_mac.cc index 769735d..579dd1b 100644 --- a/chrome/browser/ui/browser_mac.cc +++ b/chrome/browser/ui/browser_mac.cc @@ -11,67 +11,67 @@ namespace chrome { void OpenAboutWindow(Profile* profile) { - Browser* browser = Browser::Create(profile); + Browser* browser = new Browser(Browser::CreateParams(profile)); ShowAboutChrome(browser); browser->window()->Show(); } void OpenHistoryWindow(Profile* profile) { - Browser* browser = Browser::Create(profile); + Browser* browser = new Browser(Browser::CreateParams(profile)); ShowHistory(browser); browser->window()->Show(); } void OpenDownloadsWindow(Profile* profile) { - Browser* browser = Browser::Create(profile); + Browser* browser = new Browser(Browser::CreateParams(profile)); ShowDownloads(browser); browser->window()->Show(); } void OpenHelpWindow(Profile* profile, HelpSource source) { - Browser* browser = Browser::Create(profile); + Browser* browser = new Browser(Browser::CreateParams(profile)); ShowHelp(browser, source); browser->window()->Show(); } void OpenOptionsWindow(Profile* profile) { - Browser* browser = Browser::Create(profile); + Browser* browser = new Browser(Browser::CreateParams(profile)); ShowSettings(browser); browser->window()->Show(); } void OpenSyncSetupWindow(Profile* profile, SyncPromoUI::Source source) { - Browser* browser = Browser::Create(profile); + Browser* browser = new Browser(Browser::CreateParams(profile)); ShowSyncSetup(browser, source); browser->window()->Show(); } void OpenClearBrowsingDataDialogWindow(Profile* profile) { - Browser* browser = Browser::Create(profile); + Browser* browser = new Browser(Browser::CreateParams(profile)); ShowClearBrowsingDataDialog(browser); browser->window()->Show(); } void OpenImportSettingsDialogWindow(Profile* profile) { - Browser* browser = Browser::Create(profile); + Browser* browser = new Browser(Browser::CreateParams(profile)); ShowImportDialog(browser); browser->window()->Show(); } void OpenInstantConfirmDialogWindow(Profile* profile) { - Browser* browser = Browser::Create(profile); + Browser* browser = new Browser(Browser::CreateParams(profile)); ShowInstantConfirmDialog(browser); browser->window()->Show(); } void OpenBookmarkManagerWindow(Profile* profile) { - Browser* browser = Browser::Create(profile); + Browser* browser = new Browser(Browser::CreateParams(profile)); ShowBookmarkManager(browser); browser->window()->Show(); } void OpenExtensionsWindow(Profile* profile) { - Browser* browser = Browser::Create(profile); + Browser* browser = new Browser(Browser::CreateParams(profile)); ShowExtensions(browser); browser->window()->Show(); } diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc index a152a6e..dc1134c 100644 --- a/chrome/browser/ui/browser_navigator.cc +++ b/chrome/browser/ui/browser_navigator.cc @@ -58,7 +58,7 @@ bool WindowCanOpenTabs(Browser* browser) { // such Browser is located. Browser* GetOrCreateBrowser(Profile* profile) { Browser* browser = browser::FindTabbedBrowser(profile, false); - return browser ? browser : Browser::Create(profile); + return browser ? browser : new Browser(Browser::CreateParams(profile)); } // Change some of the navigation parameters based on the particular URL. @@ -137,19 +137,15 @@ Browser* GetBrowserForDisposition(chrome::NavigateParams* params) { if (app_name.empty()) { Browser::CreateParams browser_params(Browser::TYPE_POPUP, profile); browser_params.initial_bounds = params->window_bounds; - return Browser::CreateWithParams(browser_params); + return new Browser(browser_params); } - return Browser::CreateWithParams( - Browser::CreateParams::CreateForApp( - Browser::TYPE_POPUP, app_name, params->window_bounds, - profile)); + return new Browser(Browser::CreateParams::CreateForApp( + Browser::TYPE_POPUP, app_name, params->window_bounds, profile)); } case NEW_WINDOW: { // Make a new normal browser window. - Browser* browser = new Browser(Browser::TYPE_TABBED, profile); - browser->InitBrowserWindow(); - return browser; + return new Browser(Browser::CreateParams(profile)); } case OFF_THE_RECORD: // Make or find an incognito window. diff --git a/chrome/browser/ui/browser_navigator_browsertest.cc b/chrome/browser/ui/browser_navigator_browsertest.cc index 6e4cc23..f23b4cd 100644 --- a/chrome/browser/ui/browser_navigator_browsertest.cc +++ b/chrome/browser/ui/browser_navigator_browsertest.cc @@ -68,15 +68,14 @@ chrome::NavigateParams BrowserNavigatorTest::MakeNavigateParams( Browser* BrowserNavigatorTest::CreateEmptyBrowserForType(Browser::Type type, Profile* profile) { - Browser* browser = Browser::CreateWithParams( - Browser::CreateParams(type, profile)); + Browser* browser = new Browser(Browser::CreateParams(type, profile)); chrome::AddBlankTab(browser, true); return browser; } Browser* BrowserNavigatorTest::CreateEmptyBrowserForApp(Browser::Type type, Profile* profile) { - Browser* browser = Browser::CreateWithParams( + Browser* browser = new Browser( Browser::CreateParams::CreateForApp( Browser::TYPE_POPUP, "Test", gfx::Rect(), profile)); chrome::AddBlankTab(browser, true); @@ -1243,7 +1242,7 @@ IN_PROC_BROWSER_TEST_F(PanelBrowserNavigatorTest, NavigateFromCrashedPanel) { GURL url2("http://maps.google.com/#b"); // Create a panel. - Browser* panel_browser = Browser::CreateWithParams( + Browser* panel_browser = new Browser( Browser::CreateParams::CreateForApp( Browser::TYPE_PANEL, "Test", gfx::Rect(100, 100), browser()->profile())); diff --git a/chrome/browser/ui/browser_tab_restore_service_delegate.cc b/chrome/browser/ui/browser_tab_restore_service_delegate.cc index c4b0234..2e9ad7f 100644 --- a/chrome/browser/ui/browser_tab_restore_service_delegate.cc +++ b/chrome/browser/ui/browser_tab_restore_service_delegate.cc @@ -87,9 +87,9 @@ TabRestoreServiceDelegate* TabRestoreServiceDelegate::Create( const std::string& app_name) { Browser* browser; if (app_name.empty()) { - browser = Browser::Create(profile); + browser = new Browser(Browser::CreateParams(profile)); } else { - browser = Browser::CreateWithParams( + browser = new Browser( Browser::CreateParams::CreateForApp( Browser::TYPE_POPUP, app_name, gfx::Rect(), profile)); } diff --git a/chrome/browser/ui/browser_tab_strip_model_delegate.cc b/chrome/browser/ui/browser_tab_strip_model_delegate.cc index ac83e9e..e60fca9 100644 --- a/chrome/browser/ui/browser_tab_strip_model_delegate.cc +++ b/chrome/browser/ui/browser_tab_strip_model_delegate.cc @@ -61,11 +61,11 @@ Browser* BrowserTabStripModelDelegate::CreateNewStripWithContents( dock_info.AdjustOtherWindowBounds(); // Create an empty new browser window the same size as the old one. - Browser* browser = new Browser(Browser::TYPE_TABBED, browser_->profile()); - browser->set_override_bounds(new_window_bounds); - browser->set_initial_show_state( - maximize ? ui::SHOW_STATE_MAXIMIZED : ui::SHOW_STATE_NORMAL); - browser->InitBrowserWindow(); + Browser::CreateParams params(browser_->profile()); + params.initial_bounds = new_window_bounds; + params.initial_show_state = + maximize ? ui::SHOW_STATE_MAXIMIZED : ui::SHOW_STATE_NORMAL; + Browser* browser = new Browser(params); browser->tab_strip_model()->AppendTabContents(detached_contents, true); // Make sure the loading state is updated correctly, otherwise the throbber // won't start if the page is loading. diff --git a/chrome/browser/ui/cocoa/applescript/browsercrapplication+applescript_test.mm b/chrome/browser/ui/cocoa/applescript/browsercrapplication+applescript_test.mm index fbeffb2..35dd6d3 100644 --- a/chrome/browser/ui/cocoa/applescript/browsercrapplication+applescript_test.mm +++ b/chrome/browser/ui/cocoa/applescript/browsercrapplication+applescript_test.mm @@ -21,9 +21,9 @@ typedef InProcessBrowserTest BrowserCrApplicationAppleScriptTest; IN_PROC_BROWSER_TEST_F(BrowserCrApplicationAppleScriptTest, Creation) { // Create additional |Browser*| objects of different type. Profile* profile = browser()->profile(); - Browser* b1 = Browser::CreateWithParams( - Browser::CreateParams(Browser::TYPE_POPUP, profile)); - Browser* b2 = Browser::CreateWithParams( + Browser* b1 = + new Browser(Browser::CreateParams(Browser::TYPE_POPUP, profile)); + Browser* b2 = new Browser( Browser::CreateParams::CreateForApp( Browser::TYPE_PANEL, "Test", gfx::Rect(), profile)); diff --git a/chrome/browser/ui/cocoa/applescript/window_applescript.mm b/chrome/browser/ui/cocoa/applescript/window_applescript.mm index 1c0f554..8c5f60f 100644 --- a/chrome/browser/ui/cocoa/applescript/window_applescript.mm +++ b/chrome/browser/ui/cocoa/applescript/window_applescript.mm @@ -70,7 +70,7 @@ } if ((self = [super init])) { - browser_ = Browser::Create(aProfile); + browser_ = new Browser(Browser::CreateParams(aProfile)); chrome::NewTab(browser_); browser_->window()->Show(); scoped_nsobject<NSNumber> numID( diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller_unittest.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller_unittest.mm index 639b07a..f56ee05 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller_unittest.mm @@ -10,6 +10,7 @@ #include "chrome/browser/bookmarks/bookmark_model.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_editor_controller.h" #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" +#include "chrome/test/base/test_browser_window.h" #include "grit/generated_resources.h" #include "testing/gtest/include/gtest/gtest.h" #import "testing/gtest_mac.h" @@ -74,7 +75,7 @@ class BookmarkEditorBaseControllerTest : public CocoaProfileTest { configuration:BookmarkEditor::SHOW_TREE]; } - virtual void SetUp() { + virtual void SetUp() OVERRIDE { CocoaProfileTest::SetUp(); ASSERT_TRUE(profile()); @@ -84,10 +85,14 @@ class BookmarkEditorBaseControllerTest : public CocoaProfileTest { [controller_ runAsModalSheet]; } - virtual void TearDown() { + virtual void TearDown() OVERRIDE { controller_ = NULL; CocoaTest::TearDown(); } + + virtual Browser* CreateBrowser() OVERRIDE { + return chrome::CreateBrowserWithTestWindowForProfile(profile()); + } }; TEST_F(BookmarkEditorBaseControllerTest, VerifyBookmarkTestModel) { diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm index 09b6e27..9240903 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm @@ -95,7 +95,7 @@ const NSUInteger kMaximumMenuPixelsWide = 300; - (void)openURLForNode:(const BookmarkNode*)node { Browser* browser = browser::FindTabbedBrowser(bridge_->GetProfile(), true); if (!browser) - browser = Browser::Create(bridge_->GetProfile()); + browser = new Browser(Browser::CreateParams(bridge_->GetProfile())); WindowOpenDisposition disposition = event_utils::WindowOpenDispositionFromNSEvent([NSApp currentEvent]); OpenURLParams params( @@ -114,7 +114,7 @@ const NSUInteger kMaximumMenuPixelsWide = 300; Browser* browser = browser::FindTabbedBrowser(bridge_->GetProfile(), true); if (!browser) - browser = Browser::Create(bridge_->GetProfile()); + browser = new Browser(Browser::CreateParams(bridge_->GetProfile())); DCHECK(browser); if (!node || !browser) diff --git a/chrome/browser/ui/cocoa/browser/avatar_button_controller_unittest.mm b/chrome/browser/ui/cocoa/browser/avatar_button_controller_unittest.mm index 16442dc..7de2968 100644 --- a/chrome/browser/ui/cocoa/browser/avatar_button_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/browser/avatar_button_controller_unittest.mm @@ -16,7 +16,6 @@ class AvatarButtonControllerTest : public CocoaProfileTest { virtual void SetUp() { CocoaProfileTest::SetUp(); ASSERT_TRUE(browser()); - browser()->InitBrowserWindow(); controller_.reset( [[AvatarButtonController alloc] initWithBrowser:browser()]); diff --git a/chrome/browser/ui/cocoa/browser_window_controller_unittest.mm b/chrome/browser/ui/cocoa/browser_window_controller_unittest.mm index 66dc242..a8d1962 100644 --- a/chrome/browser/ui/cocoa/browser_window_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/browser_window_controller_unittest.mm @@ -121,7 +121,7 @@ TEST_F(BrowserWindowControllerTest, TestNormal) { // And make sure a controller for a pop-up window is not normal. // popup_browser will be owned by its window. - Browser* popup_browser(Browser::CreateWithParams( + Browser* popup_browser(new Browser( Browser::CreateParams(Browser::TYPE_POPUP, profile()))); NSWindow *cocoaWindow = popup_browser->window()->GetNativeWindow(); BrowserWindowController* controller = @@ -138,7 +138,7 @@ TEST_F(BrowserWindowControllerTest, TestSetBounds) { // Create a normal browser with bounds smaller than the minimum. Browser::CreateParams params(Browser::TYPE_TABBED, profile()); params.initial_bounds = gfx::Rect(0, 0, 50, 50); - Browser* browser = Browser::CreateWithParams(params); + Browser* browser = new Browser(params); NSWindow *cocoaWindow = browser->window()->GetNativeWindow(); BrowserWindowController* controller = static_cast<BrowserWindowController*>([cocoaWindow windowController]); @@ -163,7 +163,7 @@ TEST_F(BrowserWindowControllerTest, TestSetBoundsPopup) { // Create a popup with bounds smaller than the minimum. Browser::CreateParams params(Browser::TYPE_POPUP, profile()); params.initial_bounds = gfx::Rect(0, 0, 50, 50); - Browser* browser = Browser::CreateWithParams(params); + Browser* browser = new Browser(params); NSWindow *cocoaWindow = browser->window()->GetNativeWindow(); BrowserWindowController* controller = static_cast<BrowserWindowController*>([cocoaWindow windowController]); @@ -206,8 +206,8 @@ TEST_F(BrowserWindowControllerTest, BookmarkBarControllerIndirection) { TEST_F(BrowserWindowControllerTest, TestIncognitoWidthSpace) { scoped_ptr<TestingProfile> incognito_profile(new TestingProfile()); incognito_profile->set_off_the_record(true); - scoped_ptr<Browser> browser(new Browser(Browser::TYPE_TABBED, - incognito_profile.get())); + scoped_ptr<Browser> browser( + new Browser(Browser::CreateParams(incognito_profile.get())); controller_.reset([[BrowserWindowController alloc] initWithBrowser:browser.get() takeOwnership:NO]); @@ -675,7 +675,6 @@ void WaitForFullScreenTransition() { } TEST_F(BrowserWindowFullScreenControllerTest, TestFullscreen) { - CreateBrowserWindow(); [controller_ showWindow:nil]; EXPECT_FALSE([controller_ isFullscreen]); @@ -694,7 +693,6 @@ TEST_F(BrowserWindowFullScreenControllerTest, TestFullscreen) { // please do not mark it as flaky without first verifying that there are no bot // problems. TEST_F(BrowserWindowFullScreenControllerTest, TestActivate) { - CreateBrowserWindow(); [controller_ showWindow:nil]; EXPECT_FALSE([controller_ isFullscreen]); diff --git a/chrome/browser/ui/cocoa/cocoa_profile_test.h b/chrome/browser/ui/cocoa/cocoa_profile_test.h index ad4964a..3cad698 100644 --- a/chrome/browser/ui/cocoa/cocoa_profile_test.h +++ b/chrome/browser/ui/cocoa/cocoa_profile_test.h @@ -47,15 +47,15 @@ class CocoaProfileTest : public CocoaTest { TestingProfile* profile() { return profile_; } Browser* browser() { return browser_.get(); } - // Creates the browser window. To close this window call |CloseBrowserWindow|. - // Do NOT call close directly on the window. - BrowserWindow* CreateBrowserWindow(); - - // Closes the window for this browser. This must only be called after - // CreateBrowserWindow(). This will automatically be called as part of - // TearDown() if it's not been done already. + // Closes the window for this browser. This will automatically be called as + // part of TearDown() if it's not been done already. void CloseBrowserWindow(); + protected: + // Overridden by test subclasses to create their own browser, e.g. with a + // test window. + virtual Browser* CreateBrowser(); + private: MessageLoopForUI message_loop_; content::TestBrowserThread ui_thread_; diff --git a/chrome/browser/ui/cocoa/cocoa_profile_test.mm b/chrome/browser/ui/cocoa/cocoa_profile_test.mm index fdec1b0..ff1a029 100644 --- a/chrome/browser/ui/cocoa/cocoa_profile_test.mm +++ b/chrome/browser/ui/cocoa/cocoa_profile_test.mm @@ -71,7 +71,7 @@ void CocoaProfileTest::SetUp() { AutocompleteClassifierFactory::GetInstance()->SetTestingFactoryAndUse( profile_, &AutocompleteClassifierFactory::BuildInstanceFor); - browser_.reset(new Browser(Browser::TYPE_TABBED, profile_)); + browser_.reset(CreateBrowser()); ASSERT_TRUE(browser_.get()); } @@ -82,11 +82,6 @@ void CocoaProfileTest::TearDown() { CocoaTest::TearDown(); } -BrowserWindow* CocoaProfileTest::CreateBrowserWindow() { - browser_->InitBrowserWindow(); - return browser_->window(); -} - void CocoaProfileTest::CloseBrowserWindow() { // Check to make sure a window was actually created. DCHECK(browser_->window()); @@ -95,3 +90,7 @@ void CocoaProfileTest::CloseBrowserWindow() { // |browser_| will be deleted by its BrowserWindowController. ignore_result(browser_.release()); } + +Browser* CocoaProfileTest::CreateBrowser() { + return new Browser(Browser::CreateParams(profile())); +} diff --git a/chrome/browser/ui/cocoa/extensions/extension_installed_bubble_controller_unittest.mm b/chrome/browser/ui/cocoa/extensions/extension_installed_bubble_controller_unittest.mm index 6929c37..bf08324 100644 --- a/chrome/browser/ui/cocoa/extensions/extension_installed_bubble_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/extensions/extension_installed_bubble_controller_unittest.mm @@ -49,7 +49,7 @@ class ExtensionInstalledBubbleControllerTest : public CocoaProfileTest { virtual void SetUp() { CocoaProfileTest::SetUp(); ASSERT_TRUE(browser()); - window_ = CreateBrowserWindow()->GetNativeWindow(); + window_ = browser()->window()->GetNativeWindow(); icon_ = LoadTestIcon(); } diff --git a/chrome/browser/ui/cocoa/extensions/extension_popup_controller_unittest.mm b/chrome/browser/ui/cocoa/extensions/extension_popup_controller_unittest.mm index b2ea993..22e6fde 100644 --- a/chrome/browser/ui/cocoa/extensions/extension_popup_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/extensions/extension_popup_controller_unittest.mm @@ -75,7 +75,8 @@ class ExtensionPopupControllerTest : public CocoaTest { CocoaTest::SetUp(); profile_.reset(new ExtensionTestingProfile()); profile_->InitExtensionProfile(); - browser_.reset(new Browser(Browser::TYPE_TABBED, profile_.get())); + browser_.reset( + new Browser(Browser::CreateParams(profile_.get()))); [ExtensionPopupController showURL:GURL("http://google.com") inBrowser:browser_.get() anchoredAt:NSZeroPoint diff --git a/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller_unittest.mm b/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller_unittest.mm index c8fcafd..7faa692 100644 --- a/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller_unittest.mm @@ -77,7 +77,6 @@ class FullscreenExitBubbleControllerTest : public CocoaProfileTest { }; TEST_F(FullscreenExitBubbleControllerTest, DenyExitsFullscreen) { - CreateBrowserWindow(); NSWindow* window = browser()->window()->GetNativeWindow(); BrowserWindowController* bwc = [BrowserWindowController browserWindowControllerForWindow:window]; diff --git a/chrome/browser/ui/cocoa/notifications/balloon_controller_unittest.mm b/chrome/browser/ui/cocoa/notifications/balloon_controller_unittest.mm index 1b9bd25..bc34f54 100644 --- a/chrome/browser/ui/cocoa/notifications/balloon_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/notifications/balloon_controller_unittest.mm @@ -12,6 +12,7 @@ #include "chrome/browser/ui/cocoa/cocoa_test_helper.h" #include "chrome/browser/ui/cocoa/notifications/balloon_controller.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h" +#include "chrome/test/base/test_browser_window.h" #include "chrome/test/base/testing_profile.h" #include "content/public/test/test_browser_thread.h" @@ -62,7 +63,7 @@ class BalloonControllerTest : public ChromeRenderViewHostTestHarness { ChromeRenderViewHostTestHarness::SetUp(); CocoaTest::BootstrapCocoa(); profile()->CreateRequestContext(); - browser_.reset(new Browser(Browser::TYPE_TABBED, profile())); + browser_.reset(chrome::CreateBrowserWithTestWindowForProfile(profile())); collection_.reset(new MockBalloonCollection()); } diff --git a/chrome/browser/ui/cocoa/one_click_signin_bubble_controller_unittest.mm b/chrome/browser/ui/cocoa/one_click_signin_bubble_controller_unittest.mm index 781235d..ec8daf0 100644 --- a/chrome/browser/ui/cocoa/one_click_signin_bubble_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/one_click_signin_bubble_controller_unittest.mm @@ -32,7 +32,7 @@ class OneClickSigninBubbleControllerTest : public CocoaProfileTest { virtual void SetUp() { CocoaProfileTest::SetUp(); BrowserWindowCocoa* browser_window = - static_cast<BrowserWindowCocoa*>(CreateBrowserWindow()); + static_cast<BrowserWindowCocoa*>(browser()->window()); controller_.reset( [[OneClickSigninBubbleController alloc] initWithBrowserWindowController:browser_window->cocoa_controller() diff --git a/chrome/browser/ui/cocoa/profile_menu_controller_unittest.mm b/chrome/browser/ui/cocoa/profile_menu_controller_unittest.mm index b6020d9..7b0c24f 100644 --- a/chrome/browser/ui/cocoa/profile_menu_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/profile_menu_controller_unittest.mm @@ -9,6 +9,7 @@ #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" #include "chrome/browser/ui/cocoa/run_loop_testing.h" +#include "chrome/test/base/test_browser_window.h" #include "grit/generated_resources.h" #include "testing/gtest_mac.h" #include "ui/base/l10n/l10n_util_mac.h" @@ -139,7 +140,8 @@ TEST_F(ProfileMenuControllerTest, SetActiveAndRemove) { ASSERT_EQ(7, [menu numberOfItems]); // Create a browser and "show" it. - scoped_ptr<Browser> p2_browser(new Browser(Browser::TYPE_TABBED, profile2)); + scoped_ptr<Browser> p2_browser( + chrome::CreateBrowserWithTestWindowForProfile(profile2)); BrowserList::SetLastActive(p2_browser.get()); VerifyProfileNamedIsActive(@"Profile 2", __LINE__); @@ -148,7 +150,8 @@ TEST_F(ProfileMenuControllerTest, SetActiveAndRemove) { VerifyProfileNamedIsActive(@"Profile 2", __LINE__); // Open a new browser and make sure it takes effect. - scoped_ptr<Browser> p3_browser(new Browser(Browser::TYPE_TABBED, profile3)); + scoped_ptr<Browser> p3_browser( + chrome::CreateBrowserWithTestWindowForProfile(profile3)); BrowserList::SetLastActive(p3_browser.get()); VerifyProfileNamedIsActive(@"Profile 3", __LINE__); diff --git a/chrome/browser/ui/cocoa/tabpose_window_unittest.mm b/chrome/browser/ui/cocoa/tabpose_window_unittest.mm index 2b8a856..cd45aa0 100644 --- a/chrome/browser/ui/cocoa/tabpose_window_unittest.mm +++ b/chrome/browser/ui/cocoa/tabpose_window_unittest.mm @@ -36,8 +36,7 @@ class TabposeWindowTest : public CocoaProfileTest { // Check that this doesn't leak. TEST_F(TabposeWindowTest, TestShow) { - BrowserWindow* browser_window = CreateBrowserWindow(); - NSWindow* parent = browser_window->GetNativeWindow(); + NSWindow* parent = browser()->window()->GetNativeWindow(); [parent orderFront:nil]; EXPECT_TRUE([parent isVisible]); @@ -58,8 +57,7 @@ TEST_F(TabposeWindowTest, TestShow) { } TEST_F(TabposeWindowTest, TestModelObserver) { - BrowserWindow* browser_window = CreateBrowserWindow(); - NSWindow* parent = browser_window->GetNativeWindow(); + NSWindow* parent = browser()->window()->GetNativeWindow(); [parent orderFront:nil]; // Add a few tabs to the tab strip model. diff --git a/chrome/browser/ui/cocoa/tabs/tab_strip_controller_unittest.mm b/chrome/browser/ui/cocoa/tabs/tab_strip_controller_unittest.mm index f4eb124..fe9ca05 100644 --- a/chrome/browser/ui/cocoa/tabs/tab_strip_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/tabs/tab_strip_controller_unittest.mm @@ -64,8 +64,7 @@ class TabStripControllerTest : public CocoaProfileTest { CocoaProfileTest::SetUp(); ASSERT_TRUE(browser()); - BrowserWindow* browser_window = CreateBrowserWindow(); - NSWindow* window = browser_window->GetNativeWindow(); + NSWindow* window = browser()->window()->GetNativeWindow(); NSView* parent = [window contentView]; NSRect content_frame = [parent frame]; diff --git a/chrome/browser/ui/cocoa/toolbar/toolbar_controller_unittest.mm b/chrome/browser/ui/cocoa/toolbar/toolbar_controller_unittest.mm index 9627ef4..6b021d3 100644 --- a/chrome/browser/ui/cocoa/toolbar/toolbar_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/toolbar/toolbar_controller_unittest.mm @@ -49,7 +49,7 @@ class ToolbarControllerTest : public CocoaProfileTest { kWrenchIndex, kLocationIndex, kBrowserActionContainerViewIndex }; - virtual void SetUp() { + virtual void SetUp() OVERRIDE { CocoaProfileTest::SetUp(); ASSERT_TRUE(browser()); @@ -71,6 +71,11 @@ class ToolbarControllerTest : public CocoaProfileTest { [parent addSubview:[bar_ view]]; } + virtual void TearDown() OVERRIDE { + bar_.reset(); // browser() must outlive the ToolbarController. + CocoaProfileTest::TearDown(); + } + // Make sure the enabled state of the view is the same as the corresponding // command in the updater. The views are in the declaration order of outlets. void CompareState(CommandUpdater* updater, NSArray* views) { diff --git a/chrome/browser/ui/extensions/application_launch.cc b/chrome/browser/ui/extensions/application_launch.cc index e448d47..f9f2b91 100644 --- a/chrome/browser/ui/extensions/application_launch.cc +++ b/chrome/browser/ui/extensions/application_launch.cc @@ -125,7 +125,7 @@ WebContents* OpenApplicationWindow( } #endif - Browser* browser = Browser::CreateWithParams(params); + Browser* browser = new Browser(params); if (app_browser) *app_browser = browser; @@ -158,7 +158,7 @@ WebContents* OpenApplicationTab(Profile* profile, WebContents* contents = NULL; if (!browser) { // No browser for this profile, need to open a new one. - browser = Browser::Create(profile); + browser = new Browser(Browser::CreateParams(profile)); browser->window()->Show(); // There's no current tab in this browser window, so add a new one. disposition = NEW_FOREGROUND_TAB; diff --git a/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc b/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc index 400afe8..c1db603 100644 --- a/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc +++ b/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc @@ -1127,7 +1127,8 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, MAYBE_NoIncognitoPrepopulate) { // Open a new incognito window and navigate to the same page. Profile* incognito_profile = browser()->profile()->GetOffTheRecordProfile(); - Browser* incognito_browser = Browser::Create(incognito_profile); + Browser* incognito_browser = + new Browser(Browser::CreateParams(incognito_profile)); content::WindowedNotificationObserver observer( content::NOTIFICATION_LOAD_STOP, content::NotificationService::AllSources()); @@ -1193,7 +1194,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, ActivateLinkNavigatesPage) { IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, MAYBE_FitWindow) { Browser::CreateParams params(Browser::TYPE_POPUP, browser()->profile()); params.initial_bounds = gfx::Rect(0, 0, 250, 500); - Browser* popup = Browser::CreateWithParams(params); + Browser* popup = new Browser(params); content::WindowedNotificationObserver observer( content::NOTIFICATION_LOAD_STOP, content::NotificationService::AllSources()); diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk_unittest.cc b/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk_unittest.cc index f7928e9..472c23b 100644 --- a/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk_unittest.cc +++ b/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk_unittest.cc @@ -10,6 +10,7 @@ #include "chrome/browser/bookmarks/bookmark_model.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/gtk/tabstrip_origin_provider.h" +#include "chrome/test/base/test_browser_window.h" #include "chrome/test/base/testing_profile.h" #include "content/public/test/test_browser_thread.h" #include "testing/gtest/include/gtest/gtest.h" @@ -38,7 +39,8 @@ class BookmarkBarGtkUnittest : public testing::Test { profile_->BlockUntilBookmarkModelLoaded(); model_ = profile_->GetBookmarkModel(); - browser_.reset(new Browser(Browser::TYPE_TABBED, profile_.get())); + browser_.reset( + chrome::CreateBrowserWithTestWindowForProfile(profile_.get())); origin_provider_.reset(new EmptyTabstripOriginProvider); bookmark_bar_.reset(new BookmarkBarGtk(NULL, browser_.get(), origin_provider_.get())); diff --git a/chrome/browser/ui/panels/old_base_panel_browser_test.cc b/chrome/browser/ui/panels/old_base_panel_browser_test.cc index ab0df4d..270fb74 100644 --- a/chrome/browser/ui/panels/old_base_panel_browser_test.cc +++ b/chrome/browser/ui/panels/old_base_panel_browser_test.cc @@ -299,7 +299,7 @@ Panel* OldBasePanelBrowserTest::CreatePanelWithParams( base::mac::ScopedNSAutoreleasePool autorelease_pool; #endif - Browser* panel_browser = Browser::CreateWithParams( + Browser* panel_browser = new Browser( Browser::CreateParams::CreateForApp( Browser::TYPE_PANEL, params.name, params.bounds, browser()->profile())); diff --git a/chrome/browser/ui/panels/panel_browser_window.cc b/chrome/browser/ui/panels/panel_browser_window.cc index 7f1f84b..353d43b 100644 --- a/chrome/browser/ui/panels/panel_browser_window.cc +++ b/chrome/browser/ui/panels/panel_browser_window.cc @@ -337,7 +337,7 @@ DownloadShelf* PanelBrowserWindow::GetDownloadShelf() { browser_, &window_bounds); Browser::CreateParams params(Browser::TYPE_TABBED, profile); params.initial_bounds = window_bounds; - tabbed_browser = Browser::CreateWithParams(params); + tabbed_browser = new Browser(params); chrome::NewTab(tabbed_browser); } diff --git a/chrome/browser/ui/panels/panel_browser_window_cocoa_unittest.mm b/chrome/browser/ui/panels/panel_browser_window_cocoa_unittest.mm index 2eaee38..587d80f 100644 --- a/chrome/browser/ui/panels/panel_browser_window_cocoa_unittest.mm +++ b/chrome/browser/ui/panels/panel_browser_window_cocoa_unittest.mm @@ -56,9 +56,8 @@ class PanelBrowserWindowCocoaTest : public CocoaProfileTest { PanelManager* manager = PanelManager::GetInstance(); int panels_count = manager->num_panels(); - Browser* panel_browser = Browser::CreateWithParams( - Browser::CreateParams::CreateForApp( - Browser::TYPE_PANEL, panel_name, gfx::Rect(), profile())); + Browser* panel_browser = new Browser(Browser::CreateParams::CreateForApp( + Browser::TYPE_PANEL, panel_name, gfx::Rect(), profile())); EXPECT_EQ(panels_count + 1, manager->num_panels()); PanelBrowserWindow* panel_browser_window = diff --git a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc index 0e84ca2..a7ed550 100644 --- a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc @@ -129,7 +129,7 @@ IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, OpenURLsPopup) { OpenURLsPopupObserver observer; BrowserList::AddObserver(&observer); - Browser* popup = Browser::CreateWithParams( + Browser* popup = new Browser( Browser::CreateParams(Browser::TYPE_POPUP, browser()->profile())); ASSERT_TRUE(popup->is_type_popup()); ASSERT_EQ(popup, observer.added_browser_); diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc index 916346e..b9e04d4 100644 --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc @@ -712,7 +712,7 @@ Browser* StartupBrowserCreatorImpl::OpenTabsInBrowser(Browser* browser, profile_ = browser->profile(); if (!browser || !browser->is_type_tabbed()) { - browser = Browser::Create(profile_); + browser = new Browser(Browser::CreateParams(profile_)); } else { #if defined(TOOLKIT_GTK) // Setting the time of the last action on the window here allows us to steal diff --git a/chrome/browser/ui/tab_contents/tab_contents_iterator_unittest.cc b/chrome/browser/ui/tab_contents/tab_contents_iterator_unittest.cc index 6d67a43..ec6f25e 100644 --- a/chrome/browser/ui/tab_contents/tab_contents_iterator_unittest.cc +++ b/chrome/browser/ui/tab_contents/tab_contents_iterator_unittest.cc @@ -16,6 +16,7 @@ #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "chrome/test/base/browser_with_test_window_test.h" +#include "chrome/test/base/test_browser_window.h" #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_pref_service.h" #include "chrome/test/base/testing_profile_manager.h" @@ -50,17 +51,12 @@ TEST_F(BrowserListTest, TabContentsIteratorVerifyCount) { EXPECT_EQ(0U, CountAllTabs()); // Create more browsers/windows. - scoped_ptr<Browser> browser2(new Browser(Browser::TYPE_TABBED, profile())); - scoped_ptr<Browser> browser3(new Browser(Browser::TYPE_TABBED, profile())); - scoped_ptr<Browser> browser4(new Browser(Browser::TYPE_TABBED, profile())); - - scoped_ptr<TestBrowserWindow> window2(new TestBrowserWindow(browser2.get())); - scoped_ptr<TestBrowserWindow> window3(new TestBrowserWindow(browser3.get())); - scoped_ptr<TestBrowserWindow> window4(new TestBrowserWindow(browser4.get())); - - browser2->SetWindowForTesting(window2.get()); - browser3->SetWindowForTesting(window3.get()); - browser4->SetWindowForTesting(window4.get()); + scoped_ptr<Browser> browser2( + chrome::CreateBrowserWithTestWindowForProfile(profile())); + scoped_ptr<Browser> browser3( + chrome::CreateBrowserWithTestWindowForProfile(profile())); + scoped_ptr<Browser> browser4( + chrome::CreateBrowserWithTestWindowForProfile(profile())); // Sanity checks. EXPECT_EQ(4U, BrowserList::size()); @@ -97,14 +93,10 @@ TEST_F(BrowserListTest, TabContentsIteratorVerifyBrowser) { EXPECT_EQ(1U, BrowserList::size()); // Create more browsers/windows. - scoped_ptr<Browser> browser2(new Browser(Browser::TYPE_TABBED, profile())); - scoped_ptr<Browser> browser3(new Browser(Browser::TYPE_TABBED, profile())); - - scoped_ptr<TestBrowserWindow> window2(new TestBrowserWindow(browser2.get())); - scoped_ptr<TestBrowserWindow> window3(new TestBrowserWindow(browser3.get())); - - browser2->SetWindowForTesting(window2.get()); - browser3->SetWindowForTesting(window3.get()); + scoped_ptr<Browser> browser2( + chrome::CreateBrowserWithTestWindowForProfile(profile())); + scoped_ptr<Browser> browser3( + chrome::CreateBrowserWithTestWindowForProfile(profile())); // Sanity checks. EXPECT_EQ(3U, BrowserList::size()); @@ -168,14 +160,10 @@ TEST_F(BrowserListTest, TabContentsIteratorBackgroundPrinting) { EXPECT_EQ(1U, BrowserList::size()); // Create more browsers/windows. - scoped_ptr<Browser> browser2(new Browser(Browser::TYPE_TABBED, profile())); - scoped_ptr<Browser> browser3(new Browser(Browser::TYPE_TABBED, profile())); - - scoped_ptr<TestBrowserWindow> window2(new TestBrowserWindow(browser2.get())); - scoped_ptr<TestBrowserWindow> window3(new TestBrowserWindow(browser3.get())); - - browser2->SetWindowForTesting(window2.get()); - browser3->SetWindowForTesting(window3.get()); + scoped_ptr<Browser> browser2( + chrome::CreateBrowserWithTestWindowForProfile(profile())); + scoped_ptr<Browser> browser3( + chrome::CreateBrowserWithTestWindowForProfile(profile())); EXPECT_EQ(0U, CountAllTabs()); diff --git a/chrome/browser/ui/tabs/pinned_tab_service_unittest.cc b/chrome/browser/ui/tabs/pinned_tab_service_unittest.cc index 2e57b7a..dd5935d 100644 --- a/chrome/browser/ui/tabs/pinned_tab_service_unittest.cc +++ b/chrome/browser/ui/tabs/pinned_tab_service_unittest.cc @@ -52,10 +52,9 @@ TEST_F(PinnedTabServiceTest, Popup) { browser()->tab_strip_model()->SetTabPinned(0, true); // Create a popup. - scoped_ptr<Browser> popup(new Browser(Browser::TYPE_POPUP, profile())); - scoped_ptr<TestBrowserWindow> popup_window( - new TestBrowserWindow(popup.get())); - popup->SetWindowForTesting(popup_window.get()); + Browser::CreateParams params(Browser::TYPE_POPUP, profile()); + scoped_ptr<Browser> popup( + chrome::CreateBrowserWithTestWindowForParams(¶ms)); // Close the browser. This should trigger saving the tabs. No need to destroy // the browser (this happens automatically in the test destructor). @@ -68,7 +67,6 @@ TEST_F(PinnedTabServiceTest, Popup) { // Close the popup. This shouldn't reset the saved state. chrome::CloseAllTabs(popup.get()); popup.reset(NULL); - popup_window.reset(NULL); // Check the state to make sure it hasn't changed. result = PinnedTabTestUtils::TabsToString( diff --git a/chrome/browser/ui/toolbar/back_forward_menu_model_unittest.cc b/chrome/browser/ui/toolbar/back_forward_menu_model_unittest.cc index d78d31b..499b2cc 100644 --- a/chrome/browser/ui/toolbar/back_forward_menu_model_unittest.cc +++ b/chrome/browser/ui/toolbar/back_forward_menu_model_unittest.cc @@ -15,6 +15,7 @@ #include "chrome/browser/ui/browser_tabstrip.h" #include "chrome/common/url_constants.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h" +#include "chrome/test/base/test_browser_window.h" #include "chrome/test/base/testing_profile.h" #include "content/public/browser/navigation_controller.h" #include "content/public/browser/navigation_entry.h" @@ -503,11 +504,12 @@ TEST_F(BackFwdMenuModelTest, EscapeLabel) { TEST_F(BackFwdMenuModelTest, FaviconLoadTest) { profile()->CreateHistoryService(true, false); profile()->CreateFaviconService(); - Browser browser(Browser::TYPE_TABBED, profile()); + scoped_ptr<Browser> browser( + chrome::CreateBrowserWithTestWindowForProfile(profile())); FaviconDelegate favicon_delegate; BackForwardMenuModel back_model( - &browser, BackForwardMenuModel::BACKWARD_MENU); + browser.get(), BackForwardMenuModel::BACKWARD_MENU); back_model.set_test_web_contents(controller().GetWebContents()); back_model.SetMenuModelDelegate(&favicon_delegate); @@ -563,7 +565,7 @@ TEST_F(BackFwdMenuModelTest, FaviconLoadTest) { new_icon_bitmap.getSize())); // Make sure the browser deconstructor doesn't have problems. - chrome::CloseAllTabs(&browser); + chrome::CloseAllTabs(browser.get()); // This is required to prevent the message loop from hanging. profile()->DestroyHistoryService(); } diff --git a/chrome/browser/ui/views/ash/app_list/extension_app_item.cc b/chrome/browser/ui/views/ash/app_list/extension_app_item.cc index c5c2955..12f2ab0 100644 --- a/chrome/browser/ui/views/ash/app_list/extension_app_item.cc +++ b/chrome/browser/ui/views/ash/app_list/extension_app_item.cc @@ -167,9 +167,10 @@ void ExtensionAppItem::ShowExtensionOptions() { if (!extension) return; + // TODO(beng): use Navigate()! Browser* browser = browser::FindLastActiveWithProfile(profile_); if (!browser) { - browser = Browser::Create(profile_); + browser = new Browser(Browser::CreateParams(profile_)); browser->window()->Show(); } diff --git a/chrome/browser/ui/views/ash/launcher/launcher_favicon_loader_browsertest.cc b/chrome/browser/ui/views/ash/launcher/launcher_favicon_loader_browsertest.cc index 0d36e3a..a03d585 100644 --- a/chrome/browser/ui/views/ash/launcher/launcher_favicon_loader_browsertest.cc +++ b/chrome/browser/ui/views/ash/launcher/launcher_favicon_loader_browsertest.cc @@ -78,7 +78,7 @@ class LauncherFaviconLoaderBrowsertest : public InProcessBrowserTest { } void CreatePanelBrowser(const char* url, Browser** result) { - Browser* panel_browser = Browser::CreateWithParams( + Browser* panel_browser = new Browser( Browser::CreateParams::CreateForApp( Browser::TYPE_PANEL, "Test Panel", gfx::Rect(), browser()->profile())); diff --git a/chrome/browser/ui/views/ash/window_positioner_unittest.cc b/chrome/browser/ui/views/ash/window_positioner_unittest.cc index 737c3db..33ed6b7 100644 --- a/chrome/browser/ui/views/ash/window_positioner_unittest.cc +++ b/chrome/browser/ui/views/ash/window_positioner_unittest.cc @@ -33,7 +33,7 @@ namespace { // it. class TestBrowserWindowAura : public TestBrowserWindow { public: - TestBrowserWindowAura(Browser* browser, aura::Window *native_window); + explicit TestBrowserWindowAura(aura::Window *native_window); virtual ~TestBrowserWindowAura(); virtual gfx::NativeWindow GetNativeWindow() OVERRIDE { @@ -46,10 +46,8 @@ class TestBrowserWindowAura : public TestBrowserWindow { DISALLOW_COPY_AND_ASSIGN(TestBrowserWindowAura); }; -TestBrowserWindowAura::TestBrowserWindowAura(Browser* browser, - aura::Window *native_window) : - TestBrowserWindow(browser), - native_window_(native_window) { +TestBrowserWindowAura::TestBrowserWindowAura(aura::Window *native_window) + : native_window_(native_window) { } TestBrowserWindowAura::~TestBrowserWindowAura() {} @@ -132,28 +130,22 @@ void WindowPositionerTest::SetUp() { panel_->SetBounds(gfx::Rect(32, 48, 256, 512)); // Create a browser for the window. - window_owning_browser_.reset(new Browser(Browser::TYPE_TABBED, - profile_.get())); - browser_window_.reset(new TestBrowserWindowAura( - window_owning_browser_.get(), - window_.get())); - window_owning_browser_->SetWindowForTesting(browser_window_.get()); + browser_window_.reset(new TestBrowserWindowAura(window_.get())); + Browser::CreateParams window_params(profile_.get()); + window_params.window = browser_window_.get(); + window_owning_browser_.reset(new Browser(window_params)); // Creating a browser for the popup. - popup_owning_browser_.reset(new Browser(Browser::TYPE_POPUP, - profile_.get())); - browser_popup_.reset(new TestBrowserWindowAura( - popup_owning_browser_.get(), - popup_.get())); - popup_owning_browser_->SetWindowForTesting(browser_popup_.get()); + browser_popup_.reset(new TestBrowserWindowAura(popup_.get())); + Browser::CreateParams popup_params(Browser::TYPE_POPUP, profile_.get()); + popup_params.window = browser_popup_.get(); + popup_owning_browser_.reset(new Browser(popup_params)); // Creating a browser for the panel. - panel_owning_browser_.reset(new Browser(Browser::TYPE_PANEL, - profile_.get())); - browser_panel_.reset(new TestBrowserWindowAura( - panel_owning_browser_.get(), - panel_.get())); - panel_owning_browser_->SetWindowForTesting(browser_panel_.get()); + browser_panel_.reset(new TestBrowserWindowAura(panel_.get())); + Browser::CreateParams panel_params(Browser::TYPE_PANEL, profile_.get()); + panel_params.window = browser_panel_.get(); + panel_owning_browser_.reset(new Browser(panel_params)); // We hide all windows upon start - each user is required to set it up // as he needs it. window()->Hide(); diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc index 86aa082..bea0b3a 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc @@ -18,6 +18,7 @@ #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/pref_names.h" +#include "chrome/test/base/test_browser_window.h" #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile.h" #include "chrome/test/base/ui_test_utils.h" @@ -175,7 +176,8 @@ class BookmarkBarViewEventTestBase : public ViewEventTestBase { profile_->BlockUntilBookmarkModelLoaded(); profile_->GetPrefs()->SetBoolean(prefs::kShowBookmarkBar, true); - browser_.reset(new Browser(Browser::TYPE_TABBED, profile_.get())); + browser_.reset( + chrome::CreateBrowserWithTestWindowForProfile(profile_.get())); model_ = profile_->GetBookmarkModel(); model_->ClearStore(); diff --git a/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views_win.cc b/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views_win.cc index e4aeafd..9fb3139 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views_win.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views_win.cc @@ -44,7 +44,7 @@ class NewBrowserPageNavigator : public content::PageNavigator { if (!browser_) { Profile* profile = (params.disposition == OFF_THE_RECORD) ? profile_->GetOffTheRecordProfile() : profile_; - browser_ = Browser::Create(profile); + browser_ = new Browser(Browser::CreateParams(profile)); } OpenURLParams forward_params = params; diff --git a/chrome/browser/ui/views/frame/app_non_client_frame_view_aura_browsertest.cc b/chrome/browser/ui/views/frame/app_non_client_frame_view_aura_browsertest.cc index 5753704..62ce8a7 100644 --- a/chrome/browser/ui/views/frame/app_non_client_frame_view_aura_browsertest.cc +++ b/chrome/browser/ui/views/frame/app_non_client_frame_view_aura_browsertest.cc @@ -30,7 +30,7 @@ class AppNonClientFrameViewAuraTest : public InProcessBrowserTest { browser()->profile()); params.initial_show_state = ui::SHOW_STATE_MAXIMIZED; params.app_type = Browser::APP_TYPE_HOST; - app_browser_ = Browser::CreateWithParams(params); + app_browser_ = new Browser(params); chrome::AddBlankTab(app_browser_, true); app_browser_->window()->Show(); } diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc index 8e14a66..c075732 100644 --- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc +++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc @@ -1880,7 +1880,8 @@ Browser* TabDragController::CreateBrowserForDrag( TabStrip* source, const gfx::Point& screen_point, std::vector<gfx::Rect>* drag_bounds) { - Browser* browser = Browser::Create(drag_data_[0].contents->profile()); + Browser* browser = new Browser( + Browser::CreateParams(drag_data_[0].contents->profile())); gfx::Point center(0, source->height() / 2); views::View::ConvertPointToWidget(source, ¢er); gfx::Rect new_bounds(source->GetWidget()->GetWindowBoundsInScreen()); diff --git a/chrome/browser/ui/webui/chrome_web_contents_handler.cc b/chrome/browser/ui/webui/chrome_web_contents_handler.cc index 6d1261d..536cffc 100644 --- a/chrome/browser/ui/webui/chrome_web_contents_handler.cc +++ b/chrome/browser/ui/webui/chrome_web_contents_handler.cc @@ -39,7 +39,7 @@ WebContents* ChromeWebContentsHandler::OpenURLFromTab( Browser* browser = browser::FindTabbedBrowser(profile, false); const bool browser_created = !browser; if (!browser) - browser = Browser::Create(profile); + browser = new Browser(Browser::CreateParams(profile)); chrome::NavigateParams nav_params(browser, params.url, params.transition); nav_params.referrer = params.referrer; if (source && source->IsCrashed() && @@ -81,7 +81,7 @@ void ChromeWebContentsHandler::AddNewContents( Browser* browser = browser::FindTabbedBrowser(profile, false); const bool browser_created = !browser; if (!browser) - browser = Browser::Create(profile); + browser = new Browser(Browser::CreateParams(profile)); TabContents* tab_contents = new TabContents(new_contents); chrome::NavigateParams params(browser, tab_contents); // TODO(pinkerton): no way to get a TabContents for this. diff --git a/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc b/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc index 74d5740..aa6d571 100644 --- a/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc +++ b/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc @@ -26,7 +26,6 @@ #include "ui/aura/root_window.h" #include "ui/aura/test/test_windows.h" - namespace { typedef ash::test::AshTestBase WindowSizerTest; @@ -60,7 +59,7 @@ WindowSizerTestWithBrowser::~WindowSizerTestWithBrowser() { // it. class TestBrowserWindowAura : public TestBrowserWindow { public: - TestBrowserWindowAura(Browser* browser, aura::Window* native_window); + explicit TestBrowserWindowAura(aura::Window* native_window); virtual ~TestBrowserWindowAura(); virtual gfx::NativeWindow GetNativeWindow() OVERRIDE { @@ -75,11 +74,8 @@ class TestBrowserWindowAura : public TestBrowserWindow { } // namespace -TestBrowserWindowAura::TestBrowserWindowAura( - Browser* browser, - aura::Window *native_window) - : TestBrowserWindow(browser), - native_window_(native_window) { +TestBrowserWindowAura::TestBrowserWindowAura(aura::Window *native_window) + : native_window_(native_window) { } TestBrowserWindowAura::~TestBrowserWindowAura() {} @@ -621,40 +617,33 @@ TEST_F(WindowSizerTestWithBrowser, PlaceNewWindowOverOldWindow) { // Create a browser which we can use to pass into the GetWindowBounds // function. - scoped_ptr<TestingProfile> profile; - profile.reset(new TestingProfile()); - scoped_ptr<Browser> browser; + scoped_ptr<TestingProfile> profile(new TestingProfile()); // Creating a popup handler here to make sure it does not interfere with the // existing windows. - browser.reset(new Browser(Browser::TYPE_TABBED, profile.get())); + scoped_ptr<Browser> browser( + chrome::CreateBrowserWithTestWindowForProfile(profile.get())); - scoped_ptr<Browser> window_owning_browser; // Creating a popup handler here to make sure it does not interfere with the // existing windows. - window_owning_browser.reset(new Browser(Browser::TYPE_TABBED, - profile.get())); - scoped_ptr<BrowserWindow> browser_window; - browser_window.reset(new TestBrowserWindowAura(window_owning_browser.get(), - window.get())); - window_owning_browser->SetWindowForTesting(browser_window.get()); - - scoped_ptr<Browser> popup_owning_browser; + scoped_ptr<BrowserWindow> browser_window( + new TestBrowserWindowAura(window.get())); + Browser::CreateParams window_params(profile.get()); + window_params.window = browser_window.get(); + scoped_ptr<Browser> window_owning_browser(new Browser(window_params)); + // Creating a popup to make sure it does not interfere with the positioning. - popup_owning_browser.reset(new Browser(Browser::TYPE_POPUP, - profile.get())); - scoped_ptr<BrowserWindow> browser_popup; - browser_popup.reset(new TestBrowserWindowAura(popup_owning_browser.get(), - popup.get())); - popup_owning_browser->SetWindowForTesting(browser_popup.get()); - - scoped_ptr<Browser> panel_owning_browser; + scoped_ptr<BrowserWindow> browser_popup( + new TestBrowserWindowAura(popup.get())); + Browser::CreateParams popup_params(Browser::TYPE_POPUP, profile.get()); + popup_params.window = browser_popup.get(); + scoped_ptr<Browser> popup_owning_browser(new Browser(popup_params)); + // Creating a panel to make sure it does not interfere with the positioning. - panel_owning_browser.reset(new Browser(Browser::TYPE_PANEL, - profile.get())); - scoped_ptr<BrowserWindow> browser_panel; - browser_panel.reset(new TestBrowserWindowAura(panel_owning_browser.get(), - panel.get())); - panel_owning_browser->SetWindowForTesting(browser_panel.get()); + scoped_ptr<BrowserWindow> browser_panel( + new TestBrowserWindowAura(panel.get())); + Browser::CreateParams panel_params(Browser::TYPE_POPUP, profile.get()); + panel_params.window = browser_panel.get(); + scoped_ptr<Browser> panel_owning_browser(new Browser(panel_params)); window->Show(); { // With a shown window it's size should get returned. |