diff -u b/core/core.services.yml b/core/core.services.yml --- b/core/core.services.yml +++ b/core/core.services.yml @@ -631,6 +631,7 @@ class: Drupal\Core\Asset\AssetDumper asset.js.collection_renderer: class: Drupal\Core\Asset\JsCollectionRenderer + arguments: [ '@state' ] asset.js.collection_optimizer: class: Drupal\Core\Asset\JsCollectionOptimizer arguments: [ '@asset.js.collection_grouper', '@asset.js.optimizer', '@asset.js.dumper', '@state' ] diff -u b/core/includes/install.core.inc b/core/includes/install.core.inc --- b/core/includes/install.core.inc +++ b/core/includes/install.core.inc @@ -452,8 +452,10 @@ CoreServiceProvider::registerUuid($container); // Register the CSS and JavaScript asset collection renderers. - $container->register('asset.css.collection_renderer', 'Drupal\Core\Asset\CssCollectionRenderer'); - $container->register('asset.js.collection_renderer', 'Drupal\Core\Asset\JsCollectionRenderer'); + $container->register('asset.css.collection_renderer', 'Drupal\Core\Asset\CssCollectionRenderer') + ->addArgument(new Reference('state')); + $container->register('asset.js.collection_renderer', 'Drupal\Core\Asset\JsCollectionRenderer') + ->addArgument(new Reference('state')); } // Set the request in the kernel to the new created Request above diff -u b/core/lib/Drupal/Core/Asset/JsCollectionRenderer.php b/core/lib/Drupal/Core/Asset/JsCollectionRenderer.php --- b/core/lib/Drupal/Core/Asset/JsCollectionRenderer.php +++ b/core/lib/Drupal/Core/Asset/JsCollectionRenderer.php @@ -7,6 +7,7 @@ namespace Drupal\Core\Asset; use Drupal\Core\Asset\AssetCollectionRendererInterface; +use Drupal\Core\KeyValueStore\KeyValueStoreInterface; /** * Renders JavaScript assets. @@ -14,6 +15,23 @@ class JsCollectionRenderer implements AssetCollectionRendererInterface { /** + * The state key/value store. + * + * @var \Drupal\Core\KeyValueStore\KeyValueStoreInterface + */ + protected $state; + + /** + * Constructs a CssCollectionRenderer. + * + * @param \Drupal\Core\KeyValueStore\KeyValueStoreInterface + * The state key/value store. + */ + public function __construct(KeyValueStoreInterface $state) { + $this->state = $state; + } + + /** * {@inheritdoc} */ public function render(array $js_assets) { @@ -25,7 +43,7 @@ // URL changed. Files that should not be cached (see drupal_add_js()) // get REQUEST_TIME as query-string instead, to enforce reload on every // page request. - $default_query_string = \Drupal::state()->get('system.css_js_query_string') ?: '0'; + $default_query_string = $this->state->get('system.css_js_query_string') ?: '0'; // For inline JavaScript to validate as XHTML, all JavaScript containing // XHTML needs to be wrapped in CDATA. To make that backwards compatible diff -u b/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php b/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php --- b/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php +++ b/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php @@ -25,14 +25,6 @@ } -if (!function_exists('variable_get')) { - - function variable_get($variable, $default) { - return $default; - } - -} - }