| Index: chrome/browser/browser_process_impl.cc
|
| diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
|
| index d8b9bc6ec6df5e9c92024f949453409e9a932d66..5007a5a72d1906e88d2c09aca038afbb89ba325c 100644
|
| --- a/chrome/browser/browser_process_impl.cc
|
| +++ b/chrome/browser/browser_process_impl.cc
|
| @@ -1196,8 +1196,17 @@ void BrowserProcessImpl::CreateGCMDriver() {
|
|
|
| void BrowserProcessImpl::ApplyDefaultBrowserPolicy() {
|
| if (local_state()->GetBoolean(prefs::kDefaultBrowserSettingEnabled)) {
|
| + // 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.
|
| scoped_refptr<shell_integration::DefaultWebClientWorker>
|
| - set_browser_worker = new shell_integration::DefaultBrowserWorker(NULL);
|
| + set_browser_worker = new shell_integration::DefaultBrowserWorker(
|
| + nullptr,
|
| + /*delete_observer=*/false);
|
| + // The user interaction must always be disabled when applying the default
|
| + // browser policy since it is done at each browser startup and the result
|
| + // of the interaction cannot be forced.
|
| + set_browser_worker->set_interactive_permitted(false);
|
| set_browser_worker->StartSetAsDefault();
|
| }
|
| }
|
|
|