Index: chrome/browser/browser.cc |
=================================================================== |
--- chrome/browser/browser.cc (revision 30426) |
+++ chrome/browser/browser.cc (working copy) |
@@ -246,10 +246,6 @@ |
local_state->ClearPref(prefs::kShouldShowFirstRunBubble); |
window_->GetLocationBar()->ShowFirstRunBubble(show_OEM_bubble); |
} |
- |
- FindBar* find_bar = BrowserWindow::CreateFindBar(this); |
- find_bar_controller_.reset(new FindBarController(find_bar)); |
- find_bar->SetFindBarController(find_bar_controller_.get()); |
} |
/////////////////////////////////////////////////////////////////////////////// |
@@ -264,6 +260,17 @@ |
g_browser_process->user_data_dir_profiles() = profiles; |
} |
+FindBarController* Browser::GetFindBarController() { |
+ if (!find_bar_controller_.get()) { |
+ FindBar* find_bar = BrowserWindow::CreateFindBar(this); |
+ find_bar_controller_.reset(new FindBarController(find_bar)); |
+ find_bar->SetFindBarController(find_bar_controller_.get()); |
+ find_bar_controller_->ChangeTabContents(GetSelectedTabContents()); |
+ find_bar_controller_->find_bar()->MoveWindowIfNecessary(gfx::Rect(), true); |
+ } |
+ return find_bar_controller_.get(); |
+} |
+ |
/////////////////////////////////////////////////////////////////////////////// |
// Browser, Creation Helpers: |
@@ -944,7 +951,7 @@ |
} |
void Browser::ShowFindBar() { |
- find_bar_controller_->Show(); |
+ GetFindBarController()->Show(); |
} |
bool Browser::SupportsWindowFeature(WindowFeature feature) const { |
@@ -1772,8 +1779,7 @@ |
if (find_bar_controller_.get()) { |
find_bar_controller_->ChangeTabContents(new_contents); |
- find_bar_controller_->find_bar()->MoveWindowIfNecessary(gfx::Rect(), |
- true); |
+ find_bar_controller_->find_bar()->MoveWindowIfNecessary(gfx::Rect(), true); |
} |
// Update sessions. Don't force creation of sessions. If sessions doesn't |