You need to
before you can comment on or make changes to this bug.
This may be related to several other JS table bugs I filed: bug 14848 and bug 14846.
Created an attachment (id=15781) [details]
Pressing the button should valign the rows, but does not. It works in IE and Firefox.
Created an attachment (id=15788) [details]
vertical-align is not an inherited property, so recalcStyle does not continue to descendants. What recalcStyle does not know is that table rows and table cells have 'vertical-align: inherit' by default, so they do need a recalc.
The issue is not limited to mapped attributes, as this test case demonstrates.
We basically need to find a way to retain the (very useful) performance optimization of avoiding propagation to decendants for non-inherited properties while still being correct. One idea would be to just propagate non-inherited properties when we see an inherit keyword used on any stylesheet used by the document.
As discussed on IRC: this would mean adding a HashSet of properties which used the inherit keyword at any time during the document's lifetime. We would do a lookup in that set after setting any non-inherited CSS property, if the lookup returned true, then we'd force a style re-calc just as though the property was an inherited property.
We can also just hack valign in the table DOM code.
Created an attachment (id=58983) [details]
Created an attachment (id=59661) [details]
Proposed Path with change log
(From update of attachment 58983 [details])
Removing r? from redundant patch.
(From update of attachment 59661 [details])
I'm not sure about the correctness of this code, but it needs a layout test before it can be committed.