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/browser/chromeos/extensions/file_browser_handler.h" | 5 #include "chrome/browser/chromeos/extensions/file_browser_handler.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/string_number_conversions.h" | 8 #include "base/string_number_conversions.h" |
9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
11 #include "base/values.h" | 11 #include "base/values.h" |
12 #include "chrome/common/extensions/extension_constants.h" | 12 #include "chrome/common/extensions/extension_constants.h" |
13 #include "chrome/common/extensions/extension_manifest_constants.h" | 13 #include "chrome/common/extensions/extension_manifest_constants.h" |
| 14 #include "chrome/common/extensions/manifest.h" |
14 #include "content/public/common/url_constants.h" | 15 #include "content/public/common/url_constants.h" |
15 #include "extensions/common/error_utils.h" | 16 #include "extensions/common/error_utils.h" |
16 #include "extensions/common/url_pattern.h" | 17 #include "extensions/common/url_pattern.h" |
17 #include "googleurl/src/gurl.h" | 18 #include "googleurl/src/gurl.h" |
18 #include "googleurl/src/url_util.h" | 19 #include "googleurl/src/url_util.h" |
19 | 20 |
20 namespace keys = extension_manifest_keys; | 21 namespace keys = extension_manifest_keys; |
21 namespace errors = extension_manifest_errors; | 22 namespace errors = extension_manifest_errors; |
22 | 23 |
23 namespace { | 24 namespace { |
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 extension_id, reinterpret_cast<DictionaryValue*>(*iter), error)); | 328 extension_id, reinterpret_cast<DictionaryValue*>(*iter), error)); |
328 if (!action.get()) | 329 if (!action.get()) |
329 return false; // Failed to parse file browser action definition. | 330 return false; // Failed to parse file browser action definition. |
330 result->push_back(linked_ptr<FileBrowserHandler>(action.release())); | 331 result->push_back(linked_ptr<FileBrowserHandler>(action.release())); |
331 } | 332 } |
332 return true; | 333 return true; |
333 } | 334 } |
334 | 335 |
335 } // namespace | 336 } // namespace |
336 | 337 |
337 bool FileBrowserHandlerParser::Parse(const base::Value* value, | 338 bool FileBrowserHandlerParser::Parse(extensions::Extension* extension, |
338 extensions::Extension* extension, | |
339 string16* error) { | 339 string16* error) { |
340 const ListValue* file_browser_handlers_value = NULL; | 340 const ListValue* file_browser_handlers_value = NULL; |
341 if (!value->GetAsList(&file_browser_handlers_value)) { | 341 if (!extension->manifest()->GetList(keys::kFileBrowserHandlers, |
| 342 &file_browser_handlers_value)) { |
342 *error = ASCIIToUTF16(errors::kInvalidFileBrowserHandler); | 343 *error = ASCIIToUTF16(errors::kInvalidFileBrowserHandler); |
343 return false; | 344 return false; |
344 } | 345 } |
345 scoped_ptr<FileBrowserHandlerInfo> info(new FileBrowserHandlerInfo); | 346 scoped_ptr<FileBrowserHandlerInfo> info(new FileBrowserHandlerInfo); |
346 if (!LoadFileBrowserHandlers(extension->id(), | 347 if (!LoadFileBrowserHandlers(extension->id(), |
347 file_browser_handlers_value, | 348 file_browser_handlers_value, |
348 &info->file_browser_handlers, | 349 &info->file_browser_handlers, |
349 error)) { | 350 error)) { |
350 return false; // Failed to parse file browser actions definition. | 351 return false; // Failed to parse file browser actions definition. |
351 } | 352 } |
352 | 353 |
353 extension->SetManifestData(keys::kFileBrowserHandlers, info.release()); | 354 extension->SetManifestData(keys::kFileBrowserHandlers, info.release()); |
354 return true; | 355 return true; |
355 } | 356 } |
OLD | NEW |