Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(171)

Side by Side Diff: chrome/common/extensions/api/plugins/plugins_handler.cc

Issue 309533007: Refactor PermissionsData pt1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698