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

Side by Side Diff: components/content_settings/core/browser/content_settings_registry.cc

Issue 1902703002: Only Register() desktop-only content settings types on desktop platforms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 unified diff | Download patch
« no previous file with comments | « components/content_settings/core/browser/content_settings_registry.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <utility> 7 #include <utility>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 // generate preference names and should never be changed! 118 // generate preference names and should never be changed!
119 119
120 Register(CONTENT_SETTINGS_TYPE_COOKIES, "cookies", CONTENT_SETTING_ALLOW, 120 Register(CONTENT_SETTINGS_TYPE_COOKIES, "cookies", CONTENT_SETTING_ALLOW,
121 WebsiteSettingsInfo::SYNCABLE, 121 WebsiteSettingsInfo::SYNCABLE,
122 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), 122 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
123 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, 123 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
124 CONTENT_SETTING_SESSION_ONLY), 124 CONTENT_SETTING_SESSION_ONLY),
125 WebsiteSettingsInfo::REQUESTING_DOMAIN_ONLY_SCOPE, 125 WebsiteSettingsInfo::REQUESTING_DOMAIN_ONLY_SCOPE,
126 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 126 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
127 127
128 Register(CONTENT_SETTINGS_TYPE_IMAGES, "images", CONTENT_SETTING_ALLOW,
129 WebsiteSettingsInfo::SYNCABLE,
130 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme,
131 kExtensionScheme),
132 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
133 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
134 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
135
136 Register(CONTENT_SETTINGS_TYPE_JAVASCRIPT, "javascript", 128 Register(CONTENT_SETTINGS_TYPE_JAVASCRIPT, "javascript",
137 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::SYNCABLE, 129 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::SYNCABLE,
138 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, 130 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme,
139 kExtensionScheme), 131 kExtensionScheme),
140 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), 132 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
141 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, 133 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
142 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 134 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
143 135
144 Register(CONTENT_SETTINGS_TYPE_PLUGINS, "plugins",
145 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT,
146 WebsiteSettingsInfo::SYNCABLE,
147 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
148 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
149 CONTENT_SETTING_ASK,
150 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT),
151 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
152 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
153
154 Register(CONTENT_SETTINGS_TYPE_POPUPS, "popups", CONTENT_SETTING_BLOCK, 136 Register(CONTENT_SETTINGS_TYPE_POPUPS, "popups", CONTENT_SETTING_BLOCK,
155 WebsiteSettingsInfo::SYNCABLE, 137 WebsiteSettingsInfo::SYNCABLE,
156 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, 138 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme,
157 kExtensionScheme), 139 kExtensionScheme),
158 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), 140 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
159 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, 141 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
160 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 142 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
161 143
162 Register(CONTENT_SETTINGS_TYPE_GEOLOCATION, "geolocation", 144 Register(CONTENT_SETTINGS_TYPE_GEOLOCATION, "geolocation",
163 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, 145 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE,
(...skipping 13 matching lines...) Expand all
177 // implements additional incognito exceptions. 159 // implements additional incognito exceptions.
178 ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW); 160 ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW);
179 161
180 Register(CONTENT_SETTINGS_TYPE_FULLSCREEN, "fullscreen", CONTENT_SETTING_ASK, 162 Register(CONTENT_SETTINGS_TYPE_FULLSCREEN, "fullscreen", CONTENT_SETTING_ASK,
181 WebsiteSettingsInfo::SYNCABLE, 163 WebsiteSettingsInfo::SYNCABLE,
182 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), 164 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
183 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_ASK), 165 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_ASK),
184 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, 166 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE,
185 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 167 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
186 168
187 Register(CONTENT_SETTINGS_TYPE_MOUSELOCK, "mouselock", CONTENT_SETTING_ASK,
188 WebsiteSettingsInfo::SYNCABLE,
189 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
190 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
191 CONTENT_SETTING_ASK),
192 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
193 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
194
195 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, "media-stream-mic", 169 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, "media-stream-mic",
196 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, 170 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE,
197 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), 171 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
198 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, 172 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
199 CONTENT_SETTING_ASK), 173 CONTENT_SETTING_ASK),
200 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, 174 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
201 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 175 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
202 176
203 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, "media-stream-camera", 177 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, "media-stream-camera",
204 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, 178 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE,
205 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), 179 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
206 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, 180 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
207 CONTENT_SETTING_ASK), 181 CONTENT_SETTING_ASK),
208 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, 182 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
209 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 183 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
210 184
211 Register(CONTENT_SETTINGS_TYPE_PPAPI_BROKER, "ppapi-broker", 185 RegisterDesktop(CONTENT_SETTINGS_TYPE_PPAPI_BROKER, "ppapi-broker",
msramek 2016/05/17 18:58:27 nit: Move this down as well?
212 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, 186 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE,
213 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), 187 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
214 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, 188 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
215 CONTENT_SETTING_ASK), 189 CONTENT_SETTING_ASK),
216 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, 190 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
217 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 191 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
218 192
219 Register(CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, "automatic-downloads", 193 Register(CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, "automatic-downloads",
220 CONTENT_SETTING_ASK, WebsiteSettingsInfo::SYNCABLE, 194 CONTENT_SETTING_ASK, WebsiteSettingsInfo::SYNCABLE,
221 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, 195 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme,
222 kExtensionScheme), 196 kExtensionScheme),
223 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, 197 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
224 CONTENT_SETTING_ASK), 198 CONTENT_SETTING_ASK),
225 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, 199 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
226 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 200 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
227 201
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, 238 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
265 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 239 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
266 240
267 Register(CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC, "background-sync", 241 Register(CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC, "background-sync",
268 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::UNSYNCABLE, 242 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::UNSYNCABLE,
269 WhitelistedSchemes(), 243 WhitelistedSchemes(),
270 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), 244 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
271 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, 245 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
272 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 246 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
273 247
274 // Content settings that aren't used to store any data. TODO(raymes): use a
275 // different mechanism rather than content settings to represent these.
276 // Since nothing is stored in them, there is no real point in them being a
277 // content setting.
278 Register(CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, "protocol-handler",
279 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE,
280 WhitelistedSchemes(), ValidSettings(),
281 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
282 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
283
284 Register(CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, "mixed-script",
285 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE,
286 WhitelistedSchemes(), ValidSettings(),
287 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
288 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
289
290 Register(CONTENT_SETTINGS_TYPE_BLUETOOTH_GUARD, "bluetooth-guard", 248 Register(CONTENT_SETTINGS_TYPE_BLUETOOTH_GUARD, "bluetooth-guard",
291 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, 249 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE,
292 WhitelistedSchemes(), 250 WhitelistedSchemes(),
293 ValidSettings(CONTENT_SETTING_ASK, CONTENT_SETTING_BLOCK), 251 ValidSettings(CONTENT_SETTING_ASK, CONTENT_SETTING_BLOCK),
294 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, 252 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE,
295 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 253 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
254
255 // Desktop-only content settings.
256 RegisterDesktop(CONTENT_SETTINGS_TYPE_IMAGES, "images", CONTENT_SETTING_ALLOW,
257 WebsiteSettingsInfo::SYNCABLE,
258 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme,
259 kExtensionScheme),
260 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
261 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
262 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
263
264 RegisterDesktop(CONTENT_SETTINGS_TYPE_PLUGINS, "plugins",
265 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT,
266 WebsiteSettingsInfo::SYNCABLE,
267 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
268 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
269 CONTENT_SETTING_ASK,
270 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT),
271 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
272 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
273
274 RegisterDesktop(CONTENT_SETTINGS_TYPE_MOUSELOCK, "mouselock",
275 CONTENT_SETTING_ASK, WebsiteSettingsInfo::SYNCABLE,
276 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
277 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
278 CONTENT_SETTING_ASK),
279 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
280 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
281
282 // Content settings that aren't used to store any data. TODO(raymes): use a
283 // different mechanism rather than content settings to represent these.
284 // Since nothing is stored in them, there is no real point in them being a
285 // content setting.
286 RegisterDesktop(CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, "protocol-handler",
287 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE,
288 WhitelistedSchemes(), ValidSettings(),
289 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
290 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
291
292 RegisterDesktop(CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, "mixed-script",
293 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE,
294 WhitelistedSchemes(), ValidSettings(),
295 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
296 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
296 } 297 }
297 298
298 void ContentSettingsRegistry::Register( 299 void ContentSettingsRegistry::Register(
299 ContentSettingsType type, 300 ContentSettingsType type,
300 const std::string& name, 301 const std::string& name,
301 ContentSetting initial_default_value, 302 ContentSetting initial_default_value,
302 WebsiteSettingsInfo::SyncStatus sync_status, 303 WebsiteSettingsInfo::SyncStatus sync_status,
303 const std::vector<std::string>& whitelisted_schemes, 304 const std::vector<std::string>& whitelisted_schemes,
304 const std::set<ContentSetting>& valid_settings, 305 const std::set<ContentSetting>& valid_settings,
305 WebsiteSettingsInfo::ScopingType scoping_type, 306 WebsiteSettingsInfo::ScopingType scoping_type,
(...skipping 11 matching lines...) Expand all
317 website_settings_registry_->Register( 318 website_settings_registry_->Register(
318 type, name, std::move(default_value), sync_status, 319 type, name, std::move(default_value), sync_status,
319 WebsiteSettingsInfo::NOT_LOSSY, scoping_type, 320 WebsiteSettingsInfo::NOT_LOSSY, scoping_type,
320 WebsiteSettingsInfo::INHERIT_IN_INCOGNITO); 321 WebsiteSettingsInfo::INHERIT_IN_INCOGNITO);
321 DCHECK(!ContainsKey(content_settings_info_, type)); 322 DCHECK(!ContainsKey(content_settings_info_, type));
322 content_settings_info_[type] = make_scoped_ptr( 323 content_settings_info_[type] = make_scoped_ptr(
323 new ContentSettingsInfo(website_settings_info, whitelisted_schemes, 324 new ContentSettingsInfo(website_settings_info, whitelisted_schemes,
324 valid_settings, incognito_behavior)); 325 valid_settings, incognito_behavior));
325 } 326 }
326 327
328 void ContentSettingsRegistry::RegisterDesktop(
msramek 2016/05/17 18:58:26 Since we do basically everything else via enum, ma
329 ContentSettingsType type,
330 const std::string& name,
331 ContentSetting initial_default_value,
332 WebsiteSettingsInfo::SyncStatus sync_status,
333 const std::vector<std::string>& whitelisted_schemes,
334 const std::set<ContentSetting>& valid_settings,
335 WebsiteSettingsInfo::ScopingType scoping_type,
336 ContentSettingsInfo::IncognitoBehavior incognito_behavior) {
337 #if !defined(OS_ANDROID)
msramek 2016/05/17 18:58:27 Hmm, but what about iOS? :)
msramek 2016/05/17 19:12:11 OK, after a quick search it appears that we have s
338 Register(type, name, initial_default_value, sync_status, whitelisted_schemes,
339 valid_settings, scoping_type, incognito_behavior);
340 #endif
341 }
342
327 } // namespace content_settings 343 } // namespace content_settings
OLDNEW
« no previous file with comments | « components/content_settings/core/browser/content_settings_registry.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698