| 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 |