summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcdn@chromium.org <cdn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-23 18:51:07 +0000
committercdn@chromium.org <cdn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-23 18:51:07 +0000
commit96ea8cb17f4591bf3da588452dbba7c5e96eb1eb (patch)
tree043263b30ed19176570d3da3b390cb647010f101
parentd053bf0457c125bc81212dcbbc5186f714ea041b (diff)
downloadchromium_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.cc8
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),