Index: chrome/browser/ui/views/frame/browser_view.cc |
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc |
index 64966b0398cf35741c33a41aff554a94f43923a1..b984bffcc78738b0ff0e19895e4036ef6586c66f 100644 |
--- a/chrome/browser/ui/views/frame/browser_view.cc |
+++ b/chrome/browser/ui/views/frame/browser_view.cc |
@@ -428,12 +428,11 @@ class ResizeCorner : public views::View { |
/////////////////////////////////////////////////////////////////////////////// |
// BrowserView, public: |
-BrowserView::BrowserView(Browser* browser) |
+BrowserView::BrowserView() |
: views::ClientView(NULL, NULL), |
last_focused_view_storage_id_( |
views::ViewStorage::GetInstance()->CreateStorageID()), |
frame_(NULL), |
- browser_(browser), |
top_container_(NULL), |
tabstrip_(NULL), |
toolbar_(NULL), |
@@ -455,7 +454,6 @@ BrowserView::BrowserView(Browser* browser) |
immersive_mode_controller_(chrome::CreateImmersiveModeController()), |
ALLOW_THIS_IN_INITIALIZER_LIST(color_change_listener_(this)), |
ALLOW_THIS_IN_INITIALIZER_LIST(activate_modal_dialog_factory_(this)) { |
- browser_->tab_strip_model()->AddObserver(this); |
} |
BrowserView::~BrowserView() { |
@@ -510,6 +508,11 @@ BrowserView::~BrowserView() { |
browser_.reset(); |
} |
+void BrowserView::Init(Browser* browser) { |
+ browser_.reset(browser); |
+ browser_->tab_strip_model()->AddObserver(this); |
+} |
+ |
// static |
BrowserView* BrowserView::GetBrowserViewForNativeWindow( |
gfx::NativeWindow window) { |
@@ -1923,7 +1926,7 @@ void BrowserView::ViewHierarchyChanged(bool is_add, |
views::View* parent, |
views::View* child) { |
if (!initialized_ && is_add && child == this && GetWidget()) { |
- Init(); |
+ InitViews(); |
initialized_ = true; |
} |
} |
@@ -2015,10 +2018,10 @@ void BrowserView::OnSysColorChange() { |
chrome::MaybeShowInvertBubbleView(browser_.get(), contents_container_); |
} |
-void BrowserView::Init() { |
+void BrowserView::InitViews() { |
GetWidget()->AddObserver(this); |
- SetLayoutManager(new BrowserViewLayout); |
+ SetLayoutManager(new BrowserViewLayout(browser())); |
// Stow a pointer to this object onto the window handle so that we can get at |
// it later when all we have is a native view. |
GetWidget()->SetNativeWindowProperty(kBrowserViewKey, this); |
@@ -2611,7 +2614,8 @@ void BrowserView::CreateLauncherIcon() { |
BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) { |
// Create the view and the frame. The frame will attach itself via the view |
// so we don't need to do anything with the pointer. |
- BrowserView* view = new BrowserView(browser); |
+ BrowserView* view = new BrowserView(); |
+ view->Init(browser); |
(new BrowserFrame(view))->InitBrowserFrame(); |
view->GetWidget()->non_client_view()->SetAccessibleName( |
l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)); |