| Index: chrome/browser/extensions/extension_service.cc
|
| diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
|
| index 300901795803c5c34306c5bbd69389f617c2729b..f3fbae3fb105530508e10ff7e8a99a795449c4f8 100644
|
| --- a/chrome/browser/extensions/extension_service.cc
|
| +++ b/chrome/browser/extensions/extension_service.cc
|
| @@ -61,6 +61,7 @@
|
| #include "extensions/browser/extension_prefs.h"
|
| #include "extensions/browser/extension_registry.h"
|
| #include "extensions/browser/extension_system.h"
|
| +#include "extensions/browser/install_flag.h"
|
| #include "extensions/browser/pref_names.h"
|
| #include "extensions/browser/runtime_data.h"
|
| #include "extensions/browser/update_observer.h"
|
| @@ -1577,8 +1578,7 @@ void ExtensionService::AddComponentExtension(const Extension* extension) {
|
|
|
| AddNewOrUpdatedExtension(extension,
|
| Extension::ENABLED_COMPONENT,
|
| - extensions::NOT_BLACKLISTED,
|
| - false,
|
| + extensions::kInstallFlagNone,
|
| syncer::StringOrdinal(),
|
| std::string());
|
| return;
|
| @@ -1742,10 +1742,7 @@ void ExtensionService::UpdateActiveExtensionsInCrashReporter() {
|
| void ExtensionService::OnExtensionInstalled(
|
| const Extension* extension,
|
| const syncer::StringOrdinal& page_ordinal,
|
| - bool has_requirement_errors,
|
| - extensions::BlacklistState blacklist_state,
|
| - bool is_ephemeral,
|
| - bool wait_for_idle) {
|
| + int install_flags) {
|
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
|
|
| const std::string& id = extension->id();
|
| @@ -1786,7 +1783,7 @@ void ExtensionService::OnExtensionInstalled(
|
| }
|
|
|
| // Unsupported requirements overrides the management policy.
|
| - if (has_requirement_errors) {
|
| + if (install_flags & extensions::kInstallFlagHasRequirementErrors) {
|
| initial_enable = false;
|
| extension_prefs_->AddDisableReason(
|
| id, Extension::DISABLE_UNSUPPORTED_REQUIREMENT);
|
| @@ -1799,7 +1796,7 @@ void ExtensionService::OnExtensionInstalled(
|
| extension_prefs_->ClearDisableReasons(id);
|
| }
|
|
|
| - if (blacklist_state == extensions::BLACKLISTED_MALWARE) {
|
| + if (install_flags & extensions::kInstallFlagIsBlacklistedForMalware) {
|
| // Installation of a blacklisted extension can happen from sync, policy,
|
| // etc, where to maintain consistency we need to install it, just never
|
| // load it (see AddExtension). Usually it should be the job of callers to
|
| @@ -1832,14 +1829,13 @@ void ExtensionService::OnExtensionInstalled(
|
| AcknowledgeExternalExtension(extension->id());
|
| const Extension::State initial_state =
|
| initial_enable ? Extension::ENABLED : Extension::DISABLED;
|
| - const bool blacklisted_for_malware =
|
| - blacklist_state == extensions::BLACKLISTED_MALWARE;
|
| - if (ShouldDelayExtensionUpdate(id, wait_for_idle)) {
|
| + if (ShouldDelayExtensionUpdate(
|
| + id,
|
| + !!(install_flags & extensions::kInstallFlagInstallImmediately))) {
|
| extension_prefs_->SetDelayedInstallInfo(
|
| extension,
|
| initial_state,
|
| - blacklisted_for_malware,
|
| - is_ephemeral,
|
| + install_flags,
|
| extensions::ExtensionPrefs::DELAY_REASON_WAIT_FOR_IDLE,
|
| page_ordinal,
|
| install_parameter);
|
| @@ -1859,8 +1855,7 @@ void ExtensionService::OnExtensionInstalled(
|
| extension_prefs_->SetDelayedInstallInfo(
|
| extension,
|
| initial_state,
|
| - blacklisted_for_malware,
|
| - is_ephemeral,
|
| + install_flags,
|
| extensions::ExtensionPrefs::DELAY_REASON_GC,
|
| page_ordinal,
|
| install_parameter);
|
| @@ -1870,8 +1865,7 @@ void ExtensionService::OnExtensionInstalled(
|
| extension_prefs_->SetDelayedInstallInfo(
|
| extension,
|
| initial_state,
|
| - blacklisted_for_malware,
|
| - is_ephemeral,
|
| + install_flags,
|
| extensions::ExtensionPrefs::DELAY_REASON_WAIT_FOR_IMPORTS,
|
| page_ordinal,
|
| install_parameter);
|
| @@ -1880,8 +1874,7 @@ void ExtensionService::OnExtensionInstalled(
|
| } else {
|
| AddNewOrUpdatedExtension(extension,
|
| initial_state,
|
| - blacklist_state,
|
| - is_ephemeral,
|
| + install_flags,
|
| page_ordinal,
|
| install_parameter);
|
| }
|
| @@ -1890,20 +1883,13 @@ void ExtensionService::OnExtensionInstalled(
|
| void ExtensionService::AddNewOrUpdatedExtension(
|
| const Extension* extension,
|
| Extension::State initial_state,
|
| - extensions::BlacklistState blacklist_state,
|
| - bool is_ephemeral,
|
| + int install_flags,
|
| const syncer::StringOrdinal& page_ordinal,
|
| const std::string& install_parameter) {
|
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - const bool blacklisted_for_malware =
|
| - blacklist_state == extensions::BLACKLISTED_MALWARE;
|
| bool was_ephemeral = extension_prefs_->IsEphemeralApp(extension->id());
|
| - extension_prefs_->OnExtensionInstalled(extension,
|
| - initial_state,
|
| - blacklisted_for_malware,
|
| - is_ephemeral,
|
| - page_ordinal,
|
| - install_parameter);
|
| + extension_prefs_->OnExtensionInstalled(
|
| + extension, initial_state, page_ordinal, install_flags, install_parameter);
|
| delayed_installs_.Remove(extension->id());
|
| if (InstallVerifier::NeedsVerification(*extension))
|
| system_->install_verifier()->VerifyExtension(extension->id());
|
| @@ -2343,12 +2329,12 @@ bool ExtensionService::ShouldEnableOnInstall(const Extension* extension) {
|
|
|
| bool ExtensionService::ShouldDelayExtensionUpdate(
|
| const std::string& extension_id,
|
| - bool wait_for_idle) const {
|
| + bool install_immediately) const {
|
| const char kOnUpdateAvailableEvent[] = "runtime.onUpdateAvailable";
|
|
|
| // If delayed updates are globally disabled, or just for this extension,
|
| // don't delay.
|
| - if (!install_updates_when_idle_ || !wait_for_idle)
|
| + if (!install_updates_when_idle_ || install_immediately)
|
| return false;
|
|
|
| const Extension* old = GetInstalledExtension(extension_id);
|
|
|