| 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" |
| 9 #include "base/strings/stringprintf.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/common/chrome_paths.h" | 11 #include "chrome/common/chrome_paths.h" |
| 10 #include "chrome/common/chrome_switches.h" | 12 #include "chrome/common/chrome_switches.h" |
| 11 #include "chrome/common/extensions/extension_test_util.h" | 13 #include "chrome/common/extensions/extension_test_util.h" |
| 12 #include "chrome/common/extensions/features/feature_channel.h" | 14 #include "chrome/common/extensions/features/feature_channel.h" |
| 13 #include "chrome/common/extensions/permissions/chrome_permission_message_provide
r.h" | 15 #include "chrome/common/extensions/permissions/chrome_permission_message_provide
r.h" |
| 14 #include "chrome/grit/generated_resources.h" | 16 #include "chrome/grit/generated_resources.h" |
| 15 #include "extensions/common/error_utils.h" | 17 #include "extensions/common/error_utils.h" |
| 16 #include "extensions/common/extension.h" | 18 #include "extensions/common/extension.h" |
| 17 #include "extensions/common/extension_builder.h" | 19 #include "extensions/common/extension_builder.h" |
| (...skipping 23 matching lines...) Expand all Loading... |
| 41 size_t IndexOf(const PermissionMessageStrings& warnings, | 43 size_t IndexOf(const PermissionMessageStrings& warnings, |
| 42 const std::string& warning) { | 44 const std::string& warning) { |
| 43 for (size_t i = 0; i < warnings.size(); ++i) { | 45 for (size_t i = 0; i < warnings.size(); ++i) { |
| 44 if (warnings[i].message == base::ASCIIToUTF16(warning)) | 46 if (warnings[i].message == base::ASCIIToUTF16(warning)) |
| 45 return i; | 47 return i; |
| 46 } | 48 } |
| 47 | 49 |
| 48 return warnings.size(); | 50 return warnings.size(); |
| 49 } | 51 } |
| 50 | 52 |
| 53 PermissionIDSet MakePermissionIDSet(APIPermission::ID id1, |
| 54 APIPermission::ID id2) { |
| 55 PermissionIDSet set; |
| 56 set.insert(id1); |
| 57 set.insert(id2); |
| 58 return set; |
| 59 } |
| 60 |
| 61 PermissionIDSet MakePermissionIDSet(const APIPermissionSet& permissions) { |
| 62 PermissionIDSet set; |
| 63 for (const APIPermission* permission : permissions) |
| 64 set.insert(permission->id()); |
| 65 return set; |
| 66 } |
| 67 |
| 68 std::string LegacyPermissionIDsToString(const PermissionMessageIDs& ids) { |
| 69 std::vector<std::string> strs; |
| 70 for (const PermissionMessage::ID& id : ids) |
| 71 strs.push_back(base::IntToString(id)); |
| 72 return base::StringPrintf("[ %s ]", JoinString(strs, ", ").c_str()); |
| 73 } |
| 74 |
| 75 std::string PermissionIDsToString(const PermissionIDSet& ids) { |
| 76 std::vector<std::string> strs; |
| 77 for (const PermissionID& id : ids) |
| 78 strs.push_back(base::IntToString(id.id())); |
| 79 return base::StringPrintf("[ %s ]", JoinString(strs, ", ").c_str()); |
| 80 } |
| 81 |
| 82 std::string CoalescedPermissionIDsToString( |
| 83 const CoalescedPermissionMessages& msgs) { |
| 84 std::vector<std::string> strs; |
| 85 for (const CoalescedPermissionMessage& msg : msgs) |
| 86 strs.push_back(PermissionIDsToString(msg.permissions())); |
| 87 return JoinString(strs, " "); |
| 88 } |
| 89 |
| 90 // Check that the given |permissions| produce a single warning message, |
| 91 // identified by |expected_legacy_id| in the old system, and by the set of |
| 92 // |expected_ids| in the new system. |
| 93 testing::AssertionResult PermissionSetProducesMessage( |
| 94 const PermissionSet* permissions, |
| 95 Manifest::Type extension_type, |
| 96 PermissionMessage::ID expected_legacy_id, |
| 97 const PermissionIDSet& expected_ids) { |
| 98 const PermissionMessageProvider* provider = PermissionMessageProvider::Get(); |
| 99 PermissionMessageIDs legacy_ids = |
| 100 provider->GetLegacyPermissionMessageIDs(permissions, extension_type); |
| 101 if (legacy_ids.size() != 1 || expected_legacy_id != legacy_ids[0]) { |
| 102 return testing::AssertionFailure() |
| 103 << "Expected single legacy permission ID " << expected_legacy_id |
| 104 << " but got " << LegacyPermissionIDsToString(legacy_ids); |
| 105 } |
| 106 |
| 107 CoalescedPermissionMessages msgs = provider->GetCoalescedPermissionMessages( |
| 108 provider->GetAllPermissionIDs(permissions, extension_type)); |
| 109 if (msgs.size() != 1) { |
| 110 return testing::AssertionFailure() |
| 111 << "Expected single permission message with IDs " |
| 112 << PermissionIDsToString(expected_ids) << " but got " << msgs.size() |
| 113 << " messages: " << CoalescedPermissionIDsToString(msgs); |
| 114 } |
| 115 if (!msgs.front().permissions().Equals(expected_ids)) { |
| 116 return testing::AssertionFailure() |
| 117 << "Expected permission IDs " << PermissionIDsToString(expected_ids) |
| 118 << " but got " << PermissionIDsToString(msgs.front().permissions()); |
| 119 } |
| 120 |
| 121 return testing::AssertionSuccess(); |
| 122 } |
| 123 |
| 51 } // namespace | 124 } // namespace |
| 52 | 125 |
| 53 // Tests GetByID. | 126 // Tests GetByID. |
| 54 TEST(PermissionsTest, GetByID) { | 127 TEST(PermissionsTest, GetByID) { |
| 55 PermissionsInfo* info = PermissionsInfo::GetInstance(); | 128 PermissionsInfo* info = PermissionsInfo::GetInstance(); |
| 56 APIPermissionSet apis = info->GetAll(); | 129 APIPermissionSet apis = info->GetAll(); |
| 57 for (APIPermissionSet::const_iterator i = apis.begin(); | 130 for (APIPermissionSet::const_iterator i = apis.begin(); |
| 58 i != apis.end(); ++i) { | 131 i != apis.end(); ++i) { |
| 59 EXPECT_EQ(i->id(), i->info()->id()); | 132 EXPECT_EQ(i->id(), i->info()->id()); |
| 60 } | 133 } |
| (...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 792 } | 865 } |
| 793 } | 866 } |
| 794 | 867 |
| 795 TEST(PermissionsTest, FileSystemPermissionMessages) { | 868 TEST(PermissionsTest, FileSystemPermissionMessages) { |
| 796 APIPermissionSet api_permissions; | 869 APIPermissionSet api_permissions; |
| 797 api_permissions.insert(APIPermission::kFileSystemWrite); | 870 api_permissions.insert(APIPermission::kFileSystemWrite); |
| 798 api_permissions.insert(APIPermission::kFileSystemDirectory); | 871 api_permissions.insert(APIPermission::kFileSystemDirectory); |
| 799 scoped_refptr<PermissionSet> permissions( | 872 scoped_refptr<PermissionSet> permissions( |
| 800 new PermissionSet(api_permissions, ManifestPermissionSet(), | 873 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 801 URLPatternSet(), URLPatternSet())); | 874 URLPatternSet(), URLPatternSet())); |
| 802 PermissionMessageIDs ids = | 875 EXPECT_TRUE(PermissionSetProducesMessage( |
| 803 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 876 permissions.get(), Manifest::TYPE_PLATFORM_APP, |
| 804 permissions.get(), Manifest::TYPE_PLATFORM_APP); | 877 PermissionMessage::kFileSystemDirectory, |
| 805 ASSERT_EQ(1u, ids.size()); | 878 MakePermissionIDSet(api_permissions))); |
| 806 EXPECT_EQ(PermissionMessage::kFileSystemDirectory, ids[0]); | |
| 807 } | 879 } |
| 808 | 880 |
| 809 // The file system permissions have a special-case hack to show a warning for | 881 // The file system permissions have a special-case hack to show a warning for |
| 810 // write and directory at the same time. | 882 // write and directory at the same time. |
| 811 // TODO(sammc): Remove this. See http://crbug.com/284849. | 883 // TODO(sammc): Remove this. See http://crbug.com/284849. |
| 812 TEST(PermissionsTest, FileSystemImplicitPermissions) { | 884 TEST(PermissionsTest, FileSystemImplicitPermissions) { |
| 813 APIPermissionSet apis; | 885 APIPermissionSet apis; |
| 814 apis.insert(APIPermission::kFileSystemWrite); | 886 apis.insert(APIPermission::kFileSystemWrite); |
| 815 apis.AddImpliedPermissions(); | 887 apis.AddImpliedPermissions(); |
| 816 | 888 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 839 } | 911 } |
| 840 | 912 |
| 841 TEST(PermissionsTest, HiddenFileSystemPermissionMessages) { | 913 TEST(PermissionsTest, HiddenFileSystemPermissionMessages) { |
| 842 APIPermissionSet api_permissions; | 914 APIPermissionSet api_permissions; |
| 843 api_permissions.insert(APIPermission::kFileSystemWrite); | 915 api_permissions.insert(APIPermission::kFileSystemWrite); |
| 844 api_permissions.insert(APIPermission::kFileSystemDirectory); | 916 api_permissions.insert(APIPermission::kFileSystemDirectory); |
| 845 api_permissions.insert(APIPermission::kFileSystemWriteDirectory); | 917 api_permissions.insert(APIPermission::kFileSystemWriteDirectory); |
| 846 scoped_refptr<PermissionSet> permissions( | 918 scoped_refptr<PermissionSet> permissions( |
| 847 new PermissionSet(api_permissions, ManifestPermissionSet(), | 919 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 848 URLPatternSet(), URLPatternSet())); | 920 URLPatternSet(), URLPatternSet())); |
| 849 PermissionMessageIDs ids = | 921 EXPECT_TRUE(PermissionSetProducesMessage( |
| 850 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 922 permissions.get(), Manifest::TYPE_PLATFORM_APP, |
| 851 permissions.get(), Manifest::TYPE_PLATFORM_APP); | 923 PermissionMessage::kFileSystemWriteDirectory, |
| 852 ASSERT_EQ(1u, ids.size()); | 924 MakePermissionIDSet(api_permissions))); |
| 853 EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, ids[0]); | |
| 854 } | 925 } |
| 855 | 926 |
| 856 TEST(PermissionsTest, SuppressedPermissionMessages) { | 927 TEST(PermissionsTest, SuppressedPermissionMessages) { |
| 857 { | 928 { |
| 858 // Tabs warning suppresses favicon warning. | 929 // Tabs warning suppresses favicon warning. |
| 859 APIPermissionSet api_permissions; | 930 APIPermissionSet api_permissions; |
| 860 api_permissions.insert(APIPermission::kTab); | 931 api_permissions.insert(APIPermission::kTab); |
| 861 URLPatternSet hosts; | 932 URLPatternSet hosts; |
| 862 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, | 933 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, |
| 863 "chrome://favicon/")); | 934 "chrome://favicon/")); |
| 864 scoped_refptr<PermissionSet> permissions( | 935 scoped_refptr<PermissionSet> permissions( |
| 865 new PermissionSet(api_permissions, ManifestPermissionSet(), | 936 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 866 hosts, URLPatternSet())); | 937 hosts, URLPatternSet())); |
| 867 PermissionMessageIDs ids = | 938 EXPECT_TRUE(PermissionSetProducesMessage( |
| 868 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 939 permissions.get(), Manifest::TYPE_EXTENSION, PermissionMessage::kTabs, |
| 869 permissions.get(), Manifest::TYPE_EXTENSION); | 940 MakePermissionIDSet(APIPermission::kTab, APIPermission::kFavicon))); |
| 870 EXPECT_EQ(1u, ids.size()); | |
| 871 EXPECT_EQ(PermissionMessage::kTabs, ids[0]); | |
| 872 } | 941 } |
| 873 { | 942 { |
| 874 // History warning suppresses favicon warning. | 943 // History warning suppresses favicon warning. |
| 875 APIPermissionSet api_permissions; | 944 APIPermissionSet api_permissions; |
| 876 api_permissions.insert(APIPermission::kHistory); | 945 api_permissions.insert(APIPermission::kHistory); |
| 877 URLPatternSet hosts; | 946 URLPatternSet hosts; |
| 878 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, | 947 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, |
| 879 "chrome://favicon/")); | 948 "chrome://favicon/")); |
| 880 scoped_refptr<PermissionSet> permissions( | 949 scoped_refptr<PermissionSet> permissions( |
| 881 new PermissionSet(api_permissions, ManifestPermissionSet(), | 950 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 882 hosts, URLPatternSet())); | 951 hosts, URLPatternSet())); |
| 883 PermissionMessageIDs ids = | 952 EXPECT_TRUE(PermissionSetProducesMessage( |
| 884 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 953 permissions.get(), Manifest::TYPE_EXTENSION, |
| 885 permissions.get(), Manifest::TYPE_EXTENSION); | 954 PermissionMessage::kBrowsingHistory, |
| 886 EXPECT_EQ(1u, ids.size()); | 955 MakePermissionIDSet(APIPermission::kHistory, APIPermission::kFavicon))); |
| 887 EXPECT_EQ(PermissionMessage::kBrowsingHistory, ids[0]); | |
| 888 } | 956 } |
| 889 { | 957 { |
| 890 // All sites warning suppresses tabs warning. | 958 // All sites warning suppresses tabs warning. |
| 891 APIPermissionSet api_permissions; | 959 APIPermissionSet api_permissions; |
| 960 api_permissions.insert(APIPermission::kTab); |
| 892 URLPatternSet hosts; | 961 URLPatternSet hosts; |
| 893 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); | 962 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); |
| 894 api_permissions.insert(APIPermission::kTab); | |
| 895 scoped_refptr<PermissionSet> permissions(new PermissionSet( | 963 scoped_refptr<PermissionSet> permissions(new PermissionSet( |
| 896 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); | 964 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); |
| 897 PermissionMessageIDs ids = | 965 EXPECT_TRUE(PermissionSetProducesMessage( |
| 898 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 966 permissions.get(), Manifest::TYPE_EXTENSION, |
| 899 permissions.get(), Manifest::TYPE_EXTENSION); | 967 PermissionMessage::kHostsAll, |
| 900 EXPECT_EQ(1u, ids.size()); | 968 MakePermissionIDSet(APIPermission::kHostsAll, APIPermission::kTab))); |
| 901 EXPECT_EQ(PermissionMessage::kHostsAll, ids[0]); | |
| 902 } | 969 } |
| 903 { | 970 { |
| 904 // All sites warning suppresses topSites warning. | 971 // All sites warning suppresses topSites warning. |
| 905 APIPermissionSet api_permissions; | 972 APIPermissionSet api_permissions; |
| 973 api_permissions.insert(APIPermission::kTopSites); |
| 906 URLPatternSet hosts; | 974 URLPatternSet hosts; |
| 907 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); | 975 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); |
| 908 api_permissions.insert(APIPermission::kTopSites); | |
| 909 scoped_refptr<PermissionSet> permissions(new PermissionSet( | 976 scoped_refptr<PermissionSet> permissions(new PermissionSet( |
| 910 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); | 977 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); |
| 911 PermissionMessageIDs ids = | 978 EXPECT_TRUE(PermissionSetProducesMessage( |
| 912 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 979 permissions.get(), Manifest::TYPE_EXTENSION, |
| 913 permissions.get(), Manifest::TYPE_EXTENSION); | 980 PermissionMessage::kHostsAll, |
| 914 EXPECT_EQ(1u, ids.size()); | 981 MakePermissionIDSet(APIPermission::kHostsAll, |
| 915 EXPECT_EQ(PermissionMessage::kHostsAll, ids[0]); | 982 APIPermission::kTopSites))); |
| 916 } | 983 } |
| 917 { | 984 { |
| 918 // All sites warning suppresses declarativeWebRequest warning. | 985 // All sites warning suppresses declarativeWebRequest warning. |
| 919 APIPermissionSet api_permissions; | 986 APIPermissionSet api_permissions; |
| 987 api_permissions.insert(APIPermission::kDeclarativeWebRequest); |
| 920 URLPatternSet hosts; | 988 URLPatternSet hosts; |
| 921 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); | 989 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); |
| 922 api_permissions.insert(APIPermission::kDeclarativeWebRequest); | |
| 923 scoped_refptr<PermissionSet> permissions(new PermissionSet( | 990 scoped_refptr<PermissionSet> permissions(new PermissionSet( |
| 924 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); | 991 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); |
| 925 PermissionMessageIDs ids = | 992 EXPECT_TRUE(PermissionSetProducesMessage( |
| 926 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 993 permissions.get(), Manifest::TYPE_EXTENSION, |
| 927 permissions.get(), Manifest::TYPE_EXTENSION); | 994 PermissionMessage::kHostsAll, |
| 928 EXPECT_EQ(1u, ids.size()); | 995 MakePermissionIDSet(APIPermission::kHostsAll, |
| 929 EXPECT_EQ(PermissionMessage::kHostsAll, ids[0]); | 996 APIPermission::kDeclarativeWebRequest))); |
| 930 } | 997 } |
| 931 { | 998 { |
| 932 // BrowsingHistory warning suppresses all history read/write warnings. | 999 // BrowsingHistory warning suppresses all history read/write warnings. |
| 933 APIPermissionSet api_permissions; | 1000 APIPermissionSet api_permissions; |
| 934 api_permissions.insert(APIPermission::kHistory); | 1001 api_permissions.insert(APIPermission::kHistory); |
| 935 api_permissions.insert(APIPermission::kTab); | 1002 api_permissions.insert(APIPermission::kTab); |
| 936 api_permissions.insert(APIPermission::kTopSites); | 1003 api_permissions.insert(APIPermission::kTopSites); |
| 937 api_permissions.insert(APIPermission::kProcesses); | 1004 api_permissions.insert(APIPermission::kProcesses); |
| 938 api_permissions.insert(APIPermission::kWebNavigation); | 1005 api_permissions.insert(APIPermission::kWebNavigation); |
| 939 scoped_refptr<PermissionSet> permissions( | 1006 scoped_refptr<PermissionSet> permissions( |
| 940 new PermissionSet(api_permissions, ManifestPermissionSet(), | 1007 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 941 URLPatternSet(), URLPatternSet())); | 1008 URLPatternSet(), URLPatternSet())); |
| 942 PermissionMessageIDs ids = | 1009 EXPECT_TRUE(PermissionSetProducesMessage( |
| 943 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 1010 permissions.get(), Manifest::TYPE_EXTENSION, |
| 944 permissions.get(), Manifest::TYPE_EXTENSION); | 1011 PermissionMessage::kBrowsingHistory, |
| 945 EXPECT_EQ(1u, ids.size()); | 1012 MakePermissionIDSet(api_permissions))); |
| 946 EXPECT_EQ(PermissionMessage::kBrowsingHistory, ids[0]); | |
| 947 } | 1013 } |
| 948 { | 1014 { |
| 949 // Tabs warning suppresses all read-only history warnings. | 1015 // Tabs warning suppresses all read-only history warnings. |
| 950 APIPermissionSet api_permissions; | 1016 APIPermissionSet api_permissions; |
| 951 api_permissions.insert(APIPermission::kTab); | 1017 api_permissions.insert(APIPermission::kTab); |
| 952 api_permissions.insert(APIPermission::kTopSites); | 1018 api_permissions.insert(APIPermission::kTopSites); |
| 953 api_permissions.insert(APIPermission::kProcesses); | 1019 api_permissions.insert(APIPermission::kProcesses); |
| 954 api_permissions.insert(APIPermission::kWebNavigation); | 1020 api_permissions.insert(APIPermission::kWebNavigation); |
| 955 scoped_refptr<PermissionSet> permissions( | 1021 scoped_refptr<PermissionSet> permissions( |
| 956 new PermissionSet(api_permissions, ManifestPermissionSet(), | 1022 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 957 URLPatternSet(), URLPatternSet())); | 1023 URLPatternSet(), URLPatternSet())); |
| 958 PermissionMessageIDs ids = | 1024 EXPECT_TRUE(PermissionSetProducesMessage( |
| 959 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 1025 permissions.get(), Manifest::TYPE_EXTENSION, PermissionMessage::kTabs, |
| 960 permissions.get(), Manifest::TYPE_EXTENSION); | 1026 MakePermissionIDSet(api_permissions))); |
| 961 EXPECT_EQ(1u, ids.size()); | |
| 962 EXPECT_EQ(PermissionMessage::kTabs, ids[0]); | |
| 963 } | 1027 } |
| 964 } | 1028 } |
| 965 | 1029 |
| 966 TEST(PermissionsTest, AccessToDevicesMessages) { | 1030 TEST(PermissionsTest, AccessToDevicesMessages) { |
| 967 { | 1031 { |
| 968 APIPermissionSet api_permissions; | 1032 APIPermissionSet api_permissions; |
| 969 api_permissions.insert(APIPermission::kSerial); | 1033 api_permissions.insert(APIPermission::kSerial); |
| 970 scoped_refptr<PermissionSet> permissions( | 1034 scoped_refptr<PermissionSet> permissions( |
| 971 new PermissionSet(api_permissions, | 1035 new PermissionSet(api_permissions, |
| 972 ManifestPermissionSet(), | 1036 ManifestPermissionSet(), |
| (...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1715 URLPattern(URLPattern::SCHEME_ALL, "http://www.google.com/")); | 1779 URLPattern(URLPattern::SCHEME_ALL, "http://www.google.com/")); |
| 1716 allowed_hosts.AddPattern( | 1780 allowed_hosts.AddPattern( |
| 1717 URLPattern(URLPattern::SCHEME_ALL, "chrome://favicon/")); | 1781 URLPattern(URLPattern::SCHEME_ALL, "chrome://favicon/")); |
| 1718 allowed_hosts.AddPattern( | 1782 allowed_hosts.AddPattern( |
| 1719 URLPattern(URLPattern::SCHEME_ALL, "chrome://thumb/")); | 1783 URLPattern(URLPattern::SCHEME_ALL, "chrome://thumb/")); |
| 1720 scoped_refptr<PermissionSet> permissions( | 1784 scoped_refptr<PermissionSet> permissions( |
| 1721 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(), | 1785 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(), |
| 1722 allowed_hosts, URLPatternSet())); | 1786 allowed_hosts, URLPatternSet())); |
| 1723 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( | 1787 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs( |
| 1724 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)); |
| 1725 } | 1792 } |
| 1726 | 1793 |
| 1727 TEST(PermissionsTest, IsPrivilegeIncrease_DeclarativeWebRequest) { | 1794 TEST(PermissionsTest, IsPrivilegeIncrease_DeclarativeWebRequest) { |
| 1728 scoped_refptr<Extension> extension( | 1795 scoped_refptr<Extension> extension( |
| 1729 LoadManifest("permissions", "permissions_all_urls.json")); | 1796 LoadManifest("permissions", "permissions_all_urls.json")); |
| 1730 scoped_refptr<const PermissionSet> permissions( | 1797 scoped_refptr<const PermissionSet> permissions( |
| 1731 extension->permissions_data()->active_permissions()); | 1798 extension->permissions_data()->active_permissions()); |
| 1732 | 1799 |
| 1733 scoped_refptr<Extension> extension_dwr( | 1800 scoped_refptr<Extension> extension_dwr( |
| 1734 LoadManifest("permissions", "web_request_all_host_permissions.json")); | 1801 LoadManifest("permissions", "web_request_all_host_permissions.json")); |
| 1735 scoped_refptr<const PermissionSet> permissions_dwr( | 1802 scoped_refptr<const PermissionSet> permissions_dwr( |
| 1736 extension_dwr->permissions_data()->active_permissions()); | 1803 extension_dwr->permissions_data()->active_permissions()); |
| 1737 | 1804 |
| 1738 EXPECT_FALSE(PermissionMessageProvider::Get()-> | 1805 EXPECT_FALSE(PermissionMessageProvider::Get()-> |
| 1739 IsPrivilegeIncrease(permissions.get(), | 1806 IsPrivilegeIncrease(permissions.get(), |
| 1740 permissions_dwr.get(), | 1807 permissions_dwr.get(), |
| 1741 extension->GetType())); | 1808 extension->GetType())); |
| 1742 } | 1809 } |
| 1743 | 1810 |
| 1744 } // namespace extensions | 1811 } // namespace extensions |
| OLD | NEW |