| Index: chrome/test/base/test_browser_window.cc
|
| ===================================================================
|
| --- chrome/test/base/test_browser_window.cc (revision 148382)
|
| +++ chrome/test/base/test_browser_window.cc (working copy)
|
| @@ -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 @@
|
| 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
|
|
|