- Issue created by @ambient.impact
- 🇨🇦Canada ambient.impact Toronto
Reworked and expanded proposed solutions.
- 🇨🇦Canada ambient.impact Toronto
ambient.impact → changed the visibility of the branch 3519784-bigpipe-compatibility-routing to hidden.
- 🇨🇦Canada ambient.impact Toronto
I think I have it working by decorating
BigPipeStrategy
in the issue branch. Will let this sit for a bit so I can test it more thoroughly another day. - 🇨🇦Canada ambient.impact Toronto
Sat down and had another look at this. Turns out the initial load was still breaking the BigPipe JavaScript because doesn't handle being in the
<head>
and with thedefer
attribute well, most likely because it needs to be render blocking and kick in as early as possible.With that figured out, I tried to exclude it from the
<head>
+defer
, but that broke because it needsDrupal.ajax
, which was still being output to the<head>
with thedefer
attribute. At that point, I didn't want to mess with the dependency tree because the library handling is already kind of janky and gives me a headache.So my next thought was to make a more fundamental change: since our
<head>
+defer
is primarily for RefreshLess requests, why not just let JS be output to the footer without thedefer
attribute alterations on non-RefreshLess loads, i.e. the initial load. Shockingly, this completely fixed it and BigPipe's JS works as intended on the initial load, and doesn't interfere on subsequent RefreshLess loads. Because nothing in my life ever seems to be easy, my excitement was short lived, as it only works correctly with aggregation off: my clever solution seems to break assets and doesn't load most on an initial load if aggregation is enabled.Also note that this causes
JavascriptAlterTest
to fail, but that can probably be fixed by mocking up the current request insetUp()
with the RefreshLess header so that our request wrapper indicates this is a RefreshLess request and alterations are performed.I've created a second branch in the issue fork for these changes in case they're not usable at all:
3519784-bigpipe-compatibility-assets
. I'll get back to this at some point or someone else can finish this. -
ambient.impact →
committed 9e447a2d on 2.x
Issue #3519784: Prevent installing if BigPipe is installed. This is...
-
ambient.impact →
committed 9e447a2d on 2.x
-
ambient.impact →
committed 9e447a2d on 2.0.x
Issue #3519784: Prevent installing if BigPipe is installed. This is...
-
ambient.impact →
committed 9e447a2d on 2.0.x
-
ambient.impact →
committed 9e447a2d on cache-and-lazy-preloader
Issue #3519784: Prevent installing if BigPipe is installed. This is...
-
ambient.impact →
committed 9e447a2d on cache-and-lazy-preloader
- 🇨🇦Canada ambient.impact Toronto
Dear Drupal.org please refresh the cache for this kthx.