Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

issue #5247 add restriction when rendering large message #5248

Merged
merged 9 commits into from
Jun 30, 2023
9 changes: 9 additions & 0 deletions extension/js/common/message-renderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,14 @@ export class MessageRenderer {
};
};

private clipMessageIfLimitExceeds = (decryptedContent: string) => {
const maxDecryptedContentLength = 50000;
if (decryptedContent && decryptedContent.length > maxDecryptedContentLength) {
return decryptedContent.substring(0, maxDecryptedContentLength) + ' [clipped - message too large]';
}
return decryptedContent;
};

private decideDecryptedContentFormattingAndRender = async (
signerEmail: string | undefined,
verificationPubs: string[],
Expand Down Expand Up @@ -557,6 +565,7 @@ export class MessageRenderer {
plainSubject
);
}
decryptedContent = this.clipMessageIfLimitExceeds(decryptedContent);
renderModule.separateQuotedContentAndRenderText(decryptedContent, isHtml);
await MessageRenderer.renderPgpSignatureCheckResult(renderModule, sigResult, Boolean(signerEmail), retryVerification);
if (renderableAttachments.length) {
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
{
"acctEmail": "flowcrypt.compatibility@gmail.com",
"full": {
"id": "188ebd700d5a5987",
"threadId": "188ebd6ddfc0ce60",
"labelIds": [
"IMPORTANT",
"Label_15",
"SENT",
"INBOX"
],
"snippet": "-----BEGIN PGP MESSAGE----- hQIMA0taL/zmLZUBARAAgYIn+VOT9Zs9dEByVHtpH2VWhZLeBdLLoG7VGnkrBUH/ Ax7GYWdso2/OAutj1fWaPrUT4xJM7tMQXICQvgvXAY9+thRny4jsJpsf9Yk842iz",
"payload": {
"partId": "",
"mimeType": "multipart/alternative",
"filename": "",
"headers": [
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Date",
"value": "Sat, 24 Jun 2023 13:18:36 +0800"
},
{
"name": "Subject",
"value": "test encrypted MIME (flowcrypt-browser #5247)"
},
{
"name": "From",
"value": "sender@domain.com"
},
{
"name": "To",
"value": "flowcrypt.compatibility@gmail.com"
},
{
"name": "Content-Type",
"value": "multipart/alternative; boundary=\"000000000000dd436205fed93f75\""
}
],
"body": {
"size": 0
},
"parts": [
{
"partId": "0",
"mimeType": "text/plain",
"filename": "",
"headers": [
{
"name": "Content-Type",
"value": "text/plain; charset=\"UTF-8\""
}
],
"body": {
"size": 2327,
"data": "LS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tDQoNCmhRSU1BMHRhTC96bUxaVUJBUkFBZ1lJbitWT1Q5WnM5ZEVCeVZIdHBIMlZXaFpMZUJkTExvRzdWR25rckJVSC8NCkF4N0dZV2RzbzIvT0F1dGoxZldhUHJVVDR4Sk03dE1RWElDUXZndlhBWTkrdGhSbnk0anNKcHNmOVlrODQyaXoNCjdCTExwNFpqR3hmSnFzUlpQTVhXdXpwa3dwSUUwVUEyd3R0MndxSVMzdHBYTDRaS0RHaHNTT1l3Zk9mSzNHOEcNClZvTDlmdVdVajdaY1dBK3NMN254R050cmtXMHcvTWd1R0NnV0lJZnpyR01DTFVWa1crZ3hKekZKVlBYZ09GbGMNCitablpuRTk0WVk2bExpOFc5RWZmTFBsQW1pNzlUSU1Wcy9FUXNIdmxEUFFIM1NkTklDZ0c2YzdEaVNpL2FWNFENClZnMFhZekIyVENwVXUvU1BpRTZieGxJTkV3RStVbkpJeTBnWU15V01GeUp5ZS90bEZSeUgxL1E0SW9Ud3lqN3YNCk5PZkg5a2o2RXpqczIrZmROcXc0cElkSlFHZVQ4TnpMMFRYeEM3dnBPSnpGM1RsMDd5VVJVV0tPY00rVGd2SzMNCjRITGIycFpSbXQ3d1pLQXNuUzVNZzBDRXZ4VjRRRW5xOUQwRjhHYm5HM3N6MXFVVzRsWitZZU9UQUtoc2pjMUgNCmRZRkNpYXVWQ2hxOHU1cFRqQWwxZGhNaXcwWkFpSzVNTG1UbWxuVUxwU1IrWTNZZzVHRjhQOWN1WUFxVnloQjMNClhrb0VwbTQzSk05dkErMXpITUF4cU9nUlcyL0F3MElQMms2RHVLM09ISEFFNmpxS2NVOURwQnZ0MmFjK0lCRkENCkc2VThYU0xBMFY0ZThON2s5U0JSQkdlWDZDQUg3SUxma2xNZWVjMFVGNTRUclN1ZWRNalB2NFFDQUwzZGlHSFMNCjZnRk9GR1J6TjNHYUlvNGJ1UVRwY0JVM2V6VlN2dmh2cFJzQTBFVFZteUMzZ1NDTllrejlnVXR0MEYrcE0zU3ENCnJhK1BVUUl4NExmOTltN3NXM2drRVNuaUdOdnBuangrbWFOQmNybzdEYkpsRU5MMENFZi9OcUNyV3FrKzJ6eW8NCm1sQUtzR3lhOE1xOFZmNC9HeGpKSlVadmxhWlFmUDVtRXQ0SmVJMk9TcG54ckh2STlENVM4MGtMTzFKTHNINXYNCjA1QklrQzNZQTN3Q0RDenFMMUJjMXhueFRwVXdXb21adFdaZ2dBU2RQSzZMUzBrK3lzT0hrcm1XL0xnYWVmWlANCkpTVlFndlV2T3A3aXU2YTZPZjBhNmUxaXFKdTZLclFvWnQ4RjhmRVNURzNKM3RjRDVGdytiM050djFQV0tpMGsNCitXL0pvRHNWNDBkUzdaeHBSai9mVTVTUU0zcVVoS1AvRnZlUjRLKytaS1ptUXV6T0ZqeDVzWkZQRVV4N1JyU1cNCnpGUHA3dWZhZ2FjbldLNC8yaEg1bkdtZXFqZzNraldsOEdEcGFSS3N3SFR6bTduVjZTV2dCQWZsOUY5ZjZDUnQNCkN5N1Z1Mi9JV1pBOEtKWjdqZGJ1eFVrTmNkdmV4cVdpVlJ5VVZBNGdaRUFuYjJIeUNYSkkvbGlCNWgrRzVsbEwNClAwZ0Q5aE1vRFZZcVZoTGQrQmVzSjVMQWNTNURVendyMzdyTVMzTmF0bkp4bXhvVmpJcGg4SzN1K3lWUWhUOEsNCjhYekVKK3ZUQTQyWTV1VmJxVHBYWG5SeVM0cjhLSHhndXY0OW5ydEpudHJpd0RORy9lNkx6bE9Wa3o3UEJRY2MNCndHYXNHV1FkYlVlRUdYbldZb2ZPTWN2WFpDdlhGc3ZwendMbW1jVTJkRkpyVHlSSTNnVlI4Y242TTdZWXdDaGsNCjdHWDJMTjBzR1NLejBhMXBCRzVVaGZvanRyVXBNRWVUQ3k3bm40WS9BZFZYSnZ1K3ZacUxKanhzR0huSXc4NjINCm1GWSsrd29xdEo1bzNraDcxRXc5a2FYUGxxYWppRTZvTWk1VGtDRWxpUk1LNm4xVzZiYkRUSjRCK0M1ZFJGL2cNCjNpSWgzT0RKZmVvR1hBT2dycXU3a2w4aHZ3ZDhabE01Mkw1YTZkekU0Qk5vWk94ajMvKzFiRXZ2akRWdU5odHENClhDR2xwT2tYdkRsK3pJK3U0TjBTOXZSSGlsSEMvOE12VnkzRWdYVGlYakpSMW9pdkdQbmxldEswWm1MTWVnVDENCk1uaGZLbDVhN1NEcFNIWjFCb3o2SEpqN0ZpYUJ6cEcySUhiUnYyYngxcDdSNnBMSmpDMDJleHIyTWoyT1h1cGYNCjF4ZVhQNnlGdFZHVGFaSjVIQzFob0lFRFhmcTcxdjJHK1NiR2hzdVE2UGFGSEV5SEZ4aG1SYzdqTGtnOEovdHUNCjF5aEJLeDBFejhHcC9Td3BOTG84cnNwTmVlQjRkUkp2TUpZc25DbFl2MFRGWkJ5MmYvVCtLQ2kxTEhzZkQzTTgNCjRPUkVmbXNBY3BuYUhJM0FmVDI2TVJsZEo0MFN2dDk3Szc0emprbWNVakh4bTUzNW53TFAvNnM1YWUzZk5oZUgNCk1USHhoSXFaa1VCdWVCb1JHSmxpUEo3Z1Rvd1dlOVoxdEpNcXB6alAvSHd6OTNnNDF3SnA1K2ZINjRLZFpXU0wNCkFSU0x3WmdMc3AxOWRLT0wvTEZYWFUvbDZLSnpmR3p4a0J3aXRraGxXRVJwT2Z3cU8wN1NlVk1SQ0tXOFlHOXANCkVwZ2dRV2VzZ0psdnVRMEdKemRqNHdsWkJ5NW1GTVR1ZTJBbWkrbklydmdFejVUNmloSUJBSktEa2ZmNmxIMzUNCmFSYnpnb3hSdkxaUGtSWnpkeGh5TXVvQ3ZwZUZ6S1AvWXlYdnhvSEcwYjAvdzZITjJwRzQ5TzZ3M2YwQ2ZJYXMNCnQrdnQ2VEZWUVNvSHR3ST0NCj0wVnJ4DQotLS0tLUVORCBQR1AgTUVTU0FHRS0tLS0tDQo="
}
},
{
"partId": "1",
"mimeType": "text/html",
"filename": "",
"headers": [
{
"name": "Content-Type",
"value": "text/html; charset=\"UTF-8\""
},
{
"name": "Content-Transfer-Encoding",
"value": "quoted-printable"
}
],
"body": {
"size": 2428,
"data": "PGRpdiBkaXI9Imx0ciI-LS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tPGJyPjxicj5oUUlNQTB0YUwvem1MWlVCQVJBQWdZSW4rVk9UOVpzOWRFQnlWSHRwSDJWV2haTGVCZExMb0c3Vkdua3JCVUgvPGJyPkF4N0dZV2RzbzIvT0F1dGoxZldhUHJVVDR4Sk03dE1RWElDUXZndlhBWTkrdGhSbnk0anNKcHNmOVlrODQyaXo8YnI-N0JMTHA0WmpHeGZKcXNSWlBNWFd1enBrd3BJRTBVQTJ3dHQyd3FJUzN0cFhMNFpLREdoc1NPWXdmT2ZLM0c4Rzxicj5Wb0w5ZnVXVWo3WmNXQStzTDdueEdOdHJrVzB3L01ndUdDZ1dJSWZ6ckdNQ0xVVmtXK2d4SnpGSlZQWGdPRmxjPGJyPitablpuRTk0WVk2bExpOFc5RWZmTFBsQW1pNzlUSU1Wcy9FUXNIdmxEUFFIM1NkTklDZ0c2YzdEaVNpL2FWNFE8YnI-VmcwWFl6QjJUQ3BVdS9TUGlFNmJ4bElORXdFK1VuSkl5MGdZTXlXTUZ5SnllL3RsRlJ5SDEvUTRJb1R3eWo3djxicj5OT2ZIOWtqNkV6anMyK2ZkTnF3NHBJZEpRR2VUOE56TDBUWHhDN3ZwT0p6RjNUbDA3eVVSVVdLT2NNK1RndkszPGJyPjRITGIycFpSbXQ3d1pLQXNuUzVNZzBDRXZ4VjRRRW5xOUQwRjhHYm5HM3N6MXFVVzRsWitZZU9UQUtoc2pjMUg8YnI-ZFlGQ2lhdVZDaHE4dTVwVGpBbDFkaE1pdzBaQWlLNU1MbVRtbG5VTHBTUitZM1lnNUdGOFA5Y3VZQXFWeWhCMzxicj5Ya29FcG00M0pNOXZBKzF6SE1BeHFPZ1JXMi9BdzBJUDJrNkR1SzNPSEhBRTZqcUtjVTlEcEJ2dDJhYytJQkZBPGJyPkc2VThYU0xBMFY0ZThON2s5U0JSQkdlWDZDQUg3SUxma2xNZWVjMFVGNTRUclN1ZWRNalB2NFFDQUwzZGlHSFM8YnI-NmdGT0ZHUnpOM0dhSW80YnVRVHBjQlUzZXpWU3Z2aHZwUnNBMEVUVm15QzNnU0NOWWt6OWdVdHQwRitwTTNTcTxicj5yYStQVVFJeDRMZjk5bTdzVzNna0VTbmlHTnZwbmp4K21hTkJjcm83RGJKbEVOTDBDRWYvTnFDcldxaysyenlvPGJyPm1sQUtzR3lhOE1xOFZmNC9HeGpKSlVadmxhWlFmUDVtRXQ0SmVJMk9TcG54ckh2STlENVM4MGtMTzFKTHNINXY8YnI-MDVCSWtDM1lBM3dDREN6cUwxQmMxeG54VHBVd1dvbVp0V1pnZ0FTZFBLNkxTMGsreXNPSGtybVcvTGdhZWZaUDxicj5KU1ZRZ3ZVdk9wN2l1NmE2T2YwYTZlMWlxSnU2S3JRb1p0OEY4ZkVTVEczSjN0Y0Q1RncrYjNOdHYxUFdLaTBrPGJyPitXL0pvRHNWNDBkUzdaeHBSai9mVTVTUU0zcVVoS1AvRnZlUjRLKytaS1ptUXV6T0ZqeDVzWkZQRVV4N1JyU1c8YnI-ekZQcDd1ZmFnYWNuV0s0LzJoSDVuR21lcWpnM2tqV2w4R0RwYVJLc3dIVHptN25WNlNXZ0JBZmw5RjlmNkNSdDxicj5DeTdWdTIvSVdaQThLSlo3amRidXhVa05jZHZleHFXaVZSeVVWQTRnWkVBbmIySHlDWEpJL2xpQjVoK0c1bGxMPGJyPlAwZ0Q5aE1vRFZZcVZoTGQrQmVzSjVMQWNTNURVendyMzdyTVMzTmF0bkp4bXhvVmpJcGg4SzN1K3lWUWhUOEs8YnI-OFh6RUordlRBNDJZNXVWYnFUcFhYblJ5UzRyOEtIeGd1djQ5bnJ0Sm50cml3RE5HL2U2THpsT1ZrejdQQlFjYzxicj53R2FzR1dRZGJVZUVHWG5XWW9mT01jdlhaQ3ZYRnN2cHp3TG1tY1UyZEZKclR5UkkzZ1ZSOGNuNk03WVl3Q2hrPGJyPjdHWDJMTjBzR1NLejBhMXBCRzVVaGZvanRyVXBNRWVUQ3k3bm40WS9BZFZYSnZ1K3ZacUxKanhzR0huSXc4NjI8YnI-bUZZKyt3b3F0SjVvM2toNzFFdzlrYVhQbHFhamlFNm9NaTVUa0NFbGlSTUs2bjFXNmJiRFRKNEIrQzVkUkYvZzxicj4zaUloM09ESmZlb0dYQU9ncnF1N2tsOGh2d2Q4WmxNNTJMNWE2ZHpFNEJOb1pPeGozLysxYkV2dmpEVnVOaHRxPGJyPlhDR2xwT2tYdkRsK3pJK3U0TjBTOXZSSGlsSEMvOE12VnkzRWdYVGlYakpSMW9pdkdQbmxldEswWm1MTWVnVDE8YnI-TW5oZktsNWE3U0RwU0haMUJvejZISmo3RmlhQnpwRzJJSGJSdjJieDFwN1I2cExKakMwMmV4cjJNajJPWHVwZjxicj4xeGVYUDZ5RnRWR1RhWko1SEMxaG9JRURYZnE3MXYyRytTYkdoc3VRNlBhRkhFeUhGeGhtUmM3akxrZzhKL3R1PGJyPjF5aEJLeDBFejhHcC9Td3BOTG84cnNwTmVlQjRkUkp2TUpZc25DbFl2MFRGWkJ5MmYvVCtLQ2kxTEhzZkQzTTg8YnI-NE9SRWZtc0FjcG5hSEkzQWZUMjZNUmxkSjQwU3Z0OTdLNzR6amttY1VqSHhtNTM1bndMUC82czVhZTNmTmhlSDxicj5NVEh4aElxWmtVQnVlQm9SR0psaVBKN2dUb3dXZTlaMXRKTXFwempQL0h3ejkzZzQxd0pwNStmSDY0S2RaV1NMPGJyPkFSU0x3WmdMc3AxOWRLT0wvTEZYWFUvbDZLSnpmR3p4a0J3aXRraGxXRVJwT2Z3cU8wN1NlVk1SQ0tXOFlHOXA8YnI-RXBnZ1FXZXNnSmx2dVEwR0p6ZGo0d2xaQnk1bUZNVHVlMkFtaStuSXJ2Z0V6NVQ2aWhJQkFKS0RrZmY2bEgzNTxicj5hUmJ6Z294UnZMWlBrUlp6ZHhoeU11b0N2cGVGektQL1l5WHZ4b0hHMGIwL3c2SE4ycEc0OU82dzNmMENmSWFzPGJyPnQrdnQ2VEZWUVNvSHR3ST08YnI-PTBWcng8YnI-LS0tLS1FTkQgUEdQIE1FU1NBR0UtLS0tLTxicj48L2Rpdj4NCg=="
}
}
]
},
"sizeEstimate": 5499,
"historyId": "1411544",
"internalDate": "1687583916000"
},
"attachments": {},
"raw": {
"id": "188ebd700d5a5987",
"threadId": "188ebd6ddfc0ce60",
"labelIds": [
"IMPORTANT",
"Label_15",
"SENT",
"INBOX"
],
"snippet": "-----BEGIN PGP MESSAGE----- hQIMA0taL/zmLZUBARAAgYIn+VOT9Zs9dEByVHtpH2VWhZLeBdLLoG7VGnkrBUH/ Ax7GYWdso2/OAutj1fWaPrUT4xJM7tMQXICQvgvXAY9+thRny4jsJpsf9Yk842iz",
"sizeEstimate": 5499,
"raw": "TUlNRS1WZXJzaW9uOiAxLjANCkRhdGU6IFNhdCwgMjQgSnVuIDIwMjMgMTM6MTg6MzYgKzA4MDANCk1lc3NhZ2UtSUQ6IDxDQUtidUxUcGNiY24rTzZYc0ZKWDluZlFKaG5SQU5ialZjN19qb3BPVXppVEJQUWFLV2dAbWFpbC5nbWFpbC5jb20-DQpTdWJqZWN0OiB0ZXN0IGVuY3J5cHRlZCBNSU1FIChmbG93Y3J5cHQtYnJvd3NlciAjNTI0NykNCkZyb206IEZsb3dDcnlwdCBDb21wYXRpYmlsaXR5IDxmbG93Y3J5cHQuY29tcGF0aWJpbGl0eUBnbWFpbC5jb20-DQpUbzogRmxvd0NyeXB0IENvbXBhdGliaWxpdHkgPGZsb3djcnlwdC5jb21wYXRpYmlsaXR5QGdtYWlsLmNvbT4NCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAwMDAwMDAwMDAwZGQ0MzYyMDVmZWQ5M2Y3NSINCg0KLS0wMDAwMDAwMDAwMDBkZDQzNjIwNWZlZDkzZjc1DQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KDQotLS0tLUJFR0lOIFBHUCBNRVNTQUdFLS0tLS0NCg0KaFFJTUEwdGFML3ptTFpVQkFSQUFnWUluK1ZPVDlaczlkRUJ5Vkh0cEgyVldoWkxlQmRMTG9HN1ZHbmtyQlVILw0KQXg3R1lXZHNvMi9PQXV0ajFmV2FQclVUNHhKTTd0TVFYSUNRdmd2WEFZOSt0aFJueTRqc0pwc2Y5WWs4NDJpeg0KN0JMTHA0WmpHeGZKcXNSWlBNWFd1enBrd3BJRTBVQTJ3dHQyd3FJUzN0cFhMNFpLREdoc1NPWXdmT2ZLM0c4Rw0KVm9MOWZ1V1VqN1pjV0Erc0w3bnhHTnRya1cwdy9NZ3VHQ2dXSUlmenJHTUNMVVZrVytneEp6RkpWUFhnT0ZsYw0KK1puWm5FOTRZWTZsTGk4VzlFZmZMUGxBbWk3OVRJTVZzL0VRc0h2bERQUUgzU2ROSUNnRzZjN0RpU2kvYVY0UQ0KVmcwWFl6QjJUQ3BVdS9TUGlFNmJ4bElORXdFK1VuSkl5MGdZTXlXTUZ5SnllL3RsRlJ5SDEvUTRJb1R3eWo3dg0KTk9mSDlrajZFempzMitmZE5xdzRwSWRKUUdlVDhOekwwVFh4Qzd2cE9KekYzVGwwN3lVUlVXS09jTStUZ3ZLMw0KNEhMYjJwWlJtdDd3WktBc25TNU1nMENFdnhWNFFFbnE5RDBGOEdibkczc3oxcVVXNGxaK1llT1RBS2hzamMxSA0KZFlGQ2lhdVZDaHE4dTVwVGpBbDFkaE1pdzBaQWlLNU1MbVRtbG5VTHBTUitZM1lnNUdGOFA5Y3VZQXFWeWhCMw0KWGtvRXBtNDNKTTl2QSsxekhNQXhxT2dSVzIvQXcwSVAyazZEdUszT0hIQUU2anFLY1U5RHBCdnQyYWMrSUJGQQ0KRzZVOFhTTEEwVjRlOE43azlTQlJCR2VYNkNBSDdJTGZrbE1lZWMwVUY1NFRyU3VlZE1qUHY0UUNBTDNkaUdIUw0KNmdGT0ZHUnpOM0dhSW80YnVRVHBjQlUzZXpWU3Z2aHZwUnNBMEVUVm15QzNnU0NOWWt6OWdVdHQwRitwTTNTcQ0KcmErUFVRSXg0TGY5OW03c1czZ2tFU25pR052cG5qeCttYU5CY3JvN0RiSmxFTkwwQ0VmL05xQ3JXcWsrMnp5bw0KbWxBS3NHeWE4TXE4VmY0L0d4akpKVVp2bGFaUWZQNW1FdDRKZUkyT1NwbnhySHZJOUQ1Uzgwa0xPMUpMc0g1dg0KMDVCSWtDM1lBM3dDREN6cUwxQmMxeG54VHBVd1dvbVp0V1pnZ0FTZFBLNkxTMGsreXNPSGtybVcvTGdhZWZaUA0KSlNWUWd2VXZPcDdpdTZhNk9mMGE2ZTFpcUp1NktyUW9adDhGOGZFU1RHM0ozdGNENUZ3K2IzTnR2MVBXS2kwaw0KK1cvSm9Ec1Y0MGRTN1p4cFJqL2ZVNVNRTTNxVWhLUC9GdmVSNEsrK1pLWm1RdXpPRmp4NXNaRlBFVXg3UnJTVw0KekZQcDd1ZmFnYWNuV0s0LzJoSDVuR21lcWpnM2tqV2w4R0RwYVJLc3dIVHptN25WNlNXZ0JBZmw5RjlmNkNSdA0KQ3k3VnUyL0lXWkE4S0paN2pkYnV4VWtOY2R2ZXhxV2lWUnlVVkE0Z1pFQW5iMkh5Q1hKSS9saUI1aCtHNWxsTA0KUDBnRDloTW9EVllxVmhMZCtCZXNKNUxBY1M1RFV6d3IzN3JNUzNOYXRuSnhteG9WaklwaDhLM3UreVZRaFQ4Sw0KOFh6RUordlRBNDJZNXVWYnFUcFhYblJ5UzRyOEtIeGd1djQ5bnJ0Sm50cml3RE5HL2U2THpsT1ZrejdQQlFjYw0Kd0dhc0dXUWRiVWVFR1huV1lvZk9NY3ZYWkN2WEZzdnB6d0xtbWNVMmRGSnJUeVJJM2dWUjhjbjZNN1lZd0Noaw0KN0dYMkxOMHNHU0t6MGExcEJHNVVoZm9qdHJVcE1FZVRDeTdubjRZL0FkVlhKdnUrdlpxTEpqeHNHSG5Jdzg2Mg0KbUZZKyt3b3F0SjVvM2toNzFFdzlrYVhQbHFhamlFNm9NaTVUa0NFbGlSTUs2bjFXNmJiRFRKNEIrQzVkUkYvZw0KM2lJaDNPREpmZW9HWEFPZ3JxdTdrbDhodndkOFpsTTUyTDVhNmR6RTRCTm9aT3hqMy8rMWJFdnZqRFZ1Tmh0cQ0KWENHbHBPa1h2RGwrekkrdTROMFM5dlJIaWxIQy84TXZWeTNFZ1hUaVhqSlIxb2l2R1BubGV0SzBabUxNZWdUMQ0KTW5oZktsNWE3U0RwU0haMUJvejZISmo3RmlhQnpwRzJJSGJSdjJieDFwN1I2cExKakMwMmV4cjJNajJPWHVwZg0KMXhlWFA2eUZ0VkdUYVpKNUhDMWhvSUVEWGZxNzF2MkcrU2JHaHN1UTZQYUZIRXlIRnhobVJjN2pMa2c4Si90dQ0KMXloQkt4MEV6OEdwL1N3cE5Mbzhyc3BOZWVCNGRSSnZNSllzbkNsWXYwVEZaQnkyZi9UK0tDaTFMSHNmRDNNOA0KNE9SRWZtc0FjcG5hSEkzQWZUMjZNUmxkSjQwU3Z0OTdLNzR6amttY1VqSHhtNTM1bndMUC82czVhZTNmTmhlSA0KTVRIeGhJcVprVUJ1ZUJvUkdKbGlQSjdnVG93V2U5WjF0Sk1xcHpqUC9Id3o5M2c0MXdKcDUrZkg2NEtkWldTTA0KQVJTTHdaZ0xzcDE5ZEtPTC9MRlhYVS9sNktKemZHenhrQndpdGtobFdFUnBPZndxTzA3U2VWTVJDS1c4WUc5cA0KRXBnZ1FXZXNnSmx2dVEwR0p6ZGo0d2xaQnk1bUZNVHVlMkFtaStuSXJ2Z0V6NVQ2aWhJQkFKS0RrZmY2bEgzNQ0KYVJiemdveFJ2TFpQa1JaemR4aHlNdW9DdnBlRnpLUC9ZeVh2eG9IRzBiMC93NkhOMnBHNDlPNnczZjBDZklhcw0KdCt2dDZURlZRU29IdHdJPQ0KPTBWcngNCi0tLS0tRU5EIFBHUCBNRVNTQUdFLS0tLS0NCg0KLS0wMDAwMDAwMDAwMDBkZDQzNjIwNWZlZDkzZjc1DQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD0iVVRGLTgiDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlDQoNCjxkaXYgZGlyPTNEImx0ciI-LS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tPGJyPjxicj5oUUlNQTB0YUwvem1MWlVCQVJBQWdZST0NCm4rVk9UOVpzOWRFQnlWSHRwSDJWV2haTGVCZExMb0c3Vkdua3JCVUgvPGJyPkF4N0dZV2RzbzIvT0F1dGoxZldhUHJVVDR4Sk03dD0NCk1RWElDUXZndlhBWTkrdGhSbnk0anNKcHNmOVlrODQyaXo8YnI-N0JMTHA0WmpHeGZKcXNSWlBNWFd1enBrd3BJRTBVQTJ3dHQydz0NCnFJUzN0cFhMNFpLREdoc1NPWXdmT2ZLM0c4Rzxicj5Wb0w5ZnVXVWo3WmNXQStzTDdueEdOdHJrVzB3L01ndUdDZ1dJSWZ6ckdNQz0NCkxVVmtXK2d4SnpGSlZQWGdPRmxjPGJyPitablpuRTk0WVk2bExpOFc5RWZmTFBsQW1pNzlUSU1Wcy9FUXNIdmxEUFFIM1NkTklDZz0NCkc2YzdEaVNpL2FWNFE8YnI-VmcwWFl6QjJUQ3BVdS9TUGlFNmJ4bElORXdFK1VuSkl5MGdZTXlXTUZ5SnllL3RsRlJ5SDEvUTRJbz0NClR3eWo3djxicj5OT2ZIOWtqNkV6anMyK2ZkTnF3NHBJZEpRR2VUOE56TDBUWHhDN3ZwT0p6RjNUbDA3eVVSVVdLT2NNK1RndkszPD0NCmJyPjRITGIycFpSbXQ3d1pLQXNuUzVNZzBDRXZ4VjRRRW5xOUQwRjhHYm5HM3N6MXFVVzRsWitZZU9UQUtoc2pjMUg8YnI-ZFlGQz0NCmlhdVZDaHE4dTVwVGpBbDFkaE1pdzBaQWlLNU1MbVRtbG5VTHBTUitZM1lnNUdGOFA5Y3VZQXFWeWhCMzxicj5Ya29FcG00M0pNOT0NCnZBKzF6SE1BeHFPZ1JXMi9BdzBJUDJrNkR1SzNPSEhBRTZqcUtjVTlEcEJ2dDJhYytJQkZBPGJyPkc2VThYU0xBMFY0ZThON2s5Uz0NCkJSQkdlWDZDQUg3SUxma2xNZWVjMFVGNTRUclN1ZWRNalB2NFFDQUwzZGlHSFM8YnI-NmdGT0ZHUnpOM0dhSW80YnVRVHBjQlUzZT0NCnpWU3Z2aHZwUnNBMEVUVm15QzNnU0NOWWt6OWdVdHQwRitwTTNTcTxicj5yYStQVVFJeDRMZjk5bTdzVzNna0VTbmlHTnZwbmp4Kz0NCm1hTkJjcm83RGJKbEVOTDBDRWYvTnFDcldxaysyenlvPGJyPm1sQUtzR3lhOE1xOFZmNC9HeGpKSlVadmxhWlFmUDVtRXQ0SmVJMj0NCk9TcG54ckh2STlENVM4MGtMTzFKTHNINXY8YnI-MDVCSWtDM1lBM3dDREN6cUwxQmMxeG54VHBVd1dvbVp0V1pnZ0FTZFBLNkxTMD0NCmsreXNPSGtybVcvTGdhZWZaUDxicj5KU1ZRZ3ZVdk9wN2l1NmE2T2YwYTZlMWlxSnU2S3JRb1p0OEY4ZkVTVEczSjN0Y0Q1RncrYj0NCjNOdHYxUFdLaTBrPGJyPitXL0pvRHNWNDBkUzdaeHBSai9mVTVTUU0zcVVoS1AvRnZlUjRLKytaS1ptUXV6T0ZqeDVzWkZQRVV4Nz0NClJyU1c8YnI-ekZQcDd1ZmFnYWNuV0s0LzJoSDVuR21lcWpnM2tqV2w4R0RwYVJLc3dIVHptN25WNlNXZ0JBZmw5RjlmNkNSdDxicj0NCj5DeTdWdTIvSVdaQThLSlo3amRidXhVa05jZHZleHFXaVZSeVVWQTRnWkVBbmIySHlDWEpJL2xpQjVoK0c1bGxMPGJyPlAwZ0Q5aD0NCk1vRFZZcVZoTGQrQmVzSjVMQWNTNURVendyMzdyTVMzTmF0bkp4bXhvVmpJcGg4SzN1K3lWUWhUOEs8YnI-OFh6RUordlRBNDJZNT0NCnVWYnFUcFhYblJ5UzRyOEtIeGd1djQ5bnJ0Sm50cml3RE5HL2U2THpsT1ZrejdQQlFjYzxicj53R2FzR1dRZGJVZUVHWG5XWW9mTz0NCk1jdlhaQ3ZYRnN2cHp3TG1tY1UyZEZKclR5UkkzZ1ZSOGNuNk03WVl3Q2hrPGJyPjdHWDJMTjBzR1NLejBhMXBCRzVVaGZvanRyVT0NCnBNRWVUQ3k3bm40WS9BZFZYSnZ1K3ZacUxKanhzR0huSXc4NjI8YnI-bUZZKyt3b3F0SjVvM2toNzFFdzlrYVhQbHFhamlFNm9NaT0NCjVUa0NFbGlSTUs2bjFXNmJiRFRKNEIrQzVkUkYvZzxicj4zaUloM09ESmZlb0dYQU9ncnF1N2tsOGh2d2Q4WmxNNTJMNWE2ZHpFND0NCkJOb1pPeGozLysxYkV2dmpEVnVOaHRxPGJyPlhDR2xwT2tYdkRsK3pJK3U0TjBTOXZSSGlsSEMvOE12VnkzRWdYVGlYakpSMW9pdj0NCkdQbmxldEswWm1MTWVnVDE8YnI-TW5oZktsNWE3U0RwU0haMUJvejZISmo3RmlhQnpwRzJJSGJSdjJieDFwN1I2cExKakMwMmV4cj0NCjJNajJPWHVwZjxicj4xeGVYUDZ5RnRWR1RhWko1SEMxaG9JRURYZnE3MXYyRytTYkdoc3VRNlBhRkhFeUhGeGhtUmM3akxrZzhKLz0NCnR1PGJyPjF5aEJLeDBFejhHcC9Td3BOTG84cnNwTmVlQjRkUkp2TUpZc25DbFl2MFRGWkJ5MmYvVCtLQ2kxTEhzZkQzTTg8YnI-ND0NCk9SRWZtc0FjcG5hSEkzQWZUMjZNUmxkSjQwU3Z0OTdLNzR6amttY1VqSHhtNTM1bndMUC82czVhZTNmTmhlSDxicj5NVEh4aElxWj0NCmtVQnVlQm9SR0psaVBKN2dUb3dXZTlaMXRKTXFwempQL0h3ejkzZzQxd0pwNStmSDY0S2RaV1NMPGJyPkFSU0x3WmdMc3AxOWRLTz0NCkwvTEZYWFUvbDZLSnpmR3p4a0J3aXRraGxXRVJwT2Z3cU8wN1NlVk1SQ0tXOFlHOXA8YnI-RXBnZ1FXZXNnSmx2dVEwR0p6ZGo0dz0NCmxaQnk1bUZNVHVlMkFtaStuSXJ2Z0V6NVQ2aWhJQkFKS0RrZmY2bEgzNTxicj5hUmJ6Z294UnZMWlBrUlp6ZHhoeU11b0N2cGVGej0NCktQL1l5WHZ4b0hHMGIwL3c2SE4ycEc0OU82dzNmMENmSWFzPGJyPnQrdnQ2VEZWUVNvSHR3ST0zRDxicj49M0QwVnJ4PGJyPi0tLT0NCi0tRU5EIFBHUCBNRVNTQUdFLS0tLS08YnI-PC9kaXY-DQoNCi0tMDAwMDAwMDAwMDAwZGQ0MzYyMDVmZWQ5M2Y3NS0t",
"historyId": "1411544",
"internalDate": "1687583916000"
}
}

