Index: chrome/browser/extensions/api/developer_private/developer_private_api.cc |
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc |
index d0830ecdfddec741905384de78cba7cce848cf4d..0e1bfba9221acdaecb5ceb31a27c636126ff5d3c 100644 |
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc |
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc |
@@ -153,6 +153,8 @@ void BroadcastItemStateChanged(content::BrowserContext* browser_context, |
developer::EventData event_data; |
event_data.event_type = event_type; |
event_data.item_id = item_id; |
+ event_data.info = |
+ ExtensionInfoGenerator(browser_context).CreateExtensionInfo(item_id); |
scoped_ptr<base::ListValue> args(new base::ListValue()); |
args->Append(event_data.ToValue().release()); |
@@ -318,13 +320,23 @@ void DeveloperPrivateEventRouter::OnErrorAdded(const ExtensionError* error) { |
// We don't want to handle errors thrown by extensions subscribed to these |
// events (currently only the Apps Developer Tool), because doing so risks |
// entering a loop. |
- if (extension_ids_.find(error->extension_id()) != extension_ids_.end()) |
+ if (extension_ids_.count(error->extension_id())) |
return; |
BroadcastItemStateChanged( |
profile_, developer::EVENT_TYPE_ERROR_ADDED, error->extension_id()); |
} |
+void DeveloperPrivateEventRouter::OnErrorsRemoved( |
+ const std::set<std::string>& extension_ids) { |
+ for (const std::string& id : extension_ids) { |
+ if (!extension_ids_.count(id)) { |
Dan Beam
2015/04/22 21:02:37
extension_ids vs extension_ids_ is pretty dubious
Devlin
2015/04/22 23:17:31
Fair, done.
|
+ BroadcastItemStateChanged( |
+ profile_, developer::EVENT_TYPE_ERRORS_REMOVED, id); |
+ } |
+ } |
+} |
+ |
void DeveloperPrivateAPI::SetLastUnpackedDirectory(const base::FilePath& path) { |
last_unpacked_directory_ = path; |
} |
@@ -416,26 +428,13 @@ DeveloperPrivateGetExtensionInfoFunction::Run() { |
developer::GetExtensionInfo::Params::Create(*args_)); |
EXTENSION_FUNCTION_VALIDATE(params); |
- ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context()); |
- developer::ExtensionState state = developer::EXTENSION_STATE_ENABLED; |
- const Extension* extension = |
- registry->enabled_extensions().GetByID(params->id); |
- if (!extension && |
- (extension = registry->disabled_extensions().GetByID(params->id)) != |
- nullptr) { |
- state = developer::EXTENSION_STATE_DISABLED; |
- } else if (!extension && |
- (extension = |
- registry->terminated_extensions().GetByID(params->id)) != |
- nullptr) { |
- state = developer::EXTENSION_STATE_TERMINATED; |
- } |
+ scoped_ptr<developer::ExtensionInfo> info = |
+ ExtensionInfoGenerator(browser_context()).CreateExtensionInfo(params->id); |
- if (!extension) |
+ if (!info) |
return RespondNow(Error(kNoSuchExtensionError)); |
- return RespondNow(OneArgument(ExtensionInfoGenerator(browser_context()). |
- CreateExtensionInfo(*extension, state)->ToValue().release())); |
+ return RespondNow(OneArgument(info->ToValue().release())); |
} |
DeveloperPrivateGetItemsInfoFunction::DeveloperPrivateGetItemsInfoFunction() {} |