Making the extension permissions dialog scrollable, when needed (adding expandable sections for things needing more details).
BUG=70422
[email protected], [email protected], [email protected]
Review URL: https://codereview.chromium.org/18854021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211218 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/extension_install_prompt.cc b/chrome/browser/extensions/extension_install_prompt.cc
index 9faaa3a3..fea62b0e 100644
--- a/chrome/browser/extensions/extension_install_prompt.cc
+++ b/chrome/browser/extensions/extension_install_prompt.cc
@@ -202,6 +202,11 @@
permissions_ = permissions;
}
+void ExtensionInstallPrompt::Prompt::SetPermissionsDetails(
+ const std::vector<string16>& details) {
+ details_ = details;
+}
+
void ExtensionInstallPrompt::Prompt::SetOAuthIssueAdvice(
const IssueAdviceInfo& issue_advice) {
oauth_issue_advice_ = issue_advice;
@@ -316,9 +321,18 @@
}
string16 ExtensionInstallPrompt::Prompt::GetRetainedFilesHeading() const {
+ // TODO(finnur): Remove this once all platforms are using
+ // GetRetainedFilesHeadingWithCount().
return l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_RETAINED_FILES);
}
+string16
+ExtensionInstallPrompt::Prompt::GetRetainedFilesHeadingWithCount() const {
+ return l10n_util::GetStringFUTF16(
+ IDS_EXTENSION_PROMPT_RETAINED_FILES_WITH_COUNT,
+ base::IntToString16(GetRetainedFileCount()));
+}
+
bool ExtensionInstallPrompt::Prompt::ShouldShowPermissions() const {
return GetPermissionCount() > 0 || type_ == POST_INSTALL_PERMISSIONS_PROMPT;
}
@@ -370,11 +384,21 @@
return permissions_.size();
}
+size_t ExtensionInstallPrompt::Prompt::GetPermissionsDetailsCount() const {
+ return details_.size();
+}
+
string16 ExtensionInstallPrompt::Prompt::GetPermission(size_t index) const {
CHECK_LT(index, permissions_.size());
return permissions_[index];
}
+string16 ExtensionInstallPrompt::Prompt::GetPermissionsDetails(
+ size_t index) const {
+ CHECK_LT(index, details_.size());
+ return details_[index];
+}
+
size_t ExtensionInstallPrompt::Prompt::GetOAuthIssueCount() const {
return oauth_issue_advice_.size();
}
@@ -719,7 +743,10 @@
extension_))) {
Manifest::Type extension_type = extension_ ?
extension_->GetType() : Manifest::TYPE_UNKNOWN;
- prompt_.SetPermissions(permissions_->GetWarningMessages(extension_type));
+ prompt_.SetPermissions(
+ permissions_->GetWarningMessages(extension_type));
+ prompt_.SetPermissionsDetails(
+ permissions_->GetWarningMessagesDetails(extension_type));
}
switch (prompt_.type()) {