Chromium Code Reviews| Index: chrome/browser/extensions/api/management/management_api.cc |
| diff --git a/chrome/browser/extensions/api/management/management_api.cc b/chrome/browser/extensions/api/management/management_api.cc |
| index 6c3489ad6b46fa35fa2ce9048b30207ff25ce41a..1a7cade5e53a24368b556b30d7b3e30473737a5c 100644 |
| --- a/chrome/browser/extensions/api/management/management_api.cc |
| +++ b/chrome/browser/extensions/api/management/management_api.cc |
| @@ -606,9 +606,18 @@ bool ManagementUninstallFunction::RunImpl() { |
| management::Uninstall::Params::Create(*args_)); |
| EXTENSION_FUNCTION_VALIDATE(params.get()); |
| - bool show_confirm_dialog = false; |
| - if (params->options.get() && params->options->show_confirm_dialog.get()) |
| - show_confirm_dialog = *params->options->show_confirm_dialog; |
| + bool show_confirm_dialog = true; |
| + // By default confirmation dialog isn't shown when uninstalling self, but this |
| + // can be overridden with showConfirmDialog. |
| + if (extension_ && params->id == extension_->id()) { |
|
not at google - send to devlin
2014/01/16 01:13:41
If you're worried about |extension_| being valid t
meacer
2014/01/16 01:59:19
Done.
|
| + show_confirm_dialog = false; |
| + if (params->options.get() && params->options->show_confirm_dialog.get()) |
| + show_confirm_dialog = *params->options->show_confirm_dialog; |
|
not at google - send to devlin
2014/01/16 01:13:41
nit: can you do the above 3 lines in a single expr
meacer
2014/01/16 01:59:19
Can't think of a better way that won't be confusin
not at google - send to devlin
2014/01/16 05:07:39
It could be like (inside the is-self check)
show_
meacer
2014/01/16 18:59:39
Makes sense.
|
| + } |
| + if (show_confirm_dialog && !user_gesture()) { |
| + error_ = keys::kGestureNeededForUninstallError; |
| + return false; |
| + } |
| return Uninstall(params->id, show_confirm_dialog); |
| } |