From d013bea7eac57c26b259e2b1360d802440c2af12 Mon Sep 17 00:00:00 2001 From: Alex Pott <alex.a.pott@googlemail.com> Date: Wed, 5 Feb 2025 13:04:18 +0000 Subject: [PATCH 1/2] Issue #3504386 by plopesc, catch: Use a placeholder for the navigation toolbar --- core/modules/navigation/src/NavigationRenderer.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/modules/navigation/src/NavigationRenderer.php b/core/modules/navigation/src/NavigationRenderer.php index 8e29298092d6..8f083f7acbe4 100644 --- a/core/modules/navigation/src/NavigationRenderer.php +++ b/core/modules/navigation/src/NavigationRenderer.php @@ -109,7 +109,8 @@ public function buildNavigation(array &$page_top): void { 'keys' => ['navigation', 'navigation'], 'max-age' => CacheBackendInterface::CACHE_PERMANENT, ], - '#pre_render' => ['navigation.renderer:doBuildNavigation'], + '#lazy_builder' => ['navigation.renderer:doBuildNavigation', []], + '#create_placeholder' => TRUE, ]; } @@ -117,7 +118,8 @@ public function buildNavigation(array &$page_top): void { * Pre-render callback for ::buildNavigation. */ #[TrustedCallback] - public function doBuildNavigation($build): array { + public function doBuildNavigation(): array { + $build = []; $logo_settings = $this->configFactory->get('navigation.settings'); $logo_provider = $logo_settings->get('logo.provider'); -- GitLab From ed62aabc9e6fca549b728c03544802fac969e759 Mon Sep 17 00:00:00 2001 From: catch <6915-catch@users.noreply.drupalcode.org> Date: Fri, 7 Feb 2025 16:33:20 +0000 Subject: [PATCH 2/2] Issue #3505154 by kristiaanvandeneynde, amateescu: NavigationRenderer manually adds required cache tags --- core/modules/navigation/src/NavigationRenderer.php | 1 - 1 file changed, 1 deletion(-) diff --git a/core/modules/navigation/src/NavigationRenderer.php b/core/modules/navigation/src/NavigationRenderer.php index 8f083f7acbe4..7e5813f03cdc 100644 --- a/core/modules/navigation/src/NavigationRenderer.php +++ b/core/modules/navigation/src/NavigationRenderer.php @@ -132,7 +132,6 @@ public function doBuildNavigation(): array { if ($storage) { foreach ($storage->getSections() as $delta => $section) { $build[$delta] = $section->toRenderArray([]); - $build[$delta]['#cache']['contexts'] = ['user.permissions', 'theme', 'languages:language_interface']; } } // The render array is built based on decisions made by SectionStorage -- GitLab