Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(867)

Unified Diff: components/content_settings/core/browser/host_content_settings_map.cc

Issue 1442083002: Stop inheriting push notification permissions from regular to incognito (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed mvanouwerkerk's review comments Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/content_settings/core/browser/host_content_settings_map.cc
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
index 3887bb5f009c70b618a978e6969b8fc4723eba76..d125dab4fd742e8abcbfe25adf9c37b1538038ed 100644
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
@@ -23,6 +23,7 @@
#include "components/content_settings/core/browser/content_settings_registry.h"
#include "components/content_settings/core/browser/content_settings_rule.h"
#include "components/content_settings/core/browser/content_settings_utils.h"
+#include "components/content_settings/core/browser/website_settings_info.h"
#include "components/content_settings/core/browser/website_settings_registry.h"
#include "components/content_settings/core/common/content_settings_pattern.h"
#include "components/content_settings/core/common/pref_names.h"
@@ -146,8 +147,16 @@ ContentSetting HostContentSettingsMap::GetDefaultContentSettingFromProvider(
ContentSetting HostContentSettingsMap::GetDefaultContentSetting(
ContentSettingsType content_type,
std::string* provider_id) const {
+ using content_settings::WebsiteSettingsInfo;
msramek 2015/11/27 16:30:04 Nit: Is this allowed? I have seen it in tests and
raymes 2015/11/30 00:28:46 This was a suggestion from Michael. Either way is
johnme 2015/11/30 14:56:58 Done.
johnme 2015/11/30 14:56:58 Done.
+ using content_settings::WebsiteSettingsRegistry;
UsedContentSettingsProviders();
+ const WebsiteSettingsRegistry* reg = WebsiteSettingsRegistry::GetInstance();
+ bool do_not_inherit_allow =
+ is_off_the_record_ &&
+ reg->Get(content_type)->incognito_behavior()
+ == WebsiteSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW;
+
// Iterate through the list of providers and return the first non-NULL value
// that matches |primary_url| and |secondary_url|.
for (ConstProviderIterator provider = content_settings_providers_.begin();
@@ -157,6 +166,8 @@ ContentSetting HostContentSettingsMap::GetDefaultContentSetting(
continue;
ContentSetting default_setting =
GetDefaultContentSettingFromProvider(content_type, provider->second);
+ if (do_not_inherit_allow && default_setting == CONTENT_SETTING_ALLOW)
+ default_setting = CONTENT_SETTING_ASK;
msramek 2015/11/27 16:30:04 DCHECK ContentSettingsInfo::IsSettingValid(ASK) S
raymes 2015/11/30 00:28:46 +1
johnme 2015/11/30 14:56:58 Done.
johnme 2015/11/30 14:56:58 Done.
if (default_setting != CONTENT_SETTING_DEFAULT) {
if (provider_id)
*provider_id = kProviderNamesSourceMap[provider->first].provider_name;
@@ -654,7 +665,7 @@ scoped_ptr<base::Value> HostContentSettingsMap::GetWebsiteSettingInternal(
provider != content_settings_providers_.end();
++provider) {
- scoped_ptr<base::Value> value(
+ scoped_ptr<base::Value> value =
content_settings::GetContentSettingValueAndPatterns(provider->second,
primary_url,
secondary_url,
@@ -662,7 +673,7 @@ scoped_ptr<base::Value> HostContentSettingsMap::GetWebsiteSettingInternal(
resource_identifier,
is_off_the_record_,
primary_pattern,
- secondary_pattern));
+ secondary_pattern);
if (value) {
if (info)
info->source = kProviderNamesSourceMap[provider->first].provider_source;

Powered by Google App Engine
This is Rietveld 408576698