Discovered in #2870194: Ensure that process-isolated tests can use Symfony's PHPunit bridge to catch usages of deprecated code
Problem/Motivation
We should not be using \Drupal\Core\Config\ExtensionInstallStorage
without a profile but we do in the very early installer.
This is happening in super early installer before a profile is chosen when we render the profile select page. To do this we need the theme.manager -> theme.negiotator -> access_check.theme -> theme_handler -> config.factory -> config.typed -> config.storage.schema.
Proposed resolution
Swap out the storage in the early installer for the NullStorage. This is fine because we don't write config at this point. We only write config once we have database settings and we're installing the system module and at this point we have a full regular container. We rebuild the container in drupal_install_system()
to ensure we have a regular container before installing the base system configuration.
The testing the fact we're not using the deprecated code path is not possible until #2870194: Ensure that process-isolated tests can use Symfony's PHPunit bridge to catch usages of deprecated code lands.
Remaining tasks
User interface changes
None
API changes
None