The issue described in
ICE-10978 is caused by browsers and jQuery not allowing to dynamically change the type attribute of the input element. This wasn't an issue in the past, on most browsers, but it seems like recent browser updates turned this into an issue. Because this is illegal, an error occurs and the init script is aborted before the component is fully set up in the client. This was previously avoided by simply wrapping the statements that modify the type attribute of the input field (from 'text' to 'password' and vice versa, for supporting inField labels) inside try-catch clauses. This way, the error didn't occur and somehow the change in the type attribute still succeeded. In order to prevent issues with future updates, caused by the browsers being more strict about not changing the type attribute on input elements, a more robust way of changing the value of this attribute would be to replace the previous input element with a copy of it that has its type attribute changed as desired. This will require major changes in the client-side code of ace:textEntry, since it will be necessary to re-apply all event listeners and behaviours to the new input elements that replace the old ones when a change in the type attribute is required.