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

Unified Diff: components/content_settings/core/browser/website_settings_registry.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/website_settings_registry.cc
diff --git a/components/content_settings/core/browser/website_settings_registry.cc b/components/content_settings/core/browser/website_settings_registry.cc
index c59c32e0476804c0314dacfcf61943e8b26bc2ba..fe2e04891e800a76e75a9c97cd69146de24ac7f8 100644
--- a/components/content_settings/core/browser/website_settings_registry.cc
+++ b/components/content_settings/core/browser/website_settings_registry.cc
@@ -5,6 +5,8 @@
#include "components/content_settings/core/browser/website_settings_registry.h"
#include "base/logging.h"
+#include "base/values.h"
+#include "components/content_settings/core/common/content_settings.h"
namespace {
@@ -27,39 +29,66 @@ WebsiteSettingsRegistry::WebsiteSettingsRegistry() {
// location. It should be possible to register a setting from the code
// associated with it.
- Register(CONTENT_SETTINGS_TYPE_COOKIES, "cookies");
- Register(CONTENT_SETTINGS_TYPE_IMAGES, "images");
- Register(CONTENT_SETTINGS_TYPE_JAVASCRIPT, "javascript");
- Register(CONTENT_SETTINGS_TYPE_PLUGINS, "plugins");
- Register(CONTENT_SETTINGS_TYPE_POPUPS, "popups");
- Register(CONTENT_SETTINGS_TYPE_GEOLOCATION, "geolocation");
- Register(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, "notifications");
- Register(CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE,
- "auto-select-certificate");
- Register(CONTENT_SETTINGS_TYPE_FULLSCREEN, "fullscreen");
- Register(CONTENT_SETTINGS_TYPE_MOUSELOCK, "mouselock");
- Register(CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, "mixed-script");
- Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM, "media-stream");
- Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, "media-stream-mic");
- Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, "media-stream-camera");
- Register(CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS,
- "register-protocol-handler");
- Register(CONTENT_SETTINGS_TYPE_PPAPI_BROKER, "ppapi-broker");
- Register(CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS,
- "multiple-automatic-downloads");
- Register(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, "midi-sysex");
- Register(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, "push-messaging");
- Register(CONTENT_SETTINGS_TYPE_SSL_CERT_DECISIONS, "ssl-cert-decisions");
+ // WARNING: The string names of the permissions passed in below are used to
+ // generate preference names and should never be changed!
+
+ // Content settings (those with allow/block/ask/etc. values).
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_COOKIES, "cookies",
+ CONTENT_SETTING_ALLOW);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_IMAGES, "images",
+ CONTENT_SETTING_ALLOW);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT, "javascript",
+ CONTENT_SETTING_ALLOW);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS, "plugins",
+ CONTENT_SETTING_DEFAULT);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_POPUPS, "popups",
+ CONTENT_SETTING_BLOCK);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION, "geolocation",
+ CONTENT_SETTING_ASK);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, "notifications",
+ CONTENT_SETTING_ASK);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_FULLSCREEN, "fullscreen",
+ CONTENT_SETTING_ASK);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_MOUSELOCK, "mouselock",
+ CONTENT_SETTING_ASK);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, "mixed-script",
+ CONTENT_SETTING_DEFAULT);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC,
+ "media-stream-mic", CONTENT_SETTING_ASK);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA,
+ "media-stream-camera", CONTENT_SETTING_ASK);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS,
+ "protocol-handler", CONTENT_SETTING_DEFAULT);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_PPAPI_BROKER, "ppapi-broker",
+ CONTENT_SETTING_ASK);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS,
+ "automatic-downloads", CONTENT_SETTING_ASK);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, "midi-sysex",
+ CONTENT_SETTING_ASK);
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, "push-messaging",
+ CONTENT_SETTING_ASK);
+#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER,
+ "protected-media-identifier", CONTENT_SETTING_ASK);
+#endif
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_DURABLE_STORAGE,
+ "durable-storage", CONTENT_SETTING_ASK);
+
+ // Website settings.
+ RegisterWebsiteSetting(CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE,
+ "auto-select-certificate");
+ RegisterWebsiteSetting(CONTENT_SETTINGS_TYPE_SSL_CERT_DECISIONS,
+ "ssl-cert-decisions");
+ RegisterWebsiteSetting(CONTENT_SETTINGS_TYPE_APP_BANNER, "app-banner");
+ RegisterWebsiteSetting(CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT,
+ "site-engagement");
+
+ // Deprecated.
+ RegisterWebsiteSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM, "media-stream");
#if defined(OS_WIN)
- Register(CONTENT_SETTINGS_TYPE_METRO_SWITCH_TO_DESKTOP,
- "metro-switch-to-desktop");
-#elif defined(OS_ANDROID) || defined(OS_CHROMEOS)
- Register(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER,
- "protected-media-identifier");
+ RegisterContentSetting(CONTENT_SETTINGS_TYPE_METRO_SWITCH_TO_DESKTOP,
+ "metro-switch-to-desktop", CONTENT_SETTING_ASK);
#endif
- Register(CONTENT_SETTINGS_TYPE_APP_BANNER, "app-banner");
- Register(CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, "site-engagement");
- Register(CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, "durable-storage");
}
WebsiteSettingsRegistry::~WebsiteSettingsRegistry() {}
@@ -80,11 +109,26 @@ const WebsiteSettingsInfo* WebsiteSettingsRegistry::GetByName(
return nullptr;
}
-void WebsiteSettingsRegistry::Register(ContentSettingsType type,
- const std::string& name) {
- DCHECK_GE(type, 0);
- DCHECK_LT(type, static_cast<int>(website_settings_info_.size()));
- website_settings_info_[type] = new WebsiteSettingsInfo(type, name);
+void WebsiteSettingsRegistry::RegisterWebsiteSetting(ContentSettingsType type,
+ const std::string& name) {
+ StoreWebsiteSettingsInfo(new WebsiteSettingsInfo(type, name, nullptr));
+}
+
+void WebsiteSettingsRegistry::RegisterContentSetting(
+ ContentSettingsType type,
+ const std::string& name,
+ ContentSetting initial_default_value) {
+ scoped_ptr<base::Value> default_value(
+ new base::FundamentalValue(static_cast<int>(initial_default_value)));
+ StoreWebsiteSettingsInfo(
+ new WebsiteSettingsInfo(type, name, default_value.Pass()));
+}
+
+void WebsiteSettingsRegistry::StoreWebsiteSettingsInfo(
+ WebsiteSettingsInfo* info) {
+ DCHECK_GE(info->type(), 0);
+ DCHECK_LT(info->type(), static_cast<int>(website_settings_info_.size()));
+ website_settings_info_[info->type()] = info;
}
} // namespace content_settings

Powered by Google App Engine
This is Rietveld 408576698