tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit f842d874cc7389aa8d0f08297ef3a47135537052
parent 736feb6aa150a5ac3bc0ff5879fe7d9e681b4daf
Author: Emily McDonough <emcdonough@mozilla.com>
Date:   Thu,  8 Jan 2026 20:44:47 +0000

Bug 2007703 - Account for text-combined decorating frames in text-decoration-inset calculation asserts about writing modes. r=jfkthame

Differential Revision: https://phabricator.services.mozilla.com/D278065

Diffstat:
Mlayout/generic/nsTextFrame.cpp | 5++++-
Mlayout/painting/crashtests/crashtests.list | 1+
Alayout/painting/crashtests/text-decoration-inset-text-combine-upright.html | 38++++++++++++++++++++++++++++++++++++++
3 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/layout/generic/nsTextFrame.cpp b/layout/generic/nsTextFrame.cpp @@ -5871,8 +5871,11 @@ static bool ComputeDecorationInset( decContainer = aDecFrame; } else { nsIFrame* const lineContainer = FindLineContainer(aFrame); + // If the frame specifies text-combined, then it might have an orthogonal + // writing mode to the line container. MOZ_ASSERT( - lineContainer->GetWritingMode().IsVertical() == wm.IsVertical(), + !wm.IsOrthogonalTo(lineContainer->GetWritingMode()) || + aFrame->Style()->IsTextCombined(), "Decorating frame and line container must have writing modes in the " "same axis"); if (nsILineIterator* const iter = lineContainer->GetLineIterator()) { diff --git a/layout/painting/crashtests/crashtests.list b/layout/painting/crashtests/crashtests.list @@ -35,3 +35,4 @@ load 1819957-1.html load 1851726-1.html pref(image.testing.decode-sync.enabled,false) load 1862277-1.html needs-focus pref(ui.caretBlinkTime,200) pref(image.testing.decode-sync.enabled,false) asserts(0-2) load 1870415-1.html +load text-decoration-inset-text-combine-upright.html diff --git a/layout/painting/crashtests/text-decoration-inset-text-combine-upright.html b/layout/painting/crashtests/text-decoration-inset-text-combine-upright.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<style> +u{ + display: table-caption; + text-combine-upright: all; +} +ol{ + writing-mode: vertical-lr; +} +</style> +<div> +<u style="text-combine-upright: all; text-decoration-inset: 4px;" lang="ja-Kana"> +<ol> +<span>a-</span> +</ol> +</u> +</div> +<div> +<u style="text-combine-upright: all;" lang="ja-Kana"> +<ol> +<span>a-</span> +</ol> +</u> +</div> +<div> +<u style="text-decoration-inset: 4px;" lang="ja-Kana"> +<ol> +<span style="text-combine-upright: all;">a-</span> +</ol> +</u> +</div> +<div> +<u lang="ja-Kana"> +<ol> +<span style="text-combine-upright: all;">a-</span> +</ol> +</u> +</div>