Chromium Code Reviews| Index: chrome/browser/extensions/api/developer_private/extension_info_generator.cc |
| diff --git a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc |
| index 4c96f9f0ed8a7e4795cc4a5fb3e0398798b4f39f..24275ac05eb6a4c8b6e5ad1b906e56f02ebbbf0f 100644 |
| --- a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc |
| +++ b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc |
| @@ -71,8 +71,7 @@ developer::ExtensionType GetExtensionType(Manifest::Type manifest_type) { |
| // Populates the common fields of an extension error. |
| template <typename ErrorType> |
| -void PopulateErrorBase(const ExtensionError& error, |
| - ErrorType* out) { |
| +void PopulateErrorBase(const ExtensionError& error, ErrorType* out) { |
| CHECK(out); |
| out->type = error.type() == ExtensionError::MANIFEST_ERROR ? |
| developer::ERROR_TYPE_MANIFEST : developer::ERROR_TYPE_RUNTIME; |
| @@ -80,10 +79,9 @@ void PopulateErrorBase(const ExtensionError& error, |
| out->from_incognito = error.from_incognito(); |
| out->source = base::UTF16ToUTF8(error.source()); |
| out->message = base::UTF16ToUTF8(error.message()); |
| + out->id = error.id(); |
| } |
| -// Given a ManifestError object, converts it into its developer_private |
| -// counterpart. |
| linked_ptr<developer::ManifestError> ConstructManifestError( |
| const ManifestError& error) { |
| linked_ptr<developer::ManifestError> result(new developer::ManifestError()); |
| @@ -96,8 +94,6 @@ linked_ptr<developer::ManifestError> ConstructManifestError( |
| return result; |
| } |
| -// Given a RuntimeError object, converts it into its developer_private |
| -// counterpart. |
| linked_ptr<developer::RuntimeError> ConstructRuntimeError( |
| const RuntimeError& error) { |
| linked_ptr<developer::RuntimeError> result(new developer::RuntimeError()); |
| @@ -363,6 +359,25 @@ ExtensionInfoGenerator::CreateExtensionInfo(const Extension& extension, |
| return info.Pass(); |
| } |
| +scoped_ptr<api::developer_private::ExtensionInfo> |
| +ExtensionInfoGenerator::CreateExtensionInfo(const std::string& id) { |
| + developer::ExtensionState state = developer::EXTENSION_STATE_ENABLED; |
| + ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context_); |
| + const Extension* extension = registry->enabled_extensions().GetByID(id); |
| + if (!extension && |
| + (extension = registry->disabled_extensions().GetByID(id)) != nullptr) { |
|
Dan Beam
2015/03/31 00:33:49
:_(
Devlin
2015/03/31 16:17:50
Why sad face? I think it actually makes sense, as
Dan Beam
2015/04/22 21:02:37
eh, it's all awkward. whatevs.
|
| + state = developer::EXTENSION_STATE_DISABLED; |
| + } else if (!extension && |
| + (extension = |
| + registry->terminated_extensions().GetByID(id)) != nullptr) { |
| + state = developer::EXTENSION_STATE_TERMINATED; |
| + } |
| + scoped_ptr<api::developer_private::ExtensionInfo> info; |
| + if (extension) |
| + info = CreateExtensionInfo(*extension, state); |
| + return info.Pass(); |
| +} |
| + |
| ExtensionInfoGenerator::ExtensionInfoList |
| ExtensionInfoGenerator::CreateExtensionsInfo(bool include_disabled, |
| bool include_terminated) { |