Report one "Extensions.CorruptPolicyExtensionDetected" metric per extension.

Previously "CorruptPolicyExtensionDetected" was reported every time
when policy extension was corrupted even if it's already scheduled
to be reinstalled. So it might've lead to multiple
"CorruptPolicyExtensionDetected" events per one
"CorruptPolicyExtensionResolved" event.
Now when new entry is added to |expected_policy_reinstalls_| map,
one metric is reported, when removed - another, so it's more 1:1.

Change-Id: I2cb4ad2ae043f4ad01d061c8eb63614a24db0a4a
Reviewed-on: https://chromium-review.googlesource.com/c/1335604
Commit-Queue: Sergey Poromov <[email protected]>
Reviewed-by: Brian White <[email protected]>
Reviewed-by: Devlin <[email protected]>
Cr-Commit-Position: refs/heads/master@{#611231}
diff --git a/chrome/browser/extensions/pending_extension_manager.cc b/chrome/browser/extensions/pending_extension_manager.cc
index 8eafa14..eba191f 100644
--- a/chrome/browser/extensions/pending_extension_manager.cc
+++ b/chrome/browser/extensions/pending_extension_manager.cc
@@ -97,8 +97,10 @@
 
 void PendingExtensionManager::ExpectPolicyReinstallForCorruption(
     const ExtensionId& id) {
+  if (base::ContainsKey(expected_policy_reinstalls_, id))
+    return;
   expected_policy_reinstalls_[id] = base::TimeTicks::Now();
-  UMA_HISTOGRAM_BOOLEAN("Extensions.CorruptPolicyExtensionDetected", true);
+  UMA_HISTOGRAM_BOOLEAN("Extensions.CorruptPolicyExtensionDetected2", true);
 }
 
 bool PendingExtensionManager::IsPolicyReinstallForCorruptionExpected(