Avoid prototype pollution in RED.view.calculateTextDimensions

This commit is contained in:
Nick O'Leary 2021-07-16 08:52:00 +01:00
parent 4b3f5d74a0
commit d4a199f0e1
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9
1 changed files with 5 additions and 4 deletions

View File

@ -2335,6 +2335,7 @@ RED.view = (function() {
var textDimensionPlaceholder = {};
var textDimensionCache = {};
function calculateTextDimensions(str,className) {
var cacheKey = "!"+str;
if (!textDimensionPlaceholder[className]) {
textDimensionPlaceholder[className] = document.createElement("span");
textDimensionPlaceholder[className].className = className;
@ -2343,15 +2344,15 @@ RED.view = (function() {
document.getElementById("red-ui-editor").appendChild(textDimensionPlaceholder[className]);
textDimensionCache[className] = {};
} else {
if (textDimensionCache[className][str]) {
return textDimensionCache[className][str]
if (textDimensionCache[className][cacheKey]) {
return textDimensionCache[className][cacheKey]
}
}
textDimensionPlaceholder[className].textContent = (str||"");
var w = textDimensionPlaceholder[className].offsetWidth;
var h = textDimensionPlaceholder[className].offsetHeight;
textDimensionCache[className][str] = [w,h];
return textDimensionCache[className][str];
textDimensionCache[className][cacheKey] = [w,h];
return textDimensionCache[className][cacheKey];
}
function convertLineBreakCharacter(str) {