Chromium Code Reviews| Index: chrome/browser/ui/page_info/page_info.cc |
| diff --git a/chrome/browser/ui/page_info/page_info.cc b/chrome/browser/ui/page_info/page_info.cc |
| index d45117acce88cb60a7323d0ef9c2624e99fc6028..1a062389b1dc40dc406add438837022555b4d0e3 100644 |
| --- a/chrome/browser/ui/page_info/page_info.cc |
| +++ b/chrome/browser/ui/page_info/page_info.cc |
| @@ -32,6 +32,7 @@ |
| #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_decision_auto_blocker.h" |
| #include "chrome/browser/permissions/permission_manager.h" |
| #include "chrome/browser/permissions/permission_result.h" |
| #include "chrome/browser/permissions/permission_uma_util.h" |
| @@ -306,6 +307,22 @@ void PageInfo::OnSitePermissionChanged(ContentSettingsType type, |
| this->profile_, this->site_url_, this->site_url_, type, |
|
dominickn
2017/04/03 01:35:31
Nit: the this-> usage here and below is weird (onl
Patti Lor
2017/04/05 08:34:27
Sorry, I thought for some reason there was a reaso
|
| PermissionSourceUI::OIB); |
| + // If the setting was changed away from an embargo status (which will always |
| + // be BLOCK), clear the embargo. |
| + if (setting != CONTENT_SETTING_BLOCK && PermissionUtil::IsPermission(type)) { |
| + PermissionResult permission_result = |
| + PermissionManager::Get(profile_)->GetPermissionStatus( |
| + type, this->site_url_, this->site_url_); |
| + switch (permission_result.source) { |
| + case PermissionStatusSource::MULTIPLE_DISMISSALS: |
| + case PermissionStatusSource::SAFE_BROWSING_BLACKLIST: |
| + PermissionDecisionAutoBlocker::GetForProfile(profile_) |
| + ->RemoveEmbargoByURL(this->site_url_, type); |
| + break; |
| + default: |
| + break; |
| + } |
| + } |
| content_settings_->SetNarrowestContentSetting(site_url_, site_url_, type, |
| setting); |