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 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 } | 166 } |
167 | 167 |
168 TEST(ExtensionAPIPermissionTest, ComponentOnlyPermissions) { | 168 TEST(ExtensionAPIPermissionTest, ComponentOnlyPermissions) { |
169 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); | 169 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); |
170 ExtensionAPIPermissionSet private_perms; | 170 ExtensionAPIPermissionSet private_perms; |
171 private_perms.insert(ExtensionAPIPermission::kChromeAuthPrivate); | 171 private_perms.insert(ExtensionAPIPermission::kChromeAuthPrivate); |
172 private_perms.insert(ExtensionAPIPermission::kChromeosInfoPrivate); | 172 private_perms.insert(ExtensionAPIPermission::kChromeosInfoPrivate); |
173 private_perms.insert(ExtensionAPIPermission::kFileBrowserPrivate); | 173 private_perms.insert(ExtensionAPIPermission::kFileBrowserPrivate); |
174 private_perms.insert(ExtensionAPIPermission::kMediaPlayerPrivate); | 174 private_perms.insert(ExtensionAPIPermission::kMediaPlayerPrivate); |
175 private_perms.insert(ExtensionAPIPermission::kMetricsPrivate); | 175 private_perms.insert(ExtensionAPIPermission::kMetricsPrivate); |
| 176 private_perms.insert(ExtensionAPIPermission::kSystemPrivate); |
176 private_perms.insert(ExtensionAPIPermission::kWebstorePrivate); | 177 private_perms.insert(ExtensionAPIPermission::kWebstorePrivate); |
177 | 178 |
178 ExtensionAPIPermissionSet perms = info->GetAll(); | 179 ExtensionAPIPermissionSet perms = info->GetAll(); |
179 int count = 0; | 180 int count = 0; |
180 for (ExtensionAPIPermissionSet::iterator i = perms.begin(); | 181 for (ExtensionAPIPermissionSet::iterator i = perms.begin(); |
181 i != perms.end(); ++i) { | 182 i != perms.end(); ++i) { |
182 count += private_perms.count(*i); | 183 count += private_perms.count(*i); |
183 EXPECT_EQ(private_perms.count(*i) > 0, | 184 EXPECT_EQ(private_perms.count(*i) > 0, |
184 info->GetByID(*i)->is_component_only()); | 185 info->GetByID(*i)->is_component_only()); |
185 } | 186 } |
186 | 187 |
187 EXPECT_EQ(6, count); | 188 EXPECT_EQ(7, count); |
188 } | 189 } |
189 | 190 |
190 TEST(ExtensionPermissionSetTest, EffectiveHostPermissions) { | 191 TEST(ExtensionPermissionSetTest, EffectiveHostPermissions) { |
191 scoped_refptr<Extension> extension; | 192 scoped_refptr<Extension> extension; |
192 scoped_refptr<const ExtensionPermissionSet> permissions; | 193 scoped_refptr<const ExtensionPermissionSet> permissions; |
193 | 194 |
194 extension = LoadManifest("effective_host_permissions", "empty.json"); | 195 extension = LoadManifest("effective_host_permissions", "empty.json"); |
195 permissions = extension->GetActivePermissions(); | 196 permissions = extension->GetActivePermissions(); |
196 EXPECT_EQ(0u, extension->GetEffectiveHostPermissions().patterns().size()); | 197 EXPECT_EQ(0u, extension->GetEffectiveHostPermissions().patterns().size()); |
197 EXPECT_FALSE(permissions->HasEffectiveAccessToURL( | 198 EXPECT_FALSE(permissions->HasEffectiveAccessToURL( |
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
628 | 629 |
629 // This permission requires explicit user action (context menu handler) | 630 // This permission requires explicit user action (context menu handler) |
630 // so we won't prompt for it for now. | 631 // so we won't prompt for it for now. |
631 skip.insert(ExtensionAPIPermission::kFileBrowserHandler); | 632 skip.insert(ExtensionAPIPermission::kFileBrowserHandler); |
632 | 633 |
633 // If you've turned on the experimental command-line flag, we don't need | 634 // If you've turned on the experimental command-line flag, we don't need |
634 // to warn you further. | 635 // to warn you further. |
635 skip.insert(ExtensionAPIPermission::kExperimental); | 636 skip.insert(ExtensionAPIPermission::kExperimental); |
636 | 637 |
637 // These are private. | 638 // These are private. |
638 skip.insert(ExtensionAPIPermission::kWebstorePrivate); | 639 skip.insert(ExtensionAPIPermission::kChromeAuthPrivate); |
| 640 skip.insert(ExtensionAPIPermission::kChromeosInfoPrivate); |
| 641 skip.insert(ExtensionAPIPermission::kChromePrivate); |
639 skip.insert(ExtensionAPIPermission::kFileBrowserPrivate); | 642 skip.insert(ExtensionAPIPermission::kFileBrowserPrivate); |
| 643 skip.insert(ExtensionAPIPermission::kInputMethodPrivate); |
640 skip.insert(ExtensionAPIPermission::kMediaPlayerPrivate); | 644 skip.insert(ExtensionAPIPermission::kMediaPlayerPrivate); |
641 skip.insert(ExtensionAPIPermission::kMetricsPrivate); | 645 skip.insert(ExtensionAPIPermission::kMetricsPrivate); |
642 skip.insert(ExtensionAPIPermission::kChromeAuthPrivate); | 646 skip.insert(ExtensionAPIPermission::kSystemPrivate); |
643 skip.insert(ExtensionAPIPermission::kChromePrivate); | |
644 skip.insert(ExtensionAPIPermission::kChromeosInfoPrivate); | |
645 skip.insert(ExtensionAPIPermission::kWebSocketProxyPrivate); | 647 skip.insert(ExtensionAPIPermission::kWebSocketProxyPrivate); |
646 skip.insert(ExtensionAPIPermission::kInputMethodPrivate); | 648 skip.insert(ExtensionAPIPermission::kWebstorePrivate); |
647 | 649 |
648 // Warned as part of host permissions. | 650 // Warned as part of host permissions. |
649 skip.insert(ExtensionAPIPermission::kDevtools); | 651 skip.insert(ExtensionAPIPermission::kDevtools); |
650 | 652 |
651 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); | 653 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); |
652 ExtensionAPIPermissionSet permissions = info->GetAll(); | 654 ExtensionAPIPermissionSet permissions = info->GetAll(); |
653 for (ExtensionAPIPermissionSet::const_iterator i = permissions.begin(); | 655 for (ExtensionAPIPermissionSet::const_iterator i = permissions.begin(); |
654 i != permissions.end(); ++i) { | 656 i != permissions.end(); ++i) { |
655 ExtensionAPIPermission* permission = info->GetByID(*i); | 657 ExtensionAPIPermission* permission = info->GetByID(*i); |
656 EXPECT_TRUE(permission); | 658 EXPECT_TRUE(permission); |
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1094 AddPattern(&non_empty_extent, "http://www.google.com/*"); | 1096 AddPattern(&non_empty_extent, "http://www.google.com/*"); |
1095 | 1097 |
1096 perm_set = new ExtensionPermissionSet( | 1098 perm_set = new ExtensionPermissionSet( |
1097 empty_apis, non_empty_extent, empty_extent); | 1099 empty_apis, non_empty_extent, empty_extent); |
1098 EXPECT_FALSE(perm_set->IsEmpty()); | 1100 EXPECT_FALSE(perm_set->IsEmpty()); |
1099 | 1101 |
1100 perm_set = new ExtensionPermissionSet( | 1102 perm_set = new ExtensionPermissionSet( |
1101 empty_apis, empty_extent, non_empty_extent); | 1103 empty_apis, empty_extent, non_empty_extent); |
1102 EXPECT_FALSE(perm_set->IsEmpty()); | 1104 EXPECT_FALSE(perm_set->IsEmpty()); |
1103 } | 1105 } |
OLD | NEW |