summaryrefslogtreecommitdiffstats
path: root/kmail
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2022-10-09 18:57:43 +0200
committerSlávek Banko <slavek.banko@axis.cz>2022-10-13 05:54:03 +0200
commit746e02af07f7dc223940ad80a0a234c0aff85850 (patch)
tree272ccc5ba5891be2fee4146bcf62a39c07b36915 /kmail
parent94a38124fc93e2cd2b63c4c4b3d46e5aad44bcaa (diff)
downloadtdepim-746e02af07f7dc223940ad80a0a234c0aff85850.tar.gz
tdepim-746e02af07f7dc223940ad80a0a234c0aff85850.zip
Load external references in encrypted emails only on explicit request.
Taken from KDE patches and adapted to TDE. See https://phabricator.kde.org/D12391 Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Diffstat (limited to 'kmail')
-rw-r--r--kmail/kmreaderwin.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/kmail/kmreaderwin.cpp b/kmail/kmreaderwin.cpp
index 184167b09..9ecb56b1a 100644
--- a/kmail/kmreaderwin.cpp
+++ b/kmail/kmreaderwin.cpp
@@ -1408,8 +1408,6 @@ void KMReaderWin::updateReaderWin()
{
if (!mMsgDisplay) return;
- mViewer->setOnlyLocalReferences(!htmlLoadExternal());
-
htmlWriter()->reset();
KMFolder* folder = 0;
@@ -1579,6 +1577,7 @@ void KMReaderWin::parseMsg(KMMessage* aMsg)
// - this can only be done *after* calling parseObjectTree()
KMMsgEncryptionState encryptionState = mRootNode->overallEncryptionState();
KMMsgSignatureState signatureState = mRootNode->overallSignatureState();
+ mViewer->setOnlyLocalReferences(!htmlLoadExternal());
// Don't crash when switching message while GPG passphrase entry dialog is shown #53185
if (aMsg != message()) {
displayMessage();
@@ -2515,8 +2514,19 @@ bool KMReaderWin::htmlMail()
//-----------------------------------------------------------------------------
bool KMReaderWin::htmlLoadExternal()
{
- return ((mHtmlLoadExternal && !mHtmlLoadExtOverride) ||
- (!mHtmlLoadExternal && mHtmlLoadExtOverride));
+ if (!mRootNode)
+ {
+ return mHtmlLoadExtOverride;
+ }
+
+ // when displaying an encrypted message, only load external resources on explicit request
+ if (mRootNode->overallEncryptionState() != KMMsgNotEncrypted)
+ {
+ return mHtmlLoadExtOverride;
+ }
+
+ return ((mHtmlLoadExternal && !mHtmlLoadExtOverride) ||
+ (!mHtmlLoadExternal && mHtmlLoadExtOverride));
}