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