Steps to reproduce:
- create a page with an extension tag for which VisualEditor does not have special logic, and which is self-closing(e.g. <templatestyles src="Foo" />)
- edit the page in VE
- click on the extension tag (<> icon) then the Edit button
When the syntax is <templatestyles src="Foo"></templatestyles>, VE offers a generic editing interface where the content and the src parameter can be changed. When the syntax is <templatestyles src="Foo" />, there is no edit box for the content (arguably reasonable behavior), no edit box for the src parameter and the whole interface looks broken, with buttons overlapping the text. Clicking on Done deletes the extension tag. There is also a bunch of extensions (suppressed into notices because they are caught by some kind of generic promise error handler, I think) like
jQuery.Deferred exception: Cannot read property 'slice' of null TypeError: Cannot read property 'slice' of null jQuery.Deferred exception: Cannot read property 'always' of undefined TypeError: Cannot read property 'always' of undefined
Note also that with non-self-closing style the extension tag is rendered in VE as its parsed output (something like The page Foo has no content in this case), while the self-closing style tag is rendered as an <> icon.