Bug 1193488 - Update values of writing-mode and text-orientation to reflect the CSS WG decision to revise them in the Writing Modes spec. r=dholbert
This commit is contained in:
@@ -66,7 +66,7 @@ private:
|
||||
case NS_STYLE_TEXT_ORIENTATION_UPRIGHT:
|
||||
flags |= gfxTextRunFactory::TEXT_ORIENT_VERTICAL_UPRIGHT;
|
||||
break;
|
||||
case NS_STYLE_TEXT_ORIENTATION_SIDEWAYS_RIGHT:
|
||||
case NS_STYLE_TEXT_ORIENTATION_SIDEWAYS:
|
||||
flags |= gfxTextRunFactory::TEXT_ORIENT_VERTICAL_SIDEWAYS_RIGHT;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -6644,36 +6644,36 @@ nsLayoutUtils::GetTextRunFlagsForStyle(nsStyleContext* aStyleContext,
|
||||
/* static */ uint32_t
|
||||
nsLayoutUtils::GetTextRunOrientFlagsForStyle(nsStyleContext* aStyleContext)
|
||||
{
|
||||
WritingMode wm(aStyleContext);
|
||||
if (wm.IsVertical()) {
|
||||
uint8_t writingMode = aStyleContext->StyleVisibility()->mWritingMode;
|
||||
switch (writingMode) {
|
||||
case NS_STYLE_WRITING_MODE_HORIZONTAL_TB:
|
||||
return gfxTextRunFactory::TEXT_ORIENT_HORIZONTAL;
|
||||
|
||||
case NS_STYLE_WRITING_MODE_VERTICAL_LR:
|
||||
case NS_STYLE_WRITING_MODE_VERTICAL_RL:
|
||||
switch (aStyleContext->StyleVisibility()->mTextOrientation) {
|
||||
case NS_STYLE_TEXT_ORIENTATION_MIXED:
|
||||
return gfxTextRunFactory::TEXT_ORIENT_VERTICAL_MIXED;
|
||||
case NS_STYLE_TEXT_ORIENTATION_UPRIGHT:
|
||||
return gfxTextRunFactory::TEXT_ORIENT_VERTICAL_UPRIGHT;
|
||||
case NS_STYLE_TEXT_ORIENTATION_SIDEWAYS:
|
||||
// This should depend on writing mode vertical-lr vs vertical-rl,
|
||||
// but until we support SIDEWAYS_LEFT, we'll treat this the same
|
||||
// as SIDEWAYS_RIGHT and simply fall through.
|
||||
/*
|
||||
if (wm.IsVerticalLR()) {
|
||||
return gfxTextRunFactory::TEXT_ORIENT_VERTICAL_SIDEWAYS_LEFT;
|
||||
} else {
|
||||
return gfxTextRunFactory::TEXT_ORIENT_VERTICAL_SIDEWAYS_RIGHT;
|
||||
}
|
||||
*/
|
||||
case NS_STYLE_TEXT_ORIENTATION_SIDEWAYS_RIGHT:
|
||||
return gfxTextRunFactory::TEXT_ORIENT_VERTICAL_SIDEWAYS_RIGHT;
|
||||
case NS_STYLE_TEXT_ORIENTATION_SIDEWAYS_LEFT:
|
||||
// Not yet supported, so fall through to the default (error) case.
|
||||
/*
|
||||
return gfxTextRunFactory::TEXT_ORIENT_VERTICAL_SIDEWAYS_LEFT;
|
||||
*/
|
||||
default:
|
||||
NS_NOTREACHED("unknown text-orientation");
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* not yet implemented:
|
||||
case NS_STYLE_WRITING_MODE_SIDEWAYS_LR:
|
||||
return gfxTextRunFactory::TEXT_ORIENT_VERTICAL_SIDEWAYS_LEFT;
|
||||
*/
|
||||
case NS_STYLE_WRITING_MODE_SIDEWAYS_RL:
|
||||
return gfxTextRunFactory::TEXT_ORIENT_VERTICAL_SIDEWAYS_RIGHT;
|
||||
|
||||
default:
|
||||
NS_NOTREACHED("unknown writing-mode");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* static */ void
|
||||
|
||||
@@ -298,7 +298,13 @@ public:
|
||||
{ NS_SIDE_LEFT, NS_SIDE_RIGHT }, // vertical-lr
|
||||
};
|
||||
|
||||
// Ignore the SIDEWAYS_MASK bit of the writing-mode value, as this has no
|
||||
// effect on the side mappings.
|
||||
aWritingModeValue &= ~NS_STYLE_WRITING_MODE_SIDEWAYS_MASK;
|
||||
|
||||
// What's left of the writing-mode should be in the range 0-3:
|
||||
NS_ASSERTION(aWritingModeValue < 4, "invalid aWritingModeValue value");
|
||||
|
||||
return kLogicalBlockSides[aWritingModeValue][aEdge];
|
||||
}
|
||||
|
||||
@@ -454,12 +460,7 @@ public:
|
||||
eLineOrientMask |
|
||||
eOrientationMask;
|
||||
uint8_t textOrientation = aStyleContext->StyleVisibility()->mTextOrientation;
|
||||
#if 0 // not yet implemented
|
||||
if (textOrientation == NS_STYLE_TEXT_ORIENTATION_SIDEWAYS_LEFT) {
|
||||
mWritingMode &= ~eLineOrientMask;
|
||||
}
|
||||
#endif
|
||||
if (textOrientation >= NS_STYLE_TEXT_ORIENTATION_SIDEWAYS_RIGHT) {
|
||||
if (textOrientation == NS_STYLE_TEXT_ORIENTATION_SIDEWAYS) {
|
||||
mWritingMode |= eSidewaysMask;
|
||||
}
|
||||
break;
|
||||
@@ -469,17 +470,24 @@ public:
|
||||
{
|
||||
mWritingMode = eOrientationMask;
|
||||
uint8_t textOrientation = aStyleContext->StyleVisibility()->mTextOrientation;
|
||||
#if 0 // not yet implemented
|
||||
if (textOrientation == NS_STYLE_TEXT_ORIENTATION_SIDEWAYS_LEFT) {
|
||||
mWritingMode |= eLineOrientMask;
|
||||
}
|
||||
#endif
|
||||
if (textOrientation >= NS_STYLE_TEXT_ORIENTATION_SIDEWAYS_RIGHT) {
|
||||
if (textOrientation == NS_STYLE_TEXT_ORIENTATION_SIDEWAYS) {
|
||||
mWritingMode |= eSidewaysMask;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case NS_STYLE_WRITING_MODE_SIDEWAYS_LR:
|
||||
mWritingMode = eBlockFlowMask |
|
||||
eInlineFlowMask |
|
||||
eOrientationMask |
|
||||
eSidewaysMask;
|
||||
break;
|
||||
|
||||
case NS_STYLE_WRITING_MODE_SIDEWAYS_RL:
|
||||
mWritingMode = eOrientationMask |
|
||||
eSidewaysMask;
|
||||
break;
|
||||
|
||||
default:
|
||||
NS_NOTREACHED("unknown writing mode!");
|
||||
mWritingMode = 0;
|
||||
@@ -487,8 +495,7 @@ public:
|
||||
}
|
||||
|
||||
if (NS_STYLE_DIRECTION_RTL == styleVisibility->mDirection) {
|
||||
mWritingMode |= eInlineFlowMask | //XXX needs update when text-orientation added
|
||||
eBidiMask;
|
||||
mWritingMode ^= eInlineFlowMask | eBidiMask;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -580,7 +587,10 @@ private:
|
||||
// Note: We have one excess bit of info; WritingMode can pack into 4 bits.
|
||||
// But since we have space, we're caching interesting things for fast access.
|
||||
|
||||
eSidewaysMask = 0x20, // true means text-orientation is sideways-*,
|
||||
eSidewaysMask = 0x20, // true means text is being rendered vertically
|
||||
// using rotated glyphs (i.e. writing-mode is
|
||||
// sideways-*, or writing-mode is vertical-* AND
|
||||
// text-orientation is sideways),
|
||||
// which means we'll use alphabetic instead of
|
||||
// centered default baseline for vertical text
|
||||
|
||||
|
||||
@@ -484,9 +484,10 @@ CSS_KEY(separate, separate)
|
||||
CSS_KEY(sepia, sepia)
|
||||
CSS_KEY(serif, serif)
|
||||
CSS_KEY(show, show)
|
||||
/* CSS_KEY(sideways, sideways) */
|
||||
/* CSS_KEY(sideways-left, sideways_left) */
|
||||
CSS_KEY(sideways-right, sideways_right)
|
||||
CSS_KEY(sideways, sideways)
|
||||
/*CSS_KEY(sideways-lr, sideways_lr)*/
|
||||
CSS_KEY(sideways-right, sideways_right) /* alias for 'sideways' */
|
||||
CSS_KEY(sideways-rl, sideways_rl)
|
||||
CSS_KEY(simp-chinese-formal, simp_chinese_formal)
|
||||
CSS_KEY(simp-chinese-informal, simp_chinese_informal)
|
||||
CSS_KEY(simplified, simplified)
|
||||
|
||||
@@ -1775,9 +1775,8 @@ const KTableValue nsCSSProps::kTextDecorationStyleKTable[] = {
|
||||
const KTableValue nsCSSProps::kTextOrientationKTable[] = {
|
||||
eCSSKeyword_mixed, NS_STYLE_TEXT_ORIENTATION_MIXED,
|
||||
eCSSKeyword_upright, NS_STYLE_TEXT_ORIENTATION_UPRIGHT,
|
||||
eCSSKeyword_sideways_right, NS_STYLE_TEXT_ORIENTATION_SIDEWAYS_RIGHT,
|
||||
/* eCSSKeyword_sideways_left, NS_STYLE_TEXT_ORIENTATION_SIDEWAYS_LEFT, */
|
||||
/* eCSSKeyword_sideways, NS_STYLE_TEXT_ORIENTATION_SIDEWAYS, */
|
||||
eCSSKeyword_sideways, NS_STYLE_TEXT_ORIENTATION_SIDEWAYS,
|
||||
eCSSKeyword_sideways_right, NS_STYLE_TEXT_ORIENTATION_SIDEWAYS,
|
||||
eCSSKeyword_UNKNOWN, -1
|
||||
};
|
||||
|
||||
@@ -1945,6 +1944,8 @@ const KTableValue nsCSSProps::kWritingModeKTable[] = {
|
||||
eCSSKeyword_horizontal_tb, NS_STYLE_WRITING_MODE_HORIZONTAL_TB,
|
||||
eCSSKeyword_vertical_lr, NS_STYLE_WRITING_MODE_VERTICAL_LR,
|
||||
eCSSKeyword_vertical_rl, NS_STYLE_WRITING_MODE_VERTICAL_RL,
|
||||
/* eCSSKeyword_sideways_lr, NS_STYLE_WRITING_MODE_SIDEWAYS_LR, */
|
||||
eCSSKeyword_sideways_rl, NS_STYLE_WRITING_MODE_SIDEWAYS_RL,
|
||||
eCSSKeyword_lr, NS_STYLE_WRITING_MODE_HORIZONTAL_TB,
|
||||
eCSSKeyword_lr_tb, NS_STYLE_WRITING_MODE_HORIZONTAL_TB,
|
||||
eCSSKeyword_rl, NS_STYLE_WRITING_MODE_HORIZONTAL_TB,
|
||||
|
||||
@@ -7641,6 +7641,8 @@ nsRuleNode::ComputePositionData(void* aStartStruct,
|
||||
break;
|
||||
case NS_STYLE_WRITING_MODE_VERTICAL_RL:
|
||||
case NS_STYLE_WRITING_MODE_VERTICAL_LR:
|
||||
case NS_STYLE_WRITING_MODE_SIDEWAYS_RL:
|
||||
case NS_STYLE_WRITING_MODE_SIDEWAYS_LR:
|
||||
vertical = true;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -399,12 +399,25 @@ static inline mozilla::css::Side operator++(mozilla::css::Side& side, int) {
|
||||
#define NS_STYLE_DIRECTION_RTL 1
|
||||
|
||||
// See nsStyleVisibility
|
||||
// WritingModes.h depends on the particular values used here
|
||||
// NOTE: WritingModes.h depends on the particular values used here.
|
||||
#define NS_STYLE_WRITING_MODE_HORIZONTAL_TB 0
|
||||
#define NS_STYLE_WRITING_MODE_VERTICAL_RL 1
|
||||
// #define NS_STYLE_WRITING_MODE_HORIZONTAL_BT 2 // hypothetical
|
||||
#define NS_STYLE_WRITING_MODE_VERTICAL_LR 3
|
||||
|
||||
// Single-bit flag, used in combination with VERTICAL_LR and _RL to specify
|
||||
// the corresponding SIDEWAYS_* modes.
|
||||
// (To avoid ambiguity, this bit must be high enough such that no other
|
||||
// values here accidentally use it in their binary representation.)
|
||||
#define NS_STYLE_WRITING_MODE_SIDEWAYS_MASK 4
|
||||
|
||||
#define NS_STYLE_WRITING_MODE_SIDEWAYS_RL \
|
||||
(NS_STYLE_WRITING_MODE_VERTICAL_RL | \
|
||||
NS_STYLE_WRITING_MODE_SIDEWAYS_MASK)
|
||||
#define NS_STYLE_WRITING_MODE_SIDEWAYS_LR \
|
||||
(NS_STYLE_WRITING_MODE_VERTICAL_LR | \
|
||||
NS_STYLE_WRITING_MODE_SIDEWAYS_MASK)
|
||||
|
||||
// See nsStyleDisplay
|
||||
#define NS_STYLE_DISPLAY_NONE 0
|
||||
#define NS_STYLE_DISPLAY_BLOCK 1
|
||||
@@ -879,9 +892,7 @@ static inline mozilla::css::Side operator++(mozilla::css::Side& side, int) {
|
||||
// See nsStyleText
|
||||
#define NS_STYLE_TEXT_ORIENTATION_MIXED 0
|
||||
#define NS_STYLE_TEXT_ORIENTATION_UPRIGHT 1
|
||||
#define NS_STYLE_TEXT_ORIENTATION_SIDEWAYS_RIGHT 2
|
||||
#define NS_STYLE_TEXT_ORIENTATION_SIDEWAYS_LEFT 3 /* placeholder, not yet parsed */
|
||||
#define NS_STYLE_TEXT_ORIENTATION_SIDEWAYS 4 /* placeholder, not yet parsed */
|
||||
#define NS_STYLE_TEXT_ORIENTATION_SIDEWAYS 2
|
||||
|
||||
// See nsStyleText
|
||||
#define NS_STYLE_TEXT_COMBINE_UPRIGHT_NONE 0
|
||||
|
||||
@@ -4577,12 +4577,24 @@ function logical_axis_prop_get_computed(cs, property)
|
||||
var orientation = writingMode.substring(0, writingMode.indexOf("-"));
|
||||
|
||||
var mappings = {
|
||||
"block-size": { horizontal: "height", vertical: "width" },
|
||||
"inline-size": { horizontal: "width", vertical: "height" },
|
||||
"max-block-size": { horizontal: "max-height", vertical: "max-width" },
|
||||
"max-inline-size": { horizontal: "max-width", vertical: "max-height" },
|
||||
"min-block-size": { horizontal: "min-height", vertical: "min-width" },
|
||||
"min-inline-size": { horizontal: "min-width", vertical: "min-height" },
|
||||
"block-size": { horizontal: "height",
|
||||
vertical: "width",
|
||||
sideways: "width" },
|
||||
"inline-size": { horizontal: "width",
|
||||
vertical: "height",
|
||||
sideways: "height" },
|
||||
"max-block-size": { horizontal: "max-height",
|
||||
vertical: "max-width",
|
||||
sideways: "max-width" },
|
||||
"max-inline-size": { horizontal: "max-width",
|
||||
vertical: "max-height",
|
||||
sideways: "max-height" },
|
||||
"min-block-size": { horizontal: "min-height",
|
||||
vertical: "min-width",
|
||||
sideways: "min-width" },
|
||||
"min-inline-size": { horizontal: "min-width",
|
||||
vertical: "min-height",
|
||||
sideways: "min-height" },
|
||||
};
|
||||
|
||||
if (!mappings[property]) {
|
||||
@@ -4601,51 +4613,42 @@ function logical_box_prop_get_computed(cs, property)
|
||||
{
|
||||
// http://dev.w3.org/csswg/css-writing-modes-3/#logical-to-physical
|
||||
|
||||
// Use defaults for these two properties in case the vertical text
|
||||
// pref (which they live behind) is turned off.
|
||||
// Use default for writing-mode in case the vertical text
|
||||
// pref (which it lives behind) is turned off.
|
||||
var writingMode = cs.getPropertyValue("writing-mode") || "horizontal-tb";
|
||||
var textOrientation = cs.getPropertyValue("text-orientation") || "mixed";
|
||||
|
||||
var direction = cs.getPropertyValue("direction");
|
||||
|
||||
// We only need to distinguish between text-orientation values of
|
||||
// sideways-left and {mixed,upright,sideways-right} (which we will
|
||||
// call "others").
|
||||
|
||||
if (textOrientation == "sideways") {
|
||||
// text-orientation does not contribute to the logical to physical
|
||||
// mapping when writing-mode is horizontal-tb, so it doesn't matter
|
||||
// that we convert it to sideways-left in that case.
|
||||
textOrientation = writingMode == "vertical-rl" ? "others" : "sideways-left";
|
||||
} else if (textOrientation != "sideways-left") {
|
||||
textOrientation = "others";
|
||||
}
|
||||
|
||||
// keys in blockMappings are writing-mode values
|
||||
var blockMappings = {
|
||||
"horizontal-tb": { "start": "top", "end": "bottom" },
|
||||
"vertical-rl": { "start": "right", "end": "left" },
|
||||
"vertical-lr": { "start": "left", "end": "right" },
|
||||
"sideways-rl": { "start": "right", "end": "left" },
|
||||
"sideways-lr": { "start": "left", "end": "right" },
|
||||
};
|
||||
|
||||
// keys in inlineMappings are regular expressions that match against
|
||||
// a {writing-mode,text-orientation,direction} triple as a space-
|
||||
// separated string
|
||||
// a {writing-mode,direction} pair as a space-separated string
|
||||
var inlineMappings = {
|
||||
"horizontal-tb \\S+ ltr": { "start": "left", "end": "right" },
|
||||
"horizontal-tb \\S+ rtl": { "start": "right", "end": "left" },
|
||||
"vertical-.. sideways-left ltr": { "start": "bottom", "end": "top" },
|
||||
"vertical-.. sideways-left rtl": { "start": "top", "end": "bottom" },
|
||||
"vertical-.. others ltr": { "start": "top", "end": "bottom" },
|
||||
"vertical-.. others rtl": { "start": "bottom", "end": "top" },
|
||||
"horizontal-tb ltr": { "start": "left", "end": "right" },
|
||||
"horizontal-tb rtl": { "start": "right", "end": "left" },
|
||||
"vertical-.. ltr": { "start": "bottom", "end": "top" },
|
||||
"vertical-.. rtl": { "start": "top", "end": "bottom" },
|
||||
"vertical-.. ltr": { "start": "top", "end": "bottom" },
|
||||
"vertical-.. rtl": { "start": "bottom", "end": "top" },
|
||||
"sideways-lr ltr": { "start": "bottom", "end": "top" },
|
||||
"sideways-lr rtl": { "start": "top", "end": "bottom" },
|
||||
"sideways-rl ltr": { "start": "top", "end": "bottom" },
|
||||
"sideways-rl rtl": { "start": "bottom", "end": "top" },
|
||||
};
|
||||
|
||||
var blockMapping = blockMappings[writingMode];
|
||||
var inlineMapping;
|
||||
|
||||
// test each regular expression in inlineMappings against the
|
||||
// {writing-mode,text-orientation,direction} triple
|
||||
var key = `${writingMode} ${textOrientation} ${direction}`;
|
||||
// {writing-mode,direction} pair
|
||||
var key = `${writingMode} ${direction}`;
|
||||
for (var k in inlineMappings) {
|
||||
if (new RegExp(k).test(key)) {
|
||||
inlineMapping = inlineMappings[k];
|
||||
@@ -4728,16 +4731,16 @@ if (SpecialPowers.getBoolPref("layout.css.vertical-text.enabled")) {
|
||||
inherited: true,
|
||||
type: CSS_TYPE_LONGHAND,
|
||||
initial_values: [ "horizontal-tb", "lr", "lr-tb", "rl", "rl-tb" ],
|
||||
other_values: [ "vertical-lr", "vertical-rl", "tb", "tb-rl" ],
|
||||
invalid_values: [ "10px", "30%", "justify", "auto", "1em" ]
|
||||
other_values: [ "vertical-lr", "vertical-rl", "sideways-rl", "tb", "tb-rl" ],
|
||||
invalid_values: [ "10px", "30%", "justify", "auto", "1em", "sideways-lr" ] /* sideways-lr not yet supported */
|
||||
},
|
||||
"text-orientation": {
|
||||
domProp: "textOrientation",
|
||||
inherited: true,
|
||||
type: CSS_TYPE_LONGHAND,
|
||||
initial_values: [ "mixed" ],
|
||||
other_values: [ "upright", "sideways-right" ],
|
||||
invalid_values: [ "none", "3em", "sideways", "sideways-left" ] /* sideways, sideways-left not yet supported */
|
||||
other_values: [ "upright", "sideways", "sideways-right" ], /* sideways-right alias for backward compatibility */
|
||||
invalid_values: [ "none", "3em", "sideways-left" ] /* sideways-left removed from CSS Writing Modes */
|
||||
},
|
||||
"border-block-end": {
|
||||
domProp: "borderBlockEnd",
|
||||
|
||||
@@ -43,60 +43,42 @@ var gValues = {
|
||||
"border-style": ["solid", "dashed", "dotted", "double", "groove"],
|
||||
};
|
||||
|
||||
// six unique overall writing modes
|
||||
// Six unique overall writing modes for property-mapping purposes.
|
||||
// Note that text-orientation does not affect these mappings, now that
|
||||
// the proposed sideways-left value no longer exists (superseded in CSS
|
||||
// Writing Modes by writing-mode: sideways-lr).
|
||||
var gWritingModes = [
|
||||
{ style: [
|
||||
"writing-mode: horizontal-tb; text-orientation: mixed; direction: ltr; ",
|
||||
"writing-mode: horizontal-tb; text-orientation: upright; direction: ltr; ",
|
||||
"writing-mode: horizontal-tb; text-orientation: sideways-right; direction: ltr; ",
|
||||
// XXX See the todo()s below.
|
||||
// "writing-mode: horizontal-tb; text-orientation: sideways-left; direction: ltr; ",
|
||||
// "writing-mode: horizontal-tb; text-orientation: sideways; direction: ltr; ",
|
||||
"writing-mode: horizontal-tb; direction: ltr; ",
|
||||
],
|
||||
blockStart: "top", blockEnd: "bottom", inlineStart: "left", inlineEnd: "right",
|
||||
block: "vertical", inline: "horizontal" },
|
||||
{ style: [
|
||||
"writing-mode: horizontal-tb; text-orientation: mixed; direction: rtl; ",
|
||||
"writing-mode: horizontal-tb; text-orientation: upright; direction: rtl; ",
|
||||
"writing-mode: horizontal-tb; text-orientation: sideways-right; direction: rtl; ",
|
||||
// "writing-mode: horizontal-tb; text-orientation: sideways-left; direction: rtl; ",
|
||||
// "writing-mode: horizontal-tb; text-orientation: sideways; direction: rtl; ",
|
||||
"writing-mode: horizontal-tb; direction: rtl; ",
|
||||
],
|
||||
blockStart: "top", blockEnd: "bottom", inlineStart: "right", inlineEnd: "left",
|
||||
block: "vertical", inline: "horizontal" },
|
||||
{ style: [
|
||||
"writing-mode: vertical-rl; text-orientation: mixed; direction: rtl; ",
|
||||
"writing-mode: vertical-rl; text-orientation: upright; direction: rtl; ",
|
||||
"writing-mode: vertical-rl; text-orientation: sideways-right; direction: rtl; ",
|
||||
// "writing-mode: vertical-rl; text-orientation: sideways-left; direction: ltr; ",
|
||||
// "writing-mode: vertical-rl; text-orientation: sideways; direction: rtl; ",
|
||||
"writing-mode: vertical-rl; direction: rtl; ",
|
||||
"writing-mode: sideways-rl; direction: rtl; ",
|
||||
],
|
||||
blockStart: "right", blockEnd: "left", inlineStart: "bottom", inlineEnd: "top",
|
||||
block: "horizontal", inline: "vertical" },
|
||||
{ style: [
|
||||
"writing-mode: vertical-rl; text-orientation: mixed; direction: ltr; ",
|
||||
"writing-mode: vertical-rl; text-orientation: upright; direction: ltr; ",
|
||||
"writing-mode: vertical-rl; text-orientation: sideways-right; direction: ltr; ",
|
||||
// "writing-mode: vertical-rl; text-orientation: sideways-left; direction: rtl; ",
|
||||
// "writing-mode: vertical-rl; text-orientation: sideways; direction: ltr; ",
|
||||
"writing-mode: vertical-rl; direction: ltr; ",
|
||||
"writing-mode: sideways-rl; direction: ltr; ",
|
||||
],
|
||||
blockStart: "right", blockEnd: "left", inlineStart: "top", inlineEnd: "bottom",
|
||||
block: "horizontal", inline: "vertical" },
|
||||
{ style: [
|
||||
"writing-mode: vertical-lr; text-orientation: mixed; direction: rtl; ",
|
||||
"writing-mode: vertical-lr; text-orientation: upright; direction: rtl; ",
|
||||
"writing-mode: vertical-lr; text-orientation: sideways-right; direction: rtl; ",
|
||||
// "writing-mode: vertical-lr; text-orientation: sideways-left; direction: ltr; ",
|
||||
// "writing-mode: vertical-lr; text-orientation: sideways; direction: ltr; ",
|
||||
"writing-mode: vertical-lr; direction: rtl; ",
|
||||
// "writing-mode: sideways-lr; direction: ltr; ",
|
||||
],
|
||||
blockStart: "left", blockEnd: "right", inlineStart: "bottom", inlineEnd: "top",
|
||||
block: "horizontal", inline: "vertical" },
|
||||
{ style: [
|
||||
"writing-mode: vertical-lr; text-orientation: mixed; direction: ltr; ",
|
||||
"writing-mode: vertical-lr; text-orientation: upright; direction: ltr; ",
|
||||
"writing-mode: vertical-lr; text-orientation: sideways-right; direction: ltr; ",
|
||||
// "writing-mode: vertical-lr; text-orientation: sideways-left; direction: rtl; ",
|
||||
// "writing-mode: vertical-lr; text-orientation: sideways; direction: rtl; ",
|
||||
"writing-mode: vertical-lr; direction: ltr; ",
|
||||
// "writing-mode: sideways-lr; direction: rtl; ",
|
||||
],
|
||||
blockStart: "left", blockEnd: "right", inlineStart: "top", inlineEnd: "bottom",
|
||||
block: "horizontal", inline: "vertical" },
|
||||
@@ -162,23 +144,16 @@ function init() {
|
||||
});
|
||||
});
|
||||
|
||||
// Assume that sideways-left and sideways keywords are still not parsed yet
|
||||
// for text-orientation. When we start supporting these keywords, the
|
||||
// entries in the .style properties of the gWritingModes objects above
|
||||
// should be uncommented.
|
||||
// Assume that the sideways-lr keyword is not parsed yet for writing-mode.
|
||||
// When we start supporting this keyword, the entries in the .style
|
||||
// properties of the gWritingModes objects above should be uncommented.
|
||||
var s = document.createElement("style");
|
||||
document.body.appendChild(s);
|
||||
|
||||
s.textContent = "div { }";
|
||||
s.sheet.cssRules[0].style.textOrientation = "sideways-left";
|
||||
todo(s.sheet.cssRules[0].style.textOrientation, "sideways-left",
|
||||
"uncomment sideways-left cases from gWritingModes and " +
|
||||
"remove this todo()!");
|
||||
|
||||
s.textContent = "div { }";
|
||||
s.sheet.cssRules[0].style.textOrientation = "sideways";
|
||||
todo(s.sheet.cssRules[0].style.textOrientation, "sideways",
|
||||
"uncomment sideways cases from gWritingModes and " +
|
||||
s.sheet.cssRules[0].style.writingMode = "sideways-lr";
|
||||
todo(s.sheet.cssRules[0].style.writingMode, "sideways-lr",
|
||||
"uncomment sideways-lr cases from gWritingModes and " +
|
||||
"remove this todo()!");
|
||||
|
||||
s.remove();
|
||||
|
||||
Reference in New Issue
Block a user