| 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 807 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 818 URLPatternSet(), URLPatternSet())); | 818 URLPatternSet(), URLPatternSet())); |
| 819 PermissionMessages messages = | 819 PermissionMessages messages = |
| 820 PermissionMessageProvider::Get()->GetPermissionMessages( | 820 PermissionMessageProvider::Get()->GetPermissionMessages( |
| 821 permissions.get(), 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 // Tabs warning suppresses favicon warning. |
| 828 APIPermissionSet api_permissions; | 829 APIPermissionSet api_permissions; |
| 829 api_permissions.insert(APIPermission::kTab); | 830 api_permissions.insert(APIPermission::kTab); |
| 830 URLPatternSet hosts; | 831 URLPatternSet hosts; |
| 831 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, | 832 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, |
| 832 "chrome://favicon/")); | 833 "chrome://favicon/")); |
| 833 scoped_refptr<PermissionSet> permissions( | 834 scoped_refptr<PermissionSet> permissions( |
| 834 new PermissionSet(api_permissions, ManifestPermissionSet(), | 835 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 835 hosts, URLPatternSet())); | 836 hosts, URLPatternSet())); |
| 836 PermissionMessages messages = | 837 PermissionMessages messages = |
| 837 PermissionMessageProvider::Get()->GetPermissionMessages( | 838 PermissionMessageProvider::Get()->GetPermissionMessages( |
| 838 permissions.get(), Manifest::TYPE_EXTENSION); | 839 permissions.get(), Manifest::TYPE_EXTENSION); |
| 839 EXPECT_EQ(1u, messages.size()); | 840 EXPECT_EQ(1u, messages.size()); |
| 840 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); | 841 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); |
| 841 } | 842 } |
| 842 { | 843 { |
| 844 // History warning suppresses favicon warning. |
| 843 APIPermissionSet api_permissions; | 845 APIPermissionSet api_permissions; |
| 844 api_permissions.insert(APIPermission::kHistory); | 846 api_permissions.insert(APIPermission::kHistory); |
| 845 URLPatternSet hosts; | 847 URLPatternSet hosts; |
| 846 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, | 848 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, |
| 847 "chrome://favicon/")); | 849 "chrome://favicon/")); |
| 848 scoped_refptr<PermissionSet> permissions( | 850 scoped_refptr<PermissionSet> permissions( |
| 849 new PermissionSet(api_permissions, ManifestPermissionSet(), | 851 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 850 hosts, URLPatternSet())); | 852 hosts, URLPatternSet())); |
| 851 PermissionMessages messages = | 853 PermissionMessages messages = |
| 852 PermissionMessageProvider::Get()->GetPermissionMessages( | 854 PermissionMessageProvider::Get()->GetPermissionMessages( |
| 853 permissions.get(), Manifest::TYPE_EXTENSION); | 855 permissions.get(), Manifest::TYPE_EXTENSION); |
| 854 EXPECT_EQ(1u, messages.size()); | 856 EXPECT_EQ(1u, messages.size()); |
| 855 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); | 857 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); |
| 856 } | 858 } |
| 857 { | 859 { |
| 860 // All sites warning suppresses tabs warning. |
| 858 APIPermissionSet api_permissions; | 861 APIPermissionSet api_permissions; |
| 859 URLPatternSet hosts; | 862 URLPatternSet hosts; |
| 860 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); | 863 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); |
| 861 api_permissions.insert(APIPermission::kTab); | 864 api_permissions.insert(APIPermission::kTab); |
| 862 scoped_refptr<PermissionSet> permissions(new PermissionSet( | 865 scoped_refptr<PermissionSet> permissions(new PermissionSet( |
| 863 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); | 866 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); |
| 864 PermissionMessages messages = | 867 PermissionMessages messages = |
| 865 PermissionMessageProvider::Get()->GetPermissionMessages( | 868 PermissionMessageProvider::Get()->GetPermissionMessages( |
| 866 permissions.get(), Manifest::TYPE_EXTENSION); | 869 permissions.get(), Manifest::TYPE_EXTENSION); |
| 867 EXPECT_EQ(1u, messages.size()); | 870 EXPECT_EQ(1u, messages.size()); |
| 868 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); | 871 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); |
| 869 } | 872 } |
| 870 { | 873 { |
| 874 // All sites warning suppresses topSites warning. |
| 871 APIPermissionSet api_permissions; | 875 APIPermissionSet api_permissions; |
| 872 URLPatternSet hosts; | 876 URLPatternSet hosts; |
| 873 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); | 877 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); |
| 878 api_permissions.insert(APIPermission::kTopSites); |
| 879 scoped_refptr<PermissionSet> permissions(new PermissionSet( |
| 880 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); |
| 881 PermissionMessages messages = |
| 882 PermissionMessageProvider::Get()->GetPermissionMessages( |
| 883 permissions, Manifest::TYPE_EXTENSION); |
| 884 EXPECT_EQ(1u, messages.size()); |
| 885 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); |
| 886 } |
| 887 { |
| 888 // All sites warning suppresses declarativeWebRequest warning. |
| 889 APIPermissionSet api_permissions; |
| 890 URLPatternSet hosts; |
| 891 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); |
| 874 api_permissions.insert(APIPermission::kDeclarativeWebRequest); | 892 api_permissions.insert(APIPermission::kDeclarativeWebRequest); |
| 875 scoped_refptr<PermissionSet> permissions(new PermissionSet( | 893 scoped_refptr<PermissionSet> permissions(new PermissionSet( |
| 876 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); | 894 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); |
| 877 PermissionMessages messages = | 895 PermissionMessages messages = |
| 878 PermissionMessageProvider::Get()->GetPermissionMessages( | 896 PermissionMessageProvider::Get()->GetPermissionMessages( |
| 879 permissions.get(), Manifest::TYPE_EXTENSION); | 897 permissions.get(), Manifest::TYPE_EXTENSION); |
| 880 EXPECT_EQ(1u, messages.size()); | 898 EXPECT_EQ(1u, messages.size()); |
| 881 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); | 899 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); |
| 882 } | 900 } |
| 883 { | 901 { |
| 902 // BrowsingHistory warning suppresses all history read/write warnings. |
| 884 APIPermissionSet api_permissions; | 903 APIPermissionSet api_permissions; |
| 885 api_permissions.insert(APIPermission::kHistory); | 904 api_permissions.insert(APIPermission::kHistory); |
| 886 api_permissions.insert(APIPermission::kTab); | 905 api_permissions.insert(APIPermission::kTab); |
| 887 api_permissions.insert(APIPermission::kTopSites); | 906 api_permissions.insert(APIPermission::kTopSites); |
| 888 api_permissions.insert(APIPermission::kProcesses); | 907 api_permissions.insert(APIPermission::kProcesses); |
| 889 api_permissions.insert(APIPermission::kWebNavigation); | 908 api_permissions.insert(APIPermission::kWebNavigation); |
| 890 scoped_refptr<PermissionSet> permissions( | 909 scoped_refptr<PermissionSet> permissions( |
| 891 new PermissionSet(api_permissions, ManifestPermissionSet(), | 910 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 892 URLPatternSet(), URLPatternSet())); | 911 URLPatternSet(), URLPatternSet())); |
| 893 PermissionMessages messages = | 912 PermissionMessages messages = |
| 894 PermissionMessageProvider::Get()->GetPermissionMessages( | 913 PermissionMessageProvider::Get()->GetPermissionMessages( |
| 895 permissions.get(), Manifest::TYPE_EXTENSION); | 914 permissions.get(), Manifest::TYPE_EXTENSION); |
| 896 EXPECT_EQ(1u, messages.size()); | 915 EXPECT_EQ(1u, messages.size()); |
| 897 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); | 916 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); |
| 898 } | 917 } |
| 899 { | 918 { |
| 919 // Tabs warning suppresses all read-only history warnings. |
| 900 APIPermissionSet api_permissions; | 920 APIPermissionSet api_permissions; |
| 901 api_permissions.insert(APIPermission::kTab); | 921 api_permissions.insert(APIPermission::kTab); |
| 902 api_permissions.insert(APIPermission::kTopSites); | 922 api_permissions.insert(APIPermission::kTopSites); |
| 903 api_permissions.insert(APIPermission::kProcesses); | 923 api_permissions.insert(APIPermission::kProcesses); |
| 904 api_permissions.insert(APIPermission::kWebNavigation); | 924 api_permissions.insert(APIPermission::kWebNavigation); |
| 905 scoped_refptr<PermissionSet> permissions( | 925 scoped_refptr<PermissionSet> permissions( |
| 906 new PermissionSet(api_permissions, ManifestPermissionSet(), | 926 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 907 URLPatternSet(), URLPatternSet())); | 927 URLPatternSet(), URLPatternSet())); |
| 908 PermissionMessages messages = | 928 PermissionMessages messages = |
| 909 PermissionMessageProvider::Get()->GetPermissionMessages( | 929 PermissionMessageProvider::Get()->GetPermissionMessages( |
| (...skipping 885 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1795 scoped_refptr<const PermissionSet> permissions_dwr( | 1815 scoped_refptr<const PermissionSet> permissions_dwr( |
| 1796 extension_dwr->permissions_data()->active_permissions()); | 1816 extension_dwr->permissions_data()->active_permissions()); |
| 1797 | 1817 |
| 1798 EXPECT_FALSE(PermissionMessageProvider::Get()-> | 1818 EXPECT_FALSE(PermissionMessageProvider::Get()-> |
| 1799 IsPrivilegeIncrease(permissions.get(), | 1819 IsPrivilegeIncrease(permissions.get(), |
| 1800 permissions_dwr.get(), | 1820 permissions_dwr.get(), |
| 1801 extension->GetType())); | 1821 extension->GetType())); |
| 1802 } | 1822 } |
| 1803 | 1823 |
| 1804 } // namespace extensions | 1824 } // namespace extensions |
| OLD | NEW |