| 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..9573eb54ad41a2adc15a3ac3f50427c4ec6f97d4 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& GetPermissionsForType(
|
| + PermissionsType permissions_type);
|
| + const InstallPromptPermissions& GetPermissionsForType(
|
| + 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_;
|
|
|