| Index: chrome/browser/extensions/external_provider_impl.cc
|
| diff --git a/chrome/browser/extensions/external_provider_impl.cc b/chrome/browser/extensions/external_provider_impl.cc
|
| index c3a50886c1f12d208199d319a39e1147fa86d53a..fe47198905b3f567194be89fe955619d85860b40 100644
|
| --- a/chrome/browser/extensions/external_provider_impl.cc
|
| +++ b/chrome/browser/extensions/external_provider_impl.cc
|
| @@ -12,7 +12,7 @@
|
| #include "base/command_line.h"
|
| #include "base/files/file_path.h"
|
| #include "base/logging.h"
|
| -#include "base/memory/linked_ptr.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/metrics/field_trial.h"
|
| #include "base/stl_util.h"
|
| #include "base/strings/string_util.h"
|
| @@ -530,15 +530,9 @@ void ExternalProviderImpl::CreateExternalProviders(
|
|
|
| // Policies are mandatory so they can't be skipped with command line flag.
|
| if (external_loader.get()) {
|
| - provider_list->push_back(
|
| - linked_ptr<ExternalProviderInterface>(
|
| - new ExternalProviderImpl(
|
| - service,
|
| - external_loader,
|
| - profile,
|
| - crx_location,
|
| - Manifest::EXTERNAL_POLICY_DOWNLOAD,
|
| - Extension::NO_FLAGS)));
|
| + provider_list->push_back(base::MakeUnique<ExternalProviderImpl>(
|
| + service, external_loader, profile, crx_location,
|
| + Manifest::EXTERNAL_POLICY_DOWNLOAD, Extension::NO_FLAGS));
|
| }
|
|
|
| // Load the KioskAppExternalProvider when running in kiosk mode.
|
| @@ -565,8 +559,7 @@ void ExternalProviderImpl::CreateExternalProviders(
|
| location, Manifest::INVALID_LOCATION, Extension::NO_FLAGS));
|
| kiosk_app_provider->set_auto_acknowledge(true);
|
| kiosk_app_provider->set_install_immediately(true);
|
| - provider_list->push_back(
|
| - linked_ptr<ExternalProviderInterface>(kiosk_app_provider.release()));
|
| + provider_list->push_back(std::move(kiosk_app_provider));
|
| }
|
|
|
| // Kiosk secondary app external provider.
|
| @@ -578,8 +571,7 @@ void ExternalProviderImpl::CreateExternalProviders(
|
| Manifest::EXTERNAL_PREF_DOWNLOAD, Extension::NO_FLAGS));
|
| secondary_kiosk_app_provider->set_auto_acknowledge(true);
|
| secondary_kiosk_app_provider->set_install_immediately(true);
|
| - provider_list->push_back(linked_ptr<ExternalProviderInterface>(
|
| - secondary_kiosk_app_provider.release()));
|
| + provider_list->push_back(std::move(secondary_kiosk_app_provider));
|
| }
|
| #endif
|
| return;
|
| @@ -587,13 +579,9 @@ void ExternalProviderImpl::CreateExternalProviders(
|
|
|
| // Extensions provided by recommended policies.
|
| if (external_recommended_loader.get()) {
|
| - provider_list->push_back(linked_ptr<ExternalProviderInterface>(
|
| - new ExternalProviderImpl(service,
|
| - external_recommended_loader,
|
| - profile,
|
| - crx_location,
|
| - Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| - Extension::NO_FLAGS)));
|
| + provider_list->push_back(base::MakeUnique<ExternalProviderImpl>(
|
| + service, external_recommended_loader, profile, crx_location,
|
| + Manifest::EXTERNAL_PREF_DOWNLOAD, Extension::NO_FLAGS));
|
| }
|
|
|
| // In tests don't install extensions from default external sources.
|
| @@ -627,98 +615,66 @@ void ExternalProviderImpl::CreateExternalProviders(
|
| profile->IsNewProfile()
|
| ? ExternalPrefLoader::DELAY_LOAD_UNTIL_PRIORITY_SYNC
|
| : ExternalPrefLoader::NONE;
|
| - provider_list->push_back(
|
| - linked_ptr<ExternalProviderInterface>(new ExternalProviderImpl(
|
| - service, new ExternalPrefLoader(external_apps_path_id,
|
| - pref_load_flags, profile),
|
| - profile, Manifest::EXTERNAL_PREF, Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| - bundled_extension_creation_flags)));
|
| + provider_list->push_back(base::MakeUnique<ExternalProviderImpl>(
|
| + service,
|
| + new ExternalPrefLoader(external_apps_path_id, pref_load_flags, profile),
|
| + profile, Manifest::EXTERNAL_PREF, Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| + bundled_extension_creation_flags));
|
|
|
| // OEM default apps.
|
| int oem_extension_creation_flags =
|
| bundled_extension_creation_flags | Extension::WAS_INSTALLED_BY_OEM;
|
| chromeos::ServicesCustomizationDocument* customization =
|
| chromeos::ServicesCustomizationDocument::GetInstance();
|
| - provider_list->push_back(linked_ptr<ExternalProviderInterface>(
|
| - new ExternalProviderImpl(service,
|
| - customization->CreateExternalLoader(profile),
|
| - profile,
|
| - Manifest::EXTERNAL_PREF,
|
| - Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| - oem_extension_creation_flags)));
|
| + provider_list->push_back(base::MakeUnique<ExternalProviderImpl>(
|
| + service, customization->CreateExternalLoader(profile), profile,
|
| + Manifest::EXTERNAL_PREF, Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| + oem_extension_creation_flags));
|
| }
|
| #elif defined(OS_LINUX)
|
| if (!profile->IsLegacySupervised()) {
|
| - provider_list->push_back(
|
| - linked_ptr<ExternalProviderInterface>(
|
| - new ExternalProviderImpl(
|
| - service,
|
| - new ExternalPrefLoader(
|
| - chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS,
|
| - ExternalPrefLoader::NONE,
|
| - NULL),
|
| - profile,
|
| - Manifest::EXTERNAL_PREF,
|
| - Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| - bundled_extension_creation_flags)));
|
| + provider_list->push_back(base::MakeUnique<ExternalProviderImpl>(
|
| + service,
|
| + new ExternalPrefLoader(chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS,
|
| + ExternalPrefLoader::NONE, nullptr),
|
| + profile, Manifest::EXTERNAL_PREF, Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| + bundled_extension_creation_flags));
|
| }
|
| #endif
|
|
|
| if (!profile->IsLegacySupervised()) {
|
| #if defined(OS_WIN)
|
| - provider_list->push_back(
|
| - linked_ptr<ExternalProviderInterface>(
|
| - new ExternalProviderImpl(
|
| - service,
|
| - new ExternalRegistryLoader,
|
| - profile,
|
| - Manifest::EXTERNAL_REGISTRY,
|
| - Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| - Extension::NO_FLAGS)));
|
| + provider_list->push_back(base::MakeUnique<ExternalProviderImpl>(
|
| + service, new ExternalRegistryLoader, profile,
|
| + Manifest::EXTERNAL_REGISTRY, Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| + Extension::NO_FLAGS));
|
| #else
|
| - provider_list->push_back(
|
| - linked_ptr<ExternalProviderInterface>(
|
| - new ExternalProviderImpl(
|
| - service,
|
| - new ExternalPrefLoader(chrome::DIR_EXTERNAL_EXTENSIONS,
|
| - check_admin_permissions_on_mac,
|
| - NULL),
|
| - profile,
|
| - Manifest::EXTERNAL_PREF,
|
| - Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| - bundled_extension_creation_flags)));
|
| + provider_list->push_back(base::MakeUnique<ExternalProviderImpl>(
|
| + service,
|
| + new ExternalPrefLoader(chrome::DIR_EXTERNAL_EXTENSIONS,
|
| + check_admin_permissions_on_mac, nullptr),
|
| + profile, Manifest::EXTERNAL_PREF, Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| + bundled_extension_creation_flags));
|
|
|
| // Define a per-user source of external extensions.
|
| #if defined(OS_MACOSX) || (defined(OS_LINUX) && defined(CHROMIUM_BUILD))
|
| - provider_list->push_back(
|
| - linked_ptr<ExternalProviderInterface>(
|
| - new ExternalProviderImpl(
|
| - service,
|
| - new ExternalPrefLoader(chrome::DIR_USER_EXTERNAL_EXTENSIONS,
|
| - ExternalPrefLoader::NONE,
|
| - NULL),
|
| - profile,
|
| - Manifest::EXTERNAL_PREF,
|
| - Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| - Extension::NO_FLAGS)));
|
| + provider_list->push_back(base::MakeUnique<ExternalProviderImpl>(
|
| + service, new ExternalPrefLoader(chrome::DIR_USER_EXTERNAL_EXTENSIONS,
|
| + ExternalPrefLoader::NONE, nullptr),
|
| + profile, Manifest::EXTERNAL_PREF, Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| + Extension::NO_FLAGS));
|
| #endif
|
| #endif
|
|
|
| #if !defined(OS_CHROMEOS)
|
| // The default apps are installed as INTERNAL but use the external
|
| // extension installer codeflow.
|
| - provider_list->push_back(
|
| - linked_ptr<ExternalProviderInterface>(
|
| - new default_apps::Provider(
|
| - profile,
|
| - service,
|
| - new ExternalPrefLoader(chrome::DIR_DEFAULT_APPS,
|
| - ExternalPrefLoader::NONE,
|
| - NULL),
|
| - Manifest::INTERNAL,
|
| - Manifest::INTERNAL,
|
| - Extension::FROM_WEBSTORE |
|
| - Extension::WAS_INSTALLED_BY_DEFAULT)));
|
| + provider_list->push_back(base::MakeUnique<default_apps::Provider>(
|
| + profile, service,
|
| + new ExternalPrefLoader(chrome::DIR_DEFAULT_APPS,
|
| + ExternalPrefLoader::NONE, nullptr),
|
| + Manifest::INTERNAL, Manifest::INTERNAL,
|
| + Extension::FROM_WEBSTORE | Extension::WAS_INSTALLED_BY_DEFAULT));
|
| #endif
|
|
|
| std::unique_ptr<ExternalProviderImpl> drive_migration_provider(
|
| @@ -729,19 +685,13 @@ void ExternalProviderImpl::CreateExternalProviders(
|
| profile, Manifest::EXTERNAL_PREF, Manifest::EXTERNAL_PREF_DOWNLOAD,
|
| Extension::FROM_WEBSTORE | Extension::WAS_INSTALLED_BY_DEFAULT));
|
| drive_migration_provider->set_auto_acknowledge(true);
|
| - provider_list->push_back(linked_ptr<ExternalProviderInterface>(
|
| - drive_migration_provider.release()));
|
| + provider_list->push_back(std::move(drive_migration_provider));
|
| }
|
|
|
| - provider_list->push_back(
|
| - linked_ptr<ExternalProviderInterface>(
|
| - new ExternalProviderImpl(
|
| - service,
|
| - new ExternalComponentLoader(profile),
|
| - profile,
|
| - Manifest::INVALID_LOCATION,
|
| - Manifest::EXTERNAL_COMPONENT,
|
| - Extension::FROM_WEBSTORE | Extension::WAS_INSTALLED_BY_DEFAULT)));
|
| + provider_list->push_back(base::MakeUnique<ExternalProviderImpl>(
|
| + service, new ExternalComponentLoader(profile), profile,
|
| + Manifest::INVALID_LOCATION, Manifest::EXTERNAL_COMPONENT,
|
| + Extension::FROM_WEBSTORE | Extension::WAS_INSTALLED_BY_DEFAULT));
|
| }
|
|
|
| } // namespace extensions
|
|
|