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 47e5e9383f54a7240a4a2a622bef60c65fcebef3..b7757fa8730c523f517374ae9d744aeb67f40e05 100644 |
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc |
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc |
@@ -308,13 +308,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>& removed_ids) { |
+ for (const std::string& id : removed_ids) { |
+ if (!extension_ids_.count(id)) { |
+ BroadcastItemStateChanged( |
+ profile_, developer::EVENT_TYPE_ERRORS_REMOVED, id); |
+ } |
+ } |
+} |
+ |
void DeveloperPrivateEventRouter::OnExtensionFrameRegistered( |
const std::string& extension_id, |
content::RenderFrameHost* render_frame_host) { |