client: Fix remote images not being loaded for remembered senders/email

Since commit 6a0ad721 landed the client can no longer reply on
pre-filling JS page state before loading the message body HTML, since
it would be cleared when the JS page state is initialised in the
window-object-cleared handler.

Instead, set the load remote flag as a GObject data property on the
WebKit.WebPage object in the web process via the extension, and consult
that when determining whether to allow loading remote content.

Fixes #1170
This commit is contained in:
Michael Gratton 2021-04-04 20:51:25 +10:00
parent fd002c0156
commit 946f6d786f
4 changed files with 73 additions and 72 deletions

View file

@ -73,31 +73,28 @@ PageState.prototype = {
this._contentLoaded();
},
loadRemoteResources: function() {
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;
}
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;
}
let srcset = "";
try {
srcset = element.srcset;
} catch (e) {
// fine
}
if (srcset != "") {
element.srcset = "";
element.srcset = srcset;
}
}
},