Bug 1883796 - Deal with an assert that doesn't hold always. r=dshin

During an animation restyle, two links might share the same rules while
not sharing the same link-ness.

This is a temporary state, but let's deal with it correctly.

Differential Revision: https://phabricator.services.mozilla.com/D203891
This commit is contained in:
Emilio Cobos Álvarez 2024-03-07 14:24:47 +00:00
Родитель d541a9f856
Коммит 7c1412682e
2 изменённых файлов: 12 добавлений и 6 удалений

Просмотреть файл

@ -908,12 +908,7 @@ impl<E: TElement> StyleSharingCache<E> {
// RELEVANT_LINK_VISITED flag, so we can't share by rule node between visited and
// unvisited styles. We don't check for visitedness and just refuse to share for links
// entirely, so that visitedness doesn't affect timing.
debug_assert_eq!(
target.is_link(),
candidate.element.is_link(),
"Linkness mismatch"
);
if target.is_link() {
if target.is_link() || candidate.element.is_link() {
return None;
}

Просмотреть файл

@ -0,0 +1,11 @@
<link rel="help" href="https://bugzil.la/1883796">
<script>
window.addEventListener("load", () => {
let a = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
document.documentElement.appendChild(a)
document.documentElement.appendChild(document.createElementNS("http://www.w3.org/1999/xhtml", "a"))
document.documentElement.scrollTo(-1132, 16)
document.documentElement.animate({"webkitTextStrokeWidth": ["197792984.89ex", "thin"]}, 2814)
a.setAttribute("href", "x")
})
</script>