diff --git a/core/lib/Drupal/Core/Extension/ProfileExtensionList.php b/core/lib/Drupal/Core/Extension/ProfileExtensionList.php index b2824f8f5a..c37ca50902 100644 --- a/core/lib/Drupal/Core/Extension/ProfileExtensionList.php +++ b/core/lib/Drupal/Core/Extension/ProfileExtensionList.php @@ -20,6 +20,7 @@ class ProfileExtensionList extends ExtensionList { 'themes' => ['stark'], 'hidden' => FALSE, 'base profile' => '', + 'exclude' => [], ]; /** @@ -144,8 +145,11 @@ protected function doList() { // Add the current profile as a child of the ancestor. $ancestor->children[] = $profile_name; - $info['install'] = array_merge($info['install'], $ancestor->info['install']); - $info['themes'] = array_merge($info['themes'], $ancestor->info['themes']); + + // Inherit all of the ancestor's modules and themes except for the ones + // in the 'exclude' list. + $info['install'] = array_diff(array_merge($info['install'], $ancestor->info['install']), $info['exclude']); + $info['themes'] = array_diff(array_merge($info['themes'], $ancestor->info['themes']), $info['exclude']); } $info['install'] = array_unique($info['install']); $info['themes'] = array_unique($info['themes']);