last character in channel names on Slack cut off
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
People
(Reporter: aryx, Assigned: gw)
References
(Regressed 1 open bug, Regression)
Details
(Keywords: regression)
Attachments
(3 files)
Firefox Nightly 154.0a1 on Windows 11
Often the last character in channel names on Slack is cut off.
| Assignee | ||
Comment 1•22 days ago
|
||
Could you attach your about:support (or comment here what display scale ratio you're running at)?
| Assignee | ||
Comment 2•22 days ago
|
||
I can't repro locally on Linux at a variety of resolutions and device scales yet - is there anything about your setup or repro steps that might be worth trying here?
Comment 3•22 days ago
|
||
I can see it. I have to join the mozilla-org channel. FWIW, my DPR is 125%.
Anyway, that's odd, the clipped #mozilla-org is no clipped by any scroll container. And yeah, I think we can see #mozilla-ceo is also cut off in comment 0. Oops, #moco is also cut off.
Oops ^ above is wrong.
<span dir="auto" class="p-channel_sidebar__name" data-qa="channel_sidebar_name_mozilla-org" data-sk="tooltip_parent"><span>mozilla-org</span></span>
The .p-channel_sidebar__name has overflow: hidden style.
Comment 4•22 days ago
|
||
FWIW, the styles are:
p-channel_sidebar__name {
color: var(--_sidebar-row-color,inherit);
font-weight: var(--_sidebar-row-text-weight,inherit);
opacity: var(--_sidebar-row-text-opacity,1);
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
Comment 6•21 days ago
|
||
Okay,
.c-scrollbar__hider {
transform: translateZ(0);
}
This transform style is a trigger. If you uncheck the style on DevTools. the cut-off is gone.
Comment 7•21 days ago
|
||
Though mozregression didn't reliable work but I did kida git bisect. Now I am ~100% sure this is regressed by bug 2004666.
| Assignee | ||
Updated•19 days ago
|
| Assignee | ||
Comment 8•19 days ago
|
||
I'm still trying to repro this (setting up a comparable windows env), in the meantime it's possible that this might be fixed by https://phabricator.services.mozilla.com/D309279 if anyone who can repro it has time to apply that and check.
Comment 9•19 days ago
|
||
No, it's not. I applied D309279 and D309280.
| Assignee | ||
Comment 10•18 days ago
|
||
Minimized wrench repro reftest:
root:
items:
- type: stacking-context
bounds: [100.5, 80, 300, 100]
transform: identity()
is-2d: true
items:
- type: text
text: "XXXXXXXX"
origin: [0, 30]
size: 32
color: [0, 0, 0, 1]
font: "Ahem.ttf"
root:
items:
- type: text
text: "XXXXXXXX"
origin: [100.5, 110]
size: 32
color: [0, 0, 0, 1]
font: "Ahem.ttf"
| Assignee | ||
Comment 11•17 days ago
|
||
A device-mode text run snapped its full reference-frame origin to the device
grid. An offset-only reference frame - one that merely positions content (an
nsIFrame layout offset or an identity transform such as translateZ(0)) - then
shifted the text ~1px off where the same content renders unframed, clipping the
last character of Slack channel names on Win11 at fractional device scales.
Mark such frames with an is_offset_only flag on ReferenceFrameKind::Transform,
set by the embedder at the single site that synthesizes them (the offset-only
reference frame in wr_dp_push_stacking_context, mirrored by wrench). Snap their
text like unframed content so the static origin stays sub-pixel; frames that
genuinely scale or rotate content keep the full-origin snap.
This also fixes css-transforms/backface-visibility-hidden-animated-002.html
(text inside a will-change:transform element), so drop its now-passing
expectation.
Comment 12•17 days ago
|
||
Comment 13•17 days ago
|
||
| bugherder | ||
| Reporter | ||
Comment 14•16 days ago
|
||
Behavior did not change with the latest Nightly.
Comment 15•13 days ago
|
||
Reclassifying given the regressor and assignee.
| Assignee | ||
Comment 16•12 days ago
|
||
Slack channel-name characters were clipped at fractional device scales. Render
text runs at their exact device positions and keep a device-space text run's
clips unsnapped, so a fractional clip edge no longer rounds inward and shaves
the last glyph; a snapping primitive instead snaps every clip in its chain to
the device grid. Also rounds out the bounding rect of non-snapped primitives and
drops the now-dead is_offset_only reference-frame flag.
Updates the affected wrench reftest baselines and adds a unit test asserting the
device-text clip snap policy (the rendered difference is a sub-pixel clip shift
that headless software rasterization cannot surface, so it can't be reftested).
Comment 17•11 days ago
|
||
Comment 18•11 days ago
|
||
Comment 19•11 days ago
•
|
||
Backed out for causing wr failures at attributes-for-embedded-content-and-images/input-image-inline-alt.html
Backout link
Push with failures
Failure log(s)
and also this reftest
| Assignee | ||
Comment 20•10 days ago
•
|
||
Fixed the fuzzy annotation for this test
Comment 21•10 days ago
|
||
Comment 22•10 days ago
|
||
| bugherder | ||
Description
•