Issue #2872611 by alexpott: Optimise \Drupal\Core\Extension\ThemeHandler::refreshInfo() for the early installer

8.4.x
Nathaniel Catchpole 2017-04-26 10:08:19 -04:00
parent 3a6a71a991
commit 13aa53b1f2
2 changed files with 8 additions and 1 deletions

View File

@ -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();

View File

@ -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');