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

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

Issue 1252073002: Move pref names and default value into WebsiteSettingsInfo (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@website-settings-registry-simple
Patch Set: Created 5 years, 4 months 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/content_settings_default_provider.cc
diff --git a/components/content_settings/core/browser/content_settings_default_provider.cc b/components/content_settings/core/browser/content_settings_default_provider.cc
index 6adccfd8285055f29cd90a3ead5e3ebc166f6915..8b6127c70959eaf23eda015a0310d5f6b8446a54 100644
--- a/components/content_settings/core/browser/content_settings_default_provider.cc
+++ b/components/content_settings/core/browser/content_settings_default_provider.cc
@@ -18,6 +18,8 @@
#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/plugins_field_trial.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.h"
#include "components/content_settings/core/common/content_settings_pattern.h"
#include "components/content_settings/core/common/pref_names.h"
@@ -35,58 +37,25 @@ const char kObsoleteDefaultContentSettings[] =
const char kObsoleteMigratedDefaultContentSettings[] =
"profile.migrated_default_content_settings";
-struct DefaultContentSettingInfo {
- // The profile preference associated with this default setting.
- const char* pref_name;
-
- // The default value of this default setting.
- const ContentSetting default_value;
-};
-
-// The corresponding preference and default value for each default content
-// setting. This array must be kept in sync with the enum |ContentSettingsType|.
-const DefaultContentSettingInfo kDefaultSettings[] = {
- {prefs::kDefaultCookiesSetting, CONTENT_SETTING_ALLOW},
- {prefs::kDefaultImagesSetting, CONTENT_SETTING_ALLOW},
- {prefs::kDefaultJavaScriptSetting, CONTENT_SETTING_ALLOW},
- {prefs::kDefaultPluginsSetting, CONTENT_SETTING_DEFAULT},
- {prefs::kDefaultPopupsSetting, CONTENT_SETTING_BLOCK},
- {prefs::kDefaultGeolocationSetting, CONTENT_SETTING_ASK},
- {prefs::kDefaultNotificationsSetting, CONTENT_SETTING_ASK},
- {prefs::kDefaultAutoSelectCertificateSetting, CONTENT_SETTING_DEFAULT},
- {prefs::kDefaultFullScreenSetting, CONTENT_SETTING_ASK},
- {prefs::kDefaultMouseLockSetting, CONTENT_SETTING_ASK},
- {prefs::kDefaultMixedScriptSetting, CONTENT_SETTING_DEFAULT},
- {prefs::kDefaultMediaStreamSetting, CONTENT_SETTING_ASK},
- {prefs::kDefaultMediaStreamMicSetting, CONTENT_SETTING_ASK},
- {prefs::kDefaultMediaStreamCameraSetting, CONTENT_SETTING_ASK},
- {prefs::kDefaultProtocolHandlersSetting, CONTENT_SETTING_DEFAULT},
- {prefs::kDefaultPpapiBrokerSetting, CONTENT_SETTING_ASK},
- {prefs::kDefaultAutomaticDownloadsSetting, CONTENT_SETTING_ASK},
- {prefs::kDefaultMidiSysexSetting, CONTENT_SETTING_ASK},
- {prefs::kDefaultPushMessagingSetting, CONTENT_SETTING_ASK},
- {prefs::kDefaultSSLCertDecisionsSetting, CONTENT_SETTING_ALLOW},
-#if defined(OS_WIN)
- {prefs::kDefaultMetroSwitchToDesktopSetting, CONTENT_SETTING_ASK},
-#elif defined(OS_ANDROID) || defined(OS_CHROMEOS)
- {prefs::kDefaultProtectedMediaIdentifierSetting, CONTENT_SETTING_ASK},
-#endif
- {prefs::kDefaultAppBannerSetting, CONTENT_SETTING_DEFAULT},
- {prefs::kDefaultSiteEngagementSetting, CONTENT_SETTING_DEFAULT},
- {prefs::kDefaultDurableStorageSetting, CONTENT_SETTING_ASK},
-};
-static_assert(arraysize(kDefaultSettings) == CONTENT_SETTINGS_NUM_TYPES,
- "kDefaultSettings should have CONTENT_SETTINGS_NUM_TYPES "
- "elements");
-
ContentSetting GetDefaultValue(ContentSettingsType type) {
if (type == CONTENT_SETTINGS_TYPE_PLUGINS)
return PluginsFieldTrial::GetDefaultPluginsContentSetting();
- return kDefaultSettings[type].default_value;
+
+ const WebsiteSettingsInfo* info =
+ WebsiteSettingsRegistry::GetInstance()->Get(type);
+ const base::Value* initial_default = info->initial_default_value();
+ if (!initial_default)
+ return CONTENT_SETTING_DEFAULT;
+ int result = 0;
+ bool success = initial_default->GetAsInteger(&result);
+ DCHECK(success);
+ return static_cast<ContentSetting>(result);
}
-const char* GetPrefName(ContentSettingsType type) {
- return kDefaultSettings[type].pref_name;
+const std::string& GetPrefName(ContentSettingsType type) {
+ return WebsiteSettingsRegistry::GetInstance()
+ ->Get(type)
+ ->default_value_pref_name();
}
class DefaultRuleIterator : public RuleIterator {
« no previous file with comments | « chrome/common/extensions/api/content_settings.json ('k') | components/content_settings/core/browser/content_settings_pref.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698