summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authormirandac@google.com <mirandac@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-23 23:09:34 +0000
committermirandac@google.com <mirandac@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-23 23:09:34 +0000
commit39d6d36d3db1bfb64e4dccd9da0909c24168538a (patch)
tree9d842e67b009a24e75cb1c1e97cf56ff5ac6d28e /chrome/browser
parentfd90fabd12cf9b2b1e7f2fa198ecdc69346004a1 (diff)
downloadchromium_src-39d6d36d3db1bfb64e4dccd9da0909c24168538a.zip
chromium_src-39d6d36d3db1bfb64e4dccd9da0909c24168538a.tar.gz
chromium_src-39d6d36d3db1bfb64e4dccd9da0909c24168538a.tar.bz2
Fix XP crasher in Search Engine Experiment.
This was causing a crash because the View "owns" its images, and was trying to delete the ImageView which had already been deleted in a scoped_ptr. Solution: put the ImageView in a regular pointer instead. BUG= 42346 TEST=run with search engine experiment enabled in XP, don't crash. Review URL: http://codereview.chromium.org/1696010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45510 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/views/first_run_search_engine_view.cc4
-rw-r--r--chrome/browser/views/first_run_search_engine_view.h8
2 files changed, 6 insertions, 6 deletions
diff --git a/chrome/browser/views/first_run_search_engine_view.cc b/chrome/browser/views/first_run_search_engine_view.cc
index 7c6c95c..1f77092 100644
--- a/chrome/browser/views/first_run_search_engine_view.cc
+++ b/chrome/browser/views/first_run_search_engine_view.cc
@@ -120,7 +120,7 @@ SearchEngineChoice::SearchEngineChoice(views::ButtonListener* listener,
logo_image->SetImageSize(gfx::Size(kSmallLogoWidth, kSmallLogoHeight));
// Tooltip text provides accessibility.
logo_image->SetTooltipText(search_engine_->short_name());
- choice_view_.reset(logo_image);
+ choice_view_ = logo_image;
} else {
// No logo -- we must show a text label.
views::Label* logo_label = new views::Label(search_engine_->short_name());
@@ -128,7 +128,7 @@ SearchEngineChoice::SearchEngineChoice(views::ButtonListener* listener,
logo_label->SetFont(logo_label->font().DeriveFont(2, gfx::Font::NORMAL));
logo_label->SetHorizontalAlignment(views::Label::ALIGN_CENTER);
logo_label->SetTooltipText(search_engine_->short_name());
- choice_view_.reset(logo_label);
+ choice_view_ = logo_label;
}
}
diff --git a/chrome/browser/views/first_run_search_engine_view.h b/chrome/browser/views/first_run_search_engine_view.h
index aa5a03b..b012e22 100644
--- a/chrome/browser/views/first_run_search_engine_view.h
+++ b/chrome/browser/views/first_run_search_engine_view.h
@@ -7,7 +7,6 @@
#include <vector>
-#include "base/scoped_ptr.h"
#include "chrome/browser/views/keyword_editor_view.h"
#include "gfx/size.h"
#include "views/controls/button/native_button.h"
@@ -42,7 +41,7 @@ class SearchEngineChoice : public views::NativeButton {
// These methods return data about the logo or text view associated
// with this search engine choice.
- views::View* GetView() { return choice_view_.get(); }
+ views::View* GetView() { return choice_view_; }
int GetChoiceViewWidth();
int GetChoiceViewHeight();
@@ -54,8 +53,9 @@ class SearchEngineChoice : public views::NativeButton {
const TemplateURL* GetSearchEngine() { return search_engine_; }
private:
- // Either an ImageView of a logo, or a Label with text.
- scoped_ptr<views::View> choice_view_;
+ // Either an ImageView of a logo, or a Label with text. Owned by
+ // FirstRunSearchEngineView.
+ views::View* choice_view_;
// True if choice_view_ is holding an ImageView.
bool is_image_label_;