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