summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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),