summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser.cc
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-26 17:59:02 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-26 17:59:02 +0000
commitc248be0e84cda8fb1870db68a3127b2e9fae057c (patch)
treebaec0a2f8cbfba885b262827578b7ae676edae3b /chrome/browser/browser.cc
parente86f9c0b06649482096d09d86d332c3717bf8481 (diff)
downloadchromium_src-c248be0e84cda8fb1870db68a3127b2e9fae057c.zip
chromium_src-c248be0e84cda8fb1870db68a3127b2e9fae057c.tar.gz
chromium_src-c248be0e84cda8fb1870db68a3127b2e9fae057c.tar.bz2
Lazily create the find bar.
http://crbug.com/21910 TEST=none Review URL: http://codereview.chromium.org/334019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30062 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/browser.cc')
-rw-r--r--chrome/browser/browser.cc20
1 files changed, 13 insertions, 7 deletions
diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc
index 59e0df8..59c04af 100644
--- a/chrome/browser/browser.cc
+++ b/chrome/browser/browser.cc
@@ -246,10 +246,6 @@ void Browser::CreateBrowserWindow() {
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 @@ void Browser::set_user_data_dir_profiles(
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:
@@ -935,7 +942,7 @@ void Browser::ViewSource() {
}
void Browser::ShowFindBar() {
- find_bar_controller_->Show();
+ GetFindBarController()->Show();
}
bool Browser::SupportsWindowFeature(WindowFeature feature) const {
@@ -1758,8 +1765,7 @@ void Browser::TabSelectedAt(TabContents* old_contents,
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