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

Side by Side Diff: components/content_settings/core/browser/content_settings_registry.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: Address review nits Created 5 years 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 unified diff | Download patch
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698