diff options
author | cdn@chromium.org <cdn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-23 18:51:07 +0000 |
---|---|---|
committer | cdn@chromium.org <cdn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-23 18:51:07 +0000 |
commit | 96ea8cb17f4591bf3da588452dbba7c5e96eb1eb (patch) | |
tree | 043263b30ed19176570d3da3b390cb647010f101 | |
parent | d053bf0457c125bc81212dcbbc5186f714ea041b (diff) | |
download | chromium_src-96ea8cb17f4591bf3da588452dbba7c5e96eb1eb.zip chromium_src-96ea8cb17f4591bf3da588452dbba7c5e96eb1eb.tar.gz chromium_src-96ea8cb17f4591bf3da588452dbba7c5e96eb1eb.tar.bz2 |
Merge 86146 - dom-ui settings: Stop observing an existing BrowserDataRemover before creating a new one.
BUG=81916
TEST=Follow repro setps in bug report, verify that crash no longer occurs.
Review URL: http://codereview.chromium.org/7050031
Review URL: http://codereview.chromium.org/7064003
git-svn-id: svn://svn.chromium.org/chrome/branches/742/src@86314 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/ui/webui/options/clear_browser_data_handler.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/chrome/browser/ui/webui/options/clear_browser_data_handler.cc b/chrome/browser/ui/webui/options/clear_browser_data_handler.cc index 32f24f3..4281104 100644 --- a/chrome/browser/ui/webui/options/clear_browser_data_handler.cc +++ b/chrome/browser/ui/webui/options/clear_browser_data_handler.cc @@ -21,9 +21,8 @@ ClearBrowserDataHandler::ClearBrowserDataHandler() : remover_(NULL) { } ClearBrowserDataHandler::~ClearBrowserDataHandler() { - if (remover_) { + if (remover_) remover_->RemoveObserver(this); - } } void ClearBrowserDataHandler::Initialize() { @@ -125,6 +124,11 @@ void ClearBrowserDataHandler::HandleClearBrowserData(const ListValue* value) { web_ui_->CallJavascriptFunction("ClearBrowserDataOverlay.setClearingState", state); + // If we are still observing a previous data remover, we need to stop + // observing. + if (remover_) + remover_->RemoveObserver(this); + // BrowsingDataRemover deletes itself when done. remover_ = new BrowsingDataRemover(profile, static_cast<BrowsingDataRemover::TimePeriod>(period_selected), |