Chromium Code Reviews| Index: chrome/browser/extensions/extension_install_prompt.cc |
| diff --git a/chrome/browser/extensions/extension_install_prompt.cc b/chrome/browser/extensions/extension_install_prompt.cc |
| index cacb466cc16886325b9b52679c2cfdfd79115ed3..186030fbff65d6b21996008ef469899a863efd46 100644 |
| --- a/chrome/browser/extensions/extension_install_prompt.cc |
| +++ b/chrome/browser/extensions/extension_install_prompt.cc |
| @@ -58,6 +58,7 @@ static const int kTitleIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = { |
| IDS_EXTENSION_PERMISSIONS_PROMPT_TITLE, |
| IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_TITLE, |
| IDS_EXTENSION_POST_INSTALL_PERMISSIONS_PROMPT_TITLE, |
| + IDS_EXTENSION_UPDATE_PROMPT_TITLE, |
|
Matt Perry
2013/02/27 01:21:46
Let's not add a new prompt type. We should do what
Joe Thomas
2013/02/27 20:55:38
Done.
|
| }; |
| static const int kHeadingIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = { |
| IDS_EXTENSION_INSTALL_PROMPT_HEADING, |
| @@ -67,6 +68,7 @@ static const int kHeadingIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = { |
| IDS_EXTENSION_PERMISSIONS_PROMPT_HEADING, |
| 0, // External installs use different strings for extensions/apps. |
| IDS_EXTENSION_POST_INSTALL_PERMISSIONS_PROMPT_HEADING, |
| + IDS_EXTENSION_UPDATE_PROMPT_HEADING, |
| }; |
| static const int kButtons[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = { |
| ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL, |
| @@ -76,6 +78,7 @@ static const int kButtons[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = { |
| ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL, |
| ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL, |
| ui::DIALOG_BUTTON_CANCEL, |
| + ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL, |
| }; |
| static const int kAcceptButtonIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = { |
| IDS_EXTENSION_PROMPT_INSTALL_BUTTON, |
| @@ -85,6 +88,7 @@ static const int kAcceptButtonIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = { |
| IDS_EXTENSION_PROMPT_PERMISSIONS_BUTTON, |
| 0, // External installs use different strings for extensions/apps. |
| 0, |
| + IDS_EXTENSION_PROMPT_UPDATE_BUTTON, |
| }; |
| static const int kAbortButtonIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = { |
| 0, // These all use the platform's default cancel label. |
| @@ -94,6 +98,7 @@ static const int kAbortButtonIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = { |
| IDS_EXTENSION_PROMPT_PERMISSIONS_ABORT_BUTTON, |
| IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ABORT_BUTTON, |
| IDS_CLOSE, |
| + 0, |
| }; |
| static const int kPermissionsHeaderIds[ |
| ExtensionInstallPrompt::NUM_PROMPT_TYPES] = { |
| @@ -104,6 +109,7 @@ static const int kPermissionsHeaderIds[ |
| IDS_EXTENSION_PROMPT_WANTS_ACCESS_TO, |
| IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO, |
| IDS_EXTENSION_PROMPT_CAN_ACCESS, |
| + IDS_EXTENSION_PROMPT_WILL_NOW_HAVE_ACCESS_TO, |
| }; |
| static const int kOAuthHeaderIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = { |
| IDS_EXTENSION_PROMPT_OAUTH_HEADER, |
| @@ -115,6 +121,7 @@ static const int kOAuthHeaderIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = { |
| // we need to update FetchOAuthIssueAdviceIfNeeded. |
| 0, |
| 0, |
| + IDS_EXTENSION_PROMPT_OAUTH_UPDATE_HEADER, |
| }; |
| // Size of extension icon in top left of dialog. |
| @@ -566,6 +573,17 @@ void ExtensionInstallPrompt::ReviewPermissions(Delegate* delegate, |
| LoadImageIfNeeded(); |
| } |
| +void ExtensionInstallPrompt::ConfirmUpdate(Delegate* delegate, |
| + const Extension* extension) { |
| + DCHECK(ui_loop_ == MessageLoop::current()); |
| + extension_ = extension; |
| + permissions_ = extension->GetActivePermissions(); |
| + delegate_ = delegate; |
| + prompt_.set_type(UPDATE_PROMPT); |
| + |
| + LoadImageIfNeeded(); |
| +} |
| + |
| void ExtensionInstallPrompt::OnInstallSuccess(const Extension* extension, |
| SkBitmap* icon) { |
| extension_ = extension; |
| @@ -679,7 +697,8 @@ void ExtensionInstallPrompt::ShowConfirmation() { |
| case INLINE_INSTALL_PROMPT: |
| case EXTERNAL_INSTALL_PROMPT: |
| case INSTALL_PROMPT: |
| - case POST_INSTALL_PERMISSIONS_PROMPT: { |
| + case POST_INSTALL_PERMISSIONS_PROMPT: |
| + case UPDATE_PROMPT: { |
| prompt_.set_extension(extension_); |
| prompt_.set_icon(gfx::Image::CreateFrom1xBitmap(icon_)); |
| break; |