| Index: chrome/browser/ui/website_settings/website_settings.cc
|
| diff --git a/chrome/browser/ui/website_settings/website_settings.cc b/chrome/browser/ui/website_settings/website_settings.cc
|
| index a8549dddb7e8f68511f29b23c857127dbecb6272..0e51b6a6040048b4cec3917dd80c7b63a43bd3f9 100644
|
| --- a/chrome/browser/ui/website_settings/website_settings.cc
|
| +++ b/chrome/browser/ui/website_settings/website_settings.cc
|
| @@ -11,6 +11,7 @@
|
| #include <vector>
|
|
|
| #include "base/command_line.h"
|
| +#include "base/feature_list.h"
|
| #include "base/i18n/time_formatting.h"
|
| #include "base/macros.h"
|
| #include "base/memory/ptr_util.h"
|
| @@ -83,6 +84,10 @@ using content::BrowserThread;
|
|
|
| namespace {
|
|
|
| +// TODO(crbug.com/698469): Remove kPageInfoAlwaysShowAllPermissions
|
| +const base::Feature kPageInfoAlwaysShowAllPermissions{
|
| + "PageInfoAlwaysShowAllPermissions", base::FEATURE_DISABLED_BY_DEFAULT};
|
| +
|
| // Events for UMA. Do not reorder or change!
|
| enum SSLCertificateDecisionsDidRevoke {
|
| USER_CERT_DECISIONS_NOT_REVOKED = 0,
|
| @@ -204,6 +209,25 @@ WebsiteSettings::ChooserUIInfo kChooserUIInfo[] = {
|
| IDS_WEBSITE_SETTINGS_DELETE_USB_DEVICE, "name"},
|
| };
|
|
|
| +// Show a permission unless the following conditions hold:
|
| +// - Its current value is ASK or DEFAULT.
|
| +// - Its built-in default value is ASK.
|
| +bool ShouldShowPermission(WebsiteSettingsUI::PermissionInfo permission_info) {
|
| + if (base::FeatureList::IsEnabled(kPageInfoAlwaysShowAllPermissions))
|
| + return true;
|
| +
|
| + if (permission_info.default_setting != CONTENT_SETTING_ASK)
|
| + return true;
|
| +
|
| + switch (permission_info.setting) {
|
| + case CONTENT_SETTING_DEFAULT:
|
| + case CONTENT_SETTING_ASK:
|
| + return false;
|
| + default:
|
| + return true;
|
| + }
|
| +}
|
| +
|
| } // namespace
|
|
|
| WebsiteSettings::WebsiteSettings(
|
| @@ -674,7 +698,9 @@ void WebsiteSettings::PresentSitePermissions() {
|
| NULL);
|
| }
|
|
|
| - permission_info_list.push_back(permission_info);
|
| + if (ShouldShowPermission(permission_info)) {
|
| + permission_info_list.push_back(permission_info);
|
| + }
|
| }
|
|
|
| for (const ChooserUIInfo& ui_info : kChooserUIInfo) {
|
|
|