Chromium Code Reviews| Index: chrome/browser/extensions/chrome_content_verifier_delegate.cc |
| diff --git a/chrome/browser/extensions/chrome_content_verifier_delegate.cc b/chrome/browser/extensions/chrome_content_verifier_delegate.cc |
| index 8dd2362599bc6fece91d8ca177d0f0907184ec5d..dc3903f18c62be1524f5048cda9a01f21da057de 100644 |
| --- a/chrome/browser/extensions/chrome_content_verifier_delegate.cc |
| +++ b/chrome/browser/extensions/chrome_content_verifier_delegate.cc |
| @@ -21,8 +21,10 @@ |
| #include "base/version.h" |
| #include "build/build_config.h" |
| #include "chrome/browser/extensions/extension_service.h" |
| +#include "chrome/browser/extensions/policy_extension_reinstaller.h" |
| #include "chrome/common/chrome_switches.h" |
| #include "chrome/common/extensions/extension_constants.h" |
| +#include "content/public/browser/browser_thread.h" |
| #include "extensions/browser/extension_prefs.h" |
| #include "extensions/browser/extension_registry.h" |
| #include "extensions/browser/extension_system.h" |
| @@ -45,32 +47,6 @@ namespace { |
| const char kContentVerificationExperimentName[] = |
| "ExtensionContentVerification"; |
| -const net::BackoffEntry::Policy kPolicyReinstallBackoffPolicy = { |
| - // num_errors_to_ignore |
| - 1, |
| - |
| - // initial_delay_ms (note that we set 'always_use_initial_delay' to false |
| - // below) |
| - 100, |
| - |
| - // multiply_factor |
| - 2, |
| - |
| - // jitter_factor |
| - 0.1, |
| - |
| - // maximum_backoff_ms (30 minutes) |
| - 1000 * 60 * 30, |
| - |
| - // entry_lifetime_ms (6 hours) |
| - 1000 * 60 * 60 * 6, |
| - |
| - // always_use_initial_delay |
| - false, |
| -}; |
| - |
| -base::Callback<void(base::TimeDelta delay)>* g_reinstall_action_for_test = |
| - nullptr; |
| } // namespace |
| @@ -135,7 +111,10 @@ ContentVerifierDelegate::Mode ChromeContentVerifierDelegate::GetDefaultMode() { |
| ChromeContentVerifierDelegate::ChromeContentVerifierDelegate( |
| content::BrowserContext* context) |
| - : context_(context), default_mode_(GetDefaultMode()) {} |
| + : context_(context), |
| + default_mode_(GetDefaultMode()), |
| + policy_extension_reinstaller_( |
| + base::MakeUnique<PolicyExtensionReinstaller>(context_)) {} |
| ChromeContentVerifierDelegate::~ChromeContentVerifierDelegate() { |
| } |
| @@ -216,28 +195,8 @@ void ChromeContentVerifierDelegate::VerifyFailed( |
| << extension->path().value(); |
| pending_manager->ExpectPolicyReinstallForCorruption(extension_id); |
| service->DisableExtension(extension_id, Extension::DISABLE_CORRUPTED); |
| - |
| - net::BackoffEntry* backoff_entry = nullptr; |
| - auto iter = policy_reinstall_backoff_.find(extension_id); |
| - if (iter != policy_reinstall_backoff_.end()) { |
| - backoff_entry = iter->second.get(); |
| - } else { |
| - auto new_backoff_entry = |
| - base::MakeUnique<net::BackoffEntry>(&kPolicyReinstallBackoffPolicy); |
| - backoff_entry = new_backoff_entry.get(); |
| - policy_reinstall_backoff_[extension_id] = std::move(new_backoff_entry); |
| - } |
| - backoff_entry->InformOfRequest(false); |
| - |
| - base::TimeDelta reinstall_delay = backoff_entry->GetTimeUntilRelease(); |
| - if (g_reinstall_action_for_test) { |
| - g_reinstall_action_for_test->Run(reinstall_delay); |
| - } else { |
| - base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
| - FROM_HERE, base::Bind(&ExtensionService::CheckForExternalUpdates, |
| - service->AsWeakPtr()), |
| - reinstall_delay); |
| - } |
| + // Attempt to reinstall. |
| + policy_extension_reinstaller_->NotifyExtensionDisabledDueToCorruption(); |
| return; |
| } |
| DLOG(WARNING) << "Disabling extension " << extension_id << " ('" |
| @@ -256,10 +215,8 @@ void ChromeContentVerifierDelegate::VerifyFailed( |
| } |
| } |
| -// static |
| -void ChromeContentVerifierDelegate::set_policy_reinstall_action_for_test( |
| - base::Callback<void(base::TimeDelta delay)>* action) { |
| - g_reinstall_action_for_test = action; |
| +void ChromeContentVerifierDelegate::Shutdown() { |
| + policy_extension_reinstaller_.reset(); |
|
Devlin
2017/04/01 03:00:53
Document why this is important
lazyboy
2017/04/03 18:13:04
Done.
|
| } |
| } // namespace extensions |