OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/content_settings/core/browser/content_settings_registry.h" | 5 #include "components/content_settings/core/browser/content_settings_registry.h" |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 #include "components/content_settings/core/browser/content_settings_utils.h" | 10 #include "components/content_settings/core/browser/content_settings_utils.h" |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
111 // associated with it. | 111 // associated with it. |
112 | 112 |
113 // WARNING: The string names of the permissions passed in below are used to | 113 // WARNING: The string names of the permissions passed in below are used to |
114 // generate preference names and should never be changed! | 114 // generate preference names and should never be changed! |
115 | 115 |
116 Register(CONTENT_SETTINGS_TYPE_COOKIES, "cookies", CONTENT_SETTING_ALLOW, | 116 Register(CONTENT_SETTINGS_TYPE_COOKIES, "cookies", CONTENT_SETTING_ALLOW, |
117 WebsiteSettingsInfo::SYNCABLE, | 117 WebsiteSettingsInfo::SYNCABLE, |
118 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 118 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
119 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 119 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
120 CONTENT_SETTING_SESSION_ONLY), | 120 CONTENT_SETTING_SESSION_ONLY), |
121 WebsiteSettingsInfo::REQUESTING_DOMAIN_ONLY_SCOPE); | 121 WebsiteSettingsInfo::REQUESTING_DOMAIN_ONLY_SCOPE, |
122 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
122 | 123 |
123 Register(CONTENT_SETTINGS_TYPE_IMAGES, "images", CONTENT_SETTING_ALLOW, | 124 Register(CONTENT_SETTINGS_TYPE_IMAGES, "images", CONTENT_SETTING_ALLOW, |
124 WebsiteSettingsInfo::SYNCABLE, | 125 WebsiteSettingsInfo::SYNCABLE, |
125 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, | 126 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, |
126 kExtensionScheme), | 127 kExtensionScheme), |
127 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), | 128 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
128 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE); | 129 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
130 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
129 | 131 |
130 Register(CONTENT_SETTINGS_TYPE_JAVASCRIPT, "javascript", | 132 Register(CONTENT_SETTINGS_TYPE_JAVASCRIPT, "javascript", |
131 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::SYNCABLE, | 133 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::SYNCABLE, |
132 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, | 134 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, |
133 kExtensionScheme), | 135 kExtensionScheme), |
134 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), | 136 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
135 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE); | 137 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
138 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
136 | 139 |
137 Register(CONTENT_SETTINGS_TYPE_PLUGINS, "plugins", | 140 Register(CONTENT_SETTINGS_TYPE_PLUGINS, "plugins", |
138 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT, | 141 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT, |
139 WebsiteSettingsInfo::SYNCABLE, | 142 WebsiteSettingsInfo::SYNCABLE, |
140 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 143 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
141 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 144 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
142 CONTENT_SETTING_ASK, | 145 CONTENT_SETTING_ASK, |
143 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT), | 146 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT), |
144 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE); | 147 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
148 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
145 | 149 |
146 Register(CONTENT_SETTINGS_TYPE_POPUPS, "popups", CONTENT_SETTING_BLOCK, | 150 Register(CONTENT_SETTINGS_TYPE_POPUPS, "popups", CONTENT_SETTING_BLOCK, |
147 WebsiteSettingsInfo::SYNCABLE, | 151 WebsiteSettingsInfo::SYNCABLE, |
148 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, | 152 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, |
149 kExtensionScheme), | 153 kExtensionScheme), |
150 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), | 154 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
151 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE); | 155 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
156 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
152 | 157 |
153 Register(CONTENT_SETTINGS_TYPE_GEOLOCATION, "geolocation", | 158 Register(CONTENT_SETTINGS_TYPE_GEOLOCATION, "geolocation", |
154 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 159 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
155 WhitelistedSchemes(), | 160 WhitelistedSchemes(), |
156 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 161 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
157 CONTENT_SETTING_ASK), | 162 CONTENT_SETTING_ASK), |
158 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE); | 163 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
164 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
159 | 165 |
160 Register(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, "notifications", | 166 Register(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, "notifications", |
161 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 167 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
162 WhitelistedSchemes(), | 168 WhitelistedSchemes(), |
163 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 169 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
164 CONTENT_SETTING_ASK), | 170 CONTENT_SETTING_ASK), |
165 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE); | 171 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
172 ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW); | |
166 | 173 |
167 Register(CONTENT_SETTINGS_TYPE_FULLSCREEN, "fullscreen", CONTENT_SETTING_ASK, | 174 Register(CONTENT_SETTINGS_TYPE_FULLSCREEN, "fullscreen", CONTENT_SETTING_ASK, |
168 WebsiteSettingsInfo::SYNCABLE, | 175 WebsiteSettingsInfo::SYNCABLE, |
169 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 176 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
170 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_ASK), | 177 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_ASK), |
171 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE); | 178 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
179 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
172 | 180 |
173 Register(CONTENT_SETTINGS_TYPE_MOUSELOCK, "mouselock", CONTENT_SETTING_ASK, | 181 Register(CONTENT_SETTINGS_TYPE_MOUSELOCK, "mouselock", CONTENT_SETTING_ASK, |
174 WebsiteSettingsInfo::SYNCABLE, | 182 WebsiteSettingsInfo::SYNCABLE, |
175 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 183 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
176 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 184 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
177 CONTENT_SETTING_ASK), | 185 CONTENT_SETTING_ASK), |
178 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE); | 186 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
187 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
179 | 188 |
180 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, "media-stream-mic", | 189 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, "media-stream-mic", |
181 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 190 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
182 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 191 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
183 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 192 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
184 CONTENT_SETTING_ASK), | 193 CONTENT_SETTING_ASK), |
185 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE); | 194 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
195 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
186 | 196 |
187 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, "media-stream-camera", | 197 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, "media-stream-camera", |
188 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 198 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
189 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 199 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
190 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 200 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
191 CONTENT_SETTING_ASK), | 201 CONTENT_SETTING_ASK), |
192 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE); | 202 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
203 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
193 | 204 |
194 Register(CONTENT_SETTINGS_TYPE_PPAPI_BROKER, "ppapi-broker", | 205 Register(CONTENT_SETTINGS_TYPE_PPAPI_BROKER, "ppapi-broker", |
195 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 206 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
196 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 207 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
197 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 208 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
198 CONTENT_SETTING_ASK), | 209 CONTENT_SETTING_ASK), |
199 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE); | 210 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
211 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
200 | 212 |
201 Register(CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, "automatic-downloads", | 213 Register(CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, "automatic-downloads", |
202 CONTENT_SETTING_ASK, WebsiteSettingsInfo::SYNCABLE, | 214 CONTENT_SETTING_ASK, WebsiteSettingsInfo::SYNCABLE, |
203 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, | 215 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, |
204 kExtensionScheme), | 216 kExtensionScheme), |
205 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 217 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
206 CONTENT_SETTING_ASK), | 218 CONTENT_SETTING_ASK), |
207 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE); | 219 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
220 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
208 | 221 |
209 Register(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, "midi-sysex", CONTENT_SETTING_ASK, | 222 Register(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, "midi-sysex", CONTENT_SETTING_ASK, |
210 WebsiteSettingsInfo::SYNCABLE, WhitelistedSchemes(), | 223 WebsiteSettingsInfo::SYNCABLE, WhitelistedSchemes(), |
211 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 224 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
212 CONTENT_SETTING_ASK), | 225 CONTENT_SETTING_ASK), |
213 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE); | 226 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
227 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
214 | 228 |
215 Register(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, "push-messaging", | 229 Register(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, "push-messaging", |
216 CONTENT_SETTING_ASK, WebsiteSettingsInfo::SYNCABLE, | 230 CONTENT_SETTING_ASK, WebsiteSettingsInfo::SYNCABLE, |
Peter Beverloo
2015/12/07 13:51:19
we're syncing push but not notifications? :)
msramek
2015/12/07 15:05:42
Wait, what? :-o
When I unsynced notifications, I
msramek
2015/12/07 15:15:45
Answered in https://codereview.chromium.org/150661
| |
217 WhitelistedSchemes(), | 231 WhitelistedSchemes(), |
218 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 232 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
219 CONTENT_SETTING_ASK), | 233 CONTENT_SETTING_ASK), |
220 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE); | 234 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
235 ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW); | |
221 | 236 |
222 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) | 237 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) |
223 Register(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, | 238 Register(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, |
224 "protected-media-identifier", CONTENT_SETTING_ASK, | 239 "protected-media-identifier", CONTENT_SETTING_ASK, |
225 WebsiteSettingsInfo::UNSYNCABLE, WhitelistedSchemes(), | 240 WebsiteSettingsInfo::UNSYNCABLE, WhitelistedSchemes(), |
226 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 241 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
227 CONTENT_SETTING_ASK), | 242 CONTENT_SETTING_ASK), |
228 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE); | 243 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
244 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
229 #endif | 245 #endif |
230 | 246 |
231 Register(CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, "durable-storage", | 247 Register(CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, "durable-storage", |
232 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 248 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
233 WhitelistedSchemes(), | 249 WhitelistedSchemes(), |
234 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), | 250 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
235 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE); | 251 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
252 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
236 | 253 |
237 Register(CONTENT_SETTINGS_TYPE_KEYGEN, "keygen", | 254 Register(CONTENT_SETTINGS_TYPE_KEYGEN, "keygen", |
238 CONTENT_SETTING_BLOCK, WebsiteSettingsInfo::SYNCABLE, | 255 CONTENT_SETTING_BLOCK, WebsiteSettingsInfo::SYNCABLE, |
239 WhitelistedSchemes(), | 256 WhitelistedSchemes(), |
240 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), | 257 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
241 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE); | 258 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
259 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
242 | 260 |
243 // Content settings that aren't used to store any data. TODO(raymes): use a | 261 // Content settings that aren't used to store any data. TODO(raymes): use a |
244 // different mechanism rather than content settings to represent these. | 262 // different mechanism rather than content settings to represent these. |
245 // Since nothing is stored in them, there is no real point in them being a | 263 // Since nothing is stored in them, there is no real point in them being a |
246 // content setting. | 264 // content setting. |
247 Register(CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, "protocol-handler", | 265 Register(CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, "protocol-handler", |
248 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE, | 266 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE, |
249 WhitelistedSchemes(), ValidSettings(), | 267 WhitelistedSchemes(), ValidSettings(), |
250 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE); | 268 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
269 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
251 | 270 |
252 Register(CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, "mixed-script", | 271 Register(CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, "mixed-script", |
253 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE, | 272 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE, |
254 WhitelistedSchemes(), ValidSettings(), | 273 WhitelistedSchemes(), ValidSettings(), |
255 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE); | 274 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
275 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
256 | 276 |
257 // Deprecated. | 277 // Deprecated. |
258 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM, "media-stream", | 278 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM, "media-stream", |
259 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE, | 279 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE, |
260 WhitelistedSchemes(), ValidSettings(), | 280 WhitelistedSchemes(), ValidSettings(), |
261 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE); | 281 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
282 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | |
262 } | 283 } |
263 | 284 |
264 void ContentSettingsRegistry::Register( | 285 void ContentSettingsRegistry::Register( |
265 ContentSettingsType type, | 286 ContentSettingsType type, |
266 const std::string& name, | 287 const std::string& name, |
267 ContentSetting initial_default_value, | 288 ContentSetting initial_default_value, |
268 WebsiteSettingsInfo::SyncStatus sync_status, | 289 WebsiteSettingsInfo::SyncStatus sync_status, |
269 const std::vector<std::string>& whitelisted_schemes, | 290 const std::vector<std::string>& whitelisted_schemes, |
270 const std::set<ContentSetting>& valid_settings, | 291 const std::set<ContentSetting>& valid_settings, |
271 WebsiteSettingsInfo::ScopingType scoping_type) { | 292 WebsiteSettingsInfo::ScopingType scoping_type, |
293 ContentSettingsInfo::IncognitoBehavior incognito_behavior) { | |
272 // Ensure that nothing has been registered yet for the given type. | 294 // Ensure that nothing has been registered yet for the given type. |
273 DCHECK(!website_settings_registry_->Get(type)); | 295 DCHECK(!website_settings_registry_->Get(type)); |
296 DCHECK(incognito_behavior | |
297 != ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW | |
298 || ContainsKey(valid_settings, CONTENT_SETTING_ASK)) | |
299 << "If INHERIT_IN_INCOGNITO_EXCEPT_ALLOW is set, ASK must be listed as a " | |
300 "valid setting."; | |
274 scoped_ptr<base::Value> default_value( | 301 scoped_ptr<base::Value> default_value( |
275 new base::FundamentalValue(static_cast<int>(initial_default_value))); | 302 new base::FundamentalValue(static_cast<int>(initial_default_value))); |
276 const WebsiteSettingsInfo* website_settings_info = | 303 const WebsiteSettingsInfo* website_settings_info = |
277 website_settings_registry_->Register( | 304 website_settings_registry_->Register( |
278 type, name, default_value.Pass(), sync_status, | 305 type, name, default_value.Pass(), sync_status, |
279 WebsiteSettingsInfo::NOT_LOSSY, scoping_type); | 306 WebsiteSettingsInfo::NOT_LOSSY, scoping_type); |
280 DCHECK(!ContainsKey(content_settings_info_, type)); | 307 DCHECK(!ContainsKey(content_settings_info_, type)); |
281 content_settings_info_[type] = make_scoped_ptr(new ContentSettingsInfo( | 308 content_settings_info_[type] = make_scoped_ptr( |
282 website_settings_info, whitelisted_schemes, valid_settings)); | 309 new ContentSettingsInfo(website_settings_info, whitelisted_schemes, |
310 valid_settings, incognito_behavior)); | |
283 } | 311 } |
284 | 312 |
285 } // namespace content_settings | 313 } // namespace content_settings |
OLD | NEW |