Reset theme state between persistent worker requests
Problem/MotivationFrankenPHP workers reuse the kernel and container across requests. ThemeManager::getActiveTheme() retains the previous request’s theme across requests, so if you navigate from an...
View ArticleReference method of reference field switches to first available in list if...
Problem/MotivationThe reference type settings of an entity reference field are constantly changing from default to another option. The previously selected bundles for e.g. a taxonomy vocabulary...
View ArticleIndicate that grouping elements have child element errors for UX and a11y
Problem/MotivationThis is a followup for #2848507: Indicate that grouping elements have child element errors for ux and a11y. The work here builds heavily on the work there, so contributors to that...
View ArticleReset block access decisions between main requests for persistent app servers
Problem/MotivationWhen FrankenPHP worker mode reuses Drupal's container, block access decisions survive requests. The inherited access cache keys decisions by account, entity, language, and operation...
View Articlemove NodeInterface::PUBLISHED and CommentInterface::PUBLISHED/NOT_PUBLISHED...
Problem/MotivationNow that we have EntityPublishedInterface, any entity type can have a 'published' field. But the useful constants for this field's value are only on the node and comment entity...
View ArticleisFrontPage() returns a stale result after the current route changes
Problem/MotivationDrupal's PathMatcher::isFrontPage() and the AliasPathMatcher decorator each cache their result in an isCurrentFrontPage property. Neither property is reset between requests.When...
View ArticleUpgrade check throws ajax error: Missing required unique header. It should...
Upgrade check now throws this errorAn AJAX HTTP error occurred. HTTP Result Code: 400 Debugging information follows. Path: /batch?id=2665&op=do_nojs&op=do StatusText: error ResponseText:...
View ArticleChange "Extend" menu item to "Extensions"
Problem/MotivationFollow-up to #1164760: [meta] New users universally did NOT understand that you can extend DrupalFrom @dubcanada:I'm going to revive an old thread. I recently just started playing...
View ArticleRename hook_system_info_alter to hook_extension_info_alter
Problem/MotivationIt's seems odd that hook_system_info_alter has the word "system" in it. It should really have the word "extension" instead. Furthermore, it makes it sound like the hook is provided by...
View ArticlePrefetch JSON:API resource object normalizations for collections and includes
Problem/MotivationResourceObjectNormalizer::getNormalization() calls ResourceObjectNormalizationCacher::get() once per resource object.A collection of N resources with M included resources can require...
View ArticleJSON:API IncludeResolver loads included entities individually before loading...
Problem/MotivationThis is a performance enhancement. IncludeResolver::resolveIncludeTree() reads $field_item->entity for each reference item to get the referenced entity's type and ID. If the...
View ArticleSession init disable on CLI is outdated
Problem/MotivationCore for sure but also I think Symfony as well stops session init when the current SAPI is CLI. In the age of app servers this is no longer correct.Steps to reproduceRun Drupal from...
View ArticleAllow default connection to change prefixes
Problem/MotivationIf you have an app server with just one database you can't run tests because the first request will put the database prefix into the database service and consequent requests will make...
View ArticleImprove performance by only instantiating enabled fields when creating a...
Problem/MotivationInternal fields and disabled fields are instantiated before being filtered out, which is wasteful.We know whether a field is internal or enabled based on its definition and the...
View ArticleSimple decimals fail to pass validation
Problem/Motivation- Create decimal field, set precision to 10 (minimum in the UI and scale to 4 - Saving new node with value 19999.0000 succeeds (precision is 5+4 = 9). - Saving new node with value...
View ArticleUsability: Enhance form elements by providing examples
Currently, examples are provided in Drupal by including them in the #description text of a form element. Those descriptions currently range in construction from "Example: so and so", to "e.g., so and...
View ArticleUnpublished files should be in private storage
Follow up for #1776796: Provide a better UX for creating, editing & managing draft revisions.Problem/MotivationWhen access workflow is in place, the fixed public / private sorage configuration is a...
View ArticleRuntime ThemeRegistry left empty after destruct(), causing "Theme hook...
Problem/MotivationUpgrading from Drupal 11.3 to 11.4 introduces a regression where theme hooks intermittently stop resolving, producing log entries such as:[theme] Theme hook field not found. [theme]...
View ArticlePrevent the navigation sidebar being rendered via big pipe
Problem/MotivationThe navigation toolbar is very efficiently cached, but when it's not it gets rendered by big pipe. This creates jank (content layout shift) as the main page content gets pushed...
View ArticleViews string filtering is capped to 128 characters limit
Problem/MotivationWhen I perform a search from the admin content view the search field limits the input to 128 characters.I had to struggle with a rest service that was duplicating for no apparent...
View Article