summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-25 20:14:29 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-25 20:14:29 +0000
commita4fe67013ea54ca4f550d8c27b55b180fe0c4a70 (patch)
treea2eb4697a22a3ea49aeece7a395286a6e84fda0f /chrome/browser
parentf82480eb8c899f51177505494a485587c60e7ad4 (diff)
downloadchromium_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')
-rw-r--r--chrome/browser/app_controller_mac.mm4
-rw-r--r--chrome/browser/automation/testing_automation_provider.cc4
-rw-r--r--chrome/browser/browser_focus_uitest.cc4
-rw-r--r--chrome/browser/captive_portal/captive_portal_browsertest.cc2
-rw-r--r--chrome/browser/chromeos/enrollment_dialog_view.cc3
-rw-r--r--chrome/browser/chromeos/media/media_player.cc2
-rw-r--r--chrome/browser/debugger/devtools_window.cc3
-rw-r--r--chrome/browser/extensions/api/extension_action/browser_action_apitest.cc8
-rw-r--r--chrome/browser/extensions/api/identity/identity_api.cc4
-rw-r--r--chrome/browser/extensions/api/tabs/tabs.cc7
-rw-r--r--chrome/browser/extensions/api/tabs/tabs_test.cc6
-rw-r--r--chrome/browser/extensions/extension_install_ui_browsertest.cc3
-rw-r--r--chrome/browser/extensions/extension_tab_util.cc2
-rw-r--r--chrome/browser/managed_mode_unittest.cc13
-rw-r--r--chrome/browser/notifications/notification_options_menu_model.cc2
-rw-r--r--chrome/browser/printing/print_preview_tab_controller.cc2
-rw-r--r--chrome/browser/profiles/avatar_menu_model.cc2
-rw-r--r--chrome/browser/profiles/profile_manager_unittest.cc25
-rw-r--r--chrome/browser/sessions/session_restore.cc7
-rw-r--r--chrome/browser/sessions/session_restore_browsertest.cc6
-rw-r--r--chrome/browser/sync/sync_global_error_unittest.cc6
-rw-r--r--chrome/browser/sync/test/integration/sync_test.cc2
-rw-r--r--chrome/browser/ui/browser.cc173
-rw-r--r--chrome/browser/ui/browser.h34
-rw-r--r--chrome/browser/ui/browser_browsertest.cc36
-rw-r--r--chrome/browser/ui/browser_close_browsertest.cc2
-rw-r--r--chrome/browser/ui/browser_commands.cc14
-rw-r--r--chrome/browser/ui/browser_finder.cc2
-rw-r--r--chrome/browser/ui/browser_list_impl.cc5
-rw-r--r--chrome/browser/ui/browser_list_observer.h2
-rw-r--r--chrome/browser/ui/browser_mac.cc22
-rw-r--r--chrome/browser/ui/browser_navigator.cc14
-rw-r--r--chrome/browser/ui/browser_navigator_browsertest.cc7
-rw-r--r--chrome/browser/ui/browser_tab_restore_service_delegate.cc4
-rw-r--r--chrome/browser/ui/browser_tab_strip_model_delegate.cc10
-rw-r--r--chrome/browser/ui/cocoa/applescript/browsercrapplication+applescript_test.mm6
-rw-r--r--chrome/browser/ui/cocoa/applescript/window_applescript.mm2
-rw-r--r--chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller_unittest.mm9
-rw-r--r--chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm4
-rw-r--r--chrome/browser/ui/cocoa/browser/avatar_button_controller_unittest.mm1
-rw-r--r--chrome/browser/ui/cocoa/browser_window_controller_unittest.mm12
-rw-r--r--chrome/browser/ui/cocoa/cocoa_profile_test.h14
-rw-r--r--chrome/browser/ui/cocoa/cocoa_profile_test.mm11
-rw-r--r--chrome/browser/ui/cocoa/extensions/extension_installed_bubble_controller_unittest.mm2
-rw-r--r--chrome/browser/ui/cocoa/extensions/extension_popup_controller_unittest.mm3
-rw-r--r--chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller_unittest.mm1
-rw-r--r--chrome/browser/ui/cocoa/notifications/balloon_controller_unittest.mm3
-rw-r--r--chrome/browser/ui/cocoa/one_click_signin_bubble_controller_unittest.mm2
-rw-r--r--chrome/browser/ui/cocoa/profile_menu_controller_unittest.mm7
-rw-r--r--chrome/browser/ui/cocoa/tabpose_window_unittest.mm6
-rw-r--r--chrome/browser/ui/cocoa/tabs/tab_strip_controller_unittest.mm3
-rw-r--r--chrome/browser/ui/cocoa/toolbar/toolbar_controller_unittest.mm7
-rw-r--r--chrome/browser/ui/extensions/application_launch.cc4
-rw-r--r--chrome/browser/ui/find_bar/find_bar_host_browsertest.cc5
-rw-r--r--chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk_unittest.cc4
-rw-r--r--chrome/browser/ui/panels/old_base_panel_browser_test.cc2
-rw-r--r--chrome/browser/ui/panels/panel_browser_window.cc2
-rw-r--r--chrome/browser/ui/panels/panel_browser_window_cocoa_unittest.mm5
-rw-r--r--chrome/browser/ui/startup/startup_browser_creator_browsertest.cc2
-rw-r--r--chrome/browser/ui/startup/startup_browser_creator_impl.cc2
-rw-r--r--chrome/browser/ui/tab_contents/tab_contents_iterator_unittest.cc42
-rw-r--r--chrome/browser/ui/tabs/pinned_tab_service_unittest.cc8
-rw-r--r--chrome/browser/ui/toolbar/back_forward_menu_model_unittest.cc8
-rw-r--r--chrome/browser/ui/views/ash/app_list/extension_app_item.cc3
-rw-r--r--chrome/browser/ui/views/ash/launcher/launcher_favicon_loader_browsertest.cc2
-rw-r--r--chrome/browser/ui/views/ash/window_positioner_unittest.cc38
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc4
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views_win.cc2
-rw-r--r--chrome/browser/ui/views/frame/app_non_client_frame_view_aura_browsertest.cc2
-rw-r--r--chrome/browser/ui/views/tabs/tab_drag_controller.cc3
-rw-r--r--chrome/browser/ui/webui/chrome_web_contents_handler.cc4
-rw-r--r--chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc57
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(&params));
// 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, &center);
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.