Chromium Code Reviews| 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..1ec1b55b1ea2afe107c936fe7c056f7ee91ab313 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,34 @@ 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|. |
| + InstallPromptPermissions& GetPermissionsToUse( |
|
Devlin
2014/09/11 21:18:53
nit: Let's actually change this "GetPermissionsFor
gpdavis
2014/09/12 00:11:53
Done.
|
| + 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 +435,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_; |