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

Side by Side Diff: chrome/common/extensions/api/file_browser_handlers/file_browser_handler.cc

Issue 93793010: Update uses of UTF conversions in chrome/common to use the base:: namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 12 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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/file_browser_handlers/file_browser_handle r.h" 5 #include "chrome/common/extensions/api/file_browser_handlers/file_browser_handle r.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 const std::string& extension_id, 134 const std::string& extension_id,
135 const base::DictionaryValue* file_browser_handler, 135 const base::DictionaryValue* file_browser_handler,
136 base::string16* error) { 136 base::string16* error) {
137 scoped_ptr<FileBrowserHandler> result(new FileBrowserHandler()); 137 scoped_ptr<FileBrowserHandler> result(new FileBrowserHandler());
138 result->set_extension_id(extension_id); 138 result->set_extension_id(extension_id);
139 139
140 std::string handler_id; 140 std::string handler_id;
141 // Read the file action |id| (mandatory). 141 // Read the file action |id| (mandatory).
142 if (!file_browser_handler->HasKey(keys::kPageActionId) || 142 if (!file_browser_handler->HasKey(keys::kPageActionId) ||
143 !file_browser_handler->GetString(keys::kPageActionId, &handler_id)) { 143 !file_browser_handler->GetString(keys::kPageActionId, &handler_id)) {
144 *error = ASCIIToUTF16(errors::kInvalidPageActionId); 144 *error = base::ASCIIToUTF16(errors::kInvalidPageActionId);
145 return NULL; 145 return NULL;
146 } 146 }
147 result->set_id(handler_id); 147 result->set_id(handler_id);
148 148
149 // Read the page action title from |default_title| (mandatory). 149 // Read the page action title from |default_title| (mandatory).
150 std::string title; 150 std::string title;
151 if (!file_browser_handler->HasKey(keys::kPageActionDefaultTitle) || 151 if (!file_browser_handler->HasKey(keys::kPageActionDefaultTitle) ||
152 !file_browser_handler->GetString(keys::kPageActionDefaultTitle, &title)) { 152 !file_browser_handler->GetString(keys::kPageActionDefaultTitle, &title)) {
153 *error = ASCIIToUTF16(errors::kInvalidPageActionDefaultTitle); 153 *error = base::ASCIIToUTF16(errors::kInvalidPageActionDefaultTitle);
154 return NULL; 154 return NULL;
155 } 155 }
156 result->set_title(title); 156 result->set_title(title);
157 157
158 // Initialize access permissions (optional). 158 // Initialize access permissions (optional).
159 const base::ListValue* access_list_value = NULL; 159 const base::ListValue* access_list_value = NULL;
160 if (file_browser_handler->HasKey(keys::kFileAccessList)) { 160 if (file_browser_handler->HasKey(keys::kFileAccessList)) {
161 if (!file_browser_handler->GetList(keys::kFileAccessList, 161 if (!file_browser_handler->GetList(keys::kFileAccessList,
162 &access_list_value) || 162 &access_list_value) ||
163 access_list_value->empty()) { 163 access_list_value->empty()) {
164 *error = ASCIIToUTF16(errors::kInvalidFileAccessList); 164 *error = base::ASCIIToUTF16(errors::kInvalidFileAccessList);
165 return NULL; 165 return NULL;
166 } 166 }
167 for (size_t i = 0; i < access_list_value->GetSize(); ++i) { 167 for (size_t i = 0; i < access_list_value->GetSize(); ++i) {
168 std::string access; 168 std::string access;
169 if (!access_list_value->GetString(i, &access) || 169 if (!access_list_value->GetString(i, &access) ||
170 result->AddFileAccessPermission(access)) { 170 result->AddFileAccessPermission(access)) {
171 *error = extensions::ErrorUtils::FormatErrorMessageUTF16( 171 *error = extensions::ErrorUtils::FormatErrorMessageUTF16(
172 errors::kInvalidFileAccessValue, base::IntToString(i)); 172 errors::kInvalidFileAccessValue, base::IntToString(i));
173 return NULL; 173 return NULL;
174 } 174 }
175 } 175 }
176 } 176 }
177 if (!result->ValidateFileAccessPermissions()) { 177 if (!result->ValidateFileAccessPermissions()) {
178 *error = ASCIIToUTF16(errors::kInvalidFileAccessList); 178 *error = base::ASCIIToUTF16(errors::kInvalidFileAccessList);
179 return NULL; 179 return NULL;
180 } 180 }
181 181
182 // Initialize file filters (mandatory, unless "create" access is specified, 182 // Initialize file filters (mandatory, unless "create" access is specified,
183 // in which case is ignored). The list can be empty. 183 // in which case is ignored). The list can be empty.
184 if (!result->HasCreateAccessPermission()) { 184 if (!result->HasCreateAccessPermission()) {
185 const base::ListValue* file_filters = NULL; 185 const base::ListValue* file_filters = NULL;
186 if (!file_browser_handler->HasKey(keys::kFileFilters) || 186 if (!file_browser_handler->HasKey(keys::kFileFilters) ||
187 !file_browser_handler->GetList(keys::kFileFilters, &file_filters)) { 187 !file_browser_handler->GetList(keys::kFileFilters, &file_filters)) {
188 *error = ASCIIToUTF16(errors::kInvalidFileFiltersList); 188 *error = base::ASCIIToUTF16(errors::kInvalidFileFiltersList);
189 return NULL; 189 return NULL;
190 } 190 }
191 for (size_t i = 0; i < file_filters->GetSize(); ++i) { 191 for (size_t i = 0; i < file_filters->GetSize(); ++i) {
192 std::string filter; 192 std::string filter;
193 if (!file_filters->GetString(i, &filter)) { 193 if (!file_filters->GetString(i, &filter)) {
194 *error = extensions::ErrorUtils::FormatErrorMessageUTF16( 194 *error = extensions::ErrorUtils::FormatErrorMessageUTF16(
195 errors::kInvalidFileFilterValue, base::IntToString(i)); 195 errors::kInvalidFileFilterValue, base::IntToString(i));
196 return NULL; 196 return NULL;
197 } 197 }
198 StringToLowerASCII(&filter); 198 StringToLowerASCII(&filter);
(...skipping 25 matching lines...) Expand all
224 result->AddPattern(pattern); 224 result->AddPattern(pattern);
225 } 225 }
226 } 226 }
227 227
228 std::string default_icon; 228 std::string default_icon;
229 // Read the file browser action |default_icon| (optional). 229 // Read the file browser action |default_icon| (optional).
230 if (file_browser_handler->HasKey(keys::kPageActionDefaultIcon)) { 230 if (file_browser_handler->HasKey(keys::kPageActionDefaultIcon)) {
231 if (!file_browser_handler->GetString( 231 if (!file_browser_handler->GetString(
232 keys::kPageActionDefaultIcon, &default_icon) || 232 keys::kPageActionDefaultIcon, &default_icon) ||
233 default_icon.empty()) { 233 default_icon.empty()) {
234 *error = ASCIIToUTF16(errors::kInvalidPageActionIconPath); 234 *error = base::ASCIIToUTF16(errors::kInvalidPageActionIconPath);
235 return NULL; 235 return NULL;
236 } 236 }
237 result->set_icon_path(default_icon); 237 result->set_icon_path(default_icon);
238 } 238 }
239 239
240 return result.release(); 240 return result.release();
241 } 241 }
242 242
243 // Loads FileBrowserHandlers from |extension_actions| into a list in |result|. 243 // Loads FileBrowserHandlers from |extension_actions| into a list in |result|.
244 bool LoadFileBrowserHandlers( 244 bool LoadFileBrowserHandlers(
245 const std::string& extension_id, 245 const std::string& extension_id,
246 const base::ListValue* extension_actions, 246 const base::ListValue* extension_actions,
247 FileBrowserHandler::List* result, 247 FileBrowserHandler::List* result,
248 base::string16* error) { 248 base::string16* error) {
249 for (base::ListValue::const_iterator iter = extension_actions->begin(); 249 for (base::ListValue::const_iterator iter = extension_actions->begin();
250 iter != extension_actions->end(); 250 iter != extension_actions->end();
251 ++iter) { 251 ++iter) {
252 if (!(*iter)->IsType(base::Value::TYPE_DICTIONARY)) { 252 if (!(*iter)->IsType(base::Value::TYPE_DICTIONARY)) {
253 *error = ASCIIToUTF16(errors::kInvalidFileBrowserHandler); 253 *error = base::ASCIIToUTF16(errors::kInvalidFileBrowserHandler);
254 return false; 254 return false;
255 } 255 }
256 scoped_ptr<FileBrowserHandler> action( 256 scoped_ptr<FileBrowserHandler> action(
257 LoadFileBrowserHandler( 257 LoadFileBrowserHandler(
258 extension_id, 258 extension_id,
259 reinterpret_cast<base::DictionaryValue*>(*iter), error)); 259 reinterpret_cast<base::DictionaryValue*>(*iter), error));
260 if (!action.get()) 260 if (!action.get())
261 return false; // Failed to parse file browser action definition. 261 return false; // Failed to parse file browser action definition.
262 result->push_back(linked_ptr<FileBrowserHandler>(action.release())); 262 result->push_back(linked_ptr<FileBrowserHandler>(action.release()));
263 } 263 }
264 return true; 264 return true;
265 } 265 }
266 266
267 } // namespace 267 } // namespace
268 268
269 bool FileBrowserHandlerParser::Parse(extensions::Extension* extension, 269 bool FileBrowserHandlerParser::Parse(extensions::Extension* extension,
270 base::string16* error) { 270 base::string16* error) {
271 const base::ListValue* file_browser_handlers_value = NULL; 271 const base::ListValue* file_browser_handlers_value = NULL;
272 if (!extension->manifest()->GetList(keys::kFileBrowserHandlers, 272 if (!extension->manifest()->GetList(keys::kFileBrowserHandlers,
273 &file_browser_handlers_value)) { 273 &file_browser_handlers_value)) {
274 *error = ASCIIToUTF16(errors::kInvalidFileBrowserHandler); 274 *error = base::ASCIIToUTF16(errors::kInvalidFileBrowserHandler);
275 return false; 275 return false;
276 } 276 }
277 scoped_ptr<FileBrowserHandlerInfo> info(new FileBrowserHandlerInfo); 277 scoped_ptr<FileBrowserHandlerInfo> info(new FileBrowserHandlerInfo);
278 if (!LoadFileBrowserHandlers(extension->id(), 278 if (!LoadFileBrowserHandlers(extension->id(),
279 file_browser_handlers_value, 279 file_browser_handlers_value,
280 &info->file_browser_handlers, 280 &info->file_browser_handlers,
281 error)) { 281 error)) {
282 return false; // Failed to parse file browser actions definition. 282 return false; // Failed to parse file browser actions definition.
283 } 283 }
284 284
285 extension->SetManifestData(keys::kFileBrowserHandlers, info.release()); 285 extension->SetManifestData(keys::kFileBrowserHandlers, info.release());
286 return true; 286 return true;
287 } 287 }
288 288
289 const std::vector<std::string> FileBrowserHandlerParser::Keys() const { 289 const std::vector<std::string> FileBrowserHandlerParser::Keys() const {
290 return SingleKey(keys::kFileBrowserHandlers); 290 return SingleKey(keys::kFileBrowserHandlers);
291 } 291 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698