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

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

Issue 501273002: Update extension install prompt to reflect withheld permissions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cocoa changes Created 6 years, 3 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.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 {
Finnur 2014/09/15 11:45:28 Can you document these two enums?
gpdavis 2014/09/15 20:04:07 Sure thing. I'm not really sure what to say about
+ 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_;

Powered by Google App Engine
This is Rietveld 408576698