Problem/Motivation
If there are slow placeholdered blocks then it can take a significant amount of time until the top bar shows up. In my project, there are 8 or more blocks (menus, local tasks and actions, breadcrumb, content blocks) that are in the bigpipe pipeline before that.
I can't yet fully reproduce the behavior I'm seeing on one projects where the main navigation blocks is really slow, way slower than I'd expect, but it could be for whatever reason.
Steps to reproduce
Proposed resolution
As a quickfix, use the denylist feature to ensure that the top bar is always rendered with the initial response but still use a lazy builder.
As an alternative option, we could use a bigpipe placeholder to reserve the top space , this could be a follow-up. One challenge with that is that the top bar isn't displayed on every page.
Remaining tasks
User interface changes
Introduced terminology
API changes
Data model changes
Release notes snippet
Issue fork drupal-3570693
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
- 3570693-do-not-render-11.x
changes, plain diff MR !14851
- 3570693-do-not-render
changes, plain diff MR !14831 /
changes, plain diff MR !14571
Comments
Comment #3
berdirComment #4
berdirComment #5
berdirComment #6
smustgrave commentedChange LGTM but needs a rebase for the performance.
Funny enough I noticed today the drastic shift.
Comment #7
berdirRebased.
Comment #8
smustgrave commentedLGTM
Comment #11
catchCommitted/pushed to main and 11.x, thanks!
Comment #16
catchAt least one more test needs to be updated.
Comment #18
berdirUpdated the test and reopened the MR.
Comment #19
godotislateChanges are the same as before, except with the additional changes to
core/profiles/demo_umami/tests/src/FunctionalJavascript/AssetAggregationAcrossPagesTest.php, and tests are all green. lgtmComment #21
catchCommitted/pushed to main and 11.x, thanks!
Ran into merge conflicts on 11.x, probably due to deprecation removals - went ahead and updated the test numbers locally prior to to commit on 11.x
Comment #26
catchSeeing fails in CI in 11.x that I can't reproduce locally, rather than keeping hotfixing let's do an 11.x backport MR here. Left the main commit though since that seems fine.
Comment #28
godotislate11.x MR https://git.drupalcode.org/project/drupal/-/merge_requests/14851
I think there was a merge conflict previously bc there's a missing commit from #3443571: Mobile version of Navigation should have focus trap to 11.x.
Since the MR diff is essentially identical to this commit on main https://git.drupalcode.org/project/drupal/-/commit/f89970669b83547059cea..., putting this into RTBC.
Comment #30
catchCommitted/pushed to 11.x, thanks!
Also opened #3574944: Allow placeholders to only be served by non-js big pipe