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 |