| 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       PermissionMessageProvider::Get()->GetPermissionMessages( |   817       PermissionMessageProvider::Get()->GetPermissionMessages( | 
|   818           permissions, Manifest::TYPE_PLATFORM_APP); |   818           permissions, Manifest::TYPE_PLATFORM_APP); | 
|   819   ASSERT_EQ(1u, messages.size()); |   819   ASSERT_EQ(1u, messages.size()); | 
|   820   EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, messages[0].id()); |   820   EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, messages[0].id()); | 
|   821 } |   821 } | 
|   822  |   822  | 
|   823 TEST(PermissionsTest, SuppressedPermissionMessages) { |   823 TEST(PermissionsTest, SuppressedPermissionMessages) { | 
|   824   { |   824   { | 
|   825     APIPermissionSet api_permissions; |   825     APIPermissionSet api_permissions; | 
|   826     api_permissions.insert(APIPermission::kTab); |   826     api_permissions.insert(APIPermission::kTab); | 
|   827     api_permissions.insert(APIPermission::kHistory); |  | 
|   828     scoped_refptr<PermissionSet> permissions( |  | 
|   829         new PermissionSet(api_permissions, ManifestPermissionSet(), |  | 
|   830                           URLPatternSet(), URLPatternSet())); |  | 
|   831     PermissionMessages messages = |  | 
|   832         PermissionMessageProvider::Get()->GetPermissionMessages( |  | 
|   833             permissions, Manifest::TYPE_EXTENSION); |  | 
|   834     EXPECT_EQ(1u, messages.size()); |  | 
|   835     EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); |  | 
|   836   } |  | 
|   837   { |  | 
|   838     APIPermissionSet api_permissions; |  | 
|   839     api_permissions.insert(APIPermission::kTab); |  | 
|   840     URLPatternSet hosts; |   827     URLPatternSet hosts; | 
|   841     hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, |   828     hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, | 
|   842                                 "chrome://favicon/")); |   829                                 "chrome://favicon/")); | 
|   843     scoped_refptr<PermissionSet> permissions( |   830     scoped_refptr<PermissionSet> permissions( | 
|   844         new PermissionSet(api_permissions, ManifestPermissionSet(), |   831         new PermissionSet(api_permissions, ManifestPermissionSet(), | 
|   845                           hosts, URLPatternSet())); |   832                           hosts, URLPatternSet())); | 
|   846     PermissionMessages messages = |   833     PermissionMessages messages = | 
|   847         PermissionMessageProvider::Get()->GetPermissionMessages( |   834         PermissionMessageProvider::Get()->GetPermissionMessages( | 
|   848             permissions, Manifest::TYPE_EXTENSION); |   835             permissions, Manifest::TYPE_EXTENSION); | 
|   849     EXPECT_EQ(1u, messages.size()); |   836     EXPECT_EQ(1u, messages.size()); | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
|   870     hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); |   857     hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); | 
|   871     api_permissions.insert(APIPermission::kTab); |   858     api_permissions.insert(APIPermission::kTab); | 
|   872     scoped_refptr<PermissionSet> permissions(new PermissionSet( |   859     scoped_refptr<PermissionSet> permissions(new PermissionSet( | 
|   873         api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); |   860         api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); | 
|   874     PermissionMessages messages = |   861     PermissionMessages messages = | 
|   875         PermissionMessageProvider::Get()->GetPermissionMessages( |   862         PermissionMessageProvider::Get()->GetPermissionMessages( | 
|   876             permissions, Manifest::TYPE_EXTENSION); |   863             permissions, Manifest::TYPE_EXTENSION); | 
|   877     EXPECT_EQ(1u, messages.size()); |   864     EXPECT_EQ(1u, messages.size()); | 
|   878     EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); |   865     EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); | 
|   879   } |   866   } | 
 |   867   { | 
 |   868     APIPermissionSet api_permissions; | 
 |   869     api_permissions.insert(APIPermission::kHistory); | 
 |   870     api_permissions.insert(APIPermission::kTab); | 
 |   871     api_permissions.insert(APIPermission::kTopSites); | 
 |   872     api_permissions.insert(APIPermission::kProcesses); | 
 |   873     api_permissions.insert(APIPermission::kWebNavigation); | 
 |   874     scoped_refptr<PermissionSet> permissions( | 
 |   875         new PermissionSet(api_permissions, ManifestPermissionSet(), | 
 |   876                           URLPatternSet(), URLPatternSet())); | 
 |   877     PermissionMessages messages = | 
 |   878         PermissionMessageProvider::Get()->GetPermissionMessages( | 
 |   879             permissions, Manifest::TYPE_EXTENSION); | 
 |   880     EXPECT_EQ(1u, messages.size()); | 
 |   881     EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); | 
 |   882   } | 
 |   883   { | 
 |   884     APIPermissionSet api_permissions; | 
 |   885     api_permissions.insert(APIPermission::kTab); | 
 |   886     api_permissions.insert(APIPermission::kTopSites); | 
 |   887     api_permissions.insert(APIPermission::kProcesses); | 
 |   888     api_permissions.insert(APIPermission::kWebNavigation); | 
 |   889     scoped_refptr<PermissionSet> permissions( | 
 |   890         new PermissionSet(api_permissions, ManifestPermissionSet(), | 
 |   891                           URLPatternSet(), URLPatternSet())); | 
 |   892     PermissionMessages messages = | 
 |   893         PermissionMessageProvider::Get()->GetPermissionMessages( | 
 |   894             permissions, Manifest::TYPE_EXTENSION); | 
 |   895     EXPECT_EQ(1u, messages.size()); | 
 |   896     EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); | 
 |   897   } | 
