Index: chrome/browser/extensions/extension_install_prompt.h |
diff --git a/chrome/browser/extensions/extension_install_prompt.h b/chrome/browser/extensions/extension_install_prompt.h |
index 54fa47ee81ca1b27736357dbdec3facab34f05e3..027ac2cd325790060865f0c87050f86532a9e8c4 100644 |
--- a/chrome/browser/extensions/extension_install_prompt.h |
+++ b/chrome/browser/extensions/extension_install_prompt.h |
@@ -80,9 +80,16 @@ class ExtensionInstallPrompt |
enum DetailsType { |
PERMISSIONS_DETAILS = 0, |
+ WITHHELD_PERMISSIONS_DETAILS, |
RETAINED_FILES_DETAILS, |
}; |
+ enum PermissionsType { |
+ REGULAR_PERMISSIONS = 0, |
+ WITHHELD_PERMISSIONS, |
+ ALL_PERMISSIONS, |
+ }; |
+ |
static std::string PromptTypeToString(PromptType type); |
// Extra information needed to display an installation or uninstallation |
@@ -96,9 +103,11 @@ class ExtensionInstallPrompt |
explicit Prompt(PromptType type); |
// Sets the permission list for this prompt. |
- void SetPermissions(const std::vector<base::string16>& permissions); |
+ void SetPermissions(const std::vector<base::string16>& permissions, |
+ PermissionsType permissions_type); |
// Sets the permission list details for this prompt. |
- void SetPermissionsDetails(const std::vector<base::string16>& details); |
+ void SetPermissionsDetails(const std::vector<base::string16>& details, |
+ PermissionsType permissions_type); |
void SetIsShowingDetails(DetailsType type, |
size_t index, |
bool is_showing_details); |
@@ -119,7 +128,8 @@ class ExtensionInstallPrompt |
base::string16 GetAcceptButtonLabel() const; |
bool HasAbortButtonLabel() const; |
base::string16 GetAbortButtonLabel() const; |
- base::string16 GetPermissionsHeading() const; |
+ base::string16 GetPermissionsHeading( |
+ PermissionsType permissions_type) const; |
base::string16 GetRetainedFilesHeading() const; |
bool ShouldShowPermissions() const; |
@@ -136,10 +146,13 @@ class ExtensionInstallPrompt |
void AppendRatingStars(StarAppender appender, void* data) const; |
base::string16 GetRatingCount() const; |
base::string16 GetUserCount() const; |
- size_t GetPermissionCount() const; |
- size_t GetPermissionsDetailsCount() const; |
- base::string16 GetPermission(size_t index) const; |
- base::string16 GetPermissionsDetails(size_t index) const; |
+ size_t GetPermissionCount(PermissionsType permissions_type) const; |
+ size_t GetPermissionsDetailsCount(PermissionsType permissions_type) const; |
+ base::string16 GetPermission(size_t index, |
+ PermissionsType permissions_type) const; |
+ base::string16 GetPermissionsDetails( |
+ size_t index, |
+ PermissionsType permissions_type) const; |
bool GetIsShowingDetails(DetailsType type, size_t index) const; |
size_t GetRetainedFileCount() const; |
base::string16 GetRetainedFile(size_t index) const; |
@@ -176,17 +189,35 @@ class ExtensionInstallPrompt |
private: |
friend class base::RefCountedThreadSafe<Prompt>; |
+ struct InstallPromptPermissions { |
+ InstallPromptPermissions(); |
+ ~InstallPromptPermissions(); |
+ |
+ std::vector<base::string16> permissions; |
+ std::vector<base::string16> details; |
+ std::vector<bool> is_showing_details; |
+ }; |
+ |
virtual ~Prompt(); |
+ // Returns the InstallPromptPermissions corresponding to |
+ // |permissions_type|. Comes in const and non-const flavors for both |
Devlin
2014/09/10 22:00:44
I think we can do without the const/non-const comm
gpdavis
2014/09/11 20:09:21
Ah, okay, fair enough.
|
+ // getters and setters of member data. |
+ InstallPromptPermissions& GetPermissionsToUse( |
+ PermissionsType permissions_type); |
+ const InstallPromptPermissions& GetPermissionsToUse( |
+ PermissionsType permissions_type) const; |
+ |
bool ShouldDisplayRevokeFilesButton() const; |
PromptType type_; |
// Permissions that are being requested (may not be all of an extension's |
// permissions if only additional ones are being requested) |
- std::vector<base::string16> permissions_; |
- std::vector<base::string16> details_; |
- std::vector<bool> is_showing_details_for_permissions_; |
+ InstallPromptPermissions prompt_permissions_; |
+ // Permissions that will be withheld upon install. |
+ InstallPromptPermissions withheld_prompt_permissions_; |
+ |
bool is_showing_details_for_retained_files_; |
// The extension or bundle being installed. |
@@ -405,8 +436,9 @@ class ExtensionInstallPrompt |
// The bundle we are showing the UI for, if type BUNDLE_INSTALL_PROMPT. |
const extensions::BundleInstaller* bundle_; |
- // The permissions being prompted for. |
- scoped_refptr<const extensions::PermissionSet> permissions_; |
+ // A custom set of permissions to show in the install prompt instead of the |
+ // extension's active permissions. |
+ scoped_refptr<const extensions::PermissionSet> custom_permissions_; |
// The object responsible for doing the UI specific actions. |
scoped_ptr<ExtensionInstallUI> install_ui_; |