Large diffs are not rendered by default.

27 changes: 27 additions & 0 deletions test/source/tests/decrypt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1900,6 +1900,33 @@ XZ8r4OC6sguP/yozWlkG+7dDxsgKQVBENeG6Lw==
})
);

test(
'decrypt - Restricting rendering of large text values in message decryption',
testWithBrowser(async (t, browser) => {
const threadId1 = '18514f9ceece6c14'; // sign-only
const threadId2 = '18514f65895242dd'; // encrypted + signed
const threadId3 = '188ebd700d5a5987'; // sign-only mime
const threadId4 = '188ebdff6579e577'; // encrypted mime
const { authHdr } = await BrowserRecipe.setupCommonAcctWithAttester(t, browser, 'compatibility');
const gmailPage1 = await browser.newPage(t, `${t.urls?.mockGmailUrl()}/${threadId1}`, undefined, authHdr);
await gmailPage1.waitAll('iframe');
const pgpBlock1 = await gmailPage1.getFrame(['pgp_block.htm']);
await pgpBlock1.waitForContent('@pgp-block-content', '[clipped - message too large]');
const gmailPage2 = await browser.newPage(t, `${t.urls?.mockGmailUrl()}/${threadId2}`, undefined, authHdr);
await gmailPage2.waitAll('iframe');
const pgpBlock2 = await gmailPage2.getFrame(['pgp_block.htm']);
await pgpBlock2.waitForContent('@pgp-block-content', '[clipped - message too large]');
const gmailPage3 = await browser.newPage(t, `${t.urls?.mockGmailUrl()}/${threadId3}`, undefined, authHdr);
await gmailPage3.waitAll('iframe');
const pgpBlock3 = await gmailPage3.getFrame(['pgp_block.htm']);
await pgpBlock3.waitForContent('@pgp-block-content', '[clipped - message too large]');
const gmailPage4 = await browser.newPage(t, `${t.urls?.mockGmailUrl()}/${threadId4}`, undefined, authHdr);
await gmailPage4.waitAll('iframe');
const pgpBlock4 = await gmailPage4.getFrame(['pgp_block.htm']);
await pgpBlock4.waitForContent('@pgp-block-content', '[clipped - message too large]');
})
);

test(
'decrypt - prevent rendering of attachments from domain sources other than flowcrypt.s3.amazonaws.com',
testWithBrowser(async (t, browser) => {
Expand Down