OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/strings/string16.h" | 5 #include "base/strings/string16.h" |
6 #include "base/strings/utf_string_conversions.h" | 6 #include "base/strings/utf_string_conversions.h" |
7 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 7 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
8 #include "chrome/test/base/chrome_render_view_host_test_harness.h" | 8 #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
9 #include "chrome/test/base/testing_profile.h" | 9 #include "chrome/test/base/testing_profile.h" |
10 #include "content/public/test/test_browser_thread.h" | 10 #include "content/public/test/test_browser_thread.h" |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 | 67 |
68 // Set a cookie, block access to images, block mediastream access and block a | 68 // Set a cookie, block access to images, block mediastream access and block a |
69 // popup. | 69 // popup. |
70 content_settings->OnCookieChanged(GURL("http://google.com"), | 70 content_settings->OnCookieChanged(GURL("http://google.com"), |
71 GURL("http://google.com"), | 71 GURL("http://google.com"), |
72 "A=B", | 72 "A=B", |
73 options, | 73 options, |
74 false); | 74 false); |
75 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES); | 75 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES); |
76 content_settings->SetPopupsBlocked(true); | 76 content_settings->SetPopupsBlocked(true); |
77 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC); | 77 MediaStreamDevicesController::MediaStreamTypeSettingsMap request_permissions; |
78 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); | 78 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
| 79 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
| 80 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = |
| 81 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
| 82 content_settings->OnMediaStreamPermissionSet(GURL("http://google.com"), |
| 83 request_permissions); |
79 | 84 |
80 // Check that only the respective content types are affected. | 85 // Check that only the respective content types are affected. |
81 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); | 86 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); |
82 EXPECT_FALSE( | 87 EXPECT_FALSE( |
83 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); | 88 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); |
84 EXPECT_FALSE( | 89 EXPECT_FALSE( |
85 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); | 90 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); |
86 EXPECT_FALSE( | 91 EXPECT_FALSE( |
87 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 92 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
88 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); | 93 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 // Request and allow camera access. | 224 // Request and allow camera access. |
220 request_permissions.clear(); | 225 request_permissions.clear(); |
221 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = | 226 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = |
222 MediaStreamDevicesController::MEDIA_ALLOWED; | 227 MediaStreamDevicesController::MEDIA_ALLOWED; |
223 content_settings->OnMediaStreamPermissionSet(security_origin, | 228 content_settings->OnMediaStreamPermissionSet(security_origin, |
224 request_permissions); | 229 request_permissions); |
225 ASSERT_TRUE(content_settings->IsContentAllowed( | 230 ASSERT_TRUE(content_settings->IsContentAllowed( |
226 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); | 231 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
227 ASSERT_FALSE(content_settings->IsContentBlocked( | 232 ASSERT_FALSE(content_settings->IsContentBlocked( |
228 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); | 233 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
229 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_CAMERA_ACCESSED, | 234 // cam request should not affect previous mic settings. |
| 235 ASSERT_TRUE(content_settings->IsContentAllowed( |
| 236 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
| 237 ASSERT_FALSE(content_settings->IsContentBlocked( |
| 238 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
| 239 ASSERT_EQ(TabSpecificContentSettings::CAMERA_ACCESSED, |
230 content_settings->GetMicrophoneCameraState()); | 240 content_settings->GetMicrophoneCameraState()); |
231 | 241 |
232 // Request and block microphone access. | 242 // Request and block microphone access. |
233 request_permissions.clear(); | 243 request_permissions.clear(); |
234 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = | 244 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
235 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; | 245 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
236 content_settings->OnMediaStreamPermissionSet(security_origin, | 246 content_settings->OnMediaStreamPermissionSet(security_origin, |
237 request_permissions); | 247 request_permissions); |
238 ASSERT_FALSE(content_settings->IsContentAllowed( | 248 ASSERT_FALSE(content_settings->IsContentAllowed( |
239 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); | 249 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
240 ASSERT_TRUE(content_settings->IsContentBlocked( | 250 ASSERT_TRUE(content_settings->IsContentBlocked( |
241 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); | 251 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
242 ASSERT_EQ(TabSpecificContentSettings::CAMERA_ACCESSED, | 252 // mic request should not affect previous cam settings. |
| 253 ASSERT_TRUE(content_settings->IsContentAllowed( |
| 254 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
| 255 ASSERT_FALSE(content_settings->IsContentBlocked( |
| 256 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
| 257 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED | |
| 258 TabSpecificContentSettings::MICROPHONE_BLOCKED, |
243 content_settings->GetMicrophoneCameraState()); | 259 content_settings->GetMicrophoneCameraState()); |
244 | 260 |
245 // Request and block camera access. | 261 // Request and block camera access. |
246 request_permissions.clear(); | 262 request_permissions.clear(); |
247 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = | 263 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = |
248 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; | 264 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
249 content_settings->OnMediaStreamPermissionSet(security_origin, | 265 content_settings->OnMediaStreamPermissionSet(security_origin, |
250 request_permissions); | 266 request_permissions); |
251 ASSERT_FALSE(content_settings->IsContentAllowed( | 267 ASSERT_FALSE(content_settings->IsContentAllowed( |
252 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); | 268 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
253 ASSERT_TRUE(content_settings->IsContentBlocked( | 269 ASSERT_TRUE(content_settings->IsContentBlocked( |
254 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); | 270 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
255 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_CAMERA_BLOCKED, | 271 // cam request should not affect previous mic settings. |
| 272 ASSERT_FALSE(content_settings->IsContentAllowed( |
| 273 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
| 274 ASSERT_TRUE(content_settings->IsContentBlocked( |
| 275 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
| 276 ASSERT_EQ(TabSpecificContentSettings::CAMERA_ACCESSED | |
| 277 TabSpecificContentSettings::CAMERA_BLOCKED, |
256 content_settings->GetMicrophoneCameraState()); | 278 content_settings->GetMicrophoneCameraState()); |
257 | 279 |
258 // Request and allow microphone and camera access. | 280 // Request and allow microphone and camera access. |
259 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = | 281 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
260 MediaStreamDevicesController::MEDIA_ALLOWED; | 282 MediaStreamDevicesController::MEDIA_ALLOWED; |
261 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = | 283 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = |
262 MediaStreamDevicesController::MEDIA_ALLOWED; | 284 MediaStreamDevicesController::MEDIA_ALLOWED; |
263 content_settings->OnMediaStreamPermissionSet(security_origin, | 285 content_settings->OnMediaStreamPermissionSet(security_origin, |
264 request_permissions); | 286 request_permissions); |
265 ASSERT_TRUE(content_settings->IsContentAllowed( | 287 ASSERT_TRUE(content_settings->IsContentAllowed( |
266 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); | 288 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
267 ASSERT_FALSE(content_settings->IsContentBlocked( | 289 ASSERT_FALSE(content_settings->IsContentBlocked( |
268 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); | 290 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
269 ASSERT_TRUE(content_settings->IsContentAllowed( | 291 ASSERT_TRUE(content_settings->IsContentAllowed( |
270 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); | 292 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
271 ASSERT_FALSE(content_settings->IsContentBlocked( | 293 ASSERT_FALSE(content_settings->IsContentBlocked( |
272 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); | 294 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
273 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_CAMERA_ACCESSED, | 295 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED | |
| 296 TabSpecificContentSettings::CAMERA_ACCESSED, |
274 content_settings->GetMicrophoneCameraState()); | 297 content_settings->GetMicrophoneCameraState()); |
275 | 298 |
276 // Request and block microphone and camera access. | 299 // Request and block microphone and camera access. |
277 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = | 300 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
278 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; | 301 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
279 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = | 302 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = |
280 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; | 303 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
281 content_settings->OnMediaStreamPermissionSet(security_origin, | 304 content_settings->OnMediaStreamPermissionSet(security_origin, |
282 request_permissions); | 305 request_permissions); |
283 ASSERT_FALSE(content_settings->IsContentAllowed( | 306 ASSERT_FALSE(content_settings->IsContentAllowed( |
284 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); | 307 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
285 ASSERT_TRUE(content_settings->IsContentBlocked( | 308 ASSERT_TRUE(content_settings->IsContentBlocked( |
286 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); | 309 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
287 ASSERT_FALSE(content_settings->IsContentAllowed( | 310 ASSERT_FALSE(content_settings->IsContentAllowed( |
288 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); | 311 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
289 ASSERT_TRUE(content_settings->IsContentBlocked( | 312 ASSERT_TRUE(content_settings->IsContentBlocked( |
290 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); | 313 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
291 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_CAMERA_BLOCKED, | 314 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED | |
| 315 TabSpecificContentSettings::MICROPHONE_BLOCKED | |
| 316 TabSpecificContentSettings::CAMERA_ACCESSED | |
| 317 TabSpecificContentSettings::CAMERA_BLOCKED, |
292 content_settings->GetMicrophoneCameraState()); | 318 content_settings->GetMicrophoneCameraState()); |
293 | 319 |
294 // Request microphone and camera access. Allow microphone, block camera. | 320 // Request microphone and camera access. Allow microphone, block camera. |
295 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = | 321 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
296 MediaStreamDevicesController::MEDIA_ALLOWED; | 322 MediaStreamDevicesController::MEDIA_ALLOWED; |
297 content_settings->OnMediaStreamPermissionSet(security_origin, | 323 content_settings->OnMediaStreamPermissionSet(security_origin, |
298 request_permissions); | 324 request_permissions); |
299 ASSERT_TRUE(content_settings->IsContentAllowed( | 325 ASSERT_TRUE(content_settings->IsContentAllowed( |
300 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); | 326 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
301 ASSERT_FALSE(content_settings->IsContentBlocked( | 327 ASSERT_FALSE(content_settings->IsContentBlocked( |
302 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); | 328 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
303 ASSERT_FALSE(content_settings->IsContentAllowed( | 329 ASSERT_FALSE(content_settings->IsContentAllowed( |
304 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); | 330 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
305 ASSERT_TRUE(content_settings->IsContentBlocked( | 331 ASSERT_TRUE(content_settings->IsContentBlocked( |
306 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); | 332 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
307 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED, | 333 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED | |
| 334 TabSpecificContentSettings::CAMERA_ACCESSED | |
| 335 TabSpecificContentSettings::CAMERA_BLOCKED, |
308 content_settings->GetMicrophoneCameraState()); | 336 content_settings->GetMicrophoneCameraState()); |
309 | 337 |
310 // Request microphone and camera access. Block microphone, allow camera. | 338 // Request microphone and camera access. Block microphone, allow camera. |
311 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = | 339 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
312 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; | 340 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
313 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = | 341 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = |
314 MediaStreamDevicesController::MEDIA_ALLOWED; | 342 MediaStreamDevicesController::MEDIA_ALLOWED; |
315 content_settings->OnMediaStreamPermissionSet(security_origin, | 343 content_settings->OnMediaStreamPermissionSet(security_origin, |
316 request_permissions); | 344 request_permissions); |
317 ASSERT_FALSE(content_settings->IsContentAllowed( | 345 ASSERT_FALSE(content_settings->IsContentAllowed( |
318 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); | 346 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
319 ASSERT_TRUE(content_settings->IsContentBlocked( | 347 ASSERT_TRUE(content_settings->IsContentBlocked( |
320 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); | 348 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); |
321 ASSERT_TRUE(content_settings->IsContentAllowed( | 349 ASSERT_TRUE(content_settings->IsContentAllowed( |
322 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); | 350 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
323 ASSERT_FALSE(content_settings->IsContentBlocked( | 351 ASSERT_FALSE(content_settings->IsContentBlocked( |
324 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); | 352 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); |
325 ASSERT_EQ(TabSpecificContentSettings::CAMERA_ACCESSED, | 353 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED | |
| 354 TabSpecificContentSettings::MICROPHONE_BLOCKED | |
| 355 TabSpecificContentSettings::CAMERA_ACCESSED, |
326 content_settings->GetMicrophoneCameraState()); | 356 content_settings->GetMicrophoneCameraState()); |
327 } | 357 } |
328 | 358 |
329 TEST_F(TabSpecificContentSettingsTest, EmptyCookieList) { | 359 TEST_F(TabSpecificContentSettingsTest, EmptyCookieList) { |
330 TabSpecificContentSettings* content_settings = | 360 TabSpecificContentSettings* content_settings = |
331 TabSpecificContentSettings::FromWebContents(web_contents()); | 361 TabSpecificContentSettings::FromWebContents(web_contents()); |
332 | 362 |
333 ASSERT_FALSE( | 363 ASSERT_FALSE( |
334 content_settings->IsContentAllowed(CONTENT_SETTINGS_TYPE_COOKIES)); | 364 content_settings->IsContentAllowed(CONTENT_SETTINGS_TYPE_COOKIES)); |
335 ASSERT_FALSE( | 365 ASSERT_FALSE( |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
373 base::UTF8ToUTF16("text"), | 403 base::UTF8ToUTF16("text"), |
374 blocked_by_policy); | 404 blocked_by_policy); |
375 content_settings->OnLocalStorageAccessed(GURL("http://google.com"), | 405 content_settings->OnLocalStorageAccessed(GURL("http://google.com"), |
376 true, | 406 true, |
377 blocked_by_policy); | 407 blocked_by_policy); |
378 content_settings->OnWebDatabaseAccessed(GURL("http://google.com"), | 408 content_settings->OnWebDatabaseAccessed(GURL("http://google.com"), |
379 base::UTF8ToUTF16("name"), | 409 base::UTF8ToUTF16("name"), |
380 base::UTF8ToUTF16("display_name"), | 410 base::UTF8ToUTF16("display_name"), |
381 blocked_by_policy); | 411 blocked_by_policy); |
382 } | 412 } |
OLD | NEW |