Index: chrome/browser/ui/webui/options/browser_options_handler.cc |
diff --git a/chrome/browser/ui/webui/options/browser_options_handler.cc b/chrome/browser/ui/webui/options/browser_options_handler.cc |
index ea2eb7612b3f8fbbc3de910fe4e757c7c823c31a..1c4de7ab1dbe37f1017db53573033d65b787303d 100644 |
--- a/chrome/browser/ui/webui/options/browser_options_handler.cc |
+++ b/chrome/browser/ui/webui/options/browser_options_handler.cc |
@@ -186,7 +186,11 @@ BrowserOptionsHandler::BrowserOptionsHandler() |
#endif // defined(OS_CHROMEOS) |
signin_observer_(this), |
weak_ptr_factory_(this) { |
- default_browser_worker_ = new shell_integration::DefaultBrowserWorker(this); |
+ // The worker pointer is reference counted. While it is running, the |
+ // message loops of the FILE and UI thread will hold references to it |
+ // and it will be automatically freed once all its tasks have finished. |
+ default_browser_worker_ = new shell_integration::DefaultBrowserWorker( |
+ this, /*delete_observer=*/false); |
#if defined(ENABLE_SERVICE_DISCOVERY) |
cloud_print_mdns_ui_enabled_ = true; |
@@ -1144,10 +1148,6 @@ void BrowserOptionsHandler::SetDefaultWebClientUIState( |
SetDefaultBrowserUIString(status_string_id); |
} |
-bool BrowserOptionsHandler::IsInteractiveSetDefaultPermitted() { |
- return true; // This is UI so we can allow it. |
-} |
- |
void BrowserOptionsHandler::SetDefaultBrowserUIString(int status_string_id) { |
base::StringValue status_string( |
l10n_util::GetStringFUTF16(status_string_id, |