| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/common/extensions/extension_permission_set.h" | 5 #include "chrome/common/extensions/extension_permission_set.h" |
| 6 | 6 |
| 7 #include "base/json/json_value_serializer.h" | 7 #include "base/json/json_value_serializer.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 } | 192 } |
| 193 | 193 |
| 194 TEST(ExtensionAPIPermissionTest, ComponentOnlyPermissions) { | 194 TEST(ExtensionAPIPermissionTest, ComponentOnlyPermissions) { |
| 195 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); | 195 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); |
| 196 ExtensionAPIPermissionSet private_perms; | 196 ExtensionAPIPermissionSet private_perms; |
| 197 private_perms.insert(ExtensionAPIPermission::kChromeAuthPrivate); | 197 private_perms.insert(ExtensionAPIPermission::kChromeAuthPrivate); |
| 198 private_perms.insert(ExtensionAPIPermission::kChromeosInfoPrivate); | 198 private_perms.insert(ExtensionAPIPermission::kChromeosInfoPrivate); |
| 199 private_perms.insert(ExtensionAPIPermission::kFileBrowserPrivate); | 199 private_perms.insert(ExtensionAPIPermission::kFileBrowserPrivate); |
| 200 private_perms.insert(ExtensionAPIPermission::kMediaPlayerPrivate); | 200 private_perms.insert(ExtensionAPIPermission::kMediaPlayerPrivate); |
| 201 private_perms.insert(ExtensionAPIPermission::kMetricsPrivate); | 201 private_perms.insert(ExtensionAPIPermission::kMetricsPrivate); |
| 202 private_perms.insert(ExtensionAPIPermission::kSystemPrivate); |
| 202 private_perms.insert(ExtensionAPIPermission::kWebstorePrivate); | 203 private_perms.insert(ExtensionAPIPermission::kWebstorePrivate); |
| 203 | 204 |
| 204 ExtensionAPIPermissionSet perms = info->GetAll(); | 205 ExtensionAPIPermissionSet perms = info->GetAll(); |
| 205 int count = 0; | 206 int count = 0; |
| 206 for (ExtensionAPIPermissionSet::iterator i = perms.begin(); | 207 for (ExtensionAPIPermissionSet::iterator i = perms.begin(); |
| 207 i != perms.end(); ++i) { | 208 i != perms.end(); ++i) { |
| 208 count += private_perms.count(*i); | 209 count += private_perms.count(*i); |
| 209 EXPECT_EQ(private_perms.count(*i) > 0, | 210 EXPECT_EQ(private_perms.count(*i) > 0, |
| 210 info->GetByID(*i)->is_component_only()); | 211 info->GetByID(*i)->is_component_only()); |
| 211 } | 212 } |
| 212 | 213 |
| 213 EXPECT_EQ(6, count); | 214 EXPECT_EQ(7, count); |
| 214 } | 215 } |
| 215 | 216 |
| 216 TEST(ExtensionPermissionSetTest, EffectiveHostPermissions) { | 217 TEST(ExtensionPermissionSetTest, EffectiveHostPermissions) { |
| 217 scoped_refptr<Extension> extension; | 218 scoped_refptr<Extension> extension; |
| 218 scoped_refptr<const ExtensionPermissionSet> permissions; | 219 scoped_refptr<const ExtensionPermissionSet> permissions; |
| 219 | 220 |
| 220 extension = LoadManifest("effective_host_permissions", "empty.json"); | 221 extension = LoadManifest("effective_host_permissions", "empty.json"); |
| 221 permissions = extension->GetActivePermissions(); | 222 permissions = extension->GetActivePermissions(); |
| 222 EXPECT_EQ(0u, extension->GetEffectiveHostPermissions().patterns().size()); | 223 EXPECT_EQ(0u, extension->GetEffectiveHostPermissions().patterns().size()); |
| 223 EXPECT_FALSE(permissions->HasEffectiveAccessToURL( | 224 EXPECT_FALSE(permissions->HasEffectiveAccessToURL( |
| (...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 656 | 657 |
| 657 // This permission requires explicit user action (context menu handler) | 658 // This permission requires explicit user action (context menu handler) |
| 658 // so we won't prompt for it for now. | 659 // so we won't prompt for it for now. |
| 659 skip.insert(ExtensionAPIPermission::kFileBrowserHandler); | 660 skip.insert(ExtensionAPIPermission::kFileBrowserHandler); |
| 660 | 661 |
| 661 // If you've turned on the experimental command-line flag, we don't need | 662 // If you've turned on the experimental command-line flag, we don't need |
| 662 // to warn you further. | 663 // to warn you further. |
| 663 skip.insert(ExtensionAPIPermission::kExperimental); | 664 skip.insert(ExtensionAPIPermission::kExperimental); |
| 664 | 665 |
| 665 // These are private. | 666 // These are private. |
| 666 skip.insert(ExtensionAPIPermission::kWebstorePrivate); | 667 skip.insert(ExtensionAPIPermission::kChromeAuthPrivate); |
| 668 skip.insert(ExtensionAPIPermission::kChromeosInfoPrivate); |
| 669 skip.insert(ExtensionAPIPermission::kChromePrivate); |
| 667 skip.insert(ExtensionAPIPermission::kFileBrowserPrivate); | 670 skip.insert(ExtensionAPIPermission::kFileBrowserPrivate); |
| 671 skip.insert(ExtensionAPIPermission::kInputMethodPrivate); |
| 668 skip.insert(ExtensionAPIPermission::kMediaPlayerPrivate); | 672 skip.insert(ExtensionAPIPermission::kMediaPlayerPrivate); |
| 669 skip.insert(ExtensionAPIPermission::kMetricsPrivate); | 673 skip.insert(ExtensionAPIPermission::kMetricsPrivate); |
| 670 skip.insert(ExtensionAPIPermission::kChromeAuthPrivate); | 674 skip.insert(ExtensionAPIPermission::kSystemPrivate); |
| 671 skip.insert(ExtensionAPIPermission::kChromePrivate); | |
| 672 skip.insert(ExtensionAPIPermission::kChromeosInfoPrivate); | |
| 673 skip.insert(ExtensionAPIPermission::kWebSocketProxyPrivate); | 675 skip.insert(ExtensionAPIPermission::kWebSocketProxyPrivate); |
| 674 skip.insert(ExtensionAPIPermission::kInputMethodPrivate); | 676 skip.insert(ExtensionAPIPermission::kWebstorePrivate); |
| 675 | 677 |
| 676 // Warned as part of host permissions. | 678 // Warned as part of host permissions. |
| 677 skip.insert(ExtensionAPIPermission::kDevtools); | 679 skip.insert(ExtensionAPIPermission::kDevtools); |
| 678 | 680 |
| 679 // Platform apps. TODO(miket): must we skip? | 681 // Platform apps. TODO(miket): must we skip? |
| 680 skip.insert(ExtensionAPIPermission::kSocket); | 682 skip.insert(ExtensionAPIPermission::kSocket); |
| 681 | 683 |
| 682 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); | 684 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); |
| 683 ExtensionAPIPermissionSet permissions = info->GetAll(); | 685 ExtensionAPIPermissionSet permissions = info->GetAll(); |
| 684 for (ExtensionAPIPermissionSet::const_iterator i = permissions.begin(); | 686 for (ExtensionAPIPermissionSet::const_iterator i = permissions.begin(); |
| (...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1125 AddPattern(&non_empty_extent, "http://www.google.com/*"); | 1127 AddPattern(&non_empty_extent, "http://www.google.com/*"); |
| 1126 | 1128 |
| 1127 perm_set = new ExtensionPermissionSet( | 1129 perm_set = new ExtensionPermissionSet( |
| 1128 empty_apis, non_empty_extent, empty_extent); | 1130 empty_apis, non_empty_extent, empty_extent); |
| 1129 EXPECT_FALSE(perm_set->IsEmpty()); | 1131 EXPECT_FALSE(perm_set->IsEmpty()); |
| 1130 | 1132 |
| 1131 perm_set = new ExtensionPermissionSet( | 1133 perm_set = new ExtensionPermissionSet( |
| 1132 empty_apis, empty_extent, non_empty_extent); | 1134 empty_apis, empty_extent, non_empty_extent); |
| 1133 EXPECT_FALSE(perm_set->IsEmpty()); | 1135 EXPECT_FALSE(perm_set->IsEmpty()); |
| 1134 } | 1136 } |
| OLD | NEW |