зеркало из https://github.com/mozilla/gecko-dev.git
Backed out 3 changesets (bug 1712703) for causing nsLineLayout related crashes CLOSED TREE
Backed out changeset 18c753fda684 (bug 1712703) Backed out changeset e54195c66f87 (bug 1712703) Backed out changeset fa98b4c11d52 (bug 1712703)
This commit is contained in:
Родитель
e465420048
Коммит
4583632812
|
@ -3024,36 +3024,6 @@ void nsLineLayout::ExpandInlineRubyBoxes(PerSpanData* aSpan) {
|
|||
}
|
||||
}
|
||||
|
||||
nscoord nsLineLayout::GetHangFrom(const PerSpanData* aSpan, bool aLineIsRTL) {
|
||||
const PerFrameData* pfd = aSpan->mLastFrame;
|
||||
nscoord result = 0;
|
||||
while (pfd) {
|
||||
if (const PerSpanData* childSpan = pfd->mSpan) {
|
||||
return GetHangFrom(childSpan, aLineIsRTL);
|
||||
}
|
||||
if (pfd->mIsTextFrame) {
|
||||
const auto* lastText = static_cast<const nsTextFrame*>(pfd->mFrame);
|
||||
result = lastText->GetHangableISize();
|
||||
// If the hangable space will be at the start edge of the line, due to
|
||||
// its bidi direction being against the line direction, we flag this by
|
||||
// negating the advance.
|
||||
if (lastText->GetTextRun(nsTextFrame::eInflated)->IsRightToLeft() !=
|
||||
aLineIsRTL) {
|
||||
result = -result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
if (!pfd->mSkipWhenTrimmingWhitespace) {
|
||||
// If we hit a frame on the end that's not text and not a placeholder or
|
||||
// <br>, then there is no trailing whitespace to hang. Stop the search.
|
||||
return result;
|
||||
}
|
||||
// Scan back for a preceding frame whose whitespace we can hang.
|
||||
pfd = pfd->mPrev;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// Align inline frames within the line according to the CSS text-align
|
||||
// property.
|
||||
void nsLineLayout::TextAlignLine(nsLineBox* aLine, bool aIsLastLine) {
|
||||
|
@ -3079,14 +3049,8 @@ void nsLineLayout::TextAlignLine(nsLineBox* aLine, bool aIsLastLine) {
|
|||
StyleTextAlign textAlign =
|
||||
aIsLastLine ? mStyleText->TextAlignForLastLine() : mStyleText->mTextAlign;
|
||||
|
||||
// Check if there's trailing whitespace we need to "hang" at line-wrap.
|
||||
nscoord hang = 0;
|
||||
if (aLine->IsLineWrapped()) {
|
||||
hang = GetHangFrom(mRootSpan, lineWM.IsBidiRTL());
|
||||
}
|
||||
|
||||
bool isSVG = LineContainerFrame()->IsInSVGTextSubtree();
|
||||
bool doTextAlign = remainingISize > 0 || hang != 0;
|
||||
bool doTextAlign = remainingISize > 0;
|
||||
|
||||
int32_t additionalGaps = 0;
|
||||
if (!isSVG &&
|
||||
|
@ -3143,40 +3107,31 @@ void nsLineLayout::TextAlignLine(nsLineBox* aLine, bool aIsLastLine) {
|
|||
|
||||
case StyleTextAlign::Start:
|
||||
case StyleTextAlign::Char:
|
||||
// Default alignment is to start edge so do nothing, except to apply
|
||||
// any "reverse-hang" amount resulting from reversed-direction trailing
|
||||
// space.
|
||||
// default alignment is to start edge so do nothing.
|
||||
// Char is for tables so treat as start if we find it in block layout.
|
||||
if (hang < 0) {
|
||||
dx = hang;
|
||||
}
|
||||
break;
|
||||
|
||||
case StyleTextAlign::Left:
|
||||
case StyleTextAlign::MozLeft:
|
||||
if (lineWM.IsBidiRTL()) {
|
||||
dx = remainingISize + (hang > 0 ? hang : 0);
|
||||
} else if (hang < 0) {
|
||||
dx = hang;
|
||||
dx = remainingISize;
|
||||
}
|
||||
break;
|
||||
|
||||
case StyleTextAlign::Right:
|
||||
case StyleTextAlign::MozRight:
|
||||
if (lineWM.IsBidiLTR()) {
|
||||
dx = remainingISize + (hang > 0 ? hang : 0);
|
||||
} else if (hang < 0) {
|
||||
dx = hang;
|
||||
dx = remainingISize;
|
||||
}
|
||||
break;
|
||||
|
||||
case StyleTextAlign::End:
|
||||
dx = remainingISize + (hang > 0 ? hang : 0);
|
||||
dx = remainingISize;
|
||||
break;
|
||||
|
||||
case StyleTextAlign::Center:
|
||||
case StyleTextAlign::MozCenter:
|
||||
dx = (remainingISize + hang) / 2;
|
||||
dx = remainingISize / 2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -524,10 +524,6 @@ class nsLineLayout {
|
|||
.GetPhysicalSize(mRootSpan->mWritingMode);
|
||||
}
|
||||
|
||||
// Get the advance of any trailing hangable whitespace. If the whitespace
|
||||
// has directionality opposite to the line, the result is negated.
|
||||
nscoord GetHangFrom(const PerSpanData* aSpan, bool aLineIsRTL);
|
||||
|
||||
gfxBreakPriority mLastOptionalBreakPriority;
|
||||
int32_t mLastOptionalBreakFrameOffset;
|
||||
int32_t mForceBreakFrameOffset;
|
||||
|
|
|
@ -197,8 +197,6 @@ NS_DECLARE_FRAME_PROPERTY_RELEASABLE(UninflatedTextRunProperty, gfxTextRun)
|
|||
|
||||
NS_DECLARE_FRAME_PROPERTY_SMALL_VALUE(FontSizeInflationProperty, float)
|
||||
|
||||
NS_DECLARE_FRAME_PROPERTY_SMALL_VALUE(HangableWhitespaceProperty, nscoord)
|
||||
|
||||
struct nsTextFrame::PaintTextSelectionParams : nsTextFrame::PaintTextParams {
|
||||
Point textBaselinePt;
|
||||
PropertyProvider* provider = nullptr;
|
||||
|
@ -8150,25 +8148,6 @@ void nsTextFrame::SetFontSizeInflation(float aInflation) {
|
|||
SetProperty(FontSizeInflationProperty(), aInflation);
|
||||
}
|
||||
|
||||
void nsTextFrame::SetHangableISize(nscoord aISize) {
|
||||
MOZ_ASSERT(aISize >= 0, "unexpected negative hangable advance");
|
||||
if (aISize <= 0) {
|
||||
if (mHasHangableWS) {
|
||||
RemoveProperty(HangableWhitespaceProperty());
|
||||
}
|
||||
mHasHangableWS = false;
|
||||
return;
|
||||
}
|
||||
SetProperty(HangableWhitespaceProperty(), aISize);
|
||||
mHasHangableWS = true;
|
||||
}
|
||||
|
||||
nscoord nsTextFrame::GetHangableISize() const {
|
||||
MOZ_ASSERT(mHasHangableWS == HasProperty(HangableWhitespaceProperty()),
|
||||
"flag/property mismatch!");
|
||||
return mHasHangableWS ? GetProperty(HangableWhitespaceProperty()) : 0;
|
||||
}
|
||||
|
||||
/* virtual */
|
||||
void nsTextFrame::MarkIntrinsicISizesDirty() {
|
||||
ClearTextRuns();
|
||||
|
@ -9263,23 +9242,16 @@ void nsTextFrame::ReflowText(nsLineLayout& aLineLayout, nscoord aAvailableWidth,
|
|||
textMetrics.mAdvanceWidth -= trimmableWidth;
|
||||
trimmableWidth = 0.0;
|
||||
}
|
||||
SetHangableISize(0);
|
||||
} else if (whitespaceCanHang) {
|
||||
// Figure out how much whitespace will hang if at end-of-line.
|
||||
// Figure out how much will hang.
|
||||
// XXX This probably needs to be passed down and handled by nsLineLayout
|
||||
// rather than here, e.g. for bug 1712703 and 1253840.
|
||||
gfxFloat hang =
|
||||
std::min(std::max(0.0, textMetrics.mAdvanceWidth - availWidth),
|
||||
trimmableWidth);
|
||||
SetHangableISize(NSToCoordRound(trimmableWidth - hang));
|
||||
textMetrics.mAdvanceWidth -= hang;
|
||||
trimmableWidth = 0.0;
|
||||
} else {
|
||||
MOZ_ASSERT_UNREACHABLE("How did trimmableWidth get set?!");
|
||||
SetHangableISize(0);
|
||||
trimmableWidth = 0.0;
|
||||
}
|
||||
} else {
|
||||
// Remove any stale frame property.
|
||||
SetHangableISize(0);
|
||||
}
|
||||
|
||||
if (!brokeText && lastBreak >= 0) {
|
||||
|
|
|
@ -771,9 +771,6 @@ class nsTextFrame : public nsIFrame {
|
|||
// (To be used only on the first textframe in the chain.)
|
||||
nsTextFrame* FindContinuationForOffset(int32_t aOffset);
|
||||
|
||||
void SetHangableISize(nscoord aISize);
|
||||
nscoord GetHangableISize() const;
|
||||
|
||||
protected:
|
||||
virtual ~nsTextFrame();
|
||||
|
||||
|
@ -811,11 +808,6 @@ class nsTextFrame : public nsIFrame {
|
|||
// Whether a cached continuations array is present.
|
||||
bool mHasContinuationsProperty = false;
|
||||
|
||||
// Whether a HangableWhitespace property is present. This could have been a
|
||||
// frame state bit, but they are currently full. Because we have a uint8_t
|
||||
// and a bool just above, there's a hole here that we can use.
|
||||
bool mHasHangableWS = false;
|
||||
|
||||
/**
|
||||
* Return true if the frame is part of a Selection.
|
||||
* Helper method to implement the public IsSelected() API.
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[text-transform-fullwidth-009.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[pre-wrap-012.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[pre-wrap-013.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[pre-wrap-019.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[textarea-pre-wrap-013.html]
|
||||
expected: FAIL
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-center-001-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly centered:</p>
|
||||
|
||||
<div class=test>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-center-002-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly centered:</p>
|
||||
|
||||
<div class=test dir=rtl>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,29 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-center-003-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: center;
|
||||
unicode-bidi: bidi-override;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly centered:</p>
|
||||
|
||||
<div class=test dir=rtl>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-right-001-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: end;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly right-aligned:</p>
|
||||
|
||||
<div class=test>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-left-002-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: end;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly left-aligned:</p>
|
||||
|
||||
<div class=test dir=rtl>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,29 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-left-003-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: end;
|
||||
unicode-bidi: bidi-override;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly left-aligned:</p>
|
||||
|
||||
<div class=test dir=rtl>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-left-001-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: left;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly left-aligned:</p>
|
||||
|
||||
<div class=test>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-left-002-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: left;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly left-aligned:</p>
|
||||
|
||||
<div class=test dir=rtl>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,29 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-left-003-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: left;
|
||||
unicode-bidi: bidi-override;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly left-aligned:</p>
|
||||
|
||||
<div class=test dir=rtl>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-right-001-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly right-aligned:</p>
|
||||
|
||||
<div class=test>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-right-002-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly right-aligned:</p>
|
||||
|
||||
<div class=test dir=rtl>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,29 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-right-003-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: right;
|
||||
unicode-bidi: bidi-override;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly right-aligned:</p>
|
||||
|
||||
<div class=test dir=rtl>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-left-001-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: start;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly left-aligned:</p>
|
||||
|
||||
<div class=test>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-right-002-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: start;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly right-aligned:</p>
|
||||
|
||||
<div class=test dir=rtl>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,29 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text test: white-space:pre-wrap vs text-align</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<meta name="assert" content="white-space at end of line must hang">
|
||||
<link rel="match" href="reference/pre-wrap-align-right-003-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: pre-wrap;
|
||||
text-align: start;
|
||||
unicode-bidi: bidi-override;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly right-aligned:</p>
|
||||
|
||||
<div class=test dir=rtl>one two three four five
|
||||
six seven eight nine ten.
|
||||
un deux trois quatre cinq
|
||||
six sept huit neuf dix</div>
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: normal;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly centered:</p>
|
||||
|
||||
<div class=test>one two three<br>
|
||||
four five<br>
|
||||
six seven eight<br>
|
||||
nine ten.<br>
|
||||
un deux trois<br>
|
||||
quatre cinq<br>
|
||||
six sept huit<br>
|
||||
neuf dix</div>
|
|
@ -1,29 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: normal;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly centered:</p>
|
||||
|
||||
<!-- testcase has dir=rtl -->
|
||||
<div class=test>one two three<br>
|
||||
four five<br>
|
||||
six seven eight<br>
|
||||
.nine ten<br>
|
||||
un deux trois<br>
|
||||
quatre cinq<br>
|
||||
six sept huit<br>
|
||||
neuf dix</div>
|
|
@ -1,29 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: normal;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly centered:</p>
|
||||
|
||||
<!-- testcase has dir=rtl and bidi-override -->
|
||||
<div class=test>eerht owt eno<br>
|
||||
evif ruof<br>
|
||||
thgie neves xis<br>
|
||||
.net enin<br>
|
||||
siort xued nu<br>
|
||||
qnic ertauq<br>
|
||||
tiuh tpes xis<br>
|
||||
xid fuen</div>
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: normal;
|
||||
text-align: left;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly left-aligned:</p>
|
||||
|
||||
<div class=test>one two three<br>
|
||||
four five<br>
|
||||
six seven eight<br>
|
||||
nine ten.<br>
|
||||
un deux trois<br>
|
||||
quatre cinq<br>
|
||||
six sept huit<br>
|
||||
neuf dix</div>
|
|
@ -1,29 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: normal;
|
||||
text-align: left;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly left-aligned:</p>
|
||||
|
||||
<!-- testcase has dir=rtl -->
|
||||
<div class=test>one two three<br>
|
||||
four five<br>
|
||||
six seven eight<br>
|
||||
.nine ten<br>
|
||||
un deux trois<br>
|
||||
quatre cinq<br>
|
||||
six sept huit<br>
|
||||
neuf dix</div>
|
|
@ -1,29 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: normal;
|
||||
text-align: left;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly left-aligned:</p>
|
||||
|
||||
<!-- testcase has dir=rtl and bidi-override -->
|
||||
<div class=test>eerht owt eno<br>
|
||||
evif ruof<br>
|
||||
thgie neves xis<br>
|
||||
.net enin<br>
|
||||
siort xued nu<br>
|
||||
qnic ertauq<br>
|
||||
tiuh tpes xis<br>
|
||||
xid fuen</div>
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: normal;
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly right-aligned:</p>
|
||||
|
||||
<div class=test>one two three<br>
|
||||
four five<br>
|
||||
six seven eight<br>
|
||||
nine ten.<br>
|
||||
un deux trois<br>
|
||||
quatre cinq<br>
|
||||
six sept huit<br>
|
||||
neuf dix</div>
|
|
@ -1,29 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: normal;
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly right-aligned:</p>
|
||||
|
||||
<!-- testcase has dir=rtl -->
|
||||
<div class=test>one two three<br>
|
||||
four five<br>
|
||||
six seven eight<br>
|
||||
.nine ten<br>
|
||||
un deux trois<br>
|
||||
quatre cinq<br>
|
||||
six sept huit<br>
|
||||
neuf dix</div>
|
|
@ -1,29 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
<style>
|
||||
.test {
|
||||
font: 20px Ahem, monospace;
|
||||
width: 15ch;
|
||||
border: 1px solid gray;
|
||||
padding: 5px;
|
||||
white-space: normal;
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<p>The text on each line should be neatly right-aligned:</p>
|
||||
|
||||
<!-- testcase has dir=rtl and bidi-override -->
|
||||
<div class=test>eerht owt eno<br>
|
||||
evif ruof<br>
|
||||
thgie neves xis<br>
|
||||
.net enin<br>
|
||||
siort xued nu<br>
|
||||
qnic ertauq<br>
|
||||
tiuh tpes xis<br>
|
||||
xid fuen</div>
|
Загрузка…
Ссылка в новой задаче