Expand HTML entities in title attribute

Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1074
This commit is contained in:
Raymond Hill 2020-05-27 06:54:11 -04:00
parent c0edebb28a
commit d3a524b9be
No known key found for this signature in database
GPG key ID: 25E1490B761470C2

View file

@ -69,7 +69,7 @@ const safeTextToTagNode = function(text) {
} }
}; };
const safeTextToTextNode = (function() { const expandHtmlEntities = (( ) => {
const entities = new Map([ const entities = new Map([
// TODO: Remove quote entities once no longer present in translation // TODO: Remove quote entities once no longer present in translation
// files. Other entities must stay. // files. Other entities must stay.
@ -88,10 +88,14 @@ const safeTextToTextNode = (function() {
if ( text.indexOf('&') !== -1 ) { if ( text.indexOf('&') !== -1 ) {
text = text.replace(/&[a-z]+;/g, decodeEntities); text = text.replace(/&[a-z]+;/g, decodeEntities);
} }
return document.createTextNode(text); return text;
}; };
})(); })();
const safeTextToTextNode = function(text) {
return document.createTextNode(expandHtmlEntities(text));
};
const safeTextToDOM = function(text, parent) { const safeTextToDOM = function(text, parent) {
if ( text === '' ) { return; } if ( text === '' ) { return; }
@ -221,7 +225,7 @@ vAPI.i18n.render = function(context) {
for ( const elem of root.querySelectorAll('[data-i18n-title]') ) { for ( const elem of root.querySelectorAll('[data-i18n-title]') ) {
const text = vAPI.i18n(elem.getAttribute('data-i18n-title')); const text = vAPI.i18n(elem.getAttribute('data-i18n-title'));
if ( !text ) { continue; } if ( !text ) { continue; }
elem.setAttribute('title', text); elem.setAttribute('title', expandHtmlEntities(text));
} }
for ( const elem of root.querySelectorAll('[placeholder]') ) { for ( const elem of root.querySelectorAll('[placeholder]') ) {