diff -u b/core/lib/Drupal/Core/Config/ConfigInstaller.php b/core/lib/Drupal/Core/Config/ConfigInstaller.php --- b/core/lib/Drupal/Core/Config/ConfigInstaller.php +++ b/core/lib/Drupal/Core/Config/ConfigInstaller.php @@ -55,7 +55,7 @@ protected $sourceStorage; /** - * ProfileHandler + * The profile handler. * * @var \Drupal\Core\Extension\ProfileHandler */ diff -u b/core/lib/Drupal/Core/Config/InstallStorage.php b/core/lib/Drupal/Core/Config/InstallStorage.php --- b/core/lib/Drupal/Core/Config/InstallStorage.php +++ b/core/lib/Drupal/Core/Config/InstallStorage.php @@ -163,7 +163,8 @@ // @todo Remove as part of https://www.drupal.org/node/2186491 drupal_get_filename('profile', $profile_name, $extension->getPathname()); } - // Now that we can fetch the path, get dependent profiles and add the extensions + // Now that we can fetch the path, get dependent profiles and add + // the extensions. $profiles = \Drupal::service('profile_handler')->getProfiles(); foreach ($profiles as $extension) { $this->folders += $this->getComponentNames(array($extension)); diff -u b/core/lib/Drupal/Core/Extension/ProfileHandler.php b/core/lib/Drupal/Core/Extension/ProfileHandler.php --- b/core/lib/Drupal/Core/Extension/ProfileHandler.php +++ b/core/lib/Drupal/Core/Extension/ProfileHandler.php @@ -86,9 +86,11 @@ $extension->weight = $weight; $extension->origin = ''; - // See @1356276-192. Issue in System::_system_rebuild_module_data, - // The $extension->info gets changed, so we need to save the original - // parse result elsewhere so it can be used to set profile defaults. + // Pass needed defaults to info separately so + // _system_rebuild_module_data can merge it with the parsed info. + // @todo Determine why _system_rebuild_module_data needs freshly + // parsed info data and cannot use cached info. See issue: + // https://www.drupal.org/node/1356276#comment-11464109. $extension->info_defaults = $info_defaults; // Add requested profile as last one. diff -u b/core/modules/system/system.module b/core/modules/system/system.module --- b/core/modules/system/system.module +++ b/core/modules/system/system.module @@ -990,13 +990,14 @@ // Read info files for each module. foreach ($modules as $key => $module) { // Look for the info file. + // @todo Determine why we must freshly parse the info array instead of + // using any existing $module->info. See issue: + // https://www.drupal.org/node/1356276#comment-11464109. $module->info = \Drupal::service('info_parser')->parse($module->getPathname()); // Add any defaults stored in the extension (see ProfileHandler) if (!empty($module->info_defaults)) { $module->info = $module->info + $module->info_defaults; } - else { - } // Add the info file modification time, so it becomes available for // contributed modules to use for ordering module lists.