| 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 "chrome/common/extensions/extension_permission_set.h" | 5 #include "chrome/common/extensions/extension_permission_set.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 if (a == "net") | 35 if (a == "net") |
| 36 return b != "com"; | 36 return b != "com"; |
| 37 if (a == "org") | 37 if (a == "org") |
| 38 return b != "com" && b != "net"; | 38 return b != "com" && b != "net"; |
| 39 return false; | 39 return false; |
| 40 } | 40 } |
| 41 | 41 |
| 42 // Names of API modules that can be used without listing it in the | 42 // Names of API modules that can be used without listing it in the |
| 43 // permissions section of the manifest. | 43 // permissions section of the manifest. |
| 44 const char* kNonPermissionModuleNames[] = { | 44 const char* kNonPermissionModuleNames[] = { |
| 45 "app", |
| 45 "browserAction", | 46 "browserAction", |
| 46 "devtools", | 47 "devtools", |
| 47 "extension", | 48 "extension", |
| 48 "i18n", | 49 "i18n", |
| 49 "omnibox", | 50 "omnibox", |
| 50 "pageAction", | 51 "pageAction", |
| 51 "pageActions", | 52 "pageActions", |
| 52 "permissions", | 53 "permissions", |
| 53 "test", | 54 "test", |
| 54 "types" | 55 "types" |
| (...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 558 std::set<std::string> apis_str; | 559 std::set<std::string> apis_str; |
| 559 for (ExtensionAPIPermissionSet::const_iterator i = apis_.begin(); | 560 for (ExtensionAPIPermissionSet::const_iterator i = apis_.begin(); |
| 560 i != apis_.end(); ++i) { | 561 i != apis_.end(); ++i) { |
| 561 ExtensionAPIPermission* permission = info->GetByID(*i); | 562 ExtensionAPIPermission* permission = info->GetByID(*i); |
| 562 if (permission) | 563 if (permission) |
| 563 apis_str.insert(permission->name()); | 564 apis_str.insert(permission->name()); |
| 564 } | 565 } |
| 565 return apis_str; | 566 return apis_str; |
| 566 } | 567 } |
| 567 | 568 |
| 569 std::set<std::string> ExtensionPermissionSet:: |
| 570 GetAPIsWithAnyAccessAsStrings() const { |
| 571 std::set<std::string> result = GetAPIsAsStrings(); |
| 572 for (size_t i = 0; i < kNumNonPermissionModuleNames; ++i) |
| 573 result.insert(kNonPermissionModuleNames[i]); |
| 574 for (size_t i = 0; i < kNumNonPermissionFunctionNames; ++i) |
| 575 result.insert(GetPermissionName(kNonPermissionFunctionNames[i])); |
| 576 return result; |
| 577 } |
| 578 |
| 568 bool ExtensionPermissionSet::HasAnyAccessToAPI( | 579 bool ExtensionPermissionSet::HasAnyAccessToAPI( |
| 569 const std::string& api_name) const { | 580 const std::string& api_name) const { |
| 570 if (HasAccessToFunction(api_name)) | 581 if (HasAccessToFunction(api_name)) |
| 571 return true; | 582 return true; |
| 572 | 583 |
| 573 for (size_t i = 0; i < kNumNonPermissionFunctionNames; ++i) { | 584 for (size_t i = 0; i < kNumNonPermissionFunctionNames; ++i) { |
| 574 if (api_name == GetPermissionName(kNonPermissionFunctionNames[i])) | 585 if (api_name == GetPermissionName(kNonPermissionFunctionNames[i])) |
| 575 return true; | 586 return true; |
| 576 } | 587 } |
| 577 | 588 |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 863 std::set<std::string> new_hosts_set(GetDistinctHosts(new_list, false, false)); | 874 std::set<std::string> new_hosts_set(GetDistinctHosts(new_list, false, false)); |
| 864 std::set<std::string> old_hosts_set(GetDistinctHosts(old_list, false, false)); | 875 std::set<std::string> old_hosts_set(GetDistinctHosts(old_list, false, false)); |
| 865 std::set<std::string> new_hosts_only; | 876 std::set<std::string> new_hosts_only; |
| 866 | 877 |
| 867 std::set_difference(new_hosts_set.begin(), new_hosts_set.end(), | 878 std::set_difference(new_hosts_set.begin(), new_hosts_set.end(), |
| 868 old_hosts_set.begin(), old_hosts_set.end(), | 879 old_hosts_set.begin(), old_hosts_set.end(), |
| 869 std::inserter(new_hosts_only, new_hosts_only.begin())); | 880 std::inserter(new_hosts_only, new_hosts_only.begin())); |
| 870 | 881 |
| 871 return !new_hosts_only.empty(); | 882 return !new_hosts_only.empty(); |
| 872 } | 883 } |
| OLD | NEW |