|   880 } |   898 } | 
|   881  |   899  | 
|   882 TEST(PermissionsTest, MergedFileSystemPermissionComparison) { |   900 TEST(PermissionsTest, MergedFileSystemPermissionComparison) { | 
|   883   APIPermissionSet write_api_permissions; |   901   APIPermissionSet write_api_permissions; | 
|   884   write_api_permissions.insert(APIPermission::kFileSystemWrite); |   902   write_api_permissions.insert(APIPermission::kFileSystemWrite); | 
|   885   scoped_refptr<PermissionSet> write_permissions( |   903   scoped_refptr<PermissionSet> write_permissions( | 
|   886       new PermissionSet(write_api_permissions, ManifestPermissionSet(), |   904       new PermissionSet(write_api_permissions, ManifestPermissionSet(), | 
|   887                         URLPatternSet(), URLPatternSet())); |   905                         URLPatternSet(), URLPatternSet())); | 
|   888  |   906  | 
|   889   APIPermissionSet directory_api_permissions; |   907   APIPermissionSet directory_api_permissions; | 
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   985   EXPECT_EQ(combined_size, warnings.size()); |  1003   EXPECT_EQ(combined_size, warnings.size()); | 
|   986   EXPECT_FALSE(Contains(warnings, "Use your microphone")); |  1004   EXPECT_FALSE(Contains(warnings, "Use your microphone")); | 
|   987   EXPECT_FALSE(Contains(warnings, "Use your microphone and camera")); |  1005   EXPECT_FALSE(Contains(warnings, "Use your microphone and camera")); | 
|   988   EXPECT_TRUE(Contains(warnings, "Use your camera")); |  1006   EXPECT_TRUE(Contains(warnings, "Use your camera")); | 
|   989 } |  1007 } | 
|   990  |  1008  | 
|   991 TEST(PermissionsTest, GetWarningMessages_CombinedSessions) { |  1009 TEST(PermissionsTest, GetWarningMessages_CombinedSessions) { | 
|   992   { |  1010   { | 
|   993     APIPermissionSet api_permissions; |  1011     APIPermissionSet api_permissions; | 
|   994     api_permissions.insert(APIPermission::kTab); |  1012     api_permissions.insert(APIPermission::kTab); | 
 |  1013     api_permissions.insert(APIPermission::kTopSites); | 
 |  1014     api_permissions.insert(APIPermission::kProcesses); | 
 |  1015     api_permissions.insert(APIPermission::kWebNavigation); | 
|   995     api_permissions.insert(APIPermission::kSessions); |  1016     api_permissions.insert(APIPermission::kSessions); | 
|   996     scoped_refptr<PermissionSet> permissions( |  1017     scoped_refptr<PermissionSet> permissions( | 
|   997         new PermissionSet(api_permissions, ManifestPermissionSet(), |  1018         new PermissionSet(api_permissions, ManifestPermissionSet(), | 
|   998                           URLPatternSet(), URLPatternSet())); |  1019                           URLPatternSet(), URLPatternSet())); | 
|   999     std::vector<base::string16> messages = |  1020     std::vector<base::string16> messages = | 
|  1000         PermissionMessageProvider::Get()->GetWarningMessages( |  1021         PermissionMessageProvider::Get()->GetWarningMessages( | 
|  1001             permissions, Manifest::TYPE_EXTENSION); |  1022             permissions, Manifest::TYPE_EXTENSION); | 
|  1002     EXPECT_EQ(1u, messages.size()); |  1023     EXPECT_EQ(1u, messages.size()); | 
|  1003     EXPECT_EQ(l10n_util::GetStringUTF16( |  1024     EXPECT_EQ(l10n_util::GetStringUTF16( | 
|  1004                   IDS_EXTENSION_PROMPT_WARNING_TABS_AND_SESSIONS), |  1025                   IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS), | 
|  1005               messages[0]); |  1026               messages[0]); | 
|  1006   } |  1027   } | 
|  1007   { |  1028   { | 
|  1008     APIPermissionSet api_permissions; |  1029     APIPermissionSet api_permissions; | 
|  1009     api_permissions.insert(APIPermission::kHistory); |  1030     api_permissions.insert(APIPermission::kHistory); | 
 |  1031     api_permissions.insert(APIPermission::kTab); | 
 |  1032     api_permissions.insert(APIPermission::kTopSites); | 
 |  1033     api_permissions.insert(APIPermission::kProcesses); | 
 |  1034     api_permissions.insert(APIPermission::kWebNavigation); | 
|  1010     api_permissions.insert(APIPermission::kSessions); |  1035     api_permissions.insert(APIPermission::kSessions); | 
|  1011     scoped_refptr<PermissionSet> permissions( |  1036     scoped_refptr<PermissionSet> permissions( | 
|  1012         new PermissionSet(api_permissions, ManifestPermissionSet(), |  1037         new PermissionSet(api_permissions, ManifestPermissionSet(), | 
|  1013                           URLPatternSet(), URLPatternSet())); |  | 
|  1014     std::vector<base::string16> messages = |  | 
|  1015         PermissionMessageProvider::Get()->GetWarningMessages( |  | 
|  1016             permissions, Manifest::TYPE_EXTENSION); |  | 
|  1017     EXPECT_EQ(1u, messages.size()); |  | 
|  1018     EXPECT_EQ(l10n_util::GetStringUTF16( |  | 
|  1019                   IDS_EXTENSION_PROMPT_WARNING_BROWSING_HISTORY_AND_SESSIONS), |  | 
|  1020               messages[0]); |  | 
|  1021   } |  | 
|  1022   { |  | 
|  1023     APIPermissionSet api_permissions; |  | 
|  1024     api_permissions.insert(APIPermission::kTab); |  | 
|  1025     api_permissions.insert(APIPermission::kHistory); |  | 
|  1026     api_permissions.insert(APIPermission::kSessions); |  | 
|  1027     scoped_refptr<PermissionSet> permissions( |  | 
|  1028         new PermissionSet(api_permissions, ManifestPermissionSet(), |  | 
|  1029                           URLPatternSet(), URLPatternSet())); |  1038                           URLPatternSet(), URLPatternSet())); | 
|  1030     std::vector<base::string16> messages = |  1039     std::vector<base::string16> messages = | 
|  1031         PermissionMessageProvider::Get()->GetWarningMessages( |  1040         PermissionMessageProvider::Get()->GetWarningMessages( | 
|  1032             permissions, Manifest::TYPE_EXTENSION); |  1041             permissions, Manifest::TYPE_EXTENSION); | 
|  1033     EXPECT_EQ(1u, messages.size()); |  1042     EXPECT_EQ(1u, messages.size()); | 
|  1034     EXPECT_EQ(l10n_util::GetStringUTF16( |  1043     EXPECT_EQ(l10n_util::GetStringUTF16( | 
|  1035                   IDS_EXTENSION_PROMPT_WARNING_BROWSING_HISTORY_AND_SESSIONS), |  1044                   IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS), | 
|  1036               messages[0]); |  1045               messages[0]); | 
|  1037   } |  1046   } | 
|  1038 } |  1047 } | 
|  1039  |  1048  | 
|  1040 TEST(PermissionsTest, GetWarningMessages_DeclarativeWebRequest) { |  1049 TEST(PermissionsTest, GetWarningMessages_DeclarativeWebRequest) { | 
|  1041   // Test that if the declarativeWebRequest permission is present |  1050   // Test that if the declarativeWebRequest permission is present | 
|  1042   // in combination with all hosts permission, then only the warning |  1051   // in combination with all hosts permission, then only the warning | 
|  1043   // for host permissions is shown, because that covers the use of |  1052   // for host permissions is shown, because that covers the use of | 
|  1044   // declarativeWebRequest. |  1053   // declarativeWebRequest. | 
|  1045  |  1054  | 
| (...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1647   scoped_refptr<const PermissionSet> permissions_dwr( |  1656   scoped_refptr<const PermissionSet> permissions_dwr( | 
|  1648       extension_dwr->permissions_data()->active_permissions()); |  1657       extension_dwr->permissions_data()->active_permissions()); | 
|  1649  |  1658  | 
|  1650   EXPECT_FALSE(PermissionMessageProvider::Get()-> |  1659   EXPECT_FALSE(PermissionMessageProvider::Get()-> | 
|  1651                    IsPrivilegeIncrease(permissions.get(), |  1660                    IsPrivilegeIncrease(permissions.get(), | 
|  1652                                        permissions_dwr.get(), |  1661                                        permissions_dwr.get(), | 
|  1653                                        extension->GetType())); |  1662                                        extension->GetType())); | 
|  1654 } |  1663 } | 
|  1655  |  1664  | 
|  1656 }  // namespace extensions |  1665 }  // namespace extensions | 
| OLD | NEW |