Commit f94fcdc4 authored by treib's avatar treib Committed by Commit bot

Extensions: Switch to new permission message system, part IV

Flip the Switch!

Also, re-order a rule in the new system to fix a test.
Also, cleanup the test.

BUG=398257,478634

Review URL: https://codereview.chromium.org/1106613005

Cr-Commit-Position: refs/heads/master@{#327020}
parent d5197b41
...@@ -320,10 +320,6 @@ ChromePermissionMessageRule::GetAllRules() { ...@@ -320,10 +320,6 @@ ChromePermissionMessageRule::GetAllRules() {
APIPermission::kAccessibilityFeaturesRead}, APIPermission::kAccessibilityFeaturesRead},
{}}, {}},
{IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE,
{APIPermission::kAudioCapture, APIPermission::kVideoCapture},
{}},
// TODO(sashab): Add the missing combinations of media galleries // TODO(sashab): Add the missing combinations of media galleries
// permissions so a valid permission is generated for all combinations. // permissions so a valid permission is generated for all combinations.
{IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE_DELETE, {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE_DELETE,
...@@ -544,6 +540,10 @@ ChromePermissionMessageRule::GetAllRules() { ...@@ -544,6 +540,10 @@ ChromePermissionMessageRule::GetAllRules() {
{APIPermission::kStartupPages}, {APIPermission::kStartupPages},
{}}, {}},
{IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE,
{APIPermission::kAudioCapture, APIPermission::kVideoCapture},
{}},
// Individual message rules taken from // Individual message rules taken from
// ExtensionsAPIPermissions::GetAllPermissions(): // ExtensionsAPIPermissions::GetAllPermissions():
{IDS_EXTENSION_PROMPT_WARNING_AUDIO_CAPTURE, {IDS_EXTENSION_PROMPT_WARNING_AUDIO_CAPTURE,
......
...@@ -1139,46 +1139,42 @@ TEST(PermissionsTest, GetWarningMessages_Plugins) { ...@@ -1139,46 +1139,42 @@ TEST(PermissionsTest, GetWarningMessages_Plugins) {
} }
TEST(PermissionsTest, GetWarningMessages_AudioVideo) { TEST(PermissionsTest, GetWarningMessages_AudioVideo) {
const std::string kAudio("Use your microphone");
const std::string kVideo("Use your camera");
const std::string kBoth("Use your microphone and camera");
// Both audio and video present. // Both audio and video present.
scoped_refptr<Extension> extension = scoped_refptr<Extension> extension =
LoadManifest("permissions", "audio-video.json"); LoadManifest("permissions", "audio-video.json");
const PermissionMessageProvider* provider = PermissionMessageProvider::Get(); const PermissionMessageProvider* provider = PermissionMessageProvider::Get();
PermissionSet* set = const_cast<PermissionSet*>( PermissionSet* set = const_cast<PermissionSet*>(
extension->permissions_data()->active_permissions().get()); extension->permissions_data()->active_permissions().get());
EXPECT_FALSE(VerifyHasPermissionMessage(set, extension->GetType(), EXPECT_FALSE(VerifyHasPermissionMessage(set, extension->GetType(), kAudio));
"Use your microphone")); EXPECT_FALSE(VerifyHasPermissionMessage(set, extension->GetType(), kVideo));
EXPECT_FALSE( EXPECT_TRUE(VerifyHasPermissionMessage(set, extension->GetType(), kBoth));
VerifyHasPermissionMessage(set, extension->GetType(), "Use your camera"));
EXPECT_TRUE(VerifyHasPermissionMessage(set, extension->GetType(),
"Use your microphone and camera"));
PermissionMessageStrings warnings = PermissionMessageStrings warnings =
provider->GetPermissionMessageStrings(set, extension->GetType()); provider->GetPermissionMessageStrings(set, extension->GetType());
size_t combined_index = IndexOf(warnings, "Use your microphone and camera"); size_t combined_index = IndexOf(warnings, kBoth);
size_t combined_size = warnings.size(); size_t combined_size = warnings.size();
// Just audio present. // Just audio present.
set->apis_.erase(APIPermission::kVideoCapture); set->apis_.erase(APIPermission::kVideoCapture);
EXPECT_TRUE(VerifyHasPermissionMessage(set, extension->GetType(), EXPECT_TRUE(VerifyHasPermissionMessage(set, extension->GetType(), kAudio));
"Use your microphone")); EXPECT_FALSE(VerifyHasPermissionMessage(set, extension->GetType(), kVideo));
EXPECT_FALSE( EXPECT_FALSE(VerifyHasPermissionMessage(set, extension->GetType(), kBoth));
VerifyHasPermissionMessage(set, extension->GetType(), "Use your camera"));
EXPECT_FALSE(VerifyHasPermissionMessage(set, extension->GetType(),
"Use your microphone and camera"));
warnings = provider->GetPermissionMessageStrings(set, extension->GetType()); warnings = provider->GetPermissionMessageStrings(set, extension->GetType());
EXPECT_EQ(combined_size, warnings.size()); EXPECT_EQ(combined_size, warnings.size());
EXPECT_EQ(combined_index, IndexOf(warnings, "Use your microphone")); EXPECT_EQ(combined_index, IndexOf(warnings, kAudio));
// Just video present. // Just video present.
set->apis_.erase(APIPermission::kAudioCapture); set->apis_.erase(APIPermission::kAudioCapture);
set->apis_.insert(APIPermission::kVideoCapture); set->apis_.insert(APIPermission::kVideoCapture);
EXPECT_FALSE(VerifyHasPermissionMessage(set, extension->GetType(), EXPECT_FALSE(VerifyHasPermissionMessage(set, extension->GetType(), kAudio));
"Use your microphone")); EXPECT_TRUE(VerifyHasPermissionMessage(set, extension->GetType(), kVideo));
EXPECT_TRUE( EXPECT_FALSE(VerifyHasPermissionMessage(set, extension->GetType(), kBoth));
VerifyHasPermissionMessage(set, extension->GetType(), "Use your camera"));
EXPECT_FALSE(VerifyHasPermissionMessage(set, extension->GetType(),
"Use your microphone and camera"));
warnings = provider->GetPermissionMessageStrings(set, extension->GetType()); warnings = provider->GetPermissionMessageStrings(set, extension->GetType());
EXPECT_EQ(combined_size, warnings.size()); EXPECT_EQ(combined_size, warnings.size());
EXPECT_EQ(combined_index, IndexOf(warnings, kVideo));
} }
TEST(PermissionsTest, GetWarningMessages_CombinedSessions) { TEST(PermissionsTest, GetWarningMessages_CombinedSessions) {
......
...@@ -20,7 +20,7 @@ bool IsNewPermissionMessageSystemEnabled() { ...@@ -20,7 +20,7 @@ bool IsNewPermissionMessageSystemEnabled() {
return g_force_permission_system_for_testing == ForceForTesting::FORCE_NEW; return g_force_permission_system_for_testing == ForceForTesting::FORCE_NEW;
const std::string group_name = const std::string group_name =
base::FieldTrialList::FindFullName("PermissionMessageSystem"); base::FieldTrialList::FindFullName("PermissionMessageSystem");
return group_name == "NewSystem"; return group_name != "OldSystem";
} }
} // namespace } // namespace
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment