mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-26 04:09:50 +00:00
Bug 667010 - "ASSERTION: unexpected block frame" with text-overflow: ellipsis, <fieldset>. r=roc
This commit is contained in:
parent
126e263390
commit
219b9d4294
@ -87,14 +87,9 @@ IsAtomicElement(nsIFrame* aFrame, const nsIAtom* aFrameType)
|
||||
{
|
||||
NS_PRECONDITION(!aFrame->GetStyleDisplay()->IsBlockOutside(),
|
||||
"unexpected block frame");
|
||||
|
||||
if (aFrame->IsFrameOfType(nsIFrame::eReplaced)) {
|
||||
if (aFrameType != nsGkAtoms::textFrame &&
|
||||
aFrameType != nsGkAtoms::brFrame) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return aFrame->GetStyleDisplay()->mDisplay != NS_STYLE_DISPLAY_INLINE;
|
||||
NS_PRECONDITION(aFrameType != nsGkAtoms::placeholderFrame,
|
||||
"unexpected placeholder frame");
|
||||
return !aFrame->IsFrameOfType(nsIFrame::eLineParticipant);
|
||||
}
|
||||
|
||||
static bool
|
||||
@ -317,7 +312,8 @@ TextOverflow::ExamineFrameSubtree(nsIFrame* aFrame,
|
||||
AlignmentEdges* aAlignmentEdges)
|
||||
{
|
||||
const nsIAtom* frameType = aFrame->GetType();
|
||||
if (frameType == nsGkAtoms::brFrame) {
|
||||
if (frameType == nsGkAtoms::brFrame ||
|
||||
frameType == nsGkAtoms::placeholderFrame) {
|
||||
return;
|
||||
}
|
||||
const bool isAtomic = IsAtomicElement(aFrame, frameType);
|
||||
|
78
layout/reftests/text-overflow/clipped-elements-ref.html
Normal file
78
layout/reftests/text-overflow/clipped-elements-ref.html
Normal file
@ -0,0 +1,78 @@
|
||||
<!DOCTYPE html><html>
|
||||
<head><style>
|
||||
html,body {
|
||||
color:black; background-color:white; font-size:16px; padding:0; margin:0;
|
||||
}
|
||||
.test {
|
||||
overflow: hidden;
|
||||
text-align:right;
|
||||
width: 50px;
|
||||
margin-bottom:1em;
|
||||
height: 20px;
|
||||
white-space:nowrap;
|
||||
/*border:1px solid red;width: 500px;*/
|
||||
}
|
||||
.rel { position:relative; text-align:left;}
|
||||
input,select,fieldset,textarea,hr,span {
|
||||
border:1px solid black;
|
||||
background: white;
|
||||
color: black;
|
||||
padding:0 40px;
|
||||
}
|
||||
iframe,img { width: 80px; height:10px; }
|
||||
select[size="4"],iframe,textarea,hr { height:10px; margin:0; }
|
||||
</style></head>
|
||||
<body>
|
||||
|
||||
<div style="position:absolute; top:0; left:0;">
|
||||
<div class="test">…</div>
|
||||
<div class="test">…</div>
|
||||
<div class="test"><fieldset style="display:block;"></fieldset></div>
|
||||
|
||||
<div class="test">…</div>
|
||||
<div class="test">…</div>
|
||||
<div class="test"><input type="button" style="display:list-item;"></div>
|
||||
<div class="test"><input type="button" style="display:block;"></div>
|
||||
|
||||
<div class="test">…</div>
|
||||
<div class="test">…</div>
|
||||
<div class="test"><input type="text" style="display:block;"></div>
|
||||
|
||||
<div class="test">…</div>
|
||||
<div class="test">…</div>
|
||||
<div class="test"><textarea style="display:block;"></textarea></div>
|
||||
|
||||
<div class="test">…</div>
|
||||
<div class="test"><select size="1" style="display:block;"><option> <option> </select></div>
|
||||
|
||||
<div class="test">…</div>
|
||||
<div class="test"><select size="4" style="display:block;"><option> <option> </select></div>
|
||||
</div>
|
||||
|
||||
<div style="position:absolute; top:0; left:100px;">
|
||||
<div class="test">…</div>
|
||||
<div class="test"><iframe src="about:blank" style="display:block"></iframe></div>
|
||||
|
||||
<div class="test" style="text-align:left"> …</div>
|
||||
<div class="test" style="text-align:left"> …</div>
|
||||
<div class="test"><img style="display:block;" src="../image/big.png"></div>
|
||||
|
||||
<div class="test"><x style="display:inline-block; height:100px; width:100%; background:lime">…</x></div>
|
||||
<div class="test">…</div>
|
||||
<div class="test"><hr style="display:block;"></div>
|
||||
|
||||
<div class="test">…</div>
|
||||
<div class="test">…</div>
|
||||
<div class="test">…</div>
|
||||
<div class="test"><span style="display:list-item;"></span></div>
|
||||
<div class="test"><span style="display:block;"></span></div>
|
||||
<div class="test rel">1<span style="position:relative;"></span></div>
|
||||
<div class="test rel">2<span style="position:absolute;"></span></div>
|
||||
<div class="test rel">3</div>
|
||||
<div class="test rel">4</div>
|
||||
<div class="test"><span style="float:left"></span></div>
|
||||
<div class="test"><span style="float:left; margin-left:-10px"></span></div>
|
||||
<div class="test"><span style="float:right; margin-right:-10px"></span></div>
|
||||
</div>
|
||||
|
||||
</body></html>
|
80
layout/reftests/text-overflow/clipped-elements.html
Normal file
80
layout/reftests/text-overflow/clipped-elements.html
Normal file
@ -0,0 +1,80 @@
|
||||
<!DOCTYPE html><html>
|
||||
<head><style>
|
||||
html,body {
|
||||
color:black; background-color:white; font-size:16px; padding:0; margin:0;
|
||||
}
|
||||
.test {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: 50px;
|
||||
margin-bottom:1em;
|
||||
height: 20px;
|
||||
white-space:nowrap;
|
||||
/*border:1px solid red;width: 500px;*/
|
||||
}
|
||||
.rel { position:relative;}
|
||||
input,select,fieldset,textarea,hr,span {
|
||||
border:1px solid black;
|
||||
background: white;
|
||||
color: black;
|
||||
padding:0 40px;
|
||||
}
|
||||
iframe,img { width: 80px; height:10px; }
|
||||
select[size="4"],iframe,textarea,hr { height:10px; margin:0; }
|
||||
|
||||
x {visibility:hidden;display:inline-block;margin-left:-10px;width:1000px;}
|
||||
</style></head>
|
||||
<body>
|
||||
|
||||
<div style="position:absolute; top:0; left:0;">
|
||||
<div class="test"><fieldset style="display:inline;"></fieldset></div>
|
||||
<div class="test"><fieldset style="display:inline-block;"></fieldset></div>
|
||||
<div class="test"><fieldset style="display:block;"></fieldset></div>
|
||||
|
||||
<div class="test"><input type="button"></div>
|
||||
<div class="test"><input type="button" style="display:inline-block;"></div>
|
||||
<div class="test"><input type="button" style="display:list-item;"></div>
|
||||
<div class="test"><input type="button" style="display:block;"></div>
|
||||
|
||||
<div class="test"><input type="text"></div>
|
||||
<div class="test"><input type="text" style="display:inline-block;"></div>
|
||||
<div class="test"><input type="text" style="display:block;"></div>
|
||||
|
||||
<div class="test"><textarea></textarea></div>
|
||||
<div class="test"><textarea style="display:inline-block;"></textarea></div>
|
||||
<div class="test"><textarea style="display:block;"></textarea></div>
|
||||
|
||||
<div class="test"><select size="1" style=""><option> <option> </select></div>
|
||||
<div class="test"><select size="1" style="display:block;"><option> <option> </select></div>
|
||||
|
||||
<div class="test"><select size="4" style=""><option> <option> </select></div>
|
||||
<div class="test"><select size="4" style="display:block;"><option> <option> </select></div>
|
||||
</div>
|
||||
|
||||
<div style="position:absolute; top:0; left:100px;">
|
||||
<div class="test"><iframe src="about:blank" style=""></iframe></div>
|
||||
<div class="test"><iframe src="about:blank" style="display:block"></iframe></div>
|
||||
|
||||
<div class="test"> <img src="../image/big.png"></div>
|
||||
<div class="test"> <img style="display:inline-block;" src="../image/big.png"></div>
|
||||
<div class="test"><img style="display:block;" src="../image/big.png"></div>
|
||||
|
||||
<div class="test"><hr style="display:inline;background:lime;vertical-align:top;padding-top:100px;padding-bottom:100px; border-width:0"></div>
|
||||
<div class="test"><hr style="display:inline-block;vertical-align:top"></div>
|
||||
<div class="test"><hr style="display:block;"></div>
|
||||
|
||||
<div class="test"><span style="border-width:0"></span></div>
|
||||
<div class="test"><span style="display:inline-block;"></span></div>
|
||||
<div class="test"><span style="display:inline-table;"></span></div>
|
||||
<div class="test"><span style="display:list-item;"></span></div>
|
||||
<div class="test"><span style="display:block;"></span></div>
|
||||
<div class="test rel">1<span style="position:relative;"></span></div>
|
||||
<div class="test rel">2<span style="position:absolute"></span></div>
|
||||
<div class="test rel">3<span style="position:absolute; left:60px"></span></div>
|
||||
<div class="test rel">4<x></x><span style="position:absolute;">abs4</span></div>
|
||||
<div class="test"><span style="float:left"></span></div>
|
||||
<div class="test"><span style="float:left; margin-left:-10px"></span></div>
|
||||
<div class="test"><span style="float:right; margin-right:-10px"></span></div>
|
||||
</div>
|
||||
|
||||
</body></html>
|
@ -14,3 +14,4 @@ HTTP(..) == standards-decorations.html standards-decorations-ref.html
|
||||
HTTP(..) == standards-line-height.html standards-line-height-ref.html
|
||||
HTTP(..) == selection.html selection-ref.html
|
||||
HTTP(..) == marker-shadow.html marker-shadow-ref.html
|
||||
== clipped-elements.html clipped-elements-ref.html
|
||||
|
Loading…
x
Reference in New Issue
Block a user