Index: chrome/browser/content_settings/permission_context_base.cc |
diff --git a/chrome/browser/content_settings/permission_context_base.cc b/chrome/browser/content_settings/permission_context_base.cc |
index d4d5322e4649b89fc745f74b43849acde32dcae8..d80f3d413cc9b0b6fe91eae2028f3765f8c91b34 100644 |
--- a/chrome/browser/content_settings/permission_context_base.cc |
+++ b/chrome/browser/content_settings/permission_context_base.cc |
@@ -17,6 +17,7 @@ |
#include "components/content_settings/core/common/permission_request_id.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/web_contents.h" |
+#include "content/public/common/origin_util.h" |
PermissionContextBase::PermissionContextBase( |
Profile* profile, |
@@ -51,6 +52,11 @@ void PermissionContextBase::RequestPermission( |
ContentSetting PermissionContextBase::GetPermissionStatus( |
const GURL& requesting_origin, |
const GURL& embedding_origin) const { |
+ if (IsRestrictedToSecureOrigins() && |
+ !content::IsOriginSecure(requesting_origin)) { |
+ return CONTENT_SETTING_BLOCK; |
+ } |
+ |
return profile_->GetHostContentSettingsMap()->GetContentSetting( |
requesting_origin, embedding_origin, permission_type_, std::string()); |
} |
@@ -104,6 +110,13 @@ void PermissionContextBase::DecidePermission( |
return; |
} |
+ if (IsRestrictedToSecureOrigins() && |
+ !content::IsOriginSecure(requesting_origin)) { |
+ NotifyPermissionSet(id, requesting_origin, embedding_origin, callback, |
+ false /* persist */, CONTENT_SETTING_BLOCK); |
+ return; |
+ } |
+ |
ContentSetting content_setting = |
profile_->GetHostContentSettingsMap() |
->GetContentSettingAndMaybeUpdateLastUsage( |