Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6892)

Unified Diff: chrome/browser/extensions/extension_install_prompt.cc

Issue 2705733002: [Extensions] Deprecate old install prompt types (Closed)
Patch Set: lazyboy's Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/extension_install_prompt.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 ff86a0a972e15c57ce09d46f78307e503d68840e..50aa5d445dc8f13cfe8e48328765d642303d38f2 100644
--- a/chrome/browser/extensions/extension_install_prompt.cc
+++ b/chrome/browser/extensions/extension_install_prompt.cc
@@ -60,81 +60,6 @@ bool AllowWebstoreData(ExtensionInstallPrompt::PromptType type) {
type == ExtensionInstallPrompt::REPAIR_PROMPT;
}
-static const int kTitleIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = {
- IDS_EXTENSION_INSTALL_PROMPT_TITLE,
- IDS_EXTENSION_INSTALL_PROMPT_TITLE,
- 0, // Deprecated.
- IDS_EXTENSION_RE_ENABLE_PROMPT_TITLE,
- IDS_EXTENSION_PERMISSIONS_PROMPT_TITLE,
- 0, // External installs use different strings for extensions/apps/themes.
- IDS_EXTENSION_POST_INSTALL_PERMISSIONS_PROMPT_TITLE,
- IDS_EXTENSION_LAUNCH_APP_PROMPT_TITLE,
- IDS_EXTENSION_REMOTE_INSTALL_PROMPT_TITLE,
- IDS_EXTENSION_REPAIR_PROMPT_TITLE,
- IDS_EXTENSION_DELEGATED_INSTALL_PROMPT_TITLE,
- 0, // Deprecated.
-};
-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_OK | ui::DIALOG_BUTTON_CANCEL,
- ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL,
- ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL,
- ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL,
- // The "OK" button in the post install permissions dialog allows revoking
- // file/device access, and is only shown if such permissions exist; see
- // ShouldDisplayRevokeButton().
- ui::DIALOG_BUTTON_CANCEL,
- ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL,
- ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL,
- ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL,
- ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL,
- ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL,
-};
-static const int kAcceptButtonIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = {
- 0, // Regular installs use different strings for extensions/apps/themes.
- 0, // Inline installs as well.
- IDS_EXTENSION_PROMPT_INSTALL_BUTTON,
- IDS_EXTENSION_PROMPT_RE_ENABLE_BUTTON,
- IDS_EXTENSION_PROMPT_PERMISSIONS_BUTTON,
- 0, // External installs use different strings for extensions/apps/themes.
- 0, // Different strings depending on the files and devices retained.
- IDS_EXTENSION_PROMPT_LAUNCH_BUTTON,
- 0, // Remote installs use different strings for extensions/apps.
- 0, // Repairs use different strings for extensions/apps.
- IDS_EXTENSION_PROMPT_INSTALL_BUTTON,
- IDS_EXTENSION_PROMPT_INSTALL_BUTTON,
-};
-static const int kAbortButtonIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = {
- IDS_CANCEL,
- IDS_CANCEL,
- IDS_CANCEL,
- IDS_CANCEL,
- IDS_EXTENSION_PROMPT_PERMISSIONS_ABORT_BUTTON,
- IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ABORT_BUTTON,
- IDS_CLOSE,
- IDS_CANCEL,
- IDS_CANCEL,
- IDS_CANCEL,
- IDS_CANCEL,
- IDS_CANCEL,
-};
-static const int
- kPermissionsHeaderIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = {
- IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO,
- IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO,
- IDS_EXTENSION_PROMPT_THESE_WILL_HAVE_ACCESS_TO,
- IDS_EXTENSION_PROMPT_WILL_NOW_HAVE_ACCESS_TO,
- IDS_EXTENSION_PROMPT_WANTS_ACCESS_TO,
- IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO,
- IDS_EXTENSION_PROMPT_CAN_ACCESS,
- IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO,
- IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO,
- IDS_EXTENSION_PROMPT_CAN_ACCESS,
- IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO,
- IDS_EXTENSION_PROMPT_THESE_WILL_HAVE_ACCESS_TO,
-};
-
// Returns bitmap for the default icon with size equal to the default icon's
// pixel size under maximal supported scale factor.
SkBitmap GetDefaultIconBitmapForMaxScaleFactor(bool is_app) {
@@ -192,31 +117,27 @@ ExtensionInstallPrompt::g_last_prompt_type_for_tests =
// This should match the PromptType enum.
std::string ExtensionInstallPrompt::PromptTypeToString(PromptType type) {
switch (type) {
- case ExtensionInstallPrompt::INSTALL_PROMPT:
+ case INSTALL_PROMPT:
return "INSTALL_PROMPT";
- case ExtensionInstallPrompt::INLINE_INSTALL_PROMPT:
+ case INLINE_INSTALL_PROMPT:
return "INLINE_INSTALL_PROMPT";
- case ExtensionInstallPrompt::RE_ENABLE_PROMPT:
+ case RE_ENABLE_PROMPT:
return "RE_ENABLE_PROMPT";
- case ExtensionInstallPrompt::PERMISSIONS_PROMPT:
+ case PERMISSIONS_PROMPT:
return "PERMISSIONS_PROMPT";
- case ExtensionInstallPrompt::EXTERNAL_INSTALL_PROMPT:
+ case EXTERNAL_INSTALL_PROMPT:
return "EXTERNAL_INSTALL_PROMPT";
- case ExtensionInstallPrompt::POST_INSTALL_PERMISSIONS_PROMPT:
+ case POST_INSTALL_PERMISSIONS_PROMPT:
return "POST_INSTALL_PERMISSIONS_PROMPT";
- case ExtensionInstallPrompt::REMOTE_INSTALL_PROMPT:
+ case REMOTE_INSTALL_PROMPT:
return "REMOTE_INSTALL_PROMPT";
- case ExtensionInstallPrompt::REPAIR_PROMPT:
+ case REPAIR_PROMPT:
return "REPAIR_PROMPT";
- case ExtensionInstallPrompt::DELEGATED_PERMISSIONS_PROMPT:
+ case DELEGATED_PERMISSIONS_PROMPT:
return "DELEGATED_PERMISSIONS_PROMPT";
- case ExtensionInstallPrompt::LAUNCH_PROMPT_DEPRECATED:
- case ExtensionInstallPrompt::BUNDLE_INSTALL_PROMPT_DEPRECATED:
- case ExtensionInstallPrompt::DELEGATED_BUNDLE_PERMISSIONS_PROMPT_DEPRECATED:
+ case UNSET_PROMPT_TYPE:
+ case NUM_PROMPT_TYPES:
NOTREACHED();
- // fall through:
- case ExtensionInstallPrompt::UNSET_PROMPT_TYPE:
- case ExtensionInstallPrompt::NUM_PROMPT_TYPES:
break;
}
return "OTHER";
@@ -231,6 +152,8 @@ ExtensionInstallPrompt::Prompt::Prompt(PromptType type)
rating_count_(0),
show_user_count_(false),
has_webstore_data_(false) {
+ DCHECK_NE(type_, UNSET_PROMPT_TYPE);
+ DCHECK_NE(type_, NUM_PROMPT_TYPES);
}
ExtensionInstallPrompt::Prompt::~Prompt() {
@@ -300,88 +223,186 @@ void ExtensionInstallPrompt::Prompt::SetWebstoreData(
}
base::string16 ExtensionInstallPrompt::Prompt::GetDialogTitle() const {
- int id = kTitleIds[type_];
- if (type_ == DELEGATED_PERMISSIONS_PROMPT) {
- return l10n_util::GetStringFUTF16(id, base::UTF8ToUTF16(extension_->name()),
- base::UTF8ToUTF16(delegated_username_));
- }
- if (type_ == EXTERNAL_INSTALL_PROMPT) {
- if (extension_->is_app())
- id = IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_TITLE_APP;
- else if (extension_->is_theme())
- id = IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_TITLE_THEME;
- else
- id = IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_TITLE_EXTENSION;
+ int id = -1;
+ switch (type_) {
+ case INSTALL_PROMPT:
+ case INLINE_INSTALL_PROMPT:
+ id = IDS_EXTENSION_INSTALL_PROMPT_TITLE;
+ break;
+ case RE_ENABLE_PROMPT:
+ id = IDS_EXTENSION_RE_ENABLE_PROMPT_TITLE;
+ break;
+ case PERMISSIONS_PROMPT:
+ id = IDS_EXTENSION_PERMISSIONS_PROMPT_TITLE;
+ break;
+ case EXTERNAL_INSTALL_PROMPT:
+ if (extension_->is_app())
+ id = IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_TITLE_APP;
+ else if (extension_->is_theme())
+ id = IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_TITLE_THEME;
+ else
+ id = IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_TITLE_EXTENSION;
+ break;
+ case POST_INSTALL_PERMISSIONS_PROMPT:
+ id = IDS_EXTENSION_POST_INSTALL_PERMISSIONS_PROMPT_TITLE;
+ break;
+ case REMOTE_INSTALL_PROMPT:
+ id = IDS_EXTENSION_REMOTE_INSTALL_PROMPT_TITLE;
+ break;
+ case REPAIR_PROMPT:
+ id = IDS_EXTENSION_REPAIR_PROMPT_TITLE;
+ break;
+ case DELEGATED_PERMISSIONS_PROMPT:
+ // Special case: need to include the delegated username.
+ return l10n_util::GetStringFUTF16(
+ IDS_EXTENSION_DELEGATED_INSTALL_PROMPT_TITLE,
+ base::UTF8ToUTF16(extension_->name()),
+ base::UTF8ToUTF16(delegated_username_));
+ case UNSET_PROMPT_TYPE:
+ case NUM_PROMPT_TYPES:
+ NOTREACHED();
}
+
return l10n_util::GetStringFUTF16(id, base::UTF8ToUTF16(extension_->name()));
}
int ExtensionInstallPrompt::Prompt::GetDialogButtons() const {
- if (type_ == POST_INSTALL_PERMISSIONS_PROMPT && ShouldDisplayRevokeButton()) {
- return kButtons[type_] | ui::DIALOG_BUTTON_OK;
+ // The "OK" button in the post install permissions dialog allows revoking
+ // file/device access, and is only shown if such permissions exist; see
+ // ShouldDisplayRevokeButton().
+ if (type_ == POST_INSTALL_PERMISSIONS_PROMPT &&
+ !ShouldDisplayRevokeButton()) {
+ return ui::DIALOG_BUTTON_CANCEL;
}
-
- return kButtons[type_];
+ return ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL;
}
base::string16 ExtensionInstallPrompt::Prompt::GetAcceptButtonLabel() const {
- int id = kAcceptButtonIds[type_];
-
- if (type_ == INSTALL_PROMPT || type_ == INLINE_INSTALL_PROMPT) {
- if (extension_->is_app())
- id = IDS_EXTENSION_INSTALL_PROMPT_ACCEPT_BUTTON_APP;
- else if (extension_->is_theme())
- id = IDS_EXTENSION_INSTALL_PROMPT_ACCEPT_BUTTON_THEME;
- else
- id = IDS_EXTENSION_INSTALL_PROMPT_ACCEPT_BUTTON_EXTENSION;
- } else if (type_ == EXTERNAL_INSTALL_PROMPT) {
- if (extension_->is_app())
- id = IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ACCEPT_BUTTON_APP;
- else if (extension_->is_theme())
- id = IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ACCEPT_BUTTON_THEME;
- else
- id = IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ACCEPT_BUTTON_EXTENSION;
- } else if (type_ == POST_INSTALL_PERMISSIONS_PROMPT) {
- if (GetRetainedFileCount() && GetRetainedDeviceCount()) {
- id =
- IDS_EXTENSION_PROMPT_PERMISSIONS_CLEAR_RETAINED_FILES_AND_DEVICES_BUTTON;
- } else if (GetRetainedFileCount()) {
- id = IDS_EXTENSION_PROMPT_PERMISSIONS_CLEAR_RETAINED_FILES_BUTTON;
- } else if (GetRetainedDeviceCount()) {
- id = IDS_EXTENSION_PROMPT_PERMISSIONS_CLEAR_RETAINED_DEVICES_BUTTON;
- }
- // If there are neither retained files nor devices, leave id 0 so there
- // will be no "accept" button.
- } else if (type_ == REMOTE_INSTALL_PROMPT) {
- if (extension_->is_app())
- id = IDS_EXTENSION_PROMPT_REMOTE_INSTALL_BUTTON_APP;
- else
- id = IDS_EXTENSION_PROMPT_REMOTE_INSTALL_BUTTON_EXTENSION;
- } else if (type_ == REPAIR_PROMPT) {
- if (extension_->is_app())
- id = IDS_EXTENSION_PROMPT_REPAIR_BUTTON_APP;
- else
- id = IDS_EXTENSION_PROMPT_REPAIR_BUTTON_EXTENSION;
+ int id = -1;
+ switch (type_) {
+ case INSTALL_PROMPT:
+ case INLINE_INSTALL_PROMPT:
+ if (extension_->is_app())
+ id = IDS_EXTENSION_INSTALL_PROMPT_ACCEPT_BUTTON_APP;
+ else if (extension_->is_theme())
+ id = IDS_EXTENSION_INSTALL_PROMPT_ACCEPT_BUTTON_THEME;
+ else
+ id = IDS_EXTENSION_INSTALL_PROMPT_ACCEPT_BUTTON_EXTENSION;
+ break;
+ case RE_ENABLE_PROMPT:
+ id = IDS_EXTENSION_PROMPT_RE_ENABLE_BUTTON;
+ break;
+ case PERMISSIONS_PROMPT:
+ id = IDS_EXTENSION_PROMPT_PERMISSIONS_BUTTON;
+ break;
+ case EXTERNAL_INSTALL_PROMPT:
+ if (extension_->is_app())
+ id = IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ACCEPT_BUTTON_APP;
+ else if (extension_->is_theme())
+ id = IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ACCEPT_BUTTON_THEME;
+ else
+ id = IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ACCEPT_BUTTON_EXTENSION;
+ break;
+ case POST_INSTALL_PERMISSIONS_PROMPT:
+ if (GetRetainedFileCount() && GetRetainedDeviceCount()) {
+ id =
+ IDS_EXTENSION_PROMPT_PERMISSIONS_CLEAR_RETAINED_FILES_AND_DEVICES_BUTTON;
+ } else if (GetRetainedFileCount()) {
+ id = IDS_EXTENSION_PROMPT_PERMISSIONS_CLEAR_RETAINED_FILES_BUTTON;
+ } else if (GetRetainedDeviceCount()) {
+ id = IDS_EXTENSION_PROMPT_PERMISSIONS_CLEAR_RETAINED_DEVICES_BUTTON;
+ }
+ // If there are neither retained files nor devices, leave id -1 so there
+ // will be no "accept" button.
+ break;
+ case REMOTE_INSTALL_PROMPT:
+ if (extension_->is_app())
+ id = IDS_EXTENSION_PROMPT_REMOTE_INSTALL_BUTTON_APP;
+ else
+ id = IDS_EXTENSION_PROMPT_REMOTE_INSTALL_BUTTON_EXTENSION;
+ break;
+ case REPAIR_PROMPT:
+ if (extension_->is_app())
+ id = IDS_EXTENSION_PROMPT_REPAIR_BUTTON_APP;
+ else
+ id = IDS_EXTENSION_PROMPT_REPAIR_BUTTON_EXTENSION;
+ break;
+ case DELEGATED_PERMISSIONS_PROMPT:
+ id = IDS_EXTENSION_PROMPT_INSTALL_BUTTON;
+ break;
+ case UNSET_PROMPT_TYPE:
+ case NUM_PROMPT_TYPES:
+ NOTREACHED();
}
- return id ? l10n_util::GetStringUTF16(id) : base::string16();
+
+ return id != -1 ? l10n_util::GetStringUTF16(id) : base::string16();
}
base::string16 ExtensionInstallPrompt::Prompt::GetAbortButtonLabel() const {
- return l10n_util::GetStringUTF16(kAbortButtonIds[type_]);
+ int id = -1;
+ switch (type_) {
+ case INSTALL_PROMPT:
+ case INLINE_INSTALL_PROMPT:
+ case RE_ENABLE_PROMPT:
+ case REMOTE_INSTALL_PROMPT:
+ case REPAIR_PROMPT:
+ case DELEGATED_PERMISSIONS_PROMPT:
+ id = IDS_CANCEL;
+ break;
+ case PERMISSIONS_PROMPT:
+ id = IDS_EXTENSION_PROMPT_PERMISSIONS_ABORT_BUTTON;
+ break;
+ case EXTERNAL_INSTALL_PROMPT:
+ id = IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ABORT_BUTTON;
+ break;
+ case POST_INSTALL_PERMISSIONS_PROMPT:
+ id = IDS_CLOSE;
+ break;
+ case UNSET_PROMPT_TYPE:
+ case NUM_PROMPT_TYPES:
+ NOTREACHED();
+ }
+
+ return l10n_util::GetStringUTF16(id);
}
base::string16 ExtensionInstallPrompt::Prompt::GetPermissionsHeading(
PermissionsType permissions_type) const {
switch (permissions_type) {
- case REGULAR_PERMISSIONS:
- return l10n_util::GetStringUTF16(kPermissionsHeaderIds[type_]);
+ case REGULAR_PERMISSIONS: {
+ int id = -1;
+ switch (type_) {
+ case INSTALL_PROMPT:
+ case INLINE_INSTALL_PROMPT:
+ case EXTERNAL_INSTALL_PROMPT:
+ case REMOTE_INSTALL_PROMPT:
+ case DELEGATED_PERMISSIONS_PROMPT:
+ id = IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO;
+ break;
+ case RE_ENABLE_PROMPT:
+ id = IDS_EXTENSION_PROMPT_WILL_NOW_HAVE_ACCESS_TO;
+ break;
+ case PERMISSIONS_PROMPT:
+ id = IDS_EXTENSION_PROMPT_WANTS_ACCESS_TO;
+ break;
+ case POST_INSTALL_PERMISSIONS_PROMPT:
+ case REPAIR_PROMPT:
+ id = IDS_EXTENSION_PROMPT_CAN_ACCESS;
+ break;
+ case UNSET_PROMPT_TYPE:
+ case NUM_PROMPT_TYPES:
+ NOTREACHED();
+ }
+ return l10n_util::GetStringUTF16(id);
+ }
case WITHHELD_PERMISSIONS:
return l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WITHHELD);
case ALL_PERMISSIONS:
- default:
NOTREACHED();
return base::string16();
}
+ NOTREACHED();
+ return base::string16();
}
base::string16 ExtensionInstallPrompt::Prompt::GetRetainedFilesHeading() const {
@@ -785,24 +806,7 @@ void ExtensionInstallPrompt::ShowConfirmation() {
}
}
- switch (prompt_->type()) {
- case PERMISSIONS_PROMPT:
- case RE_ENABLE_PROMPT:
- case INLINE_INSTALL_PROMPT:
- case EXTERNAL_INSTALL_PROMPT:
- case INSTALL_PROMPT:
- case POST_INSTALL_PERMISSIONS_PROMPT:
- case REMOTE_INSTALL_PROMPT:
- case REPAIR_PROMPT:
- case DELEGATED_PERMISSIONS_PROMPT: {
- prompt_->set_extension(extension_);
- break;
- }
- case LAUNCH_PROMPT_DEPRECATED:
- default:
- NOTREACHED() << "Unknown message";
- return;
- }
+ prompt_->set_extension(extension_);
prompt_->set_icon(gfx::Image::CreateFrom1xBitmap(icon_));
if (show_params_->WasParentDestroyed()) {
« no previous file with comments | « chrome/browser/extensions/extension_install_prompt.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698