Merge pull request #435 from nightcityblade/fix/issue-327

fix: render transcript text safely in browser extensions
This commit is contained in:
Vineet Suryan
2026-04-16 12:37:33 +02:00
committed by GitHub
2 changed files with 18 additions and 18 deletions
+9 -9
View File
@@ -164,7 +164,7 @@ function get_lines(elem, line_height) {
var divHeight = elem.offsetHeight; var divHeight = elem.offsetHeight;
var lines = divHeight / line_height; var lines = divHeight / line_height;
var original_text = elem.innerHTML; var original_text = elem.textContent;
var words = original_text.split(' '); var words = original_text.split(' ');
var segments = []; var segments = [];
@@ -174,7 +174,7 @@ function get_lines(elem, line_height) {
for (var i = 0; i < words.length; i++) for (var i = 0; i < words.length; i++)
{ {
segment += words[i] + ' '; segment += words[i] + ' ';
elem.innerHTML = segment; elem.textContent = segment;
divHeight = elem.offsetHeight; divHeight = elem.offsetHeight;
if ((divHeight / line_height) > current_lines) { if ((divHeight / line_height) > current_lines) {
@@ -188,7 +188,7 @@ function get_lines(elem, line_height) {
var line_segment = segment.substring(segment_len, segment.length - 1) var line_segment = segment.substring(segment_len, segment.length - 1)
segments.push(line_segment); segments.push(line_segment);
elem.innerHTML = original_text; elem.textContent = original_text;
return segments; return segments;
@@ -264,7 +264,7 @@ chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
var elem = document.getElementById('t3'); var elem = document.getElementById('t3');
if (elem) { if (elem) {
elem.innerHTML = text; elem.textContent = text;
var line_height_style = getStyle('t3', 'line-height'); var line_height_style = getStyle('t3', 'line-height');
var line_height = parseInt(line_height_style.substring(0, line_height_style.length - 2)); var line_height = parseInt(line_height_style.substring(0, line_height_style.length - 2));
@@ -274,25 +274,25 @@ chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
text_segments = []; text_segments = [];
text_segments = get_lines(elem, line_height); text_segments = get_lines(elem, line_height);
elem.innerHTML = ''; elem.textContent = '';
if (text_segments.length > 2) { if (text_segments.length > 2) {
for (var i = 0; i < 3; i++) { for (var i = 0; i < 3; i++) {
document.getElementById('t' + i).innerHTML = text_segments[text_segments.length - 3 + i]; document.getElementById('t' + i).textContent = text_segments[text_segments.length - 3 + i];
} }
} else { } else {
for (var i = 0; i < 3; i++) { for (var i = 0; i < 3; i++) {
document.getElementById('t' + i).innerHTML = ''; document.getElementById('t' + i).textContent = '';
} }
} }
if (text_segments.length <= 2) { if (text_segments.length <= 2) {
for (var i = 0; i < text_segments.length; i++) { for (var i = 0; i < text_segments.length; i++) {
document.getElementById('t' + i).innerHTML = text_segments[i]; document.getElementById('t' + i).textContent = text_segments[i];
} }
} else { } else {
for (var i = 0; i < 3; i++) { for (var i = 0; i < 3; i++) {
document.getElementById('t' + i).innerHTML = text_segments[text_segments.length - 3 + i]; document.getElementById('t' + i).textContent = text_segments[text_segments.length - 3 + i];
} }
} }
+9 -9
View File
@@ -286,7 +286,7 @@ function get_lines(elem, line_height) {
var divHeight = elem.offsetHeight; var divHeight = elem.offsetHeight;
var lines = divHeight / line_height; var lines = divHeight / line_height;
var original_text = elem.innerHTML; var original_text = elem.textContent;
var words = original_text.split(' '); var words = original_text.split(' ');
var segments = []; var segments = [];
@@ -296,7 +296,7 @@ function get_lines(elem, line_height) {
for (var i = 0; i < words.length; i++) for (var i = 0; i < words.length; i++)
{ {
segment += words[i] + ' '; segment += words[i] + ' ';
elem.innerHTML = segment; elem.textContent = segment;
divHeight = elem.offsetHeight; divHeight = elem.offsetHeight;
if ((divHeight / line_height) > current_lines) { if ((divHeight / line_height) > current_lines) {
@@ -310,7 +310,7 @@ function get_lines(elem, line_height) {
var line_segment = segment.substring(segment_len, segment.length - 1) var line_segment = segment.substring(segment_len, segment.length - 1)
segments.push(line_segment); segments.push(line_segment);
elem.innerHTML = original_text; elem.textContent = original_text;
return segments; return segments;
@@ -392,7 +392,7 @@ browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
text = text.replace(/(\r\n|\n|\r)/gm, ""); text = text.replace(/(\r\n|\n|\r)/gm, "");
var elem = document.getElementById('t3'); var elem = document.getElementById('t3');
elem.innerHTML = text; elem.textContent = text;
var line_height_style = getStyle('t3', 'line-height'); var line_height_style = getStyle('t3', 'line-height');
var line_height = parseInt(line_height_style.substring(0, line_height_style.length - 2)); var line_height = parseInt(line_height_style.substring(0, line_height_style.length - 2));
@@ -402,25 +402,25 @@ browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
text_segments = []; text_segments = [];
text_segments = get_lines(elem, line_height); text_segments = get_lines(elem, line_height);
elem.innerHTML = ''; elem.textContent = '';
if (text_segments.length > 2) { if (text_segments.length > 2) {
for (var i = 0; i < 3; i++) { for (var i = 0; i < 3; i++) {
document.getElementById('t' + i).innerHTML = text_segments[text_segments.length - 3 + i]; document.getElementById('t' + i).textContent = text_segments[text_segments.length - 3 + i];
} }
} else { } else {
for (var i = 0; i < 3; i++) { for (var i = 0; i < 3; i++) {
document.getElementById('t' + i).innerHTML = ''; document.getElementById('t' + i).textContent = '';
} }
} }
if (text_segments.length <= 2) { if (text_segments.length <= 2) {
for (var i = 0; i < text_segments.length; i++) { for (var i = 0; i < text_segments.length; i++) {
document.getElementById('t' + i).innerHTML = text_segments[i]; document.getElementById('t' + i).textContent = text_segments[i];
} }
} else { } else {
for (var i = 0; i < 3; i++) { for (var i = 0; i < 3; i++) {
document.getElementById('t' + i).innerHTML = text_segments[text_segments.length - 3 + i]; document.getElementById('t' + i).textContent = text_segments[text_segments.length - 3 + i];
} }
} }