| Index: chrome/browser/extensions/external_extension_provider_impl.cc
|
| diff --git a/chrome/browser/extensions/external_extension_provider_impl.cc b/chrome/browser/extensions/external_extension_provider_impl.cc
|
| index f288af0e6ea4cc77d1d0f5f5bc01ff624855c046..2a61c58a8f18319f443ec21ebeda8df71244de08 100644
|
| --- a/chrome/browser/extensions/external_extension_provider_impl.cc
|
| +++ b/chrome/browser/extensions/external_extension_provider_impl.cc
|
| @@ -222,14 +222,38 @@ void ExternalExtensionProviderImpl::CreateExternalProviders(
|
| VisitorInterface* service,
|
| Profile* profile,
|
| ProviderCollection* provider_list) {
|
| +
|
| + // On Mac OS, items in /Library/... should be written by the superuser.
|
| + // Check that all components of the path are writable by root only.
|
| + ExternalPrefExtensionLoader::Options options;
|
| +#if defined(OS_MACOSX)
|
| + options = ExternalPrefExtensionLoader::ENSURE_PATH_CONTROLLED_BY_ADMIN;
|
| +#else
|
| + options = ExternalPrefExtensionLoader::NONE;
|
| +#endif
|
| +
|
| + provider_list->push_back(
|
| + linked_ptr<ExternalExtensionProviderInterface>(
|
| + new ExternalExtensionProviderImpl(
|
| + service,
|
| + new ExternalPrefExtensionLoader(
|
| + chrome::DIR_EXTERNAL_EXTENSIONS, options),
|
| + Extension::EXTERNAL_PREF,
|
| + Extension::EXTERNAL_PREF_DOWNLOAD)));
|
| +
|
| +#if defined(OS_MACOSX)
|
| + // Support old path to external extensions file as we migrate to the
|
| + // new one. See crbug/67203.
|
| provider_list->push_back(
|
| linked_ptr<ExternalExtensionProviderInterface>(
|
| new ExternalExtensionProviderImpl(
|
| service,
|
| new ExternalPrefExtensionLoader(
|
| - chrome::DIR_EXTERNAL_EXTENSIONS),
|
| + chrome::DIR_DEPRICATED_EXTERNAL_EXTENSIONS,
|
| + ExternalPrefExtensionLoader::NONE),
|
| Extension::EXTERNAL_PREF,
|
| Extension::EXTERNAL_PREF_DOWNLOAD)));
|
| +#endif
|
|
|
| #if defined(OS_CHROMEOS)
|
| // Chrome OS specific source for OEM customization.
|
|
|