diff --git a/core/lib/Drupal/Core/Extension/ThemeHandler.php b/core/lib/Drupal/Core/Extension/ThemeHandler.php index 2fd75e190cab..d54ff1fa1a14 100644 --- a/core/lib/Drupal/Core/Extension/ThemeHandler.php +++ b/core/lib/Drupal/Core/Extension/ThemeHandler.php @@ -216,10 +216,16 @@ class ThemeHandler implements ThemeHandlerInterface { * {@inheritdoc} */ public function refreshInfo() { - $this->reset(); $extension_config = $this->configFactory->get('core.extension'); $installed = $extension_config->get('theme'); + // Only refresh the info if a theme has been installed. Modules are + // installed before themes by the installer and this method is called during + // module installation. + if (empty($installed) && empty($this->list)) { + return; + } + $this->reset(); // @todo Avoid re-scanning all themes by retaining the original (unaltered) // theme info somewhere. $list = $this->rebuildThemeData(); diff --git a/core/tests/Drupal/KernelTests/Core/Theme/TwigWhiteListTest.php b/core/tests/Drupal/KernelTests/Core/Theme/TwigWhiteListTest.php index f0bbb82a86e6..7af10f59461b 100644 --- a/core/tests/Drupal/KernelTests/Core/Theme/TwigWhiteListTest.php +++ b/core/tests/Drupal/KernelTests/Core/Theme/TwigWhiteListTest.php @@ -42,6 +42,7 @@ class TwigWhiteListTest extends KernelTestBase { */ protected function setUp() { parent::setUp(); + \Drupal::service('theme_handler')->install(['test_theme']); $this->installSchema('system', ['sequences']); $this->installEntitySchema('node'); $this->installEntitySchema('user');