Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/json/json_file_value_serializer.h" | 6 #include "base/json/json_file_value_serializer.h" |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/strings/string_number_conversions.h" | |
| 8 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/common/chrome_paths.h" | 10 #include "chrome/common/chrome_paths.h" |
| 10 #include "chrome/common/chrome_switches.h" | 11 #include "chrome/common/chrome_switches.h" |
| 11 #include "chrome/common/extensions/extension_test_util.h" | 12 #include "chrome/common/extensions/extension_test_util.h" |
| 12 #include "chrome/common/extensions/features/feature_channel.h" | 13 #include "chrome/common/extensions/features/feature_channel.h" |
| 13 #include "chrome/common/extensions/permissions/chrome_permission_message_provide r.h" | 14 #include "chrome/common/extensions/permissions/chrome_permission_message_provide r.h" |
| 14 #include "chrome/grit/generated_resources.h" | 15 #include "chrome/grit/generated_resources.h" |
| 15 #include "extensions/common/error_utils.h" | 16 #include "extensions/common/error_utils.h" |
| 16 #include "extensions/common/extension.h" | 17 #include "extensions/common/extension.h" |
| 17 #include "extensions/common/extension_builder.h" | 18 #include "extensions/common/extension_builder.h" |
| (...skipping 763 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 781 if (skip.count(i->id())) { | 782 if (skip.count(i->id())) { |
| 782 EXPECT_EQ(PermissionMessage::kNone, permission_info->message_id()) | 783 EXPECT_EQ(PermissionMessage::kNone, permission_info->message_id()) |
| 783 << "unexpected message_id for " << permission_info->name(); | 784 << "unexpected message_id for " << permission_info->name(); |
| 784 } else { | 785 } else { |
| 785 EXPECT_NE(PermissionMessage::kNone, permission_info->message_id()) | 786 EXPECT_NE(PermissionMessage::kNone, permission_info->message_id()) |
| 786 << "missing message_id for " << permission_info->name(); | 787 << "missing message_id for " << permission_info->name(); |
| 787 } | 788 } |
| 788 } | 789 } |
| 789 } | 790 } |
| 790 | 791 |
| 792 PermissionIDSet MakePermissionIDSet(APIPermission::ID id1) { | |
|
Devlin
2015/04/02 21:00:23
Can you move all of these to the anonymous namespa
Marc Treib
2015/04/07 11:34:47
Done.
| |
| 793 PermissionIDSet set; | |
| 794 set.insert(id1); | |
| 795 return set; | |
| 796 } | |
| 797 | |
| 798 PermissionIDSet MakePermissionIDSet(APIPermission::ID id1, | |
| 799 APIPermission::ID id2) { | |
| 800 PermissionIDSet set; | |
| 801 set.insert(id1); | |
| 802 set.insert(id2); | |
| 803 return set; | |
| 804 } | |
| 805 | |
| 806 PermissionIDSet MakePermissionIDSet(const APIPermissionSet& permissions) { | |
| 807 PermissionIDSet set; | |
| 808 for (const APIPermission* permission : permissions) | |
| 809 set.insert(permission->id()); | |
| 810 return set; | |
| 811 } | |
| 812 | |
| 813 std::string LegacyPermissionIDsToString(const PermissionMessageIDs& ids) { | |
| 814 if (ids.empty()) | |
|
Devlin
2015/04/02 21:00:23
nit: JoinString just returns "" if there are no st
Marc Treib
2015/04/07 11:34:47
Okay, removed. We'll get some extra spaces in the
| |
| 815 return "[]"; | |
| 816 std::vector<std::string> strs; | |
| 817 for (const PermissionMessage::ID& id : ids) | |
| 818 strs.push_back(base::IntToString(id)); | |
| 819 return "[ " + JoinString(strs, ", ") + " ]"; | |
|
Devlin
2015/04/02 21:00:23
nit: please use base::StringPrintf() (as a rule of
Marc Treib
2015/04/07 11:34:47
Done.
| |
| 820 } | |
| 821 | |
| 822 std::string PermissionIDsToString(const PermissionIDSet& ids) { | |
| 823 if (ids.empty()) | |
| 824 return "[]"; | |
| 825 std::vector<std::string> strs; | |
| 826 for (const PermissionID& id : ids) | |
| 827 strs.push_back(base::IntToString(id.id())); | |
| 828 return "[ " + JoinString(strs, ", ") + " ]"; | |
| 829 } | |
| 830 | |
| 831 std::string CoalescedPermissionIDsToString( | |
| 832 const CoalescedPermissionMessages& msgs) { | |
| 833 std::vector<std::string> strs; | |
| 834 for (const CoalescedPermissionMessage& msg : msgs) | |
| 835 strs.push_back(PermissionIDsToString(msg.permissions())); | |
| 836 return JoinString(strs, " "); | |
| 837 } | |
| 838 | |
| 839 testing::AssertionResult CheckPermissionIDs( | |
|
Devlin
2015/04/02 21:00:23
This really only pertains to situations with Hidde
Devlin
2015/04/02 21:00:23
Add function comments.
Marc Treib
2015/04/07 11:34:47
Done.
Marc Treib
2015/04/07 11:34:47
I've renamed it to PermissionSetProducesMessage. O
| |
| 840 const PermissionSet* permissions, | |
| 841 Manifest::Type extension_type, | |
| 842 PermissionMessage::ID expected_legacy_id, | |
| 843 const PermissionIDSet& expected_ids) { | |
| 844 PermissionMessageIDs legacy_ids = | |
| 845 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | |
| 846 permissions, extension_type); | |
| 847 if (legacy_ids.size() != 1 || expected_legacy_id != legacy_ids[0]) { | |
| 848 return testing::AssertionFailure() | |
| 849 << "Expected single legacy permission ID " << expected_legacy_id | |
|
Devlin
2015/04/02 21:00:23
indentation off? (Also at other returns)
Marc Treib
2015/04/07 11:34:47
This is what "git cl format" produced (weird thoug
Devlin
2015/04/07 15:55:56
:_( Why 8-space indentation? Grrr.... Well, if gi
Marc Treib
2015/04/07 16:15:55
I think there's some special case thingie to line
| |
| 850 << " but got " << LegacyPermissionIDsToString(legacy_ids); | |
| 851 } | |
| 852 | |
| 853 const PermissionMessageProvider* provider = PermissionMessageProvider::Get(); | |
|
Devlin
2015/04/02 21:00:23
Cache this above, since you also use it on line 84
Marc Treib
2015/04/07 11:34:47
Done.
| |
| 854 CoalescedPermissionMessages msgs = provider->GetCoalescedPermissionMessages( | |
| 855 provider->GetAllPermissionIDs(permissions, extension_type)); | |
| 856 if (msgs.size() != 1) { | |
| 857 return testing::AssertionFailure() | |
| 858 << "Expected single permission message with IDs " | |
| 859 << PermissionIDsToString(expected_ids) << " but got " << msgs.size() | |
| 860 << " messages: " << CoalescedPermissionIDsToString(msgs); | |
| 861 } | |
| 862 if (!msgs.front().permissions().Equals(expected_ids)) { | |
| 863 return testing::AssertionFailure() | |
| 864 << "Expected permission IDs " << PermissionIDsToString(expected_ids) | |
| 865 << " but got " << PermissionIDsToString(msgs.front().permissions()); | |
| 866 } | |
| 867 | |
| 868 return testing::AssertionSuccess(); | |
| 869 } | |
| 870 | |
| 791 TEST(PermissionsTest, FileSystemPermissionMessages) { | 871 TEST(PermissionsTest, FileSystemPermissionMessages) { |
| 792 APIPermissionSet api_permissions; | 872 APIPermissionSet api_permissions; |
| 793 api_permissions.insert(APIPermission::kFileSystemWrite); | 873 api_permissions.insert(APIPermission::kFileSystemWrite); |
| 794 api_permissions.insert(APIPermission::kFileSystemDirectory); | 874 api_permissions.insert(APIPermission::kFileSystemDirectory); |
| 795 scoped_refptr<PermissionSet> permissions( | 875 scoped_refptr<PermissionSet> permissions( |
| 796 new PermissionSet(api_permissions, ManifestPermissionSet(), | 876 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 797 URLPatternSet(), URLPatternSet())); | 877 URLPatternSet(), URLPatternSet())); |
| 798 PermissionMessageIDs ids = | 878 EXPECT_TRUE(CheckPermissionIDs(permissions.get(), Manifest::TYPE_PLATFORM_APP, |
| 799 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 879 PermissionMessage::kFileSystemDirectory, |
| 800 permissions.get(), Manifest::TYPE_PLATFORM_APP); | 880 MakePermissionIDSet(api_permissions))); |
| 801 ASSERT_EQ(1u, ids.size()); | |
| 802 EXPECT_EQ(PermissionMessage::kFileSystemDirectory, ids[0]); | |
| 803 } | 881 } |
| 804 | 882 |
| 805 // The file system permissions have a special-case hack to show a warning for | 883 // The file system permissions have a special-case hack to show a warning for |
| 806 // write and directory at the same time. | 884 // write and directory at the same time. |
| 807 // TODO(sammc): Remove this. See http://crbug.com/284849. | 885 // TODO(sammc): Remove this. See http://crbug.com/284849. |
| 808 TEST(PermissionsTest, FileSystemImplicitPermissions) { | 886 TEST(PermissionsTest, FileSystemImplicitPermissions) { |
| 809 APIPermissionSet apis; | 887 APIPermissionSet apis; |
| 810 apis.insert(APIPermission::kFileSystemWrite); | 888 apis.insert(APIPermission::kFileSystemWrite); |
| 811 apis.AddImpliedPermissions(); | 889 apis.AddImpliedPermissions(); |
| 812 | 890 |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 835 } | 913 } |
| 836 | 914 |
| 837 TEST(PermissionsTest, HiddenFileSystemPermissionMessages) { | 915 TEST(PermissionsTest, HiddenFileSystemPermissionMessages) { |
| 838 APIPermissionSet api_permissions; | 916 APIPermissionSet api_permissions; |
| 839 api_permissions.insert(APIPermission::kFileSystemWrite); | 917 api_permissions.insert(APIPermission::kFileSystemWrite); |
| 840 api_permissions.insert(APIPermission::kFileSystemDirectory); | 918 api_permissions.insert(APIPermission::kFileSystemDirectory); |
| 841 api_permissions.insert(APIPermission::kFileSystemWriteDirectory); | 919 api_permissions.insert(APIPermission::kFileSystemWriteDirectory); |
| 842 scoped_refptr<PermissionSet> permissions( | 920 scoped_refptr<PermissionSet> permissions( |
| 843 new PermissionSet(api_permissions, ManifestPermissionSet(), | 921 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 844 URLPatternSet(), URLPatternSet())); | 922 URLPatternSet(), URLPatternSet())); |
| 845 PermissionMessageIDs ids = | 923 EXPECT_TRUE(CheckPermissionIDs(permissions.get(), Manifest::TYPE_PLATFORM_APP, |
| 846 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 924 PermissionMessage::kFileSystemWriteDirectory, |
| 847 permissions.get(), Manifest::TYPE_PLATFORM_APP); | 925 MakePermissionIDSet(api_permissions))); |
| 848 ASSERT_EQ(1u, ids.size()); | |
| 849 EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, ids[0]); | |
| 850 } | 926 } |
| 851 | 927 |
| 852 TEST(PermissionsTest, SuppressedPermissionMessages) { | 928 TEST(PermissionsTest, SuppressedPermissionMessages) { |
| 853 { | 929 { |
| 854 // Tabs warning suppresses favicon warning. | 930 // Tabs warning suppresses favicon warning. |
| 855 APIPermissionSet api_permissions; | 931 APIPermissionSet api_permissions; |
| 856 api_permissions.insert(APIPermission::kTab); | 932 api_permissions.insert(APIPermission::kTab); |
| 857 URLPatternSet hosts; | 933 URLPatternSet hosts; |
| 858 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, | 934 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, |
| 859 "chrome://favicon/")); | 935 "chrome://favicon/")); |
| 860 scoped_refptr<PermissionSet> permissions( | 936 scoped_refptr<PermissionSet> permissions( |
| 861 new PermissionSet(api_permissions, ManifestPermissionSet(), | 937 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 862 hosts, URLPatternSet())); | 938 hosts, URLPatternSet())); |
| 863 PermissionMessageIDs ids = | 939 EXPECT_TRUE(CheckPermissionIDs( |
| 864 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 940 permissions.get(), Manifest::TYPE_EXTENSION, PermissionMessage::kTabs, |
| 865 permissions.get(), Manifest::TYPE_EXTENSION); | 941 MakePermissionIDSet(APIPermission::kTab, APIPermission::kFavicon))); |
| 866 EXPECT_EQ(1u, ids.size()); | |
| 867 EXPECT_EQ(PermissionMessage::kTabs, ids[0]); | |
| 868 } | 942 } |
| 869 { | 943 { |
| 870 // History warning suppresses favicon warning. | 944 // History warning suppresses favicon warning. |
| 871 APIPermissionSet api_permissions; | 945 APIPermissionSet api_permissions; |
| 872 api_permissions.insert(APIPermission::kHistory); | 946 api_permissions.insert(APIPermission::kHistory); |
| 873 URLPatternSet hosts; | 947 URLPatternSet hosts; |
| 874 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, | 948 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, |
| 875 "chrome://favicon/")); | 949 "chrome://favicon/")); |
| 876 scoped_refptr<PermissionSet> permissions( | 950 scoped_refptr<PermissionSet> permissions( |
| 877 new PermissionSet(api_permissions, ManifestPermissionSet(), | 951 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 878 hosts, URLPatternSet())); | 952 hosts, URLPatternSet())); |
| 879 PermissionMessageIDs ids = | 953 EXPECT_TRUE(CheckPermissionIDs( |
| 880 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 954 permissions.get(), Manifest::TYPE_EXTENSION, |
| 881 permissions.get(), Manifest::TYPE_EXTENSION); | 955 PermissionMessage::kBrowsingHistory, |
| 882 EXPECT_EQ(1u, ids.size()); | 956 MakePermissionIDSet(APIPermission::kHistory, APIPermission::kFavicon))); |
| 883 EXPECT_EQ(PermissionMessage::kBrowsingHistory, ids[0]); | |
| 884 } | 957 } |
| 885 { | 958 { |
| 886 // All sites warning suppresses tabs warning. | 959 // All sites warning suppresses tabs warning. |
| 887 APIPermissionSet api_permissions; | 960 APIPermissionSet api_permissions; |
| 961 api_permissions.insert(APIPermission::kTab); | |
| 888 URLPatternSet hosts; | 962 URLPatternSet hosts; |
| 889 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); | 963 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); |
| 890 api_permissions.insert(APIPermission::kTab); | |
| 891 scoped_refptr<PermissionSet> permissions(new PermissionSet( | 964 scoped_refptr<PermissionSet> permissions(new PermissionSet( |
| 892 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); | 965 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); |
| 893 PermissionMessageIDs ids = | 966 EXPECT_TRUE(CheckPermissionIDs( |
| 894 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 967 permissions.get(), Manifest::TYPE_EXTENSION, |
| 895 permissions.get(), Manifest::TYPE_EXTENSION); | 968 PermissionMessage::kHostsAll, |
| 896 EXPECT_EQ(1u, ids.size()); | 969 MakePermissionIDSet(APIPermission::kHostsAll, APIPermission::kTab))); |
| 897 EXPECT_EQ(PermissionMessage::kHostsAll, ids[0]); | |
| 898 } | 970 } |
| 899 { | 971 { |
| 900 // All sites warning suppresses topSites warning. | 972 // All sites warning suppresses topSites warning. |
| 901 APIPermissionSet api_permissions; | 973 APIPermissionSet api_permissions; |
| 974 api_permissions.insert(APIPermission::kTopSites); | |
| 902 URLPatternSet hosts; | 975 URLPatternSet hosts; |
| 903 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); | 976 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); |
| 904 api_permissions.insert(APIPermission::kTopSites); | |
| 905 scoped_refptr<PermissionSet> permissions(new PermissionSet( | 977 scoped_refptr<PermissionSet> permissions(new PermissionSet( |
| 906 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); | 978 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); |
| 907 PermissionMessageIDs ids = | 979 EXPECT_TRUE( |
| 908 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 980 CheckPermissionIDs(permissions.get(), Manifest::TYPE_EXTENSION, |
| 909 permissions.get(), Manifest::TYPE_EXTENSION); | 981 PermissionMessage::kHostsAll, |
| 910 EXPECT_EQ(1u, ids.size()); | 982 MakePermissionIDSet(APIPermission::kHostsAll, |
| 911 EXPECT_EQ(PermissionMessage::kHostsAll, ids[0]); | 983 APIPermission::kTopSites))); |
| 912 } | 984 } |
| 913 { | 985 { |
| 914 // All sites warning suppresses declarativeWebRequest warning. | 986 // All sites warning suppresses declarativeWebRequest warning. |
| 915 APIPermissionSet api_permissions; | 987 APIPermissionSet api_permissions; |
| 988 api_permissions.insert(APIPermission::kDeclarativeWebRequest); | |
| 916 URLPatternSet hosts; | 989 URLPatternSet hosts; |
| 917 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); | 990 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); |
| 918 api_permissions.insert(APIPermission::kDeclarativeWebRequest); | |
| 919 scoped_refptr<PermissionSet> permissions(new PermissionSet( | 991 scoped_refptr<PermissionSet> permissions(new PermissionSet( |
| 920 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); | 992 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); |
| 921 PermissionMessageIDs ids = | 993 EXPECT_TRUE(CheckPermissionIDs( |
| 922 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 994 permissions.get(), Manifest::TYPE_EXTENSION, |
| 923 permissions.get(), Manifest::TYPE_EXTENSION); | 995 PermissionMessage::kHostsAll, |
| 924 EXPECT_EQ(1u, ids.size()); | 996 MakePermissionIDSet(APIPermission::kHostsAll, |
| 925 EXPECT_EQ(PermissionMessage::kHostsAll, ids[0]); | 997 APIPermission::kDeclarativeWebRequest))); |
| 926 } | 998 } |
| 927 { | 999 { |
| 928 // BrowsingHistory warning suppresses all history read/write warnings. | 1000 // BrowsingHistory warning suppresses all history read/write warnings. |
| 929 APIPermissionSet api_permissions; | 1001 APIPermissionSet api_permissions; |
| 930 api_permissions.insert(APIPermission::kHistory); | 1002 api_permissions.insert(APIPermission::kHistory); |
| 931 api_permissions.insert(APIPermission::kTab); | 1003 api_permissions.insert(APIPermission::kTab); |
| 932 api_permissions.insert(APIPermission::kTopSites); | 1004 api_permissions.insert(APIPermission::kTopSites); |
| 933 api_permissions.insert(APIPermission::kProcesses); | 1005 api_permissions.insert(APIPermission::kProcesses); |
| 934 api_permissions.insert(APIPermission::kWebNavigation); | 1006 api_permissions.insert(APIPermission::kWebNavigation); |
| 935 scoped_refptr<PermissionSet> permissions( | 1007 scoped_refptr<PermissionSet> permissions( |
| 936 new PermissionSet(api_permissions, ManifestPermissionSet(), | 1008 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 937 URLPatternSet(), URLPatternSet())); | 1009 URLPatternSet(), URLPatternSet())); |
| 938 PermissionMessageIDs ids = | 1010 EXPECT_TRUE(CheckPermissionIDs(permissions.get(), Manifest::TYPE_EXTENSION, |
| 939 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 1011 PermissionMessage::kBrowsingHistory, |
| 940 permissions.get(), Manifest::TYPE_EXTENSION); | 1012 MakePermissionIDSet(api_permissions))); |
| 941 EXPECT_EQ(1u, ids.size()); | |
| 942 EXPECT_EQ(PermissionMessage::kBrowsingHistory, ids[0]); | |
| 943 } | 1013 } |
| 944 { | 1014 { |
| 945 // Tabs warning suppresses all read-only history warnings. | 1015 // Tabs warning suppresses all read-only history warnings. |
| 946 APIPermissionSet api_permissions; | 1016 APIPermissionSet api_permissions; |
| 947 api_permissions.insert(APIPermission::kTab); | 1017 api_permissions.insert(APIPermission::kTab); |
| 948 api_permissions.insert(APIPermission::kTopSites); | 1018 api_permissions.insert(APIPermission::kTopSites); |
| 949 api_permissions.insert(APIPermission::kProcesses); | 1019 api_permissions.insert(APIPermission::kProcesses); |
| 950 api_permissions.insert(APIPermission::kWebNavigation); | 1020 api_permissions.insert(APIPermission::kWebNavigation); |
| 951 scoped_refptr<PermissionSet> permissions( | 1021 scoped_refptr<PermissionSet> permissions( |
| 952 new PermissionSet(api_permissions, ManifestPermissionSet(), | 1022 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 953 URLPatternSet(), URLPatternSet())); | 1023 URLPatternSet(), URLPatternSet())); |
| 954 PermissionMessageIDs ids = | 1024 EXPECT_TRUE(CheckPermissionIDs(permissions.get(), Manifest::TYPE_EXTENSION, |
| 955 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 1025 PermissionMessage::kTabs, |
| 956 permissions.get(), Manifest::TYPE_EXTENSION); | 1026 MakePermissionIDSet(api_permissions))); |
| 957 EXPECT_EQ(1u, ids.size()); | |
| 958 EXPECT_EQ(PermissionMessage::kTabs, ids[0]); | |
| 959 } | 1027 } |
| 960 } | 1028 } |
| 961 | 1029 |
| 962 TEST(PermissionsTest, AccessToDevicesMessages) { | 1030 TEST(PermissionsTest, AccessToDevicesMessages) { |
| 963 { | 1031 { |
| 964 APIPermissionSet api_permissions; | 1032 APIPermissionSet api_permissions; |
| 965 api_permissions.insert(APIPermission::kSerial); | 1033 api_permissions.insert(APIPermission::kSerial); |
| 966 scoped_refptr<PermissionSet> permissions( | 1034 scoped_refptr<PermissionSet> permissions( |
| 967 new PermissionSet(api_permissions, | 1035 new PermissionSet(api_permissions, |
| 968 ManifestPermissionSet(), | 1036 ManifestPermissionSet(), |
| (...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1711 URLPattern(URLPattern::SCHEME_ALL, "http://www.google.com/")); | 1779 URLPattern(URLPattern::SCHEME_ALL, "http://www.google.com/")); |
| 1712 allowed_hosts.AddPattern( | 1780 allowed_hosts.AddPattern( |
| 1713 URLPattern(URLPattern::SCHEME_ALL, "chrome://favicon/")); | 1781 URLPattern(URLPattern::SCHEME_ALL, "chrome://favicon/")); |
| 1714 allowed_hosts.AddPattern( | 1782 allowed_hosts.AddPattern( |
| 1715 URLPattern(URLPattern::SCHEME_ALL, "chrome://thumb/")); | 1783 URLPattern(URLPattern::SCHEME_ALL, "chrome://thumb/")); |
| 1716 scoped_refptr<PermissionSet> permissions( | 1784 scoped_refptr<PermissionSet> permissions( |
| 1717 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(), | 1785 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(), |
| 1718 allowed_hosts, URLPatternSet())); | 1786 allowed_hosts, URLPatternSet())); |
| 1719 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 1787 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( |
| 1720 permissions.get(), Manifest::TYPE_EXTENSION); | 1788 permissions.get(), Manifest::TYPE_EXTENSION); |
| 1789 PermissionMessageProvider::Get()->GetCoalescedPermissionMessages( | |
| 1790 PermissionMessageProvider::Get()->GetAllPermissionIDs( | |
| 1791 permissions.get(), Manifest::TYPE_EXTENSION)); | |
| 1721 } | 1792 } |
| 1722 | 1793 |
| 1723 TEST(PermissionsTest, IsPrivilegeIncrease_DeclarativeWebRequest) { | 1794 TEST(PermissionsTest, IsPrivilegeIncrease_DeclarativeWebRequest) { |
| 1724 scoped_refptr<Extension> extension( | 1795 scoped_refptr<Extension> extension( |
| 1725 LoadManifest("permissions", "permissions_all_urls.json")); | 1796 LoadManifest("permissions", "permissions_all_urls.json")); |
| 1726 scoped_refptr<const PermissionSet> permissions( | 1797 scoped_refptr<const PermissionSet> permissions( |
| 1727 extension->permissions_data()->active_permissions()); | 1798 extension->permissions_data()->active_permissions()); |
| 1728 | 1799 |
| 1729 scoped_refptr<Extension> extension_dwr( | 1800 scoped_refptr<Extension> extension_dwr( |
| 1730 LoadManifest("permissions", "web_request_all_host_permissions.json")); | 1801 LoadManifest("permissions", "web_request_all_host_permissions.json")); |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 1744 apis.insert(APIPermission::kPrinterProvider); | 1815 apis.insert(APIPermission::kPrinterProvider); |
| 1745 EXPECT_TRUE(extension->is_platform_app()); | 1816 EXPECT_TRUE(extension->is_platform_app()); |
| 1746 EXPECT_TRUE(extension->permissions_data()->HasAPIPermission( | 1817 EXPECT_TRUE(extension->permissions_data()->HasAPIPermission( |
| 1747 APIPermission::kPrinterProvider)); | 1818 APIPermission::kPrinterProvider)); |
| 1748 EXPECT_TRUE(VerifyOnePermissionMessage( | 1819 EXPECT_TRUE(VerifyOnePermissionMessage( |
| 1749 extension->permissions_data(), | 1820 extension->permissions_data(), |
| 1750 "Add printing destinations and access any jobs you submit to them")); | 1821 "Add printing destinations and access any jobs you submit to them")); |
| 1751 } | 1822 } |
| 1752 | 1823 |
| 1753 } // namespace extensions | 1824 } // namespace extensions |
| OLD | NEW |