diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-26 17:59:02 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-26 17:59:02 +0000 |
commit | c248be0e84cda8fb1870db68a3127b2e9fae057c (patch) | |
tree | baec0a2f8cbfba885b262827578b7ae676edae3b /chrome/browser/browser.cc | |
parent | e86f9c0b06649482096d09d86d332c3717bf8481 (diff) | |
download | chromium_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.cc | 20 |
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 |