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

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

Issue 1880143002: Convert chrome/common to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 8 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
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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory>
10
9 #include "base/logging.h" 11 #include "base/logging.h"
10 #include "base/strings/string_number_conversions.h" 12 #include "base/strings/string_number_conversions.h"
11 #include "base/strings/string_util.h" 13 #include "base/strings/string_util.h"
12 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
13 #include "base/values.h" 15 #include "base/values.h"
14 #include "chrome/common/extensions/extension_constants.h" 16 #include "chrome/common/extensions/extension_constants.h"
15 #include "extensions/common/error_utils.h" 17 #include "extensions/common/error_utils.h"
16 #include "extensions/common/install_warning.h" 18 #include "extensions/common/install_warning.h"
17 #include "extensions/common/manifest.h" 19 #include "extensions/common/manifest.h"
18 #include "extensions/common/manifest_constants.h" 20 #include "extensions/common/manifest_constants.h"
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 135
134 FileBrowserHandlerParser::~FileBrowserHandlerParser() { 136 FileBrowserHandlerParser::~FileBrowserHandlerParser() {
135 } 137 }
136 138
137 namespace { 139 namespace {
138 140
139 FileBrowserHandler* LoadFileBrowserHandler( 141 FileBrowserHandler* LoadFileBrowserHandler(
140 const std::string& extension_id, 142 const std::string& extension_id,
141 const base::DictionaryValue* file_browser_handler, 143 const base::DictionaryValue* file_browser_handler,
142 base::string16* error) { 144 base::string16* error) {
143 scoped_ptr<FileBrowserHandler> result(new FileBrowserHandler()); 145 std::unique_ptr<FileBrowserHandler> result(new FileBrowserHandler());
144 result->set_extension_id(extension_id); 146 result->set_extension_id(extension_id);
145 147
146 std::string handler_id; 148 std::string handler_id;
147 // Read the file action |id| (mandatory). 149 // Read the file action |id| (mandatory).
148 if (!file_browser_handler->HasKey(keys::kPageActionId) || 150 if (!file_browser_handler->HasKey(keys::kPageActionId) ||
149 !file_browser_handler->GetString(keys::kPageActionId, &handler_id)) { 151 !file_browser_handler->GetString(keys::kPageActionId, &handler_id)) {
150 *error = base::ASCIIToUTF16(errors::kInvalidPageActionId); 152 *error = base::ASCIIToUTF16(errors::kInvalidPageActionId);
151 return NULL; 153 return NULL;
152 } 154 }
153 result->set_id(handler_id); 155 result->set_id(handler_id);
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 const base::ListValue* extension_actions, 253 const base::ListValue* extension_actions,
252 FileBrowserHandler::List* result, 254 FileBrowserHandler::List* result,
253 base::string16* error) { 255 base::string16* error) {
254 for (base::ListValue::const_iterator iter = extension_actions->begin(); 256 for (base::ListValue::const_iterator iter = extension_actions->begin();
255 iter != extension_actions->end(); 257 iter != extension_actions->end();
256 ++iter) { 258 ++iter) {
257 if (!(*iter)->IsType(base::Value::TYPE_DICTIONARY)) { 259 if (!(*iter)->IsType(base::Value::TYPE_DICTIONARY)) {
258 *error = base::ASCIIToUTF16(errors::kInvalidFileBrowserHandler); 260 *error = base::ASCIIToUTF16(errors::kInvalidFileBrowserHandler);
259 return false; 261 return false;
260 } 262 }
261 scoped_ptr<FileBrowserHandler> action( 263 std::unique_ptr<FileBrowserHandler> action(LoadFileBrowserHandler(
262 LoadFileBrowserHandler( 264 extension_id, reinterpret_cast<base::DictionaryValue*>(*iter), error));
263 extension_id,
264 reinterpret_cast<base::DictionaryValue*>(*iter), error));
265 if (!action.get()) 265 if (!action.get())
266 return false; // Failed to parse file browser action definition. 266 return false; // Failed to parse file browser action definition.
267 result->push_back(linked_ptr<FileBrowserHandler>(action.release())); 267 result->push_back(linked_ptr<FileBrowserHandler>(action.release()));
268 } 268 }
269 return true; 269 return true;
270 } 270 }
271 271
272 } // namespace 272 } // namespace
273 273
274 bool FileBrowserHandlerParser::Parse(extensions::Extension* extension, 274 bool FileBrowserHandlerParser::Parse(extensions::Extension* extension,
(...skipping 11 matching lines...) Expand all
286 return true; 286 return true;
287 } 287 }
288 288
289 const base::ListValue* file_browser_handlers_list_value = nullptr; 289 const base::ListValue* file_browser_handlers_list_value = nullptr;
290 if (!file_browser_handlers_value->GetAsList( 290 if (!file_browser_handlers_value->GetAsList(
291 &file_browser_handlers_list_value)) { 291 &file_browser_handlers_list_value)) {
292 *error = base::ASCIIToUTF16(errors::kInvalidFileBrowserHandler); 292 *error = base::ASCIIToUTF16(errors::kInvalidFileBrowserHandler);
293 return false; 293 return false;
294 } 294 }
295 295
296 scoped_ptr<FileBrowserHandlerInfo> info(new FileBrowserHandlerInfo); 296 std::unique_ptr<FileBrowserHandlerInfo> info(new FileBrowserHandlerInfo);
297 if (!LoadFileBrowserHandlers(extension->id(), 297 if (!LoadFileBrowserHandlers(extension->id(),
298 file_browser_handlers_list_value, 298 file_browser_handlers_list_value,
299 &info->file_browser_handlers, error)) { 299 &info->file_browser_handlers, error)) {
300 return false; // Failed to parse file browser actions definition. 300 return false; // Failed to parse file browser actions definition.
301 } 301 }
302 302
303 extension->SetManifestData(keys::kFileBrowserHandlers, info.release()); 303 extension->SetManifestData(keys::kFileBrowserHandlers, info.release());
304 return true; 304 return true;
305 } 305 }
306 306
307 const std::vector<std::string> FileBrowserHandlerParser::Keys() const { 307 const std::vector<std::string> FileBrowserHandlerParser::Keys() const {
308 return SingleKey(keys::kFileBrowserHandlers); 308 return SingleKey(keys::kFileBrowserHandlers);
309 } 309 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698