diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-25 20:14:29 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-25 20:14:29 +0000 |
commit | a4fe67013ea54ca4f550d8c27b55b180fe0c4a70 (patch) | |
tree | a2eb4697a22a3ea49aeece7a395286a6e84fda0f /chrome/test | |
parent | f82480eb8c899f51177505494a485587c60e7ad4 (diff) | |
download | chromium_src-a4fe67013ea54ca4f550d8c27b55b180fe0c4a70.zip chromium_src-a4fe67013ea54ca4f550d8c27b55b180fe0c4a70.tar.gz chromium_src-a4fe67013ea54ca4f550d8c27b55b180fe0c4a70.tar.bz2 |
Consolidate Browser Creation.
. Make all instantiators use a single ctor that takes CreateParams.
. Get rid of InitBrowserWindow() and make CreateBrowserWindow() a anonymous namespace function in browser.cc
http://crbug.com/133576
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10692195
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148396 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test')
-rw-r--r-- | chrome/test/base/browser_with_test_window_test.cc | 7 | ||||
-rw-r--r-- | chrome/test/base/in_process_browser_test.cc | 12 | ||||
-rw-r--r-- | chrome/test/base/test_browser_window.cc | 47 | ||||
-rw-r--r-- | chrome/test/base/test_browser_window.h | 11 |
4 files changed, 66 insertions, 11 deletions
diff --git a/chrome/test/base/browser_with_test_window_test.cc b/chrome/test/base/browser_with_test_window_test.cc index 8c3fcb4..85c5895 100644 --- a/chrome/test/base/browser_with_test_window_test.cc +++ b/chrome/test/base/browser_with_test_window_test.cc @@ -41,9 +41,10 @@ void BrowserWithTestWindowTest::SetUp() { testing::Test::SetUp(); set_profile(CreateProfile()); - browser_.reset(new Browser(Browser::TYPE_TABBED, profile())); - window_.reset(new TestBrowserWindow(browser())); - browser_->SetWindowForTesting(window_.get()); + window_.reset(new TestBrowserWindow); + Browser::CreateParams params(profile()); + params.window = window_.get(); + browser_.reset(new Browser(params)); #if defined(USE_AURA) aura_test_helper_.reset(new aura::test::AuraTestHelper(&ui_loop_)); aura_test_helper_->SetUp(); diff --git a/chrome/test/base/in_process_browser_test.cc b/chrome/test/base/in_process_browser_test.cc index f3fa9a5..f493a3a 100644 --- a/chrome/test/base/in_process_browser_test.cc +++ b/chrome/test/base/in_process_browser_test.cc @@ -237,22 +237,22 @@ bool InProcessBrowserTest::SetUpUserDataDirectory() { // Creates a browser with a single tab (about:blank), waits for the tab to // finish loading and shows the browser. Browser* InProcessBrowserTest::CreateBrowser(Profile* profile) { - Browser* browser = Browser::Create(profile); + Browser* browser = new Browser(Browser::CreateParams(profile)); AddBlankTabAndShow(browser); return browser; } Browser* InProcessBrowserTest::CreateIncognitoBrowser() { // Create a new browser with using the incognito profile. - Browser* incognito = - Browser::Create(browser()->profile()->GetOffTheRecordProfile()); + Browser* incognito = new Browser( + Browser::CreateParams(browser()->profile()->GetOffTheRecordProfile())); AddBlankTabAndShow(incognito); return incognito; } Browser* InProcessBrowserTest::CreateBrowserForPopup(Profile* profile) { - Browser* browser = Browser::CreateWithParams( - Browser::CreateParams(Browser::TYPE_POPUP, profile)); + Browser* browser = + new Browser(Browser::CreateParams(Browser::TYPE_POPUP, profile)); AddBlankTabAndShow(browser); return browser; } @@ -260,7 +260,7 @@ Browser* InProcessBrowserTest::CreateBrowserForPopup(Profile* profile) { Browser* InProcessBrowserTest::CreateBrowserForApp( const std::string& app_name, Profile* profile) { - Browser* browser = Browser::CreateWithParams( + Browser* browser = new Browser( Browser::CreateParams::CreateForApp( Browser::TYPE_POPUP, app_name, gfx::Rect(), profile)); AddBlankTabAndShow(browser); diff --git a/chrome/test/base/test_browser_window.cc b/chrome/test/base/test_browser_window.cc index a09b8e8..e489ed5 100644 --- a/chrome/test/base/test_browser_window.cc +++ b/chrome/test/base/test_browser_window.cc @@ -4,11 +4,13 @@ #include "chrome/test/base/test_browser_window.h" +#include "chrome/browser/ui/browser_list.h" +#include "chrome/browser/ui/browser_list_observer.h" #include "ui/gfx/rect.h" using content::NativeWebKeyboardEvent; -TestBrowserWindow::TestBrowserWindow(Browser* browser) {} +TestBrowserWindow::TestBrowserWindow() {} TestBrowserWindow::~TestBrowserWindow() {} @@ -130,3 +132,46 @@ WindowOpenDisposition TestBrowserWindow::GetDispositionForPopupBounds( FindBar* TestBrowserWindow::CreateFindBar() { return NULL; } + +namespace chrome { + +namespace { + +// Handles destroying a TestBrowserWindow when the Browser it is attached to is +// destroyed. +class TestBrowserWindowOwner : public chrome::BrowserListObserver { + public: + explicit TestBrowserWindowOwner(TestBrowserWindow* window) : window_(window) { + BrowserList::AddObserver(this); + } + virtual ~TestBrowserWindowOwner() { + BrowserList::RemoveObserver(this); + } + + private: + // Overridden from BrowserListObserver: + virtual void OnBrowserRemoved(Browser* browser) OVERRIDE { + if (browser->window() == window_.get()) + delete this; + } + + scoped_ptr<TestBrowserWindow> window_; + + DISALLOW_COPY_AND_ASSIGN(TestBrowserWindowOwner); +}; + +} // namespace + +Browser* CreateBrowserWithTestWindowForProfile(Profile* profile) { + Browser::CreateParams params(profile); + return CreateBrowserWithTestWindowForParams(¶ms); +} + +Browser* CreateBrowserWithTestWindowForParams(Browser::CreateParams* params) { + TestBrowserWindow* window = new TestBrowserWindow; + new TestBrowserWindowOwner(window); + params->window = window; + return new Browser(*params); +} + +} // namespace chrome diff --git a/chrome/test/base/test_browser_window.h b/chrome/test/base/test_browser_window.h index 4ef2ab7..2a5c974 100644 --- a/chrome/test/base/test_browser_window.h +++ b/chrome/test/base/test_browser_window.h @@ -8,6 +8,7 @@ #include "base/basictypes.h" #include "base/compiler_specific.h" #include "build/build_config.h" +#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_window.h" #include "chrome/test/base/test_location_bar.h" @@ -20,7 +21,7 @@ class Extension; // See BrowserWithTestWindowTest for an example of using this class. class TestBrowserWindow : public BrowserWindow { public: - explicit TestBrowserWindow(Browser* browser); + TestBrowserWindow(); virtual ~TestBrowserWindow(); // BrowserWindow: @@ -150,4 +151,12 @@ class TestBrowserWindow : public BrowserWindow { DISALLOW_COPY_AND_ASSIGN(TestBrowserWindow); }; +namespace chrome { + +// Helpers that handle the lifetime of TestBrowserWindow instances. +Browser* CreateBrowserWithTestWindowForProfile(Profile* profile); +Browser* CreateBrowserWithTestWindowForParams(Browser::CreateParams* params); + +} // namespace chrome + #endif // CHROME_TEST_BASE_TEST_BROWSER_WINDOW_H_ |