Index: chrome/browser/profiles/profile_manager.cc |
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc |
index 1eceba98853543353e672a8d1e1245fdb9160bc2..2def7686de60bb8d2efaf603b384f811fc75f5d8 100644 |
--- a/chrome/browser/profiles/profile_manager.cc |
+++ b/chrome/browser/profiles/profile_manager.cc |
@@ -993,6 +993,7 @@ void ProfileManager::DoFinalInit(Profile* profile, bool go_off_the_record) { |
void ProfileManager::DoFinalInitForServices(Profile* profile, |
bool go_off_the_record) { |
#if defined(ENABLE_EXTENSIONS) |
+ ProfileInfoCache& cache = GetProfileInfoCache(); |
extensions::ExtensionSystem::Get(profile)->InitForRegularProfile( |
!go_off_the_record); |
// During tests, when |profile| is an instance of TestingProfile, |
@@ -1001,6 +1002,16 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, |
extensions::ExtensionSystem::Get(profile)->extension_service()-> |
RegisterContentSettings(profile->GetHostContentSettingsMap()); |
} |
+ // Set the block extensions bit on the ExtensionService. There likely are no |
+ // blockable extensions to block. |
+ size_t profile_index = cache.GetIndexOfProfileWithPath(profile->GetPath()); |
+ if (profile_index != std::string::npos && |
+ cache.ProfileIsSigninRequiredAtIndex(profile_index)) { |
+ extensions::ExtensionSystem::Get(profile) |
+ ->extension_service() |
+ ->BlockAllExtensions(); |
+ } |
+ |
#endif |
#if defined(ENABLE_MANAGED_USERS) && !defined(OS_ANDROID) |
// Initialization needs to happen after extension system initialization (for |