| Index: chrome/browser/extensions/extension_install_checker.cc
|
| diff --git a/chrome/browser/extensions/extension_install_checker.cc b/chrome/browser/extensions/extension_install_checker.cc
|
| index 5aab44d791dbd41ee0fdea06fc7994e40a6599ad..bd02b7100ade59c1cdeb7ee0622f426953d575e9 100644
|
| --- a/chrome/browser/extensions/extension_install_checker.cc
|
| +++ b/chrome/browser/extensions/extension_install_checker.cc
|
| @@ -163,8 +163,12 @@ void ExtensionInstallChecker::MaybeInvokeCallback() {
|
| running_checks_ = 0;
|
| ++current_sequence_number_;
|
|
|
| - callback_.Run(failed_mask);
|
| + Callback callback_copy = callback_;
|
| callback_.Reset();
|
| +
|
| + // This instance may be owned by the callback recipient and deleted here,
|
| + // so reset |callback_| first and invoke a copy of the callback.
|
| + callback_copy.Run(failed_mask);
|
| }
|
| }
|
|
|
|
|