Repository navigation
[6.x] Work out what an assets field preloads about its container once - #15893
Merged
jasonvarga merged 1 commit intoNov 13, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
An assets field works out the same things about its container every time one is preloaded: its title and URLs, five permission checks for the current user, and the listing columns with the user's column preferences applied.
That's once per assets field on an entry form, which is small. The asset browser is where it adds up: the actions for each row are built with their fields, one of them has an assets field, and so a folder of 50 assets does all of it 50 times over.
The container's details and the columns are now each worked out once per request, for the container and the current user, and kept in Blink.
getColumns()hands out clones of the columns it remembered, so anything changing the ones it was given doesn't change anyone else's.Numbers
The asset browser's folder requests, each in its own process, four alternating rounds of eight:
Entry forms came out within noise. Every response is byte for byte the same.
Tests
Two fields on the same container make the permission checks of one (fails without the change: 12 checks rather than 6). Two more pin what should stay true and pass before and after: each field gets column objects of its own, and what's remembered for one user isn't given to another.