summaryrefslogtreecommitdiffstats
path: root/chrome/browser/content_settings
diff options
context:
space:
mode:
authormarkusheintz@chromium.org <markusheintz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-02 12:55:32 +0000
committermarkusheintz@chromium.org <markusheintz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-02 12:55:32 +0000
commit82d3b399a5442ed93c7c03ba81acb6c92fd7fea7 (patch)
treed976f84b2ddd3b30fb6e4e1c429fe88bd166038a /chrome/browser/content_settings
parentc651e1061d1a70cfb4aa7541ef4285f077a99ead (diff)
downloadchromium_src-82d3b399a5442ed93c7c03ba81acb6c92fd7fea7.zip
chromium_src-82d3b399a5442ed93c7c03ba81acb6c92fd7fea7.tar.gz
chromium_src-82d3b399a5442ed93c7c03ba81acb6c92fd7fea7.tar.bz2
Don't set a default Value for content settigns type AutoSelectCertificate
BUG=106149 TEST=DefaultProviderTest* Review URL: http://codereview.chromium.org/8776044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112680 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/content_settings')
-rw-r--r--chrome/browser/content_settings/content_settings_default_provider.cc7
-rw-r--r--chrome/browser/content_settings/content_settings_default_provider_unittest.cc9
2 files changed, 14 insertions, 2 deletions
diff --git a/chrome/browser/content_settings/content_settings_default_provider.cc b/chrome/browser/content_settings/content_settings_default_provider.cc
index f330b70..c9987a0 100644
--- a/chrome/browser/content_settings/content_settings_default_provider.cc
+++ b/chrome/browser/content_settings/content_settings_default_provider.cc
@@ -55,7 +55,8 @@ namespace {
class DefaultRuleIterator : public RuleIterator {
public:
explicit DefaultRuleIterator(const base::Value* value) {
- value_.reset(value->DeepCopy());
+ if (value)
+ value_.reset(value->DeepCopy());
}
bool HasNext() const {
@@ -316,9 +317,11 @@ void DefaultProvider::ReadDefaultSettings(bool overwrite) {
void DefaultProvider::ForceDefaultsToBeExplicit() {
for (int i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i) {
ContentSettingsType type = ContentSettingsType(i);
- if (!default_settings_[type].get())
+ if (!default_settings_[type].get() &&
+ kDefaultSettings[i] != CONTENT_SETTING_DEFAULT) {
default_settings_[type].reset(
Value::CreateIntegerValue(kDefaultSettings[i]));
+ }
}
}
diff --git a/chrome/browser/content_settings/content_settings_default_provider_unittest.cc b/chrome/browser/content_settings/content_settings_default_provider_unittest.cc
index e14c8c5..2863add 100644
--- a/chrome/browser/content_settings/content_settings_default_provider_unittest.cc
+++ b/chrome/browser/content_settings/content_settings_default_provider_unittest.cc
@@ -78,6 +78,15 @@ TEST_F(DefaultProviderTest, DefaultValues) {
CONTENT_SETTINGS_TYPE_GEOLOCATION,
std::string(),
false));
+
+ scoped_ptr<base::Value> value(
+ GetContentSettingValue(&provider_,
+ GURL("http://example.com/"),
+ GURL("http://example.com/"),
+ CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE,
+ std::string(),
+ false));
+ EXPECT_FALSE(value.get());
}
TEST_F(DefaultProviderTest, IgnoreNonDefaultSettings) {