thunderbird / thunderbird/thunderbird-android
[Message Reader - MessageWebView]: Tall HTML emails truncated on API < 28 when content exceeds WebView rendering limit
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 14k
- Forks
- 2.8k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 57
Description
Description
Devices running on API 27 and less, when trying to load HTML emails with content taller than ~16,384px, are truncated. The content cuts off and shows a blank space below. This affects image-heavy newsletters and long HTML emails.
This was observed on an API 26 emulator with a newsletter-style HTML email rendering to 17,738px height.
This is separate from the crash fixed in #10759, which was caused by setLayerType(LAYER_TYPE_HARDWARE) triggering a fatal BakedOpRenderer assertion.
Steps to reproduce:
- Open a long HTML email with many images on an API <= 27 device (e.g., API 26 emulator)
- Scroll to the bottom; the content is cut off with blank space
Expected: Full email content is visible
Actual: Content truncated at ~16,384px height
References:
- Related crash fix: #10721
- Related commit: 6a4c2d4
GL_MAX_TEXTURE_SIZE(OpenGL ES spec): https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glGet.xhtml. Search forGL_MAX_TEXTURE_SIZE.- Android SDK - API to query the value at runtime:
GLES20.glGetIntegerv(Docs) - Android SDK - The constant definition:
GLES20.GL_MAX_TEXTURE_SIZE(Docs)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the MessageWebView rendering path and reproduce the truncation on an API 26 or 27 emulator with a long, image-heavy HTML email. Read related crash fix #10721 and commit 6a4c2d4, then inspect the GLES20 GL_MAX_TEXTURE_SIZE references. Done means the full email remains visible beyond the current ~16,384px limit on affected devices.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100