client: Ensure non-image remote resources are also loaded when permitted

Update `PageState.loadRemoteResources` to process any child of the BODY
element that has a `src` or `srcset` element.
This commit is contained in:
Michael Gratton 2021-04-04 21:34:33 +10:00 committed by Michael James Gratton
parent bf2aa12978
commit fd002c0156

View file

@ -73,13 +73,32 @@ PageState.prototype = {
this._contentLoaded();
},
loadRemoteResources: function() {
window._gearyAllowRemoteResourceLoads = true;
let images = document.getElementsByTagName("IMG");
for (let i = 0; i < images.length; i++) {
let img = images.item(i);
let src = img.src;
img.src = "";
img.src = src;
if (window._gearyAllowRemoteResourceLoads == false) {
window._gearyAllowRemoteResourceLoads = true;
const TYPES = "*[src], *[srcset]";
for (const element of document.body.querySelectorAll(TYPES)) {
let src = "";
try {
src = element.src;
} catch (e) {
// fine
}
if (src != "") {
element.src = "";
element.src = src;
}
let srcset = "";
try {
srcset = element.srcset;
} catch (e) {
// fine
}
if (srcset != "") {
element.srcset = "";
element.srcset = srcset;
}
}
}
},
setEditable: function(enabled) {