OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/api/plugins/plugins_handler.h" | 5 #include "chrome/common/extensions/api/plugins/plugins_handler.h" |
6 | 6 |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
11 #include "extensions/common/error_utils.h" | 11 #include "extensions/common/error_utils.h" |
12 #include "extensions/common/manifest.h" | 12 #include "extensions/common/manifest.h" |
13 #include "extensions/common/manifest_constants.h" | 13 #include "extensions/common/manifest_constants.h" |
| 14 #include "extensions/common/manifest_handlers/permissions_parser.h" |
14 #include "extensions/common/permissions/api_permission.h" | 15 #include "extensions/common/permissions/api_permission.h" |
15 #include "extensions/common/permissions/api_permission_set.h" | 16 #include "extensions/common/permissions/api_permission_set.h" |
16 #include "extensions/common/permissions/permissions_data.h" | |
17 #include "grit/generated_resources.h" | 17 #include "grit/generated_resources.h" |
18 #include "ui/base/l10n/l10n_util.h" | 18 #include "ui/base/l10n/l10n_util.h" |
19 | 19 |
20 #if defined(OS_WIN) | 20 #if defined(OS_WIN) |
21 #include "base/win/metro.h" | 21 #include "base/win/metro.h" |
22 #endif | 22 #endif |
23 | 23 |
24 namespace extensions { | 24 namespace extensions { |
25 | 25 |
26 namespace keys = manifest_keys; | 26 namespace keys = manifest_keys; |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 continue; | 111 continue; |
112 } | 112 } |
113 #endif // defined(OS_WIN). | 113 #endif // defined(OS_WIN). |
114 plugins_data->plugins.push_back(PluginInfo( | 114 plugins_data->plugins.push_back(PluginInfo( |
115 extension->path().Append(base::FilePath::FromUTF8Unsafe(path_str)), | 115 extension->path().Append(base::FilePath::FromUTF8Unsafe(path_str)), |
116 is_public)); | 116 is_public)); |
117 } | 117 } |
118 | 118 |
119 if (!plugins_data->plugins.empty()) { | 119 if (!plugins_data->plugins.empty()) { |
120 extension->SetManifestData(keys::kPlugins, plugins_data.release()); | 120 extension->SetManifestData(keys::kPlugins, plugins_data.release()); |
121 PermissionsData::GetInitialAPIPermissions(extension)->insert( | 121 PermissionsParser::AddAPIPermission(extension, APIPermission::kPlugin); |
122 APIPermission::kPlugin); | |
123 } | 122 } |
124 | 123 |
125 return true; | 124 return true; |
126 } | 125 } |
127 | 126 |
128 bool PluginsHandler::Validate(const Extension* extension, | 127 bool PluginsHandler::Validate(const Extension* extension, |
129 std::string* error, | 128 std::string* error, |
130 std::vector<InstallWarning>* warnings) const { | 129 std::vector<InstallWarning>* warnings) const { |
131 // Validate claimed plugin paths. | 130 // Validate claimed plugin paths. |
132 if (extensions::PluginInfo::HasPlugins(extension)) { | 131 if (extensions::PluginInfo::HasPlugins(extension)) { |
133 const extensions::PluginInfo::PluginVector* plugins = | 132 const extensions::PluginInfo::PluginVector* plugins = |
134 extensions::PluginInfo::GetPlugins(extension); | 133 extensions::PluginInfo::GetPlugins(extension); |
135 CHECK(plugins); | 134 CHECK(plugins); |
136 for (std::vector<extensions::PluginInfo>::const_iterator plugin = | 135 for (std::vector<extensions::PluginInfo>::const_iterator plugin = |
137 plugins->begin(); | 136 plugins->begin(); |
138 plugin != plugins->end(); ++plugin) { | 137 plugin != plugins->end(); ++plugin) { |
139 if (!base::PathExists(plugin->path)) { | 138 if (!base::PathExists(plugin->path)) { |
140 *error = l10n_util::GetStringFUTF8( | 139 *error = l10n_util::GetStringFUTF8( |
141 IDS_EXTENSION_LOAD_PLUGIN_PATH_FAILED, | 140 IDS_EXTENSION_LOAD_PLUGIN_PATH_FAILED, |
142 plugin->path.LossyDisplayName()); | 141 plugin->path.LossyDisplayName()); |
143 return false; | 142 return false; |
144 } | 143 } |
145 } | 144 } |
146 } | 145 } |
147 return true; | 146 return true; |
148 } | 147 } |
149 | 148 |
150 } // namespace extensions | 149 } // namespace extensions |
OLD | NEW |