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

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

Issue 7432006: Add an experimental permissions API for extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix clang Created 9 years, 5 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_ui.cc
diff --git a/chrome/browser/extensions/extension_install_ui.cc b/chrome/browser/extensions/extension_install_ui.cc
index 62d904a0326e3458b24024fce46ae0b7a2a0242b..bdbd8395385f7052b9611b65233058e7fdc83566 100644
--- a/chrome/browser/extensions/extension_install_ui.cc
+++ b/chrome/browser/extensions/extension_install_ui.cc
@@ -39,22 +39,32 @@
// static
const int ExtensionInstallUI::kTitleIds[NUM_PROMPT_TYPES] = {
IDS_EXTENSION_INSTALL_PROMPT_TITLE,
- IDS_EXTENSION_RE_ENABLE_PROMPT_TITLE
+ IDS_EXTENSION_RE_ENABLE_PROMPT_TITLE,
+ IDS_EXTENSION_PERMISSIONS_PROMPT_TITLE
};
// static
const int ExtensionInstallUI::kHeadingIds[NUM_PROMPT_TYPES] = {
IDS_EXTENSION_INSTALL_PROMPT_HEADING,
- IDS_EXTENSION_RE_ENABLE_PROMPT_HEADING
+ IDS_EXTENSION_RE_ENABLE_PROMPT_HEADING,
+ IDS_EXTENSION_PERMISSIONS_PROMPT_HEADING
};
// static
const int ExtensionInstallUI::kButtonIds[NUM_PROMPT_TYPES] = {
IDS_EXTENSION_PROMPT_INSTALL_BUTTON,
- IDS_EXTENSION_PROMPT_RE_ENABLE_BUTTON
+ IDS_EXTENSION_PROMPT_RE_ENABLE_BUTTON,
+ IDS_EXTENSION_PROMPT_PERMISSIONS_BUTTON
+};
+// static
+const int ExtensionInstallUI::kAbortButtonIds[NUM_PROMPT_TYPES] = {
+ 0,
+ 0,
+ IDS_EXTENSION_PROMPT_PERMISSIONS_ABORT_BUTTON
};
// static
const int ExtensionInstallUI::kWarningIds[NUM_PROMPT_TYPES] = {
IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO,
- IDS_EXTENSION_PROMPT_WILL_NOW_HAVE_ACCESS_TO
+ IDS_EXTENSION_PROMPT_WILL_NOW_HAVE_ACCESS_TO,
+ IDS_EXTENSION_PROMPT_WANTS_ACCESS_TO,
};
namespace {
@@ -112,6 +122,7 @@ void ExtensionInstallUI::ConfirmInstall(Delegate* delegate,
const Extension* extension) {
DCHECK(ui_loop_ == MessageLoop::current());
extension_ = extension;
+ permissions_ = extension->GetActivePermissions();
delegate_ = delegate;
// We special-case themes to not show any confirm UI. Instead they are
@@ -129,11 +140,24 @@ void ExtensionInstallUI::ConfirmReEnable(Delegate* delegate,
const Extension* extension) {
DCHECK(ui_loop_ == MessageLoop::current());
extension_ = extension;
+ permissions_ = extension->GetActivePermissions();
delegate_ = delegate;
ShowConfirmation(RE_ENABLE_PROMPT);
}
+void ExtensionInstallUI::ConfirmPermissions(
+ Delegate* delegate,
+ const Extension* extension,
+ const ExtensionPermissionSet* permissions) {
+ DCHECK(ui_loop_ == MessageLoop::current());
+ extension_ = extension;
+ permissions_ = permissions;
+ delegate_ = delegate;
+
+ ShowConfirmation(PERMISSIONS_PROMPT);
+}
+
void ExtensionInstallUI::OnInstallSuccess(const Extension* extension,
SkBitmap* icon) {
extension_ = extension;
@@ -193,6 +217,7 @@ void ExtensionInstallUI::OnImageLoaded(
SetIcon(image);
switch (prompt_type_) {
+ case PERMISSIONS_PROMPT:
case RE_ENABLE_PROMPT:
case INSTALL_PROMPT: {
// TODO(jcivelli): http://crbug.com/44771 We should not show an install
@@ -203,7 +228,7 @@ void ExtensionInstallUI::OnImageLoaded(
NotificationService::NoDetails());
std::vector<string16> warnings =
- extension_->GetPermissionMessageStrings();
+ permissions_->GetWarningMessages();
ShowExtensionInstallDialog(
profile_, delegate_, extension_, &icon_, warnings, prompt_type_);
break;
« no previous file with comments | « chrome/browser/extensions/extension_install_ui.h ('k') | chrome/browser/extensions/extension_management_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698