Problem/Motivation
- Install Standard and Settings Tray.
- Toggle into editing mode on the frontpage.
- Click the branding block.
- In the sidebar, add a slogan that is only
<em>Wearing the inside out
and save.
- Settings Tray disappears!
(And the toolbar tray is also broken as a result.)
- Go to
/admin/config/system/site-information
. Change the slogan to
<em>Wearing the inside out</em>
and save. - Go back to the frontpage and confirm that Settings Tray works again.
Changing the site name or a block title does not seem to result in the same bug, presumably because those are escaped by default rather than XSS-filtered.
This bug also seems to affect Contextual Links (which also makes Quick Edit unavailable) and the secondary toolbar tray (the top level still works). The usability impact is lower for those modules; with Settings Tray, you can immediately lock yourself out of editing something just because you made a typo, and have to discover a different path to fix it. I'm not sure if this is a single bug in (e.g.) Contextual Links that is affecting the JS for both the Toolbar and Settings Tray, or if it is a separate issue for each module.
However, in general, this could be very difficult to debug, especially if you don't already know that these modules are sensitive to broken HTML, because broken HTML could come from a lot of places (theme templates, Views UI, various configurable things, etc.) So filing as major based on that.
Proposed resolution
One partial fix might be #2195891: Clean faulty HTML in all administrative strings, which should help at least with things like the site slogan that are XSS-filtered but not escaped or normalized. However, we should also look into whether it's possible to make Settings Tray and Contextual Links more robust.
Remaining tasks
See if there are any partial duplicates of this issue.
User interface changes
TBD
API changes
TBD
Data model changes
N/A
Comment | File | Size | Author |
---|---|---|---|
#14 | js-errors-broken-settings-tray.png | 300.9 KB | klara binon |
#13 | em-everywhere.png | 111.13 KB | klara binon |
#12 | top-menu-second-tray-not affected.png | 45.76 KB | klara binon |
#4 | unclosed_tag_outside_in_disappears.png | 44.07 KB | xjm |
#4 | adding_unclosed_tag.png | 33.93 KB | xjm |
Comments
Comment #3
xjmCrediting alexpott since he discovered this.
Comment #4
xjmComment #5
xjmComment #6
xjmI confirmed Outside In is still affected after #2786459: "Offcanvas" tray should be using the existing dialog system.
Comment #7
Wim LeersThis reminds me of #2551373: contextual.js and quickedit.js should fail gracefully, with useful error messages, when Twig templates forget to print attributes and #2551263: Deleting entity/field models when markup is removed can result in JS error. Maybe they're related.
Comment #10
klara binon CreditAttribution: klara binon commentedI am working on triaging this issue at Vienna 2017, following the instructions in #2474049: [meta] Major issue triage. @fgm is helping as my mentor.
Comment #11
michaellenahan CreditAttribution: michaellenahan at erdfisch commentedThis needs to be tested against 8.5.x-dev
Comment #12
klara binon CreditAttribution: klara binon commentedI was able to partially reproduce this issue on the latest 8.5.x-dev with Aquia dev desktop
The steps used were
<em>Wearing the inside out
and save.
/admin/config/system/site-information
. Change the slogan to<em>Wearing the inside out</em>
and save.Comment #13
klara binon CreditAttribution: klara binon commentedOn inspecting the problem I found that due to broken javascript, the whole html after the broken (and repaired) slogan, gets filled with
js errors:
No longer working on this issue.
Comment #14
klara binon CreditAttribution: klara binon commentedComment #15
fgmComment #24
larowlanThings I learned, settings tray is still a module
The onus should be on settings tray, or the form itself to validate the HTML, not much contextual can do here.
Comment #26
xjmMoving to the correct queue.
Comment #27
xjm