Fix regression bug 380842: allow block-display generated content on table cellsand captions again. r+sr=dbaron

This commit is contained in:
bzbarsky@mit.edu 2007-05-16 09:57:28 -07:00
parent d05438c507
commit e8a960c0a8
4 changed files with 81 additions and 1 deletions

View File

@ -0,0 +1,45 @@
<!DOCTYPE html>
<html>
<head>
<style>
</style>
</head>
<body>
<table>
<caption>
<div>Before</div>
Caption
<div>After</div>
</caption>
<tr>
<td>
<div>Before</div>
Text
<div>After</div>
</td>
</tr>
</table>
<div>
Before inline-block
<div style="display: inline-block">
<div>Before</div>
Text
<div>After</div>
</div>
After inline-block
</div>
<div>
Before span
<span>
<span>Before</span>
Text
<span>After</span>
</span>
After span.
<div>
<div>Before</div>
Text
<div>After</div>
</div>
</body>
</html>

View File

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html>
<head>
<style>
.test:before { content: "Before"; display: block }
.test:after { content: "After"; display: block }
</style>
</head>
<body>
<table>
<caption class="test">
Caption
</caption>
<tr>
<td class="test">
Text
</td>
</tr>
</table>
<div>
Before inline-block
<div style="display: inline-block" class="test"> Text </div>
After inline-block
</div>
<div>
Before span
<span class="test"> Text </span>
After span.
</div>
<div class="test"> Text </div>
</body>
</html>

View File

@ -236,3 +236,4 @@ fails-if(MOZ_WIDGET_TOOLKIT=="cocoa") == 372037-1.html 372037-1-ref.html # bug 3
random-if(MOZ_WIDGET_TOOLKIT=="cocoa") == 379316-2.html 379316-2-ref.html # bug 379786
== 379328-1.html 379328-1-ref.html
== 380004-1.html 380004-1-ref.html
== 380842-1.html 380842-1-ref.html

View File

@ -2885,7 +2885,9 @@ nsRuleNode::ComputeDisplayData(nsStyleStruct* aStartStruct,
inherited = PR_TRUE;
// XXX IsBlockInside? (except for the marker bit)
if (parentDisplay->IsBlockLevel() ||
parentDisplay->mDisplay == NS_STYLE_DISPLAY_INLINE_BLOCK) {
parentDisplay->mDisplay == NS_STYLE_DISPLAY_INLINE_BLOCK ||
parentDisplay->mDisplay == NS_STYLE_DISPLAY_TABLE_CELL ||
parentDisplay->mDisplay == NS_STYLE_DISPLAY_TABLE_CAPTION) {
// If the subject of the selector is a block-level element,
// allowed values are 'none', 'inline', 'block', and 'marker'.
// If the value of the 'display' has any other value, the