[geary/mjog/1170-webview-remote-resource-loading: 4/4] client: Ensure non-image remote resources are also loaded when permitted
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary/mjog/1170-webview-remote-resource-loading: 4/4] client: Ensure non-image remote resources are also loaded when permitted
- Date: Sun, 4 Apr 2021 11:40:09 +0000 (UTC)
commit 1fe1a7fc2d8e2e9185fe2a85cf5e2afcd36cde00
Author: Michael Gratton <mike vee net>
Date: Sun Apr 4 21:34:33 2021 +1000
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.
ui/components-web-view.js | 33 ++++++++++++++++++++++++++-------
1 file changed, 26 insertions(+), 7 deletions(-)
---
diff --git a/ui/components-web-view.js b/ui/components-web-view.js
index 97fb2d497..6fa5e0b1b 100644
--- a/ui/components-web-view.js
+++ b/ui/components-web-view.js
@@ -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) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]