Assertion failure: cachedStyles[i]->EqualForCachedAnonymousContentStyle(*cs) (cached anonymous content styles should be identical to those we would compute normally), at /builds/worker/workspace/build/src/layout/base/nsCSSFrameConstructor.cpp:3962
Categories
(Core :: Layout, defect, P3)
Tracking
()
People
(Reporter: hiro, Assigned: heycam)
References
Details
Attachments
(1 file)
layout/forms/crashtests/1212688.html | causes this assertion. (I saw this on a try of mine)
Just in case you are not aware of this.
Assignee | ||
Comment 1•5 years ago
|
||
Thanks, I didn't see that failure before.
I'm going to turn the pref off so I can investigate this and bug 1562361 next week.
Reporter | ||
Comment 2•5 years ago
|
||
(In reply to Hiroyuki Ikezoe (:hiro) from comment #0)
layout/forms/crashtests/1212688.html | causes this assertion. (I saw this on a try of mine)
I did put a wrong link. Here is a failure on m-c that I wanted to put. https://treeherder.mozilla.org/#/jobs?repo=mozilla-central&revision=900a0b1270437d60f87cd2832743439824ee9473&selectedJob=254027747
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 4•5 years ago
|
||
Assignee | ||
Comment 5•5 years ago
|
||
From the logs:
Actual style:
Properties:
display: none
Rules:
xul|scrollbarbutton[sbattr="scrollbar-up-top"], xul|scrollbarbutton[sbattr="scrollbar-bottom-top"] { display: none; }
xul|scrollbarbutton { background-image: none !important; }
xul|scrollbarbutton { min-height: 6px !important; min-width: 6px !important; -moz-appearance: none !important; visibility: hidden; }
scrollbar, scrollbarbutton, scrollcorner, slider, thumb { user-select: none; }
scrollbarbutton, slider, thumb { direction: inherit; cursor: inherit; }
scrollcorner, resizer, scrollbar, scrollbarbutton, slider { border-block: initial; border-inline: initial; border-start-start-radius: initial; border-start-end-radius: initial; border-end-start-radius: initial; border-end-end-radius: initial; overflow-inline: initial; overflow-block: initial; margin-block: initial; margin-inline: initial; scroll-margin-block: initial; scroll-margin-inline: initial; padding-block: initial; padding-inline: initial; scroll-padding-block: initial; scroll-padding-inline: initial; inset-block: initial; inset-inline: initial; block-size: initial; min-block-size: initial; max-block-size: initial; inline-size: initial; min-inline-size: initial; max-inline-size: initial; background: initial; background-blend-mode: initial; border: initial; border-radius: initial; box-decoration-break: initial; -moz-float-edge: initial; position: initial; float: initial; clear: initial; vertical-align: initial; overflow: initial; overflow-anchor: initial; transition: initial; animation: initial; tr
* { -moz-user-focus: ignore; user-select: none; display: -moz-box; box-sizing: border-box; }
Expected style:
Properties:
display: block
Rules:
select:not([size]):not([multiple]) > xul|scrollbar, select[size="1"] > xul|scrollbar, select:not([size]):not([multiple]) xul|scrollbarbutton, select[size="1"] xul|scrollbarbutton { display: block; margin-left: 0px; min-width: 16px; }
xul|scrollbarbutton[sbattr="scrollbar-up-top"], xul|scrollbarbutton[sbattr="scrollbar-bottom-top"] { display: none; }
xul|scrollbarbutton { background-image: none !important; }
xul|scrollbarbutton { min-height: 6px !important; min-width: 6px !important; -moz-appearance: none !important; visibility: hidden; }
scrollbar, scrollbarbutton, scrollcorner, slider, thumb { user-select: none; }
scrollbarbutton, slider, thumb { direction: inherit; cursor: inherit; }
scrollcorner, resizer, scrollbar, scrollbarbutton, slider { border-block: initial; border-inline: initial; border-start-start-radius: initial; border-start-end-radius: initial; border-end-start-radius: initial; border-end-end-radius: initial; overflow-inline: initial; overflow-block: initial; margin-block: initial; margin-inline: initial; scroll-margin-block: initial; scroll-margin-inline: initial; padding-block: initial; padding-inline: initial; scroll-padding-block: initial; scroll-padding-inline: initial; inset-block: initial; inset-inline: initial; block-size: initial; min-block-size: initial; max-block-size: initial; inline-size: initial; min-inline-size: initial; max-inline-size: initial; background: initial; background-blend-mode: initial; border: initial; border-radius: initial; box-decoration-break: initial; -moz-float-edge: initial; position: initial; float: initial; clear: initial; vertical-align: initial; overflow: initial; overflow-anchor: initial; transition: initial; animation: initial; tr
* { -moz-user-focus: ignore; user-select: none; display: -moz-box; box-sizing: border-box; }
Assertion failure: cachedStyles[i]->EqualForCachedAnonymousContentStyle(*cs) (cached anonymous content styles should be identical to those we would compute normally), at /builds/worker/workspace/build/src/layout/base/nsCSSFrameConstructor.cpp:3962
Assignee | ||
Comment 6•5 years ago
|
||
So https://searchfox.org/mozilla-central/rev/867cbb1a2b232398616e1aa42f913f37c6cb38e4/layout/generic/nsGfxScrollFrame.cpp#4980-4986 is not doing its job.
Reporter | ||
Comment 7•5 years ago
|
||
I haven't debugged it, so I am probably wrong, but normally mOuter is the scrollable frame, so we should use mScrolledFrame instead? (I don't actually know what mOuter's nsIContent is there)
Comment 8•5 years ago
|
||
bugherder |
Assignee | ||
Comment 9•5 years ago
|
||
Ah I think it's failing in this test because the markup is
<style>
optgroup { overflow-x: hidden; }
</style>
<select>
<optgroup>
<option>
and in mobile/android/themes/geckoview/content.css we have
select:not([size]):not([multiple]) > xul|scrollbar,
select[size="1"] > xul|scrollbar,
select:not([size]):not([multiple]) xul|scrollbarbutton,
select[size="1"] xul|scrollbarbutton {
display: block;
margin-left: 0;
min-width: 16px;
}
and note that these have descendant selectors to match the scrollbarbutton
elements. I think the optgroup
is making its own scrollbars, separate from the select
's. And the check I linked to in comment 6 would find that the parent of that scrollbar
element is the optgroup
.
I think we can just adjust the UA style rule to use child selectors instead. (We don't actually do anything with these optgroup
scrollbars.)
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 10•5 years ago
|
||
And I don't think we even use XUL select popups on GeckoView, so I'm not sure why we have these rules.
Comment hidden (obsolete) |
Assignee | ||
Comment 12•5 years ago
|
||
Assignee | ||
Comment 13•5 years ago
|
||
Comment hidden (Intermittent Failures Robot) |
Comment 15•5 years ago
|
||
Pushed by cmccormack@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/529c44a1eba8 Tweak XUL scrollbar styles on GeckoView to avoid cached scrollbar style assertions. r=emilio
![]() |
||
Comment 16•5 years ago
|
||
bugherder |
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 19•5 years ago
|
||
Thanks, yes.
Updated•5 years ago
|
Description
•