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/path_service.h" | 8 #include "base/path_service.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "chrome/common/chrome_paths.h" | 10 #include "chrome/common/chrome_paths.h" |
(...skipping 779 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
790 | 790 |
791 TEST(PermissionsTest, FileSystemPermissionMessages) { | 791 TEST(PermissionsTest, FileSystemPermissionMessages) { |
792 APIPermissionSet api_permissions; | 792 APIPermissionSet api_permissions; |
793 api_permissions.insert(APIPermission::kFileSystemWrite); | 793 api_permissions.insert(APIPermission::kFileSystemWrite); |
794 api_permissions.insert(APIPermission::kFileSystemDirectory); | 794 api_permissions.insert(APIPermission::kFileSystemDirectory); |
795 scoped_refptr<PermissionSet> permissions( | 795 scoped_refptr<PermissionSet> permissions( |
796 new PermissionSet(api_permissions, ManifestPermissionSet(), | 796 new PermissionSet(api_permissions, ManifestPermissionSet(), |
797 URLPatternSet(), URLPatternSet())); | 797 URLPatternSet(), URLPatternSet())); |
798 PermissionMessages messages = | 798 PermissionMessages messages = |
799 PermissionMessageProvider::Get()->GetPermissionMessages( | 799 PermissionMessageProvider::Get()->GetPermissionMessages( |
800 permissions, Manifest::TYPE_PLATFORM_APP); | 800 permissions.get(), Manifest::TYPE_PLATFORM_APP); |
801 ASSERT_EQ(1u, messages.size()); | 801 ASSERT_EQ(1u, messages.size()); |
802 std::sort(messages.begin(), messages.end()); | 802 std::sort(messages.begin(), messages.end()); |
803 std::set<PermissionMessage::ID> ids; | 803 std::set<PermissionMessage::ID> ids; |
804 for (PermissionMessages::const_iterator it = messages.begin(); | 804 for (PermissionMessages::const_iterator it = messages.begin(); |
805 it != messages.end(); ++it) { | 805 it != messages.end(); ++it) { |
806 ids.insert(it->id()); | 806 ids.insert(it->id()); |
807 } | 807 } |
808 EXPECT_TRUE(ContainsKey(ids, PermissionMessage::kFileSystemDirectory)); | 808 EXPECT_TRUE(ContainsKey(ids, PermissionMessage::kFileSystemDirectory)); |
809 } | 809 } |
810 | 810 |
811 TEST(PermissionsTest, HiddenFileSystemPermissionMessages) { | 811 TEST(PermissionsTest, HiddenFileSystemPermissionMessages) { |
812 APIPermissionSet api_permissions; | 812 APIPermissionSet api_permissions; |
813 api_permissions.insert(APIPermission::kFileSystemWrite); | 813 api_permissions.insert(APIPermission::kFileSystemWrite); |
814 api_permissions.insert(APIPermission::kFileSystemDirectory); | 814 api_permissions.insert(APIPermission::kFileSystemDirectory); |
815 api_permissions.insert(APIPermission::kFileSystemWriteDirectory); | 815 api_permissions.insert(APIPermission::kFileSystemWriteDirectory); |
816 scoped_refptr<PermissionSet> permissions( | 816 scoped_refptr<PermissionSet> permissions( |
817 new PermissionSet(api_permissions, ManifestPermissionSet(), | 817 new PermissionSet(api_permissions, ManifestPermissionSet(), |
818 URLPatternSet(), URLPatternSet())); | 818 URLPatternSet(), URLPatternSet())); |
819 PermissionMessages messages = | 819 PermissionMessages messages = |
820 PermissionMessageProvider::Get()->GetPermissionMessages( | 820 PermissionMessageProvider::Get()->GetPermissionMessages( |
821 permissions, Manifest::TYPE_PLATFORM_APP); | 821 permissions.get(), Manifest::TYPE_PLATFORM_APP); |
822 ASSERT_EQ(1u, messages.size()); | 822 ASSERT_EQ(1u, messages.size()); |
823 EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, messages[0].id()); | 823 EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, messages[0].id()); |
824 } | 824 } |
825 | 825 |
826 TEST(PermissionsTest, SuppressedPermissionMessages) { | 826 TEST(PermissionsTest, SuppressedPermissionMessages) { |
827 { | 827 { |
828 APIPermissionSet api_permissions; | 828 APIPermissionSet api_permissions; |
829 api_permissions.insert(APIPermission::kTab); | 829 api_permissions.insert(APIPermission::kTab); |
830 URLPatternSet hosts; | 830 URLPatternSet hosts; |
831 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, | 831 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, |
832 "chrome://favicon/")); | 832 "chrome://favicon/")); |
833 scoped_refptr<PermissionSet> permissions( | 833 scoped_refptr<PermissionSet> permissions( |
834 new PermissionSet(api_permissions, ManifestPermissionSet(), | 834 new PermissionSet(api_permissions, ManifestPermissionSet(), |
835 hosts, URLPatternSet())); | 835 hosts, URLPatternSet())); |
836 PermissionMessages messages = | 836 PermissionMessages messages = |
837 PermissionMessageProvider::Get()->GetPermissionMessages( | 837 PermissionMessageProvider::Get()->GetPermissionMessages( |
838 permissions, Manifest::TYPE_EXTENSION); | 838 permissions.get(), Manifest::TYPE_EXTENSION); |
839 EXPECT_EQ(1u, messages.size()); | 839 EXPECT_EQ(1u, messages.size()); |
840 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); | 840 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); |
841 } | 841 } |
842 { | 842 { |
843 APIPermissionSet api_permissions; | 843 APIPermissionSet api_permissions; |
844 api_permissions.insert(APIPermission::kHistory); | 844 api_permissions.insert(APIPermission::kHistory); |
845 URLPatternSet hosts; | 845 URLPatternSet hosts; |
846 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, | 846 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, |
847 "chrome://favicon/")); | 847 "chrome://favicon/")); |
848 scoped_refptr<PermissionSet> permissions( | 848 scoped_refptr<PermissionSet> permissions( |
849 new PermissionSet(api_permissions, ManifestPermissionSet(), | 849 new PermissionSet(api_permissions, ManifestPermissionSet(), |
850 hosts, URLPatternSet())); | 850 hosts, URLPatternSet())); |
851 PermissionMessages messages = | 851 PermissionMessages messages = |
852 PermissionMessageProvider::Get()->GetPermissionMessages( | 852 PermissionMessageProvider::Get()->GetPermissionMessages( |
853 permissions, Manifest::TYPE_EXTENSION); | 853 permissions.get(), Manifest::TYPE_EXTENSION); |
854 EXPECT_EQ(1u, messages.size()); | 854 EXPECT_EQ(1u, messages.size()); |
855 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); | 855 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); |
856 } | 856 } |
857 { | 857 { |
858 APIPermissionSet api_permissions; | 858 APIPermissionSet api_permissions; |
859 URLPatternSet hosts; | 859 URLPatternSet hosts; |
860 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); | 860 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); |
861 api_permissions.insert(APIPermission::kTab); | 861 api_permissions.insert(APIPermission::kTab); |
862 scoped_refptr<PermissionSet> permissions(new PermissionSet( | 862 scoped_refptr<PermissionSet> permissions(new PermissionSet( |
863 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); | 863 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); |
864 PermissionMessages messages = | 864 PermissionMessages messages = |
865 PermissionMessageProvider::Get()->GetPermissionMessages( | 865 PermissionMessageProvider::Get()->GetPermissionMessages( |
866 permissions, Manifest::TYPE_EXTENSION); | 866 permissions.get(), Manifest::TYPE_EXTENSION); |
867 EXPECT_EQ(1u, messages.size()); | 867 EXPECT_EQ(1u, messages.size()); |
868 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); | 868 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); |
869 } | 869 } |
870 { | 870 { |
871 APIPermissionSet api_permissions; | 871 APIPermissionSet api_permissions; |
872 URLPatternSet hosts; | 872 URLPatternSet hosts; |
873 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); | 873 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); |
874 api_permissions.insert(APIPermission::kDeclarativeWebRequest); | 874 api_permissions.insert(APIPermission::kDeclarativeWebRequest); |
875 scoped_refptr<PermissionSet> permissions(new PermissionSet( | 875 scoped_refptr<PermissionSet> permissions(new PermissionSet( |
876 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); | 876 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); |
877 PermissionMessages messages = | 877 PermissionMessages messages = |
878 PermissionMessageProvider::Get()->GetPermissionMessages( | 878 PermissionMessageProvider::Get()->GetPermissionMessages( |
879 permissions, Manifest::TYPE_EXTENSION); | 879 permissions.get(), Manifest::TYPE_EXTENSION); |
880 EXPECT_EQ(1u, messages.size()); | 880 EXPECT_EQ(1u, messages.size()); |
881 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); | 881 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); |
882 } | 882 } |
883 { | 883 { |
884 APIPermissionSet api_permissions; | 884 APIPermissionSet api_permissions; |
885 api_permissions.insert(APIPermission::kHistory); | 885 api_permissions.insert(APIPermission::kHistory); |
886 api_permissions.insert(APIPermission::kTab); | 886 api_permissions.insert(APIPermission::kTab); |
887 api_permissions.insert(APIPermission::kTopSites); | 887 api_permissions.insert(APIPermission::kTopSites); |
888 api_permissions.insert(APIPermission::kProcesses); | 888 api_permissions.insert(APIPermission::kProcesses); |
889 api_permissions.insert(APIPermission::kWebNavigation); | 889 api_permissions.insert(APIPermission::kWebNavigation); |
890 scoped_refptr<PermissionSet> permissions( | 890 scoped_refptr<PermissionSet> permissions( |
891 new PermissionSet(api_permissions, ManifestPermissionSet(), | 891 new PermissionSet(api_permissions, ManifestPermissionSet(), |
892 URLPatternSet(), URLPatternSet())); | 892 URLPatternSet(), URLPatternSet())); |
893 PermissionMessages messages = | 893 PermissionMessages messages = |
894 PermissionMessageProvider::Get()->GetPermissionMessages( | 894 PermissionMessageProvider::Get()->GetPermissionMessages( |
895 permissions, Manifest::TYPE_EXTENSION); | 895 permissions.get(), Manifest::TYPE_EXTENSION); |
896 EXPECT_EQ(1u, messages.size()); | 896 EXPECT_EQ(1u, messages.size()); |
897 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); | 897 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); |
898 } | 898 } |
899 { | 899 { |
900 APIPermissionSet api_permissions; | 900 APIPermissionSet api_permissions; |
901 api_permissions.insert(APIPermission::kTab); | 901 api_permissions.insert(APIPermission::kTab); |
902 api_permissions.insert(APIPermission::kTopSites); | 902 api_permissions.insert(APIPermission::kTopSites); |
903 api_permissions.insert(APIPermission::kProcesses); | 903 api_permissions.insert(APIPermission::kProcesses); |
904 api_permissions.insert(APIPermission::kWebNavigation); | 904 api_permissions.insert(APIPermission::kWebNavigation); |
905 scoped_refptr<PermissionSet> permissions( | 905 scoped_refptr<PermissionSet> permissions( |
906 new PermissionSet(api_permissions, ManifestPermissionSet(), | 906 new PermissionSet(api_permissions, ManifestPermissionSet(), |
907 URLPatternSet(), URLPatternSet())); | 907 URLPatternSet(), URLPatternSet())); |
908 PermissionMessages messages = | 908 PermissionMessages messages = |
909 PermissionMessageProvider::Get()->GetPermissionMessages( | 909 PermissionMessageProvider::Get()->GetPermissionMessages( |
910 permissions, Manifest::TYPE_EXTENSION); | 910 permissions.get(), Manifest::TYPE_EXTENSION); |
911 EXPECT_EQ(1u, messages.size()); | 911 EXPECT_EQ(1u, messages.size()); |
912 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); | 912 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); |
913 } | 913 } |
914 } | 914 } |
915 | 915 |
916 TEST(PermissionsTest, AccessToDevicesMessages) { | 916 TEST(PermissionsTest, AccessToDevicesMessages) { |
917 { | 917 { |
918 APIPermissionSet api_permissions; | 918 APIPermissionSet api_permissions; |
919 api_permissions.insert(APIPermission::kUsb); | 919 api_permissions.insert(APIPermission::kUsb); |
920 scoped_refptr<PermissionSet> permissions( | 920 scoped_refptr<PermissionSet> permissions( |
921 new PermissionSet(api_permissions, | 921 new PermissionSet(api_permissions, |
922 ManifestPermissionSet(), | 922 ManifestPermissionSet(), |
923 URLPatternSet(), | 923 URLPatternSet(), |
924 URLPatternSet())); | 924 URLPatternSet())); |
925 std::vector<base::string16> messages = | 925 std::vector<base::string16> messages = |
926 PermissionMessageProvider::Get()->GetWarningMessages( | 926 PermissionMessageProvider::Get()->GetWarningMessages( |
927 permissions, Manifest::TYPE_EXTENSION); | 927 permissions.get(), Manifest::TYPE_EXTENSION); |
928 EXPECT_EQ(1u, messages.size()); | 928 EXPECT_EQ(1u, messages.size()); |
929 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB), | 929 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB), |
930 messages[0]); | 930 messages[0]); |
931 } | 931 } |
932 { | 932 { |
933 // Testing that multiple permissions will show the one message. | 933 // Testing that multiple permissions will show the one message. |
934 APIPermissionSet api_permissions; | 934 APIPermissionSet api_permissions; |
935 api_permissions.insert(APIPermission::kUsb); | 935 api_permissions.insert(APIPermission::kUsb); |
936 api_permissions.insert(APIPermission::kUsb); | 936 api_permissions.insert(APIPermission::kUsb); |
937 scoped_refptr<PermissionSet> permissions( | 937 scoped_refptr<PermissionSet> permissions( |
938 new PermissionSet(api_permissions, | 938 new PermissionSet(api_permissions, |
939 ManifestPermissionSet(), | 939 ManifestPermissionSet(), |
940 URLPatternSet(), | 940 URLPatternSet(), |
941 URLPatternSet())); | 941 URLPatternSet())); |
942 std::vector<base::string16> messages = | 942 std::vector<base::string16> messages = |
943 PermissionMessageProvider::Get()->GetWarningMessages( | 943 PermissionMessageProvider::Get()->GetWarningMessages( |
944 permissions, Manifest::TYPE_EXTENSION); | 944 permissions.get(), Manifest::TYPE_EXTENSION); |
945 EXPECT_EQ(1u, messages.size()); | 945 EXPECT_EQ(1u, messages.size()); |
946 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB), | 946 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB), |
947 messages[0]); | 947 messages[0]); |
948 } | 948 } |
949 { | 949 { |
950 APIPermissionSet api_permissions; | 950 APIPermissionSet api_permissions; |
951 api_permissions.insert(APIPermission::kSerial); | 951 api_permissions.insert(APIPermission::kSerial); |
952 scoped_refptr<PermissionSet> permissions( | 952 scoped_refptr<PermissionSet> permissions( |
953 new PermissionSet(api_permissions, | 953 new PermissionSet(api_permissions, |
954 ManifestPermissionSet(), | 954 ManifestPermissionSet(), |
955 URLPatternSet(), | 955 URLPatternSet(), |
956 URLPatternSet())); | 956 URLPatternSet())); |
957 std::vector<base::string16> messages = | 957 std::vector<base::string16> messages = |
958 PermissionMessageProvider::Get()->GetWarningMessages( | 958 PermissionMessageProvider::Get()->GetWarningMessages( |
959 permissions, Manifest::TYPE_EXTENSION); | 959 permissions.get(), Manifest::TYPE_EXTENSION); |
960 EXPECT_EQ(1u, messages.size()); | 960 EXPECT_EQ(1u, messages.size()); |
961 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_SERIAL), | 961 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_SERIAL), |
962 messages[0]); | 962 messages[0]); |
963 } | 963 } |
964 { | 964 { |
965 APIPermissionSet api_permissions; | 965 APIPermissionSet api_permissions; |
966 api_permissions.insert(APIPermission::kUsb); | 966 api_permissions.insert(APIPermission::kUsb); |
967 api_permissions.insert(APIPermission::kSerial); | 967 api_permissions.insert(APIPermission::kSerial); |
968 scoped_refptr<PermissionSet> permissions( | 968 scoped_refptr<PermissionSet> permissions( |
969 new PermissionSet(api_permissions, | 969 new PermissionSet(api_permissions, |
970 ManifestPermissionSet(), | 970 ManifestPermissionSet(), |
971 URLPatternSet(), | 971 URLPatternSet(), |
972 URLPatternSet())); | 972 URLPatternSet())); |
973 std::vector<base::string16> messages = | 973 std::vector<base::string16> messages = |
974 PermissionMessageProvider::Get()->GetWarningMessages( | 974 PermissionMessageProvider::Get()->GetWarningMessages( |
975 permissions, Manifest::TYPE_EXTENSION); | 975 permissions.get(), Manifest::TYPE_EXTENSION); |
976 EXPECT_EQ(1u, messages.size()); | 976 EXPECT_EQ(1u, messages.size()); |
977 EXPECT_EQ( | 977 EXPECT_EQ( |
978 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL), | 978 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL), |
979 messages[0]); | 979 messages[0]); |
980 } | 980 } |
981 { | 981 { |
982 // Testing that the same permission(s) will show one message. | 982 // Testing that the same permission(s) will show one message. |
983 APIPermissionSet api_permissions; | 983 APIPermissionSet api_permissions; |
984 api_permissions.insert(APIPermission::kUsb); | 984 api_permissions.insert(APIPermission::kUsb); |
985 api_permissions.insert(APIPermission::kSerial); | 985 api_permissions.insert(APIPermission::kSerial); |
986 api_permissions.insert(APIPermission::kUsb); | 986 api_permissions.insert(APIPermission::kUsb); |
987 scoped_refptr<PermissionSet> permissions( | 987 scoped_refptr<PermissionSet> permissions( |
988 new PermissionSet(api_permissions, | 988 new PermissionSet(api_permissions, |
989 ManifestPermissionSet(), | 989 ManifestPermissionSet(), |
990 URLPatternSet(), | 990 URLPatternSet(), |
991 URLPatternSet())); | 991 URLPatternSet())); |
992 std::vector<base::string16> messages = | 992 std::vector<base::string16> messages = |
993 PermissionMessageProvider::Get()->GetWarningMessages( | 993 PermissionMessageProvider::Get()->GetWarningMessages( |
994 permissions, Manifest::TYPE_EXTENSION); | 994 permissions.get(), Manifest::TYPE_EXTENSION); |
995 EXPECT_EQ(1u, messages.size()); | 995 EXPECT_EQ(1u, messages.size()); |
996 EXPECT_EQ( | 996 EXPECT_EQ( |
997 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL), | 997 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL), |
998 messages[0]); | 998 messages[0]); |
999 } | 999 } |
1000 { | 1000 { |
1001 scoped_refptr<Extension> extension = | 1001 scoped_refptr<Extension> extension = |
1002 LoadManifest("permissions", "access_to_devices_bluetooth.json"); | 1002 LoadManifest("permissions", "access_to_devices_bluetooth.json"); |
1003 const PermissionMessageProvider* provider = | 1003 const PermissionMessageProvider* provider = |
1004 PermissionMessageProvider::Get(); | 1004 PermissionMessageProvider::Get(); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1053 APIPermissionSet write_directory_api_permissions; | 1053 APIPermissionSet write_directory_api_permissions; |
1054 write_directory_api_permissions.insert( | 1054 write_directory_api_permissions.insert( |
1055 APIPermission::kFileSystemWriteDirectory); | 1055 APIPermission::kFileSystemWriteDirectory); |
1056 scoped_refptr<PermissionSet> write_directory_permissions( | 1056 scoped_refptr<PermissionSet> write_directory_permissions( |
1057 new PermissionSet(write_directory_api_permissions, | 1057 new PermissionSet(write_directory_api_permissions, |
1058 ManifestPermissionSet(), | 1058 ManifestPermissionSet(), |
1059 URLPatternSet(), | 1059 URLPatternSet(), |
1060 URLPatternSet())); | 1060 URLPatternSet())); |
1061 | 1061 |
1062 const PermissionMessageProvider* provider = PermissionMessageProvider::Get(); | 1062 const PermissionMessageProvider* provider = PermissionMessageProvider::Get(); |
1063 EXPECT_FALSE(provider->IsPrivilegeIncrease(write_directory_permissions, | 1063 EXPECT_FALSE(provider->IsPrivilegeIncrease(write_directory_permissions.get(), |
1064 write_permissions, | 1064 write_permissions.get(), |
1065 Manifest::TYPE_PLATFORM_APP)); | 1065 Manifest::TYPE_PLATFORM_APP)); |
1066 EXPECT_FALSE(provider->IsPrivilegeIncrease(write_directory_permissions, | 1066 EXPECT_FALSE(provider->IsPrivilegeIncrease(write_directory_permissions.get(), |
1067 directory_permissions, | 1067 directory_permissions.get(), |
1068 Manifest::TYPE_PLATFORM_APP)); | 1068 Manifest::TYPE_PLATFORM_APP)); |
1069 EXPECT_TRUE(provider->IsPrivilegeIncrease(write_permissions, | 1069 EXPECT_TRUE(provider->IsPrivilegeIncrease(write_permissions.get(), |
1070 directory_permissions, | 1070 directory_permissions.get(), |
1071 Manifest::TYPE_PLATFORM_APP)); | 1071 Manifest::TYPE_PLATFORM_APP)); |
1072 EXPECT_TRUE(provider->IsPrivilegeIncrease(write_permissions, | 1072 EXPECT_TRUE(provider->IsPrivilegeIncrease(write_permissions.get(), |
1073 write_directory_permissions, | 1073 write_directory_permissions.get(), |
1074 Manifest::TYPE_PLATFORM_APP)); | 1074 Manifest::TYPE_PLATFORM_APP)); |
1075 EXPECT_FALSE(provider->IsPrivilegeIncrease(directory_permissions, | 1075 EXPECT_FALSE(provider->IsPrivilegeIncrease(directory_permissions.get(), |
1076 write_permissions, | 1076 write_permissions.get(), |
1077 Manifest::TYPE_PLATFORM_APP)); | 1077 Manifest::TYPE_PLATFORM_APP)); |
1078 EXPECT_TRUE(provider->IsPrivilegeIncrease(directory_permissions, | 1078 EXPECT_TRUE(provider->IsPrivilegeIncrease(directory_permissions.get(), |
1079 write_directory_permissions, | 1079 write_directory_permissions.get(), |
1080 Manifest::TYPE_PLATFORM_APP)); | 1080 Manifest::TYPE_PLATFORM_APP)); |
1081 } | 1081 } |
1082 | 1082 |
1083 TEST(PermissionsTest, GetWarningMessages_ManyHosts) { | 1083 TEST(PermissionsTest, GetWarningMessages_ManyHosts) { |
1084 scoped_refptr<Extension> extension; | 1084 scoped_refptr<Extension> extension; |
1085 | 1085 |
1086 extension = LoadManifest("permissions", "many-hosts.json"); | 1086 extension = LoadManifest("permissions", "many-hosts.json"); |
1087 std::vector<base::string16> warnings = | 1087 std::vector<base::string16> warnings = |
1088 extension->permissions_data()->GetPermissionMessageStrings(); | 1088 extension->permissions_data()->GetPermissionMessageStrings(); |
1089 ASSERT_EQ(1u, warnings.size()); | 1089 ASSERT_EQ(1u, warnings.size()); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1152 api_permissions.insert(APIPermission::kTab); | 1152 api_permissions.insert(APIPermission::kTab); |
1153 api_permissions.insert(APIPermission::kTopSites); | 1153 api_permissions.insert(APIPermission::kTopSites); |
1154 api_permissions.insert(APIPermission::kProcesses); | 1154 api_permissions.insert(APIPermission::kProcesses); |
1155 api_permissions.insert(APIPermission::kWebNavigation); | 1155 api_permissions.insert(APIPermission::kWebNavigation); |
1156 api_permissions.insert(APIPermission::kSessions); | 1156 api_permissions.insert(APIPermission::kSessions); |
1157 scoped_refptr<PermissionSet> permissions( | 1157 scoped_refptr<PermissionSet> permissions( |
1158 new PermissionSet(api_permissions, ManifestPermissionSet(), | 1158 new PermissionSet(api_permissions, ManifestPermissionSet(), |
1159 URLPatternSet(), URLPatternSet())); | 1159 URLPatternSet(), URLPatternSet())); |
1160 std::vector<base::string16> messages = | 1160 std::vector<base::string16> messages = |
1161 PermissionMessageProvider::Get()->GetWarningMessages( | 1161 PermissionMessageProvider::Get()->GetWarningMessages( |
1162 permissions, Manifest::TYPE_EXTENSION); | 1162 permissions.get(), Manifest::TYPE_EXTENSION); |
1163 EXPECT_EQ(1u, messages.size()); | 1163 EXPECT_EQ(1u, messages.size()); |
1164 EXPECT_EQ(l10n_util::GetStringUTF16( | 1164 EXPECT_EQ(l10n_util::GetStringUTF16( |
1165 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS), | 1165 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS), |
1166 messages[0]); | 1166 messages[0]); |
1167 } | 1167 } |
1168 { | 1168 { |
1169 APIPermissionSet api_permissions; | 1169 APIPermissionSet api_permissions; |
1170 api_permissions.insert(APIPermission::kHistory); | 1170 api_permissions.insert(APIPermission::kHistory); |
1171 api_permissions.insert(APIPermission::kTab); | 1171 api_permissions.insert(APIPermission::kTab); |
1172 api_permissions.insert(APIPermission::kTopSites); | 1172 api_permissions.insert(APIPermission::kTopSites); |
1173 api_permissions.insert(APIPermission::kProcesses); | 1173 api_permissions.insert(APIPermission::kProcesses); |
1174 api_permissions.insert(APIPermission::kWebNavigation); | 1174 api_permissions.insert(APIPermission::kWebNavigation); |
1175 api_permissions.insert(APIPermission::kSessions); | 1175 api_permissions.insert(APIPermission::kSessions); |
1176 scoped_refptr<PermissionSet> permissions( | 1176 scoped_refptr<PermissionSet> permissions( |
1177 new PermissionSet(api_permissions, ManifestPermissionSet(), | 1177 new PermissionSet(api_permissions, ManifestPermissionSet(), |
1178 URLPatternSet(), URLPatternSet())); | 1178 URLPatternSet(), URLPatternSet())); |
1179 std::vector<base::string16> messages = | 1179 std::vector<base::string16> messages = |
1180 PermissionMessageProvider::Get()->GetWarningMessages( | 1180 PermissionMessageProvider::Get()->GetWarningMessages( |
1181 permissions, Manifest::TYPE_EXTENSION); | 1181 permissions.get(), Manifest::TYPE_EXTENSION); |
1182 EXPECT_EQ(1u, messages.size()); | 1182 EXPECT_EQ(1u, messages.size()); |
1183 EXPECT_EQ(l10n_util::GetStringUTF16( | 1183 EXPECT_EQ(l10n_util::GetStringUTF16( |
1184 IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS), | 1184 IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS), |
1185 messages[0]); | 1185 messages[0]); |
1186 } | 1186 } |
1187 } | 1187 } |
1188 | 1188 |
1189 TEST(PermissionsTest, GetWarningMessages_DeclarativeWebRequest) { | 1189 TEST(PermissionsTest, GetWarningMessages_DeclarativeWebRequest) { |
1190 // Test that if the declarativeWebRequest permission is present | 1190 // Test that if the declarativeWebRequest permission is present |
1191 // in combination with all hosts permission, then only the warning | 1191 // in combination with all hosts permission, then only the warning |
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1624 elist2.AddPattern( | 1624 elist2.AddPattern( |
1625 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/path")); | 1625 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/path")); |
1626 elist2.AddPattern( | 1626 elist2.AddPattern( |
1627 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com.hk/path")); | 1627 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com.hk/path")); |
1628 | 1628 |
1629 set1 = new PermissionSet(empty_perms, empty_manifest_permissions, | 1629 set1 = new PermissionSet(empty_perms, empty_manifest_permissions, |
1630 elist1, slist1); | 1630 elist1, slist1); |
1631 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, | 1631 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, |
1632 elist2, slist2); | 1632 elist2, slist2); |
1633 | 1633 |
1634 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1, set2, type)); | 1634 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type)); |
1635 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); | 1635 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2.get(), set1.get(), type)); |
1636 | 1636 |
1637 // Test that paths are ignored. | 1637 // Test that paths are ignored. |
1638 elist2.ClearPatterns(); | 1638 elist2.ClearPatterns(); |
1639 elist2.AddPattern( | 1639 elist2.AddPattern( |
1640 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/*")); | 1640 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/*")); |
1641 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, | 1641 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, |
1642 elist2, slist2); | 1642 elist2, slist2); |
1643 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1, set2, type)); | 1643 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type)); |
1644 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); | 1644 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2.get(), set1.get(), type)); |
1645 | 1645 |
1646 // Test that RCDs are ignored. | 1646 // Test that RCDs are ignored. |
1647 elist2.ClearPatterns(); | 1647 elist2.ClearPatterns(); |
1648 elist2.AddPattern( | 1648 elist2.AddPattern( |
1649 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com.hk/*")); | 1649 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com.hk/*")); |
1650 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, | 1650 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, |
1651 elist2, slist2); | 1651 elist2, slist2); |
1652 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1, set2, type)); | 1652 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type)); |
1653 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); | 1653 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2.get(), set1.get(), type)); |
1654 | 1654 |
1655 // Test that subdomain wildcards are handled properly. | 1655 // Test that subdomain wildcards are handled properly. |
1656 elist2.ClearPatterns(); | 1656 elist2.ClearPatterns(); |
1657 elist2.AddPattern( | 1657 elist2.AddPattern( |
1658 URLPattern(URLPattern::SCHEME_HTTP, "http://*.google.com.hk/*")); | 1658 URLPattern(URLPattern::SCHEME_HTTP, "http://*.google.com.hk/*")); |
1659 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, | 1659 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, |
1660 elist2, slist2); | 1660 elist2, slist2); |
1661 EXPECT_TRUE(provider->IsPrivilegeIncrease(set1, set2, type)); | 1661 EXPECT_TRUE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type)); |
1662 // TODO(jstritar): Does not match subdomains properly. http://crbug.com/65337 | 1662 // TODO(jstritar): Does not match subdomains properly. http://crbug.com/65337 |
1663 // EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); | 1663 // EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); |
1664 | 1664 |
1665 // Test that different domains count as different hosts. | 1665 // Test that different domains count as different hosts. |
1666 elist2.ClearPatterns(); | 1666 elist2.ClearPatterns(); |
1667 elist2.AddPattern( | 1667 elist2.AddPattern( |
1668 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/path")); | 1668 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/path")); |
1669 elist2.AddPattern( | 1669 elist2.AddPattern( |
1670 URLPattern(URLPattern::SCHEME_HTTP, "http://www.example.org/path")); | 1670 URLPattern(URLPattern::SCHEME_HTTP, "http://www.example.org/path")); |
1671 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, | 1671 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, |
1672 elist2, slist2); | 1672 elist2, slist2); |
1673 EXPECT_TRUE(provider->IsPrivilegeIncrease(set1, set2, type)); | 1673 EXPECT_TRUE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type)); |
1674 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); | 1674 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2.get(), set1.get(), type)); |
1675 | 1675 |
1676 // Test that different subdomains count as different hosts. | 1676 // Test that different subdomains count as different hosts. |
1677 elist2.ClearPatterns(); | 1677 elist2.ClearPatterns(); |
1678 elist2.AddPattern( | 1678 elist2.AddPattern( |
1679 URLPattern(URLPattern::SCHEME_HTTP, "http://mail.google.com/*")); | 1679 URLPattern(URLPattern::SCHEME_HTTP, "http://mail.google.com/*")); |
1680 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, | 1680 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, |
1681 elist2, slist2); | 1681 elist2, slist2); |
1682 EXPECT_TRUE(provider->IsPrivilegeIncrease(set1, set2, type)); | 1682 EXPECT_TRUE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type)); |
1683 EXPECT_TRUE(provider->IsPrivilegeIncrease(set2, set1, type)); | 1683 EXPECT_TRUE(provider->IsPrivilegeIncrease(set2.get(), set1.get(), type)); |
1684 | 1684 |
1685 // Test that platform apps do not have host permissions increases. | 1685 // Test that platform apps do not have host permissions increases. |
1686 type = Manifest::TYPE_PLATFORM_APP; | 1686 type = Manifest::TYPE_PLATFORM_APP; |
1687 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1, set2, type)); | 1687 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type)); |
1688 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); | 1688 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2.get(), set1.get(), type)); |
1689 } | 1689 } |
1690 | 1690 |
1691 TEST(PermissionsTest, GetAPIsAsStrings) { | 1691 TEST(PermissionsTest, GetAPIsAsStrings) { |
1692 APIPermissionSet apis; | 1692 APIPermissionSet apis; |
1693 URLPatternSet empty_set; | 1693 URLPatternSet empty_set; |
1694 | 1694 |
1695 apis.insert(APIPermission::kProxy); | 1695 apis.insert(APIPermission::kProxy); |
1696 apis.insert(APIPermission::kBackground); | 1696 apis.insert(APIPermission::kBackground); |
1697 apis.insert(APIPermission::kNotifications); | 1697 apis.insert(APIPermission::kNotifications); |
1698 apis.insert(APIPermission::kTab); | 1698 apis.insert(APIPermission::kTab); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1773 URLPatternSet allowed_hosts; | 1773 URLPatternSet allowed_hosts; |
1774 allowed_hosts.AddPattern( | 1774 allowed_hosts.AddPattern( |
1775 URLPattern(URLPattern::SCHEME_ALL, "http://www.google.com/")); | 1775 URLPattern(URLPattern::SCHEME_ALL, "http://www.google.com/")); |
1776 allowed_hosts.AddPattern( | 1776 allowed_hosts.AddPattern( |
1777 URLPattern(URLPattern::SCHEME_ALL, "chrome://favicon/")); | 1777 URLPattern(URLPattern::SCHEME_ALL, "chrome://favicon/")); |
1778 allowed_hosts.AddPattern( | 1778 allowed_hosts.AddPattern( |
1779 URLPattern(URLPattern::SCHEME_ALL, "chrome://thumb/")); | 1779 URLPattern(URLPattern::SCHEME_ALL, "chrome://thumb/")); |
1780 scoped_refptr<PermissionSet> permissions( | 1780 scoped_refptr<PermissionSet> permissions( |
1781 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(), | 1781 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(), |
1782 allowed_hosts, URLPatternSet())); | 1782 allowed_hosts, URLPatternSet())); |
1783 PermissionMessageProvider::Get()-> | 1783 PermissionMessageProvider::Get()->GetPermissionMessages( |
1784 GetPermissionMessages(permissions, Manifest::TYPE_EXTENSION); | 1784 permissions.get(), Manifest::TYPE_EXTENSION); |
1785 } | 1785 } |
1786 | 1786 |
1787 TEST(PermissionsTest, IsPrivilegeIncrease_DeclarativeWebRequest) { | 1787 TEST(PermissionsTest, IsPrivilegeIncrease_DeclarativeWebRequest) { |
1788 scoped_refptr<Extension> extension( | 1788 scoped_refptr<Extension> extension( |
1789 LoadManifest("permissions", "permissions_all_urls.json")); | 1789 LoadManifest("permissions", "permissions_all_urls.json")); |
1790 scoped_refptr<const PermissionSet> permissions( | 1790 scoped_refptr<const PermissionSet> permissions( |
1791 extension->permissions_data()->active_permissions()); | 1791 extension->permissions_data()->active_permissions()); |
1792 | 1792 |
1793 scoped_refptr<Extension> extension_dwr( | 1793 scoped_refptr<Extension> extension_dwr( |
1794 LoadManifest("permissions", "web_request_all_host_permissions.json")); | 1794 LoadManifest("permissions", "web_request_all_host_permissions.json")); |
1795 scoped_refptr<const PermissionSet> permissions_dwr( | 1795 scoped_refptr<const PermissionSet> permissions_dwr( |
1796 extension_dwr->permissions_data()->active_permissions()); | 1796 extension_dwr->permissions_data()->active_permissions()); |
1797 | 1797 |
1798 EXPECT_FALSE(PermissionMessageProvider::Get()-> | 1798 EXPECT_FALSE(PermissionMessageProvider::Get()-> |
1799 IsPrivilegeIncrease(permissions.get(), | 1799 IsPrivilegeIncrease(permissions.get(), |
1800 permissions_dwr.get(), | 1800 permissions_dwr.get(), |
1801 extension->GetType())); | 1801 extension->GetType())); |
1802 } | 1802 } |
1803 | 1803 |
1804 } // namespace extensions | 1804 } // namespace extensions |
OLD | NEW |