| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/permissions/permission_context_base.h" | 5 #include "chrome/browser/permissions/permission_context_base.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 335 // Simulates non-valid requesting URL. | 335 // Simulates non-valid requesting URL. |
| 336 // The permission should be denied but not saved for future use. | 336 // The permission should be denied but not saved for future use. |
| 337 TEST_F(PermissionContextBaseTests, TestNonValidRequestingUrl) { | 337 TEST_F(PermissionContextBaseTests, TestNonValidRequestingUrl) { |
| 338 TestRequestPermissionInvalidUrl(content::PermissionType::GEOLOCATION, | 338 TestRequestPermissionInvalidUrl(content::PermissionType::GEOLOCATION, |
| 339 CONTENT_SETTINGS_TYPE_GEOLOCATION); | 339 CONTENT_SETTINGS_TYPE_GEOLOCATION); |
| 340 TestRequestPermissionInvalidUrl(content::PermissionType::NOTIFICATIONS, | 340 TestRequestPermissionInvalidUrl(content::PermissionType::NOTIFICATIONS, |
| 341 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); | 341 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
| 342 TestRequestPermissionInvalidUrl(content::PermissionType::MIDI_SYSEX, | 342 TestRequestPermissionInvalidUrl(content::PermissionType::MIDI_SYSEX, |
| 343 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); | 343 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); |
| 344 TestRequestPermissionInvalidUrl(content::PermissionType::PUSH_MESSAGING, | 344 TestRequestPermissionInvalidUrl(content::PermissionType::PUSH_MESSAGING, |
| 345 CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); | 345 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
| 346 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) | 346 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) |
| 347 TestRequestPermissionInvalidUrl( | 347 TestRequestPermissionInvalidUrl( |
| 348 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, | 348 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, |
| 349 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER); | 349 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER); |
| 350 #endif | 350 #endif |
| 351 } | 351 } |
| 352 | 352 |
| 353 #if defined(OS_ANDROID) | 353 #if defined(OS_ANDROID) |
| 354 // This test is specific to Android because other platforms use bubbles. | 354 // This test is specific to Android because other platforms use bubbles. |
| 355 TEST_F(PermissionContextBaseTests, TestGrantAndRevokeWithInfobars) { | 355 TEST_F(PermissionContextBaseTests, TestGrantAndRevokeWithInfobars) { |
| 356 TestGrantAndRevoke_TestContent(content::PermissionType::GEOLOCATION, | 356 TestGrantAndRevoke_TestContent(content::PermissionType::GEOLOCATION, |
| 357 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 357 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| 358 CONTENT_SETTING_ASK); | 358 CONTENT_SETTING_ASK); |
| 359 TestGrantAndRevoke_TestContent(content::PermissionType::MIDI_SYSEX, | 359 TestGrantAndRevoke_TestContent(content::PermissionType::MIDI_SYSEX, |
| 360 CONTENT_SETTINGS_TYPE_MIDI_SYSEX, | 360 CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
| 361 CONTENT_SETTING_ASK); | 361 CONTENT_SETTING_ASK); |
| 362 TestGrantAndRevoke_TestContent( | 362 TestGrantAndRevoke_TestContent( |
| 363 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, | 363 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, |
| 364 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, CONTENT_SETTING_ASK); | 364 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, CONTENT_SETTING_ASK); |
| 365 // TODO(timvolodine): currently no test for | 365 // TODO(timvolodine): currently no test for |
| 366 // CONTENT_SETTINGS_TYPE_NOTIFICATIONS because notification permissions work | 366 // CONTENT_SETTINGS_TYPE_NOTIFICATIONS because notification permissions work |
| 367 // differently with infobars as compared to bubbles (crbug.com/453784). | 367 // differently with infobars as compared to bubbles (crbug.com/453784). |
| 368 // TODO(timvolodine): currently no test for | |
| 369 // CONTENT_SETTINGS_TYPE_PUSH_MESSAGING because infobars do not implement push | |
| 370 // messaging permissions (crbug.com/453788). | |
| 371 } | 368 } |
| 372 #endif | 369 #endif |
| 373 | 370 |
| 374 #if !defined(OS_ANDROID) | 371 #if !defined(OS_ANDROID) |
| 375 // Simulates granting and revoking of permissions using permission bubbles. | 372 // Simulates granting and revoking of permissions using permission bubbles. |
| 376 // This test shouldn't run on mobile because mobile platforms use infobars. | 373 // This test shouldn't run on mobile because mobile platforms use infobars. |
| 377 TEST_F(PermissionContextBaseTests, TestGrantAndRevokeWithBubbles) { | 374 TEST_F(PermissionContextBaseTests, TestGrantAndRevokeWithBubbles) { |
| 378 TestGrantAndRevoke_TestContent(content::PermissionType::GEOLOCATION, | 375 TestGrantAndRevoke_TestContent(content::PermissionType::GEOLOCATION, |
| 379 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 376 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| 380 CONTENT_SETTING_ASK); | 377 CONTENT_SETTING_ASK); |
| 381 #if defined(ENABLE_NOTIFICATIONS) | 378 #if defined(ENABLE_NOTIFICATIONS) |
| 382 TestGrantAndRevoke_TestContent(content::PermissionType::NOTIFICATIONS, | 379 TestGrantAndRevoke_TestContent(content::PermissionType::NOTIFICATIONS, |
| 383 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | 380 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
| 384 CONTENT_SETTING_ASK); | 381 CONTENT_SETTING_ASK); |
| 385 #endif | 382 #endif |
| 386 TestGrantAndRevoke_TestContent(content::PermissionType::MIDI_SYSEX, | 383 TestGrantAndRevoke_TestContent(content::PermissionType::MIDI_SYSEX, |
| 387 CONTENT_SETTINGS_TYPE_MIDI_SYSEX, | 384 CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
| 388 CONTENT_SETTING_ASK); | 385 CONTENT_SETTING_ASK); |
| 389 TestGrantAndRevoke_TestContent(content::PermissionType::PUSH_MESSAGING, | 386 TestGrantAndRevoke_TestContent(content::PermissionType::PUSH_MESSAGING, |
| 390 CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, | 387 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
| 391 CONTENT_SETTING_ASK); | 388 CONTENT_SETTING_ASK); |
| 392 } | 389 } |
| 393 #endif | 390 #endif |
| 394 | 391 |
| 395 // Tests the global kill switch by enabling/disabling the Field Trials. | 392 // Tests the global kill switch by enabling/disabling the Field Trials. |
| 396 TEST_F(PermissionContextBaseTests, TestGlobalKillSwitch) { | 393 TEST_F(PermissionContextBaseTests, TestGlobalKillSwitch) { |
| 397 TestGlobalPermissionsKillSwitch(content::PermissionType::GEOLOCATION, | 394 TestGlobalPermissionsKillSwitch(content::PermissionType::GEOLOCATION, |
| 398 CONTENT_SETTINGS_TYPE_GEOLOCATION); | 395 CONTENT_SETTINGS_TYPE_GEOLOCATION); |
| 399 TestGlobalPermissionsKillSwitch(content::PermissionType::NOTIFICATIONS, | 396 TestGlobalPermissionsKillSwitch(content::PermissionType::NOTIFICATIONS, |
| 400 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); | 397 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
| 401 TestGlobalPermissionsKillSwitch(content::PermissionType::MIDI_SYSEX, | 398 TestGlobalPermissionsKillSwitch(content::PermissionType::MIDI_SYSEX, |
| 402 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); | 399 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); |
| 403 TestGlobalPermissionsKillSwitch(content::PermissionType::PUSH_MESSAGING, | 400 TestGlobalPermissionsKillSwitch(content::PermissionType::PUSH_MESSAGING, |
| 404 CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); | 401 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
| 405 TestGlobalPermissionsKillSwitch(content::PermissionType::DURABLE_STORAGE, | 402 TestGlobalPermissionsKillSwitch(content::PermissionType::DURABLE_STORAGE, |
| 406 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE); | 403 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE); |
| 407 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) | 404 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) |
| 408 TestGlobalPermissionsKillSwitch( | 405 TestGlobalPermissionsKillSwitch( |
| 409 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, | 406 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, |
| 410 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER); | 407 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER); |
| 411 #endif | 408 #endif |
| 412 TestGlobalPermissionsKillSwitch(content::PermissionType::AUDIO_CAPTURE, | 409 TestGlobalPermissionsKillSwitch(content::PermissionType::AUDIO_CAPTURE, |
| 413 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC); | 410 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC); |
| 414 TestGlobalPermissionsKillSwitch(content::PermissionType::VIDEO_CAPTURE, | 411 TestGlobalPermissionsKillSwitch(content::PermissionType::VIDEO_CAPTURE, |
| 415 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); | 412 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); |
| 416 } | 413 } |
| 417 | 414 |
| 418 TEST_F(PermissionContextBaseTests, TestParallelRequestsAllowed) { | 415 TEST_F(PermissionContextBaseTests, TestParallelRequestsAllowed) { |
| 419 TestParallelRequests(CONTENT_SETTING_ALLOW); | 416 TestParallelRequests(CONTENT_SETTING_ALLOW); |
| 420 } | 417 } |
| 421 | 418 |
| 422 TEST_F(PermissionContextBaseTests, TestParallelRequestsBlocked) { | 419 TEST_F(PermissionContextBaseTests, TestParallelRequestsBlocked) { |
| 423 TestParallelRequests(CONTENT_SETTING_BLOCK); | 420 TestParallelRequests(CONTENT_SETTING_BLOCK); |
| 424 } | 421 } |
| 425 | 422 |
| 426 TEST_F(PermissionContextBaseTests, TestParallelRequestsDismissed) { | 423 TEST_F(PermissionContextBaseTests, TestParallelRequestsDismissed) { |
| 427 TestParallelRequests(CONTENT_SETTING_ASK); | 424 TestParallelRequests(CONTENT_SETTING_ASK); |
| 428 } | 425 } |
| OLD | NEW |