diff options
-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), |