зеркало из https://github.com/mozilla/gecko-dev.git
Bug 649142 - Part 4: Convert logical margin properties. r=dbaron
This commit is contained in:
Родитель
c1366ac48c
Коммит
246dccd863
|
@ -174,17 +174,11 @@ LayoutView.prototype = {
|
||||||
marginBottom: {selector: ".margin.bottom > span",
|
marginBottom: {selector: ".margin.bottom > span",
|
||||||
property: "margin-bottom",
|
property: "margin-bottom",
|
||||||
value: undefined},
|
value: undefined},
|
||||||
// margin-left is a shorthand for some internal properties,
|
|
||||||
// margin-left-ltr-source and margin-left-rtl-source for example. The
|
|
||||||
// real margin value we want is in margin-left-value
|
|
||||||
marginLeft: {selector: ".margin.left > span",
|
marginLeft: {selector: ".margin.left > span",
|
||||||
property: "margin-left",
|
property: "margin-left",
|
||||||
realProperty: "margin-left-value",
|
|
||||||
value: undefined},
|
value: undefined},
|
||||||
// margin-right behaves the same as margin-left
|
|
||||||
marginRight: {selector: ".margin.right > span",
|
marginRight: {selector: ".margin.right > span",
|
||||||
property: "margin-right",
|
property: "margin-right",
|
||||||
realProperty: "margin-right-value",
|
|
||||||
value: undefined},
|
value: undefined},
|
||||||
paddingTop: {selector: ".padding.top > span",
|
paddingTop: {selector: ".padding.top > span",
|
||||||
property: "padding-top",
|
property: "padding-top",
|
||||||
|
@ -261,11 +255,9 @@ LayoutView.prototype = {
|
||||||
* Called when the user clicks on one of the editable values in the layoutview
|
* Called when the user clicks on one of the editable values in the layoutview
|
||||||
*/
|
*/
|
||||||
initEditor: function(element, event, dimension) {
|
initEditor: function(element, event, dimension) {
|
||||||
let { property, realProperty } = dimension;
|
let { property } = dimension;
|
||||||
if (!realProperty)
|
|
||||||
realProperty = property;
|
|
||||||
let session = new EditingSession(document, this.elementRules);
|
let session = new EditingSession(document, this.elementRules);
|
||||||
let initialValue = session.getProperty(realProperty);
|
let initialValue = session.getProperty(property);
|
||||||
|
|
||||||
let editor = new InplaceEditor({
|
let editor = new InplaceEditor({
|
||||||
element: element,
|
element: element,
|
||||||
|
|
|
@ -62,10 +62,10 @@ BodyRule::MapRuleInfoInto(nsRuleData* aData)
|
||||||
if (value && value->Type() == nsAttrValue::eInteger) {
|
if (value && value->Type() == nsAttrValue::eInteger) {
|
||||||
bodyMarginWidth = value->GetIntegerValue();
|
bodyMarginWidth = value->GetIntegerValue();
|
||||||
if (bodyMarginWidth < 0) bodyMarginWidth = 0;
|
if (bodyMarginWidth < 0) bodyMarginWidth = 0;
|
||||||
nsCSSValue* marginLeft = aData->ValueForMarginLeftValue();
|
nsCSSValue* marginLeft = aData->ValueForMarginLeft();
|
||||||
if (marginLeft->GetUnit() == eCSSUnit_Null)
|
if (marginLeft->GetUnit() == eCSSUnit_Null)
|
||||||
marginLeft->SetFloatValue((float)bodyMarginWidth, eCSSUnit_Pixel);
|
marginLeft->SetFloatValue((float)bodyMarginWidth, eCSSUnit_Pixel);
|
||||||
nsCSSValue* marginRight = aData->ValueForMarginRightValue();
|
nsCSSValue* marginRight = aData->ValueForMarginRight();
|
||||||
if (marginRight->GetUnit() == eCSSUnit_Null)
|
if (marginRight->GetUnit() == eCSSUnit_Null)
|
||||||
marginRight->SetFloatValue((float)bodyMarginWidth, eCSSUnit_Pixel);
|
marginRight->SetFloatValue((float)bodyMarginWidth, eCSSUnit_Pixel);
|
||||||
}
|
}
|
||||||
|
@ -107,7 +107,7 @@ BodyRule::MapRuleInfoInto(nsRuleData* aData)
|
||||||
if (value && value->Type() == nsAttrValue::eInteger) {
|
if (value && value->Type() == nsAttrValue::eInteger) {
|
||||||
bodyLeftMargin = value->GetIntegerValue();
|
bodyLeftMargin = value->GetIntegerValue();
|
||||||
if (bodyLeftMargin < 0) bodyLeftMargin = 0;
|
if (bodyLeftMargin < 0) bodyLeftMargin = 0;
|
||||||
nsCSSValue* marginLeft = aData->ValueForMarginLeftValue();
|
nsCSSValue* marginLeft = aData->ValueForMarginLeft();
|
||||||
if (marginLeft->GetUnit() == eCSSUnit_Null)
|
if (marginLeft->GetUnit() == eCSSUnit_Null)
|
||||||
marginLeft->SetFloatValue((float)bodyLeftMargin, eCSSUnit_Pixel);
|
marginLeft->SetFloatValue((float)bodyLeftMargin, eCSSUnit_Pixel);
|
||||||
}
|
}
|
||||||
|
@ -117,7 +117,7 @@ BodyRule::MapRuleInfoInto(nsRuleData* aData)
|
||||||
if (value && value->Type() == nsAttrValue::eInteger) {
|
if (value && value->Type() == nsAttrValue::eInteger) {
|
||||||
bodyRightMargin = value->GetIntegerValue();
|
bodyRightMargin = value->GetIntegerValue();
|
||||||
if (bodyRightMargin < 0) bodyRightMargin = 0;
|
if (bodyRightMargin < 0) bodyRightMargin = 0;
|
||||||
nsCSSValue* marginRight = aData->ValueForMarginRightValue();
|
nsCSSValue* marginRight = aData->ValueForMarginRight();
|
||||||
if (marginRight->GetUnit() == eCSSUnit_Null)
|
if (marginRight->GetUnit() == eCSSUnit_Null)
|
||||||
marginRight->SetFloatValue((float)bodyRightMargin, eCSSUnit_Pixel);
|
marginRight->SetFloatValue((float)bodyRightMargin, eCSSUnit_Pixel);
|
||||||
}
|
}
|
||||||
|
@ -147,10 +147,10 @@ BodyRule::MapRuleInfoInto(nsRuleData* aData)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((bodyMarginWidth == -1) && (frameMarginWidth >= 0)) {
|
if ((bodyMarginWidth == -1) && (frameMarginWidth >= 0)) {
|
||||||
nsCSSValue* marginLeft = aData->ValueForMarginLeftValue();
|
nsCSSValue* marginLeft = aData->ValueForMarginLeft();
|
||||||
if (marginLeft->GetUnit() == eCSSUnit_Null)
|
if (marginLeft->GetUnit() == eCSSUnit_Null)
|
||||||
marginLeft->SetFloatValue((float)frameMarginWidth, eCSSUnit_Pixel);
|
marginLeft->SetFloatValue((float)frameMarginWidth, eCSSUnit_Pixel);
|
||||||
nsCSSValue* marginRight = aData->ValueForMarginRightValue();
|
nsCSSValue* marginRight = aData->ValueForMarginRight();
|
||||||
if (marginRight->GetUnit() == eCSSUnit_Null)
|
if (marginRight->GetUnit() == eCSSUnit_Null)
|
||||||
marginRight->SetFloatValue((float)frameMarginWidth, eCSSUnit_Pixel);
|
marginRight->SetFloatValue((float)frameMarginWidth, eCSSUnit_Pixel);
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,8 +88,8 @@ HTMLHRElement::MapAttributesIntoRule(const nsMappedAttributes* aAttributes,
|
||||||
const nsAttrValue* value = aAttributes->GetAttr(nsGkAtoms::align);
|
const nsAttrValue* value = aAttributes->GetAttr(nsGkAtoms::align);
|
||||||
if (value && value->Type() == nsAttrValue::eEnum) {
|
if (value && value->Type() == nsAttrValue::eEnum) {
|
||||||
// Map align attribute into auto side margins
|
// Map align attribute into auto side margins
|
||||||
nsCSSValue* marginLeft = aData->ValueForMarginLeftValue();
|
nsCSSValue* marginLeft = aData->ValueForMarginLeft();
|
||||||
nsCSSValue* marginRight = aData->ValueForMarginRightValue();
|
nsCSSValue* marginRight = aData->ValueForMarginRight();
|
||||||
switch (value->GetEnumValue()) {
|
switch (value->GetEnumValue()) {
|
||||||
case NS_STYLE_TEXT_ALIGN_LEFT:
|
case NS_STYLE_TEXT_ALIGN_LEFT:
|
||||||
if (marginLeft->GetUnit() == eCSSUnit_Null)
|
if (marginLeft->GetUnit() == eCSSUnit_Null)
|
||||||
|
|
|
@ -705,10 +705,10 @@ HTMLTableElement::MapAttributesIntoRule(const nsMappedAttributes* aAttributes,
|
||||||
if (value && value->Type() == nsAttrValue::eEnum) {
|
if (value && value->Type() == nsAttrValue::eEnum) {
|
||||||
if (value->GetEnumValue() == NS_STYLE_TEXT_ALIGN_CENTER ||
|
if (value->GetEnumValue() == NS_STYLE_TEXT_ALIGN_CENTER ||
|
||||||
value->GetEnumValue() == NS_STYLE_TEXT_ALIGN_MOZ_CENTER) {
|
value->GetEnumValue() == NS_STYLE_TEXT_ALIGN_MOZ_CENTER) {
|
||||||
nsCSSValue* marginLeft = aData->ValueForMarginLeftValue();
|
nsCSSValue* marginLeft = aData->ValueForMarginLeft();
|
||||||
if (marginLeft->GetUnit() == eCSSUnit_Null)
|
if (marginLeft->GetUnit() == eCSSUnit_Null)
|
||||||
marginLeft->SetAutoValue();
|
marginLeft->SetAutoValue();
|
||||||
nsCSSValue* marginRight = aData->ValueForMarginRightValue();
|
nsCSSValue* marginRight = aData->ValueForMarginRight();
|
||||||
if (marginRight->GetUnit() == eCSSUnit_Null)
|
if (marginRight->GetUnit() == eCSSUnit_Null)
|
||||||
marginRight->SetAutoValue();
|
marginRight->SetAutoValue();
|
||||||
}
|
}
|
||||||
|
@ -721,10 +721,10 @@ HTMLTableElement::MapAttributesIntoRule(const nsMappedAttributes* aAttributes,
|
||||||
value = aAttributes->GetAttr(nsGkAtoms::hspace);
|
value = aAttributes->GetAttr(nsGkAtoms::hspace);
|
||||||
|
|
||||||
if (value && value->Type() == nsAttrValue::eInteger) {
|
if (value && value->Type() == nsAttrValue::eInteger) {
|
||||||
nsCSSValue* marginLeft = aData->ValueForMarginLeftValue();
|
nsCSSValue* marginLeft = aData->ValueForMarginLeft();
|
||||||
if (marginLeft->GetUnit() == eCSSUnit_Null)
|
if (marginLeft->GetUnit() == eCSSUnit_Null)
|
||||||
marginLeft->SetFloatValue((float)value->GetIntegerValue(), eCSSUnit_Pixel);
|
marginLeft->SetFloatValue((float)value->GetIntegerValue(), eCSSUnit_Pixel);
|
||||||
nsCSSValue* marginRight = aData->ValueForMarginRightValue();
|
nsCSSValue* marginRight = aData->ValueForMarginRight();
|
||||||
if (marginRight->GetUnit() == eCSSUnit_Null)
|
if (marginRight->GetUnit() == eCSSUnit_Null)
|
||||||
marginRight->SetFloatValue((float)value->GetIntegerValue(), eCSSUnit_Pixel);
|
marginRight->SetFloatValue((float)value->GetIntegerValue(), eCSSUnit_Pixel);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1444,10 +1444,10 @@ nsGenericHTMLElement::MapImageMarginAttributeInto(const nsMappedAttributes* aAtt
|
||||||
hval.SetPercentValue(value->GetPercentValue());
|
hval.SetPercentValue(value->GetPercentValue());
|
||||||
|
|
||||||
if (hval.GetUnit() != eCSSUnit_Null) {
|
if (hval.GetUnit() != eCSSUnit_Null) {
|
||||||
nsCSSValue* left = aData->ValueForMarginLeftValue();
|
nsCSSValue* left = aData->ValueForMarginLeft();
|
||||||
if (left->GetUnit() == eCSSUnit_Null)
|
if (left->GetUnit() == eCSSUnit_Null)
|
||||||
*left = hval;
|
*left = hval;
|
||||||
nsCSSValue* right = aData->ValueForMarginRightValue();
|
nsCSSValue* right = aData->ValueForMarginRight();
|
||||||
if (right->GetUnit() == eCSSUnit_Null)
|
if (right->GetUnit() == eCSSUnit_Null)
|
||||||
*right = hval;
|
*right = hval;
|
||||||
}
|
}
|
||||||
|
|
|
@ -396,10 +396,6 @@ Declaration::GetValue(nsCSSProperty aProperty, nsAString& aValue,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case eCSSProperty_margin_left:
|
|
||||||
case eCSSProperty_margin_right:
|
|
||||||
case eCSSProperty_margin_start:
|
|
||||||
case eCSSProperty_margin_end:
|
|
||||||
case eCSSProperty_border_left_color:
|
case eCSSProperty_border_left_color:
|
||||||
case eCSSProperty_border_left_style:
|
case eCSSProperty_border_left_style:
|
||||||
case eCSSProperty_border_left_width:
|
case eCSSProperty_border_left_width:
|
||||||
|
|
|
@ -175,6 +175,12 @@ EnsurePhysicalProperty(nsCSSProperty& aProperty, nsRuleData* aRuleData)
|
||||||
bool ltr = direction == NS_STYLE_DIRECTION_LTR;
|
bool ltr = direction == NS_STYLE_DIRECTION_LTR;
|
||||||
|
|
||||||
switch (aProperty) {
|
switch (aProperty) {
|
||||||
|
case eCSSProperty_margin_end:
|
||||||
|
aProperty = ltr ? eCSSProperty_margin_right : eCSSProperty_margin_left;
|
||||||
|
break;
|
||||||
|
case eCSSProperty_margin_start:
|
||||||
|
aProperty = ltr ? eCSSProperty_margin_left : eCSSProperty_margin_right;
|
||||||
|
break;
|
||||||
case eCSSProperty_padding_end:
|
case eCSSProperty_padding_end:
|
||||||
aProperty = ltr ? eCSSProperty_padding_right : eCSSProperty_padding_left;
|
aProperty = ltr ? eCSSProperty_padding_right : eCSSProperty_padding_left;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -9887,18 +9887,6 @@ CSSParserImpl::ParsePropertyByFunction(nsCSSProperty aPropID)
|
||||||
return ParseListStyle();
|
return ParseListStyle();
|
||||||
case eCSSProperty_margin:
|
case eCSSProperty_margin:
|
||||||
return ParseMargin();
|
return ParseMargin();
|
||||||
case eCSSProperty_margin_end:
|
|
||||||
return ParseDirectionalBoxProperty(eCSSProperty_margin_end,
|
|
||||||
NS_BOXPROP_SOURCE_LOGICAL);
|
|
||||||
case eCSSProperty_margin_left:
|
|
||||||
return ParseDirectionalBoxProperty(eCSSProperty_margin_left,
|
|
||||||
NS_BOXPROP_SOURCE_PHYSICAL);
|
|
||||||
case eCSSProperty_margin_right:
|
|
||||||
return ParseDirectionalBoxProperty(eCSSProperty_margin_right,
|
|
||||||
NS_BOXPROP_SOURCE_PHYSICAL);
|
|
||||||
case eCSSProperty_margin_start:
|
|
||||||
return ParseDirectionalBoxProperty(eCSSProperty_margin_start,
|
|
||||||
NS_BOXPROP_SOURCE_LOGICAL);
|
|
||||||
case eCSSProperty_object_position:
|
case eCSSProperty_object_position:
|
||||||
return ParseObjectPosition();
|
return ParseObjectPosition();
|
||||||
case eCSSProperty_outline:
|
case eCSSProperty_outline:
|
||||||
|
@ -12955,20 +12943,11 @@ CSSParserImpl::ParseMargin()
|
||||||
{
|
{
|
||||||
static const nsCSSProperty kMarginSideIDs[] = {
|
static const nsCSSProperty kMarginSideIDs[] = {
|
||||||
eCSSProperty_margin_top,
|
eCSSProperty_margin_top,
|
||||||
eCSSProperty_margin_right_value,
|
eCSSProperty_margin_right,
|
||||||
eCSSProperty_margin_bottom,
|
eCSSProperty_margin_bottom,
|
||||||
eCSSProperty_margin_left_value
|
eCSSProperty_margin_left
|
||||||
};
|
|
||||||
static const nsCSSProperty kMarginSources[] = {
|
|
||||||
eCSSProperty_margin_left_ltr_source,
|
|
||||||
eCSSProperty_margin_left_rtl_source,
|
|
||||||
eCSSProperty_margin_right_ltr_source,
|
|
||||||
eCSSProperty_margin_right_rtl_source,
|
|
||||||
eCSSProperty_UNKNOWN
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// do this now, in case 4 values weren't specified
|
|
||||||
InitBoxPropsAsPhysical(kMarginSources);
|
|
||||||
return ParseBoxProperties(kMarginSideIDs);
|
return ParseBoxProperties(kMarginSideIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -147,3 +147,11 @@ CSS_PROP_ALIAS(padding-inline-start,
|
||||||
padding_start,
|
padding_start,
|
||||||
PaddingInlineStart,
|
PaddingInlineStart,
|
||||||
"layout.css.vertical-text.enabled")
|
"layout.css.vertical-text.enabled")
|
||||||
|
CSS_PROP_ALIAS(margin-inline-end,
|
||||||
|
margin_end,
|
||||||
|
MarginInlineEnd,
|
||||||
|
"layout.css.vertical-text.enabled")
|
||||||
|
CSS_PROP_ALIAS(margin-inline-start,
|
||||||
|
margin_start,
|
||||||
|
MarginInlineStart,
|
||||||
|
"layout.css.vertical-text.enabled")
|
||||||
|
|
|
@ -2331,152 +2331,66 @@ CSS_PROP_MARGIN(
|
||||||
nullptr,
|
nullptr,
|
||||||
offsetof(nsStyleMargin, mMargin),
|
offsetof(nsStyleMargin, mMargin),
|
||||||
eStyleAnimType_Sides_Bottom)
|
eStyleAnimType_Sides_Bottom)
|
||||||
CSS_PROP_SHORTHAND(
|
CSS_PROP_LOGICAL(
|
||||||
-moz-margin-end,
|
-moz-margin-end,
|
||||||
margin_end,
|
margin_end,
|
||||||
CSS_PROP_DOMPROP_PREFIXED(MarginEnd),
|
CSS_PROP_DOMPROP_PREFIXED(MarginEnd),
|
||||||
CSS_PROPERTY_PARSE_FUNCTION |
|
CSS_PROPERTY_PARSE_VALUE |
|
||||||
CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
|
|
||||||
"")
|
|
||||||
#ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
|
|
||||||
CSS_PROP_MARGIN(
|
|
||||||
margin-end-value,
|
|
||||||
margin_end_value,
|
|
||||||
MarginEndValue,
|
|
||||||
CSS_PROPERTY_PARSE_INACCESSIBLE |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
|
CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
|
||||||
CSS_PROPERTY_STORES_CALC |
|
CSS_PROPERTY_STORES_CALC |
|
||||||
CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
|
CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
|
||||||
|
CSS_PROPERTY_LOGICAL,
|
||||||
"",
|
"",
|
||||||
VARIANT_AHLP | VARIANT_CALC, // for internal use
|
VARIANT_AHLP | VARIANT_CALC,
|
||||||
nullptr,
|
nullptr,
|
||||||
|
Margin,
|
||||||
CSS_PROP_NO_OFFSET,
|
CSS_PROP_NO_OFFSET,
|
||||||
eStyleAnimType_None)
|
eStyleAnimType_None)
|
||||||
#endif
|
CSS_PROP_LOGICAL(
|
||||||
CSS_PROP_SHORTHAND(
|
-moz-margin-start,
|
||||||
|
margin_start,
|
||||||
|
CSS_PROP_DOMPROP_PREFIXED(MarginStart),
|
||||||
|
CSS_PROPERTY_PARSE_VALUE |
|
||||||
|
CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
|
||||||
|
CSS_PROPERTY_STORES_CALC |
|
||||||
|
CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
|
||||||
|
CSS_PROPERTY_LOGICAL,
|
||||||
|
"",
|
||||||
|
VARIANT_AHLP | VARIANT_CALC,
|
||||||
|
nullptr,
|
||||||
|
Margin,
|
||||||
|
CSS_PROP_NO_OFFSET,
|
||||||
|
eStyleAnimType_None)
|
||||||
|
CSS_PROP_MARGIN(
|
||||||
margin-left,
|
margin-left,
|
||||||
margin_left,
|
margin_left,
|
||||||
MarginLeft,
|
MarginLeft,
|
||||||
CSS_PROPERTY_PARSE_FUNCTION |
|
CSS_PROPERTY_PARSE_VALUE |
|
||||||
CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
|
CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
|
||||||
|
CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
|
||||||
|
CSS_PROPERTY_STORES_CALC |
|
||||||
CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
|
CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
|
||||||
CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
|
CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
|
||||||
"")
|
|
||||||
#ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
|
|
||||||
CSS_PROP_MARGIN(
|
|
||||||
margin-left-value,
|
|
||||||
margin_left_value,
|
|
||||||
MarginLeftValue,
|
|
||||||
CSS_PROPERTY_PARSE_INACCESSIBLE |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
|
|
||||||
CSS_PROPERTY_REPORT_OTHER_NAME |
|
|
||||||
CSS_PROPERTY_STORES_CALC |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
|
|
||||||
"",
|
"",
|
||||||
VARIANT_AHLP | VARIANT_CALC, // for internal use
|
VARIANT_AHLP | VARIANT_CALC,
|
||||||
nullptr,
|
nullptr,
|
||||||
offsetof(nsStyleMargin, mMargin),
|
offsetof(nsStyleMargin, mMargin),
|
||||||
eStyleAnimType_Sides_Left)
|
eStyleAnimType_Sides_Left)
|
||||||
CSS_PROP_MARGIN(
|
CSS_PROP_MARGIN(
|
||||||
margin-left-ltr-source,
|
|
||||||
margin_left_ltr_source,
|
|
||||||
MarginLeftLTRSource,
|
|
||||||
CSS_PROPERTY_PARSE_INACCESSIBLE |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
|
|
||||||
CSS_PROPERTY_DIRECTIONAL_SOURCE |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
|
|
||||||
"",
|
|
||||||
0,
|
|
||||||
kBoxPropSourceKTable,
|
|
||||||
CSS_PROP_NO_OFFSET,
|
|
||||||
eStyleAnimType_None)
|
|
||||||
CSS_PROP_MARGIN(
|
|
||||||
margin-left-rtl-source,
|
|
||||||
margin_left_rtl_source,
|
|
||||||
MarginLeftRTLSource,
|
|
||||||
CSS_PROPERTY_PARSE_INACCESSIBLE |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
|
|
||||||
CSS_PROPERTY_DIRECTIONAL_SOURCE |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
|
|
||||||
"",
|
|
||||||
0,
|
|
||||||
kBoxPropSourceKTable,
|
|
||||||
CSS_PROP_NO_OFFSET,
|
|
||||||
eStyleAnimType_None)
|
|
||||||
#endif
|
|
||||||
CSS_PROP_SHORTHAND(
|
|
||||||
margin-right,
|
margin-right,
|
||||||
margin_right,
|
margin_right,
|
||||||
MarginRight,
|
MarginRight,
|
||||||
CSS_PROPERTY_PARSE_FUNCTION |
|
CSS_PROPERTY_PARSE_VALUE |
|
||||||
CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
|
CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
|
||||||
|
CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
|
||||||
|
CSS_PROPERTY_STORES_CALC |
|
||||||
CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
|
CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
|
||||||
CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
|
CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
|
||||||
"")
|
|
||||||
#ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
|
|
||||||
CSS_PROP_MARGIN(
|
|
||||||
margin-right-value,
|
|
||||||
margin_right_value,
|
|
||||||
MarginRightValue,
|
|
||||||
CSS_PROPERTY_PARSE_INACCESSIBLE |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
|
|
||||||
CSS_PROPERTY_REPORT_OTHER_NAME |
|
|
||||||
CSS_PROPERTY_STORES_CALC |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
|
|
||||||
"",
|
"",
|
||||||
VARIANT_AHLP | VARIANT_CALC, // for internal use
|
VARIANT_AHLP | VARIANT_CALC,
|
||||||
nullptr,
|
nullptr,
|
||||||
offsetof(nsStyleMargin, mMargin),
|
offsetof(nsStyleMargin, mMargin),
|
||||||
eStyleAnimType_Sides_Right)
|
eStyleAnimType_Sides_Right)
|
||||||
CSS_PROP_MARGIN(
|
|
||||||
margin-right-ltr-source,
|
|
||||||
margin_right_ltr_source,
|
|
||||||
MarginRightLTRSource,
|
|
||||||
CSS_PROPERTY_PARSE_INACCESSIBLE |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
|
|
||||||
CSS_PROPERTY_DIRECTIONAL_SOURCE |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
|
|
||||||
"",
|
|
||||||
0,
|
|
||||||
kBoxPropSourceKTable,
|
|
||||||
CSS_PROP_NO_OFFSET,
|
|
||||||
eStyleAnimType_None)
|
|
||||||
CSS_PROP_MARGIN(
|
|
||||||
margin-right-rtl-source,
|
|
||||||
margin_right_rtl_source,
|
|
||||||
MarginRightRTLSource,
|
|
||||||
CSS_PROPERTY_PARSE_INACCESSIBLE |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
|
|
||||||
CSS_PROPERTY_DIRECTIONAL_SOURCE |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
|
|
||||||
"",
|
|
||||||
0,
|
|
||||||
kBoxPropSourceKTable,
|
|
||||||
CSS_PROP_NO_OFFSET,
|
|
||||||
eStyleAnimType_None)
|
|
||||||
#endif
|
|
||||||
CSS_PROP_SHORTHAND(
|
|
||||||
-moz-margin-start,
|
|
||||||
margin_start,
|
|
||||||
CSS_PROP_DOMPROP_PREFIXED(MarginStart),
|
|
||||||
CSS_PROPERTY_PARSE_FUNCTION |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
|
|
||||||
"")
|
|
||||||
#ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
|
|
||||||
CSS_PROP_MARGIN(
|
|
||||||
margin-start-value,
|
|
||||||
margin_start_value,
|
|
||||||
MarginStartValue,
|
|
||||||
CSS_PROPERTY_PARSE_INACCESSIBLE |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
|
|
||||||
CSS_PROPERTY_STORES_CALC |
|
|
||||||
CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
|
|
||||||
"",
|
|
||||||
VARIANT_AHLP | VARIANT_CALC, // for internal use
|
|
||||||
nullptr,
|
|
||||||
CSS_PROP_NO_OFFSET,
|
|
||||||
eStyleAnimType_None)
|
|
||||||
#endif
|
|
||||||
CSS_PROP_MARGIN(
|
CSS_PROP_MARGIN(
|
||||||
margin-top,
|
margin-top,
|
||||||
margin_top,
|
margin_top,
|
||||||
|
|
|
@ -574,10 +574,6 @@ nsCSSProps::OtherNameFor(nsCSSProperty aProperty)
|
||||||
return eCSSProperty_border_right_style;
|
return eCSSProperty_border_right_style;
|
||||||
case eCSSProperty_border_right_width_value:
|
case eCSSProperty_border_right_width_value:
|
||||||
return eCSSProperty_border_right_width;
|
return eCSSProperty_border_right_width;
|
||||||
case eCSSProperty_margin_left_value:
|
|
||||||
return eCSSProperty_margin_left;
|
|
||||||
case eCSSProperty_margin_right_value:
|
|
||||||
return eCSSProperty_margin_right;
|
|
||||||
default:
|
default:
|
||||||
NS_ABORT_IF_FALSE(false, "bad caller");
|
NS_ABORT_IF_FALSE(false, "bad caller");
|
||||||
}
|
}
|
||||||
|
@ -2573,46 +2569,9 @@ static const nsCSSProperty gListStyleSubpropTable[] = {
|
||||||
static const nsCSSProperty gMarginSubpropTable[] = {
|
static const nsCSSProperty gMarginSubpropTable[] = {
|
||||||
// Code relies on these being in top-right-bottom-left order.
|
// Code relies on these being in top-right-bottom-left order.
|
||||||
eCSSProperty_margin_top,
|
eCSSProperty_margin_top,
|
||||||
eCSSProperty_margin_right_value,
|
eCSSProperty_margin_right,
|
||||||
eCSSProperty_margin_bottom,
|
eCSSProperty_margin_bottom,
|
||||||
eCSSProperty_margin_left_value,
|
eCSSProperty_margin_left,
|
||||||
// extras:
|
|
||||||
eCSSProperty_margin_left_ltr_source,
|
|
||||||
eCSSProperty_margin_left_rtl_source,
|
|
||||||
eCSSProperty_margin_right_ltr_source,
|
|
||||||
eCSSProperty_margin_right_rtl_source,
|
|
||||||
eCSSProperty_UNKNOWN
|
|
||||||
};
|
|
||||||
|
|
||||||
static const nsCSSProperty gMarginLeftSubpropTable[] = {
|
|
||||||
// nsCSSParser::ParseDirectionalBoxProperty depends on this order
|
|
||||||
eCSSProperty_margin_left_value,
|
|
||||||
eCSSProperty_margin_left_ltr_source,
|
|
||||||
eCSSProperty_margin_left_rtl_source,
|
|
||||||
eCSSProperty_UNKNOWN
|
|
||||||
};
|
|
||||||
|
|
||||||
static const nsCSSProperty gMarginRightSubpropTable[] = {
|
|
||||||
// nsCSSParser::ParseDirectionalBoxProperty depends on this order
|
|
||||||
eCSSProperty_margin_right_value,
|
|
||||||
eCSSProperty_margin_right_ltr_source,
|
|
||||||
eCSSProperty_margin_right_rtl_source,
|
|
||||||
eCSSProperty_UNKNOWN
|
|
||||||
};
|
|
||||||
|
|
||||||
static const nsCSSProperty gMarginStartSubpropTable[] = {
|
|
||||||
// nsCSSParser::ParseDirectionalBoxProperty depends on this order
|
|
||||||
eCSSProperty_margin_start_value,
|
|
||||||
eCSSProperty_margin_left_ltr_source,
|
|
||||||
eCSSProperty_margin_right_rtl_source,
|
|
||||||
eCSSProperty_UNKNOWN
|
|
||||||
};
|
|
||||||
|
|
||||||
static const nsCSSProperty gMarginEndSubpropTable[] = {
|
|
||||||
// nsCSSParser::ParseDirectionalBoxProperty depends on this order
|
|
||||||
eCSSProperty_margin_end_value,
|
|
||||||
eCSSProperty_margin_right_ltr_source,
|
|
||||||
eCSSProperty_margin_left_rtl_source,
|
|
||||||
eCSSProperty_UNKNOWN
|
eCSSProperty_UNKNOWN
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -6502,28 +6502,13 @@ nsRuleNode::ComputeMarginData(void* aStartStruct,
|
||||||
{
|
{
|
||||||
COMPUTE_START_RESET(Margin, (), margin, parentMargin)
|
COMPUTE_START_RESET(Margin, (), margin, parentMargin)
|
||||||
|
|
||||||
// margin: length, percent, auto, inherit
|
// margin: length, percent, calc, inherit
|
||||||
nsStyleCoord coord;
|
const nsCSSProperty* subprops =
|
||||||
nsCSSRect ourMargin;
|
nsCSSProps::SubpropertyEntryFor(eCSSProperty_margin);
|
||||||
ourMargin.mTop = *aRuleData->ValueForMarginTop();
|
nsStyleCoord coord;
|
||||||
ourMargin.mRight = *aRuleData->ValueForMarginRightValue();
|
|
||||||
ourMargin.mBottom = *aRuleData->ValueForMarginBottom();
|
|
||||||
ourMargin.mLeft = *aRuleData->ValueForMarginLeftValue();
|
|
||||||
AdjustLogicalBoxProp(aContext,
|
|
||||||
*aRuleData->ValueForMarginLeftLTRSource(),
|
|
||||||
*aRuleData->ValueForMarginLeftRTLSource(),
|
|
||||||
*aRuleData->ValueForMarginStartValue(),
|
|
||||||
*aRuleData->ValueForMarginEndValue(),
|
|
||||||
NS_SIDE_LEFT, ourMargin, canStoreInRuleTree);
|
|
||||||
AdjustLogicalBoxProp(aContext,
|
|
||||||
*aRuleData->ValueForMarginRightLTRSource(),
|
|
||||||
*aRuleData->ValueForMarginRightRTLSource(),
|
|
||||||
*aRuleData->ValueForMarginEndValue(),
|
|
||||||
*aRuleData->ValueForMarginStartValue(),
|
|
||||||
NS_SIDE_RIGHT, ourMargin, canStoreInRuleTree);
|
|
||||||
NS_FOR_CSS_SIDES(side) {
|
NS_FOR_CSS_SIDES(side) {
|
||||||
nsStyleCoord parentCoord = parentMargin->mMargin.Get(side);
|
nsStyleCoord parentCoord = parentMargin->mMargin.Get(side);
|
||||||
if (SetCoord(ourMargin.*(nsCSSRect::sides[side]),
|
if (SetCoord(*aRuleData->ValueFor(subprops[side]),
|
||||||
coord, parentCoord,
|
coord, parentCoord,
|
||||||
SETCOORD_LPAH | SETCOORD_INITIAL_ZERO | SETCOORD_STORE_CALC |
|
SETCOORD_LPAH | SETCOORD_INITIAL_ZERO | SETCOORD_STORE_CALC |
|
||||||
SETCOORD_UNSET_INITIAL,
|
SETCOORD_UNSET_INITIAL,
|
||||||
|
|
|
@ -132,14 +132,6 @@ const char *gInaccessibleProperties[] = {
|
||||||
"border-start-color-value",
|
"border-start-color-value",
|
||||||
"border-start-style-value",
|
"border-start-style-value",
|
||||||
"border-start-width-value",
|
"border-start-width-value",
|
||||||
"margin-end-value",
|
|
||||||
"margin-left-value",
|
|
||||||
"margin-right-value",
|
|
||||||
"margin-start-value",
|
|
||||||
"margin-left-ltr-source",
|
|
||||||
"margin-left-rtl-source",
|
|
||||||
"margin-right-ltr-source",
|
|
||||||
"margin-right-rtl-source",
|
|
||||||
"-moz-control-character-visibility",
|
"-moz-control-character-visibility",
|
||||||
"-moz-script-level", // parsed by UA sheets only
|
"-moz-script-level", // parsed by UA sheets only
|
||||||
"-moz-script-size-multiplier",
|
"-moz-script-size-multiplier",
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
var gShorthandPropertiesLikeLonghand = [
|
var gShorthandPropertiesLikeLonghand = [
|
||||||
{ name: "-moz-margin-end", prop: "MozMarginEnd"},
|
|
||||||
{ name: "margin-left", prop: "marginLeft"},
|
|
||||||
{ name: "margin-right", prop: "marginRight"},
|
|
||||||
{ name: "-moz-margin-start", prop: "MozMarginStart"},
|
|
||||||
{ name: "overflow", prop: "overflow"},
|
{ name: "overflow", prop: "overflow"},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1432,7 +1432,8 @@ var gCSSProperties = {
|
||||||
"-moz-margin-end": {
|
"-moz-margin-end": {
|
||||||
domProp: "MozMarginEnd",
|
domProp: "MozMarginEnd",
|
||||||
inherited: false,
|
inherited: false,
|
||||||
type: CSS_TYPE_SHORTHAND_AND_LONGHAND,
|
type: CSS_TYPE_LONGHAND,
|
||||||
|
logical: true,
|
||||||
get_computed: logical_box_prop_get_computed,
|
get_computed: logical_box_prop_get_computed,
|
||||||
/* no subproperties */
|
/* no subproperties */
|
||||||
/* auto may or may not be initial */
|
/* auto may or may not be initial */
|
||||||
|
@ -1450,7 +1451,8 @@ var gCSSProperties = {
|
||||||
"-moz-margin-start": {
|
"-moz-margin-start": {
|
||||||
domProp: "MozMarginStart",
|
domProp: "MozMarginStart",
|
||||||
inherited: false,
|
inherited: false,
|
||||||
type: CSS_TYPE_SHORTHAND_AND_LONGHAND,
|
type: CSS_TYPE_LONGHAND,
|
||||||
|
logical: true,
|
||||||
get_computed: logical_box_prop_get_computed,
|
get_computed: logical_box_prop_get_computed,
|
||||||
/* no subproperties */
|
/* no subproperties */
|
||||||
/* auto may or may not be initial */
|
/* auto may or may not be initial */
|
||||||
|
@ -2851,8 +2853,7 @@ var gCSSProperties = {
|
||||||
"margin-left": {
|
"margin-left": {
|
||||||
domProp: "marginLeft",
|
domProp: "marginLeft",
|
||||||
inherited: false,
|
inherited: false,
|
||||||
type: CSS_TYPE_SHORTHAND_AND_LONGHAND,
|
type: CSS_TYPE_LONGHAND,
|
||||||
/* no subproperties */
|
|
||||||
/* XXX testing auto has prerequisites */
|
/* XXX testing auto has prerequisites */
|
||||||
initial_values: [ "0", "0px", "0%", "calc(0pt)", "calc(0% + 0px)" ],
|
initial_values: [ "0", "0px", "0%", "calc(0pt)", "calc(0% + 0px)" ],
|
||||||
other_values: [ "1px", "2em", "5%", ".5px", "+32px", "+.789px", "-.328px", "+0.56px", "-0.974px", "237px", "-289px", "-056px", "1987.45px", "-84.32px",
|
other_values: [ "1px", "2em", "5%", ".5px", "+32px", "+.789px", "-.328px", "+0.56px", "-0.974px", "237px", "-289px", "-056px", "1987.45px", "-84.32px",
|
||||||
|
@ -2869,8 +2870,7 @@ var gCSSProperties = {
|
||||||
"margin-right": {
|
"margin-right": {
|
||||||
domProp: "marginRight",
|
domProp: "marginRight",
|
||||||
inherited: false,
|
inherited: false,
|
||||||
type: CSS_TYPE_SHORTHAND_AND_LONGHAND,
|
type: CSS_TYPE_LONGHAND,
|
||||||
/* no subproperties */
|
|
||||||
/* XXX testing auto has prerequisites */
|
/* XXX testing auto has prerequisites */
|
||||||
initial_values: [ "0", "0px", "0%", "calc(0pt)", "calc(0% + 0px)" ],
|
initial_values: [ "0", "0px", "0%", "calc(0pt)", "calc(0% + 0px)" ],
|
||||||
other_values: [ "1px", "2em", "5%",
|
other_values: [ "1px", "2em", "5%",
|
||||||
|
@ -4612,6 +4612,42 @@ if (SpecialPowers.getBoolPref("layout.css.vertical-text.enabled")) {
|
||||||
"digits 12", "none 3", "digits 3.1415", "digits3", "digits 1",
|
"digits 12", "none 3", "digits 3.1415", "digits3", "digits 1",
|
||||||
"digits 3 all", "digits foo", "digits all", "digits 3.0" ]
|
"digits 3 all", "digits foo", "digits all", "digits 3.0" ]
|
||||||
},
|
},
|
||||||
|
"margin-inline-end": {
|
||||||
|
domProp: "marginInlineEnd",
|
||||||
|
inherited: false,
|
||||||
|
type: CSS_TYPE_SHORTHAND_AND_LONGHAND,
|
||||||
|
alias_for: "-moz-margin-end",
|
||||||
|
get_computed: logical_box_prop_get_computed,
|
||||||
|
/* XXX testing auto has prerequisites */
|
||||||
|
initial_values: [ "0", "0px", "0%", "calc(0pt)", "calc(0% + 0px)" ],
|
||||||
|
other_values: [ "1px", "2em", "5%",
|
||||||
|
"calc(2px)",
|
||||||
|
"calc(-2px)",
|
||||||
|
"calc(50%)",
|
||||||
|
"calc(3*25px)",
|
||||||
|
"calc(25px*3)",
|
||||||
|
"calc(3*25px + 50%)",
|
||||||
|
],
|
||||||
|
invalid_values: [ "..25px", ".+5px", ".px", "-.px", "++5px", "-+4px", "+-3px", "--7px", "+-.6px", "-+.5px", "++.7px", "--.4px" ],
|
||||||
|
},
|
||||||
|
"margin-inline-start": {
|
||||||
|
domProp: "marginInlineStart",
|
||||||
|
inherited: false,
|
||||||
|
type: CSS_TYPE_SHORTHAND_AND_LONGHAND,
|
||||||
|
alias_for: "-moz-margin-start",
|
||||||
|
get_computed: logical_box_prop_get_computed,
|
||||||
|
/* XXX testing auto has prerequisites */
|
||||||
|
initial_values: [ "0", "0px", "0%", "calc(0pt)", "calc(0% + 0px)" ],
|
||||||
|
other_values: [ "1px", "2em", "5%",
|
||||||
|
"calc(2px)",
|
||||||
|
"calc(-2px)",
|
||||||
|
"calc(50%)",
|
||||||
|
"calc(3*25px)",
|
||||||
|
"calc(25px*3)",
|
||||||
|
"calc(3*25px + 50%)",
|
||||||
|
],
|
||||||
|
invalid_values: [ "..25px", ".+5px", ".px", "-.px", "++5px", "-+4px", "+-3px", "--7px", "+-.6px", "-+.5px", "++.7px", "--.4px" ],
|
||||||
|
},
|
||||||
"padding-inline-end": {
|
"padding-inline-end": {
|
||||||
domProp: "paddingInlineEnd",
|
domProp: "paddingInlineEnd",
|
||||||
inherited: false,
|
inherited: false,
|
||||||
|
|
|
@ -26,13 +26,9 @@
|
||||||
// Check good properties with invalid units.
|
// Check good properties with invalid units.
|
||||||
{ rule: _("margin: 2in; margin: 2vw;"), expected: {
|
{ rule: _("margin: 2in; margin: 2vw;"), expected: {
|
||||||
"margin-top": "2in",
|
"margin-top": "2in",
|
||||||
"margin-right-value": "2in",
|
"margin-right": "2in",
|
||||||
"margin-bottom": "2in",
|
"margin-bottom": "2in",
|
||||||
"margin-left-value": "2in",
|
"margin-left": "2in"
|
||||||
"margin-left-ltr-source": "physical",
|
|
||||||
"margin-left-rtl-source": "physical",
|
|
||||||
"margin-right-ltr-source": "physical",
|
|
||||||
"margin-right-rtl-source": "physical"
|
|
||||||
}},
|
}},
|
||||||
{ rule: _("margin-top: 2in; margin-top: 2vw;"), expected: {"margin-top": "2in"}},
|
{ rule: _("margin-top: 2in; margin-top: 2vw;"), expected: {"margin-top": "2in"}},
|
||||||
{ rule: _("margin-top: 2in; margin-top: 2vh;"), expected: {"margin-top": "2in"}},
|
{ rule: _("margin-top: 2in; margin-top: 2vh;"), expected: {"margin-top": "2in"}},
|
||||||
|
@ -40,30 +36,16 @@
|
||||||
{ rule: _("margin-top: 2in; margin-top: 2vmin;"), expected: {"margin-top": "2in"}},
|
{ rule: _("margin-top: 2in; margin-top: 2vmin;"), expected: {"margin-top": "2in"}},
|
||||||
|
|
||||||
// Check good properties.
|
// Check good properties.
|
||||||
// NOTE: The margin-*-value and margin-*-source properties are not really
|
|
||||||
// expected and will need to be removed once bug 241234 is addressed.
|
|
||||||
{ rule: _("margin: 2in;"), expected: {
|
{ rule: _("margin: 2in;"), expected: {
|
||||||
"margin-top": "2in",
|
"margin-top": "2in",
|
||||||
"margin-right-value": "2in",
|
"margin-right": "2in",
|
||||||
"margin-bottom": "2in",
|
"margin-bottom": "2in",
|
||||||
"margin-left-value": "2in",
|
"margin-left": "2in"
|
||||||
"margin-left-ltr-source": "physical",
|
|
||||||
"margin-left-rtl-source": "physical",
|
|
||||||
"margin-right-ltr-source": "physical",
|
|
||||||
"margin-right-rtl-source": "physical"
|
|
||||||
}},
|
}},
|
||||||
{ rule: _("margin-top: 2in;"), expected: {"margin-top": "2in"}},
|
{ rule: _("margin-top: 2in;"), expected: {"margin-top": "2in"}},
|
||||||
{ rule: _("margin-left: 2in;"), expected: {
|
{ rule: _("margin-left: 2in;"), expected: {"margin-left": "2in"}},
|
||||||
"margin-left-value": "2in",
|
|
||||||
"margin-left-ltr-source": "physical",
|
|
||||||
"margin-left-rtl-source": "physical",
|
|
||||||
}},
|
|
||||||
{ rule: _("margin-bottom: 2in;"), expected: {"margin-bottom": "2in"}},
|
{ rule: _("margin-bottom: 2in;"), expected: {"margin-bottom": "2in"}},
|
||||||
{ rule: _("margin-right: 2in;"), expected: {
|
{ rule: _("margin-right: 2in;"), expected: {"margin-right": "2in"}}
|
||||||
"margin-right-value": "2in",
|
|
||||||
"margin-right-ltr-source": "physical",
|
|
||||||
"margin-right-rtl-source": "physical",
|
|
||||||
}}
|
|
||||||
];
|
];
|
||||||
|
|
||||||
var display = document.getElementById("display");
|
var display = document.getElementById("display");
|
||||||
|
|
|
@ -13,7 +13,12 @@
|
||||||
</style>
|
</style>
|
||||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
SimpleTest.expectAssertions(9);
|
var numAssertions = 9;
|
||||||
|
if (SpecialPowers.getBoolPref("layout.css.vertical-text.enabled")) {
|
||||||
|
// these are from the additional margin-inline-{start,end} tests
|
||||||
|
numAssertions += 2;
|
||||||
|
}
|
||||||
|
SimpleTest.expectAssertions(numAssertions);
|
||||||
SimpleTest.waitForExplicitFinish();
|
SimpleTest.waitForExplicitFinish();
|
||||||
SimpleTest.requestLongerTimeout(2);
|
SimpleTest.requestLongerTimeout(2);
|
||||||
|
|
||||||
|
@ -57,8 +62,8 @@ var gBadComputedNoFrame = {
|
||||||
"border-bottom-right-radius": [ "0%", "calc(-1%)" ],
|
"border-bottom-right-radius": [ "0%", "calc(-1%)" ],
|
||||||
"border-top-left-radius": [ "0%", "calc(-1%)" ],
|
"border-top-left-radius": [ "0%", "calc(-1%)" ],
|
||||||
"border-top-right-radius": [ "0%", "calc(-1%)" ],
|
"border-top-right-radius": [ "0%", "calc(-1%)" ],
|
||||||
"-moz-margin-end": [ "0%", "calc(0% + 0px)", "calc(-1%)" ],
|
"-moz-margin-end": [ "0%", "calc(0% + 0px)" ],
|
||||||
"-moz-margin-start": [ "0%", "calc(0% + 0px)", "calc(-1%)" ],
|
"-moz-margin-start": [ "0%", "calc(0% + 0px)" ],
|
||||||
"-moz-outline-radius": [ "0%", "calc(-1%)", "calc(0px) calc(0pt) calc(0%) calc(0em)" ],
|
"-moz-outline-radius": [ "0%", "calc(-1%)", "calc(0px) calc(0pt) calc(0%) calc(0em)" ],
|
||||||
"-moz-outline-radius-bottomleft": [ "0%", "calc(-1%)" ],
|
"-moz-outline-radius-bottomleft": [ "0%", "calc(-1%)" ],
|
||||||
"-moz-outline-radius-bottomright": [ "0%", "calc(-1%)" ],
|
"-moz-outline-radius-bottomright": [ "0%", "calc(-1%)" ],
|
||||||
|
@ -68,6 +73,8 @@ var gBadComputedNoFrame = {
|
||||||
"-moz-padding-start": [ "0%", "calc(0% + 0px)", "calc(-1%)" ],
|
"-moz-padding-start": [ "0%", "calc(0% + 0px)", "calc(-1%)" ],
|
||||||
"margin": [ "0% 0px 0em 0pt" ],
|
"margin": [ "0% 0px 0em 0pt" ],
|
||||||
"margin-bottom": [ "0%", "calc(0% + 0px)" ],
|
"margin-bottom": [ "0%", "calc(0% + 0px)" ],
|
||||||
|
"margin-inline-end": [ "0%", "calc(0% + 0px)" ],
|
||||||
|
"margin-inline-start": [ "0%", "calc(0% + 0px)" ],
|
||||||
"margin-left": [ "0%", "calc(0% + 0px)" ],
|
"margin-left": [ "0%", "calc(0% + 0px)" ],
|
||||||
"margin-right": [ "0%", "calc(0% + 0px)" ],
|
"margin-right": [ "0%", "calc(0% + 0px)" ],
|
||||||
"margin-top": [ "0%", "calc(0% + 0px)" ],
|
"margin-top": [ "0%", "calc(0% + 0px)" ],
|
||||||
|
|
Загрузка…
Ссылка в новой задаче