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..4921335075226288bf96bf24ed6f4a71c46d6f67 100644 |
--- a/chrome/browser/ui/website_settings/website_settings.cc |
+++ b/chrome/browser/ui/website_settings/website_settings.cc |
@@ -32,6 +32,8 @@ |
#include "chrome/browser/history/history_service_factory.h" |
#include "chrome/browser/infobars/infobar_service.h" |
#include "chrome/browser/permissions/chooser_context_base.h" |
+#include "chrome/browser/permissions/permission_manager.h" |
+#include "chrome/browser/permissions/permission_result.h" |
#include "chrome/browser/permissions/permission_uma_util.h" |
#include "chrome/browser/permissions/permission_util.h" |
#include "chrome/browser/profiles/profile.h" |
@@ -56,6 +58,7 @@ |
#include "components/strings/grit/components_strings.h" |
#include "components/url_formatter/elide_url.h" |
#include "content/public/browser/browser_thread.h" |
+#include "content/public/browser/permission_type.h" |
#include "content/public/browser/user_metrics.h" |
#include "content/public/common/content_switches.h" |
#include "content/public/common/url_constants.h" |
@@ -674,6 +677,24 @@ void WebsiteSettings::PresentSitePermissions() { |
NULL); |
} |
+ // For permissions that are still prompting the user and haven't been |
+ // explicitly set by another source, check its embargo status. |
+ content::PermissionType unused = content::PermissionType::NUM; |
+ if (PermissionUtil::GetPermissionType(permission_info.type, &unused) && |
+ permission_info.setting == CONTENT_SETTING_DEFAULT && |
+ permission_info.source == |
+ content_settings::SettingSource::SETTING_SOURCE_USER) { |
+ PermissionResult permission_result = |
+ PermissionManager::Get(profile_)->GetPermissionStatus( |
+ permission_info.type, site_url_, site_url_); |
+ |
+ // If under embargo, update |permission_info| to reflect that. |
+ if (permission_result.content_setting == CONTENT_SETTING_BLOCK && |
+ permission_result.source != PermissionStatusSource::UNSPECIFIED) { |
dominickn
2017/03/05 23:03:25
For consistency with what I've done on Android (cr
Patti Lor
2017/03/06 00:40:16
Done.
|
+ permission_info.setting = permission_result.content_setting; |
+ } |
+ } |
+ |
permission_info_list.push_back(permission_info); |
} |