[WebProfilerBundle] Wrapping exception js in Sfjs check and also loading base_js Sfjs if needed #41346
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.
This bug was introduced in #41168.
Best viewed with: https://github.com/symfony/symfony/pull/41346/files?w=1 - we could also remove the new indentation in
exception.js.In that PR, we innocently don't reload
Sfjsif it doesn't exist. However, on an error page, that template ALSO adds anSfjs, and thatSfjsis smaller - containing only a subset of theSfjsfunctions. This is tricky, but this PR fixes it.Here are the various situations:
I hit an exception page. The
Sfjsfromexception.jsis loaded first. This adds the smallerSfjs. Then thebase_js.html.twigversion is hit. BecauseSfjsis missing theloadToolbar()method, that code DOES run again to reinitialize it.I am on a normal page, then travel to an exception page with Turbo. In this case, the original
Sfjsfrombase_js.html.twigwas processed. Then, on the exception page, theSfjsfromexception.jsis ignored, as is the 2nd execution ofbase_js.html.twig.Overall, the JS could use some work for supporting things like Turbo (e.g.
DOMContentLoadeddoesn't work with Turbo, so the exception page JS is broken). But I wanted to focus on fixing the bug in this PR.As a reminder, #41168 (avoiding overriding
Sfjs) was done to help with the AJAX toolbar and Turbo - it's explained in point (1) on #41168.Cheers!