Issue #953034: Add render visibility resolver and pre-computed region visibility
Problem: Templates like {% if page.sidebar %} trigger full rendering of regions just to check truthiness, defeating BigPipe and Dynamic Page Cache.
Solution:
- Add RenderVisibilityResolver service that evaluates #access_callback without triggering #lazy_builder, #pre_render, or #post_render
- Add |render_access Twig filter for lightweight visibility checks
- Pre-compute region visibility in ThemePreprocess::preprocessPage() so standard Twig truthiness checks work correctly
- Build on #360 patch (|stripped_length filter) as baseline
Files changed:
- NEW: core/lib/Drupal/Core/Render/RenderVisibilityResolver.php
- MODIFIED: core/lib/Drupal/Core/Template/TwigExtension.php
- MODIFIED: core/lib/Drupal/Core/Theme/ThemePreprocess.php
- MODIFIED: core/core.services.yml
- NEW: core/tests/tests/Drupal/Tests/Core/Render/RenderVisibilityResolverTest.php
Closes #953034