Chromium Code Reviews| Index: chrome/browser/extensions/pending_extension_manager.cc |
| diff --git a/chrome/browser/extensions/pending_extension_manager.cc b/chrome/browser/extensions/pending_extension_manager.cc |
| index ee7759b10229fd1c1c3b6b28818bcef4deae38ab..76d4df73e097d5f4f5109580d20dfa298761f221 100644 |
| --- a/chrome/browser/extensions/pending_extension_manager.cc |
| +++ b/chrome/browser/extensions/pending_extension_manager.cc |
| @@ -7,6 +7,8 @@ |
| #include <algorithm> |
| #include "base/logging.h" |
| +#include "base/metrics/histogram.h" |
| +#include "base/stl_util.h" |
| #include "base/version.h" |
| #include "chrome/common/extensions/extension_constants.h" |
| #include "content/public/browser/browser_thread.h" |
| @@ -53,6 +55,13 @@ const PendingExtensionInfo* PendingExtensionManager::GetById( |
| } |
| bool PendingExtensionManager::Remove(const std::string& id) { |
| + if (base::ContainsKey(expected_policy_reinstalls_, id)) { |
|
lazyboy
2016/09/02 19:21:53
Does ::Remove() always mean that the issue was "re
asargent_no_longer_on_chrome
2016/09/09 03:30:44
Yeah, I think in that case it will be resolved, be
|
| + base::TimeDelta latency = |
| + base::TimeTicks::Now() - expected_policy_reinstalls_[id]; |
| + UMA_HISTOGRAM_LONG_TIMES("Extensions.CorruptPolicyExtensionResolved", |
| + latency); |
| + expected_policy_reinstalls_.erase(id); |
| + } |
| PendingExtensionList::iterator iter; |
| for (iter = pending_extension_list_.begin(); |
| iter != pending_extension_list_.end(); |
| @@ -86,6 +95,17 @@ bool PendingExtensionManager::HasPendingExtensionFromSync() const { |
| return false; |
| } |
| +void PendingExtensionManager::ExpectPolicyReinstall(const std::string& id) { |
| + expected_policy_reinstalls_[id] = base::TimeTicks::Now(); |
| + UMA_HISTOGRAM_BOOLEAN("Extensions.CorruptPolicyExtensionDetected", true); |
| +} |
| + |
| +bool PendingExtensionManager::IsPolicyReinstallExpected( |
| + const std::string& id) const { |
| + return expected_policy_reinstalls_.find(id) != |
|
lazyboy
2016/09/02 19:21:53
nit: return base::ContainsKey(...) to be consisten
asargent_no_longer_on_chrome
2016/09/09 03:30:44
Done.
|
| + expected_policy_reinstalls_.end(); |
| +} |
| + |
| bool PendingExtensionManager::AddFromSync( |
| const std::string& id, |
| const GURL& update_url, |