VulpesOS/gaia/shared/test/unit/load_body_html_helper.js
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

43 lines
1,021 B
JavaScript
Executable file

(function(global) {
'use strict';
var parser = new DOMParser();
var bodyHTML = {};
function getFile(filename, callback) {
var req = new XMLHttpRequest();
req.open('GET', filename, false);
req.onerror = function() {
throw new Error('Unable to load ' + filename + ' for body HTML');
};
req.send();
if (req.status !== 200) {
req.onerror();
}
// parse and sanitize the document
var doc = parser.parseFromString(req.response, 'text/html');
if (!doc) {
throw new Error('Unable to parse ' + filename + ' for body HTML');
}
// remove scripts for safety
var scripts = doc.querySelectorAll('script');
Array.prototype.forEach.call(scripts, function(scriptNode) {
scriptNode.parentNode.removeChild(scriptNode);
});
// copy html from body tag
bodyHTML[filename] = doc.body.innerHTML;
}
function loadBodyHTML(filename) {
if (!(filename in bodyHTML)) {
getFile(filename);
}
document.body.innerHTML = bodyHTML[filename];
}
global.loadBodyHTML = loadBodyHTML;
}(this));