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

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

Issue 11150002: New post-sideload UI: (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 2 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
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 a6af0293cf4736757e38a02545c4ce9f7a85b393..ceaddf051c84b20dfec953d829427b0acf70ebd3 100644
--- a/chrome/browser/extensions/extension_install_prompt.cc
+++ b/chrome/browser/extensions/extension_install_prompt.cc
@@ -44,33 +44,39 @@ using extensions::BundleInstaller;
using extensions::Extension;
using extensions::PermissionSet;
+namespace {
+
static const int kTitleIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = {
0, // The regular install prompt depends on what's being installed.
IDS_EXTENSION_INLINE_INSTALL_PROMPT_TITLE,
IDS_EXTENSION_INSTALL_PROMPT_TITLE,
IDS_EXTENSION_RE_ENABLE_PROMPT_TITLE,
- IDS_EXTENSION_PERMISSIONS_PROMPT_TITLE
+ IDS_EXTENSION_PERMISSIONS_PROMPT_TITLE,
+ IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_TITLE,
};
static const int kHeadingIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = {
IDS_EXTENSION_INSTALL_PROMPT_HEADING,
0, // Inline installs use the extension name.
0, // Heading for bundle installs depends on the bundle contents.
IDS_EXTENSION_RE_ENABLE_PROMPT_HEADING,
- IDS_EXTENSION_PERMISSIONS_PROMPT_HEADING
+ IDS_EXTENSION_PERMISSIONS_PROMPT_HEADING,
+ IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_HEADING,
};
static const int kAcceptButtonIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = {
IDS_EXTENSION_PROMPT_INSTALL_BUTTON,
IDS_EXTENSION_PROMPT_INSTALL_BUTTON,
IDS_EXTENSION_PROMPT_INSTALL_BUTTON,
IDS_EXTENSION_PROMPT_RE_ENABLE_BUTTON,
- IDS_EXTENSION_PROMPT_PERMISSIONS_BUTTON
+ IDS_EXTENSION_PROMPT_PERMISSIONS_BUTTON,
+ IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ACCEPT_BUTTON,
};
static const int kAbortButtonIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = {
0, // These all use the platform's default cancel label.
0,
0,
0,
- IDS_EXTENSION_PROMPT_PERMISSIONS_ABORT_BUTTON
+ IDS_EXTENSION_PROMPT_PERMISSIONS_ABORT_BUTTON,
+ IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ABORT_BUTTON,
};
static const int kPermissionsHeaderIds[
ExtensionInstallPrompt::NUM_PROMPT_TYPES] = {
@@ -79,18 +85,17 @@ static const int kPermissionsHeaderIds[
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,
};
-static const int kOAuthHeaderIds[
- ExtensionInstallPrompt::NUM_PROMPT_TYPES] = {
+static const int kOAuthHeaderIds[ExtensionInstallPrompt::NUM_PROMPT_TYPES] = {
IDS_EXTENSION_PROMPT_OAUTH_HEADER,
0, // Inline installs don't show OAuth permissions.
0, // Bundle installs don't show OAuth permissions.
IDS_EXTENSION_PROMPT_OAUTH_REENABLE_HEADER,
IDS_EXTENSION_PROMPT_OAUTH_PERMISSIONS_HEADER,
+ 0, // TODO(mpcomplete): Do we need this for external install UI?
Jeffrey Yasskin 2012/10/13 21:17:35 I'd assume external extensions can ask for oauth p
};
-namespace {
-
// Size of extension icon in top left of dialog.
const int kIconSize = 69;
@@ -196,6 +201,9 @@ string16 ExtensionInstallPrompt::Prompt::GetDialogTitle() const {
resource_id = IDS_EXTENSION_INSTALL_THEME_PROMPT_TITLE;
else
resource_id = IDS_EXTENSION_INSTALL_EXTENSION_PROMPT_TITLE;
+ } else if (type_ == EXTERNAL_INSTALL_PROMPT) {
+ return l10n_util::GetStringFUTF16(
+ resource_id, UTF8ToUTF16(extension_->name()));
}
return l10n_util::GetStringUTF16(resource_id);
@@ -206,6 +214,8 @@ string16 ExtensionInstallPrompt::Prompt::GetHeading() const {
return UTF8ToUTF16(extension_->name());
} else if (type_ == BUNDLE_INSTALL_PROMPT) {
return bundle_->GetHeadingTextFor(BundleInstaller::Item::STATE_PENDING);
+ } else if (type_ == EXTERNAL_INSTALL_PROMPT) {
+ return l10n_util::GetStringUTF16(kHeadingIds[type_]);
} else {
return l10n_util::GetStringFUTF16(
kHeadingIds[type_], UTF8ToUTF16(extension_->name()));
@@ -433,6 +443,19 @@ void ExtensionInstallPrompt::ConfirmReEnable(Delegate* delegate,
LoadImageIfNeeded();
}
+void ExtensionInstallPrompt::ConfirmExternalInstall(
+ Delegate* delegate, const Extension* extension) {
+ DCHECK(ui_loop_ == MessageLoop::current());
+ extension_ = extension;
+ permissions_ = extension->GetActivePermissions();
+ delegate_ = delegate;
+ prompt_type_ = EXTERNAL_INSTALL_PROMPT;
+ show_dialog_callback_ = // @@@MP
Matt Perry 2012/10/13 00:33:18 I'll remove this once http://codereview.chromium.o
+ ExtensionInstallPrompt::GetDefaultShowDialogCallback();
+
+ LoadImageIfNeeded();
Jeffrey Yasskin 2012/10/13 21:17:35 Wow, that's a subtle name for the "go show the dia
+}
+
void ExtensionInstallPrompt::ConfirmPermissions(
Delegate* delegate,
const Extension* extension,
@@ -572,6 +595,7 @@ void ExtensionInstallPrompt::ShowConfirmation() {
case PERMISSIONS_PROMPT:
case RE_ENABLE_PROMPT:
case INLINE_INSTALL_PROMPT:
+ case EXTERNAL_INSTALL_PROMPT:
case INSTALL_PROMPT: {
prompt_.set_extension(extension_);
prompt_.set_icon(gfx::Image(icon_));

Powered by Google App Engine
This is Rietveld 408576698