--- a/devtools/shared/css/generated/properties-db.js
+++ b/devtools/shared/css/generated/properties-db.js
@@ -3167,17 +3167,16 @@ exports.CSS_PROPERTIES = {
9,
10,
11
],
"values": [
"COLOR",
"-moz-all",
"-moz-alt-content",
- "-moz-anchor-decoration",
"-moz-available",
"-moz-block-height",
"-moz-box",
"-moz-button",
"-moz-center",
"-moz-crisp-edges",
"-moz-deck",
"-moz-desktop",
@@ -9106,17 +9105,16 @@ exports.CSS_PROPERTIES = {
"text-decoration-line",
"text-decoration-style"
],
"supports": [
2
],
"values": [
"COLOR",
- "-moz-anchor-decoration",
"-moz-none",
"blink",
"currentColor",
"dashed",
"dotted",
"double",
"hsl",
"hsla",
@@ -9157,17 +9155,16 @@ exports.CSS_PROPERTIES = {
},
"text-decoration-line": {
"isInherited": false,
"subproperties": [
"text-decoration-line"
],
"supports": [],
"values": [
- "-moz-anchor-decoration",
"blink",
"inherit",
"initial",
"line-through",
"none",
"overline",
"underline",
"unset"
--- a/editor/composer/res/EditorOverride.css
+++ b/editor/composer/res/EditorOverride.css
@@ -40,17 +40,16 @@ a:visited, a:active {
a:link img, a:visited img {
-moz-user-input: none;
}
/* We suppress user/author's prefs for link underline,
so we must set explicitly. This isn't good!
*/
a:link {
- text-decoration: underline -moz-anchor-decoration;
color: -moz-hyperlinktext;
}
/* Allow double-clicks on these widgets to open properties dialogs
XXX except when the widget has disabled attribute */
input, button, textarea {
-moz-user-select: all !important;
-moz-user-input: auto !important;
--- a/layout/style/contenteditable.css
+++ b/layout/style/contenteditable.css
@@ -46,17 +46,16 @@ a:link:-moz-read-write img, a:visited:-m
a:active:-moz-read-write img {
-moz-user-input: none;
}
/* We suppress user/author's prefs for link underline,
so we must set explicitly. This isn't good!
*/
a:link:-moz-read-write {
- text-decoration: underline -moz-anchor-decoration;
color: -moz-hyperlinktext;
}
/* Allow double-clicks on these widgets to open properties dialogs
XXX except when the widget has disabled attribute */
*|*:-moz-read-write > input:-moz-read-only,
*|*:-moz-read-write > button:-moz-read-only,
*|*:-moz-read-write > textarea:-moz-read-only {
--- a/layout/style/nsCSSKeywordList.h
+++ b/layout/style/nsCSSKeywordList.h
@@ -33,17 +33,16 @@
******/
// OUTPUT_CLASS=nsCSSKeywords
// MACRO_NAME=CSS_KEY
CSS_KEY(-moz-activehyperlinktext, _moz_activehyperlinktext)
CSS_KEY(-moz-all, _moz_all)
CSS_KEY(-moz-alt-content, _moz_alt_content)
-CSS_KEY(-moz-anchor-decoration, _moz_anchor_decoration)
CSS_KEY(-moz-available, _moz_available)
CSS_KEY(-moz-box, _moz_box)
CSS_KEY(-moz-button, _moz_button)
CSS_KEY(-moz-buttondefault, _moz_buttondefault)
CSS_KEY(-moz-buttonhoverface, _moz_buttonhoverface)
CSS_KEY(-moz-buttonhovertext, _moz_buttonhovertext)
CSS_KEY(-moz-cellhighlight, _moz_cellhighlight)
CSS_KEY(-moz-cellhighlighttext, _moz_cellhighlighttext)
--- a/layout/style/nsCSSParser.cpp
+++ b/layout/style/nsCSSParser.cpp
@@ -15566,24 +15566,22 @@ CSSParserImpl::ParseTextAlignLast(nsCSSV
bool
CSSParserImpl::ParseTextDecorationLine(nsCSSValue& aValue)
{
static_assert((NS_STYLE_TEXT_DECORATION_LINE_NONE ^
NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE ^
NS_STYLE_TEXT_DECORATION_LINE_OVERLINE ^
NS_STYLE_TEXT_DECORATION_LINE_LINE_THROUGH ^
- NS_STYLE_TEXT_DECORATION_LINE_BLINK ^
- NS_STYLE_TEXT_DECORATION_LINE_PREF_ANCHORS) ==
+ NS_STYLE_TEXT_DECORATION_LINE_BLINK) ==
(NS_STYLE_TEXT_DECORATION_LINE_NONE |
NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE |
NS_STYLE_TEXT_DECORATION_LINE_OVERLINE |
NS_STYLE_TEXT_DECORATION_LINE_LINE_THROUGH |
- NS_STYLE_TEXT_DECORATION_LINE_BLINK |
- NS_STYLE_TEXT_DECORATION_LINE_PREF_ANCHORS),
+ NS_STYLE_TEXT_DECORATION_LINE_BLINK),
"text decoration constants need to be bitmasks");
if (ParseSingleTokenVariant(aValue, VARIANT_HK,
nsCSSProps::kTextDecorationLineKTable)) {
if (eCSSUnit_Enumerated == aValue.GetUnit()) {
int32_t intValue = aValue.GetIntValue();
if (intValue != NS_STYLE_TEXT_DECORATION_LINE_NONE) {
// look for more keywords
nsCSSValue keyword;
--- a/layout/style/nsCSSProps.cpp
+++ b/layout/style/nsCSSProps.cpp
@@ -2023,17 +2023,16 @@ const KTableEntry nsCSSProps::kTextCombi
};
const KTableEntry nsCSSProps::kTextDecorationLineKTable[] = {
{ eCSSKeyword_none, NS_STYLE_TEXT_DECORATION_LINE_NONE },
{ eCSSKeyword_underline, NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE },
{ eCSSKeyword_overline, NS_STYLE_TEXT_DECORATION_LINE_OVERLINE },
{ eCSSKeyword_line_through, NS_STYLE_TEXT_DECORATION_LINE_LINE_THROUGH },
{ eCSSKeyword_blink, NS_STYLE_TEXT_DECORATION_LINE_BLINK },
- { eCSSKeyword__moz_anchor_decoration, NS_STYLE_TEXT_DECORATION_LINE_PREF_ANCHORS },
{ eCSSKeyword_UNKNOWN, -1 }
};
const KTableEntry nsCSSProps::kTextDecorationStyleKTable[] = {
{ eCSSKeyword__moz_none, NS_STYLE_TEXT_DECORATION_STYLE_NONE },
{ eCSSKeyword_solid, NS_STYLE_TEXT_DECORATION_STYLE_SOLID },
{ eCSSKeyword_double, NS_STYLE_TEXT_DECORATION_STYLE_DOUBLE },
{ eCSSKeyword_dotted, NS_STYLE_TEXT_DECORATION_STYLE_DOTTED },
--- a/layout/style/nsCSSValue.cpp
+++ b/layout/style/nsCSSValue.cpp
@@ -1533,17 +1533,17 @@ nsCSSValue::AppendToString(nsCSSProperty
aResult);
} else {
// Ignore the "override all" internal value.
// (It doesn't have a string representation.)
intValue &= ~NS_STYLE_TEXT_DECORATION_LINE_OVERRIDE_ALL;
nsStyleUtil::AppendBitmaskCSSValue(
aProperty, intValue,
NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE,
- NS_STYLE_TEXT_DECORATION_LINE_PREF_ANCHORS,
+ NS_STYLE_TEXT_DECORATION_LINE_BLINK,
aResult);
}
break;
case eCSSProperty_paint_order:
static_assert
(NS_STYLE_PAINT_ORDER_BITWIDTH * NS_STYLE_PAINT_ORDER_LAST_VALUE <= 8,
"SVGStyleStruct::mPaintOrder and the following cast not big enough");
--- a/layout/style/nsComputedDOMStyle.cpp
+++ b/layout/style/nsComputedDOMStyle.cpp
@@ -3923,20 +3923,19 @@ nsComputedDOMStyle::DoGetTextDecorationL
RefPtr<nsROCSSPrimitiveValue> val = new nsROCSSPrimitiveValue;
int32_t intValue = StyleTextReset()->mTextDecorationLine;
if (NS_STYLE_TEXT_DECORATION_LINE_NONE == intValue) {
val->SetIdent(eCSSKeyword_none);
} else {
nsAutoString decorationLineString;
- // Clear the -moz-anchor-decoration bit and the OVERRIDE_ALL bits -- we
- // don't want these to appear in the computed style.
- intValue &= ~(NS_STYLE_TEXT_DECORATION_LINE_PREF_ANCHORS |
- NS_STYLE_TEXT_DECORATION_LINE_OVERRIDE_ALL);
+ // Clear the OVERRIDE_ALL bits -- we don't want these to appear in
+ // the computed style.
+ intValue &= ~NS_STYLE_TEXT_DECORATION_LINE_OVERRIDE_ALL;
nsStyleUtil::AppendBitmaskCSSValue(eCSSProperty_text_decoration_line,
intValue, NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE,
NS_STYLE_TEXT_DECORATION_LINE_BLINK, decorationLineString);
val->SetString(decorationLineString);
}
return val.forget();
}
--- a/layout/style/nsRuleNode.cpp
+++ b/layout/style/nsRuleNode.cpp
@@ -5110,28 +5110,17 @@ nsRuleNode::ComputeTextResetData(void* a
const RuleNodeCacheConditions aConditions)
{
COMPUTE_START_RESET(TextReset, text, parentText)
// text-decoration-line: enum (bit field), inherit, initial
const nsCSSValue* decorationLineValue =
aRuleData->ValueForTextDecorationLine();
if (eCSSUnit_Enumerated == decorationLineValue->GetUnit()) {
- int32_t td = decorationLineValue->GetIntValue();
- text->mTextDecorationLine = td;
- if (td & NS_STYLE_TEXT_DECORATION_LINE_PREF_ANCHORS) {
- bool underlineLinks =
- mPresContext->GetCachedBoolPref(kPresContext_UnderlineLinks);
- if (underlineLinks) {
- text->mTextDecorationLine |= NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE;
- }
- else {
- text->mTextDecorationLine &= ~NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE;
- }
- }
+ text->mTextDecorationLine = decorationLineValue->GetIntValue();
} else if (eCSSUnit_Inherit == decorationLineValue->GetUnit()) {
conditions.SetUncacheable();
text->mTextDecorationLine = parentText->mTextDecorationLine;
} else if (eCSSUnit_Initial == decorationLineValue->GetUnit() ||
eCSSUnit_Unset == decorationLineValue->GetUnit()) {
text->mTextDecorationLine = NS_STYLE_TEXT_DECORATION_LINE_NONE;
}
--- a/layout/style/nsStyleConsts.h
+++ b/layout/style/nsStyleConsts.h
@@ -855,20 +855,19 @@ enum class StyleGridTrackBreadth : uint8
// the smallest NS_STYLE_VERTICAL_ALIGN_* value below!
// See nsStyleText, nsStyleFont
#define NS_STYLE_TEXT_DECORATION_LINE_NONE 0
#define NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE 0x01
#define NS_STYLE_TEXT_DECORATION_LINE_OVERLINE 0x02
#define NS_STYLE_TEXT_DECORATION_LINE_LINE_THROUGH 0x04
#define NS_STYLE_TEXT_DECORATION_LINE_BLINK 0x08
-#define NS_STYLE_TEXT_DECORATION_LINE_PREF_ANCHORS 0x10
// OVERRIDE_ALL does not occur in stylesheets; it only comes from HTML
// attribute mapping (and thus appears in computed data)
-#define NS_STYLE_TEXT_DECORATION_LINE_OVERRIDE_ALL 0x20
+#define NS_STYLE_TEXT_DECORATION_LINE_OVERRIDE_ALL 0x10
#define NS_STYLE_TEXT_DECORATION_LINE_LINES_MASK (NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE | NS_STYLE_TEXT_DECORATION_LINE_OVERLINE | NS_STYLE_TEXT_DECORATION_LINE_LINE_THROUGH)
// See nsStyleText
#define NS_STYLE_TEXT_DECORATION_STYLE_NONE 0 // not in CSS spec, mapped to -moz-none
#define NS_STYLE_TEXT_DECORATION_STYLE_DOTTED 1
#define NS_STYLE_TEXT_DECORATION_STYLE_DASHED 2
#define NS_STYLE_TEXT_DECORATION_STYLE_SOLID 3
#define NS_STYLE_TEXT_DECORATION_STYLE_DOUBLE 4
--- a/layout/style/test/property_database.js
+++ b/layout/style/test/property_database.js
@@ -3767,17 +3767,17 @@ var gCSSProperties = {
invalid_values: []
},
"text-decoration": {
domProp: "textDecoration",
inherited: false,
type: CSS_TYPE_SHORTHAND_AND_LONGHAND,
subproperties: [ "text-decoration-color", "text-decoration-line", "text-decoration-style" ],
initial_values: [ "none" ],
- other_values: [ "underline", "overline", "line-through", "blink", "blink line-through underline", "underline overline line-through blink", "-moz-anchor-decoration", "blink -moz-anchor-decoration",
+ other_values: [ "underline", "overline", "line-through", "blink", "blink line-through underline", "underline overline line-through blink",
"underline red solid", "underline #ff0000", "solid underline", "red underline", "#ff0000 underline", "dotted underline" ],
invalid_values: [ "none none", "underline none", "none underline", "blink none", "none blink", "line-through blink line-through", "underline overline line-through blink none", "underline overline line-throuh blink blink", "rgb(0, rubbish, 0) underline" ]
},
"text-decoration-color": {
domProp: "textDecorationColor",
inherited: false,
type: CSS_TYPE_LONGHAND,
prerequisites: { "color": "black" },
@@ -3785,17 +3785,17 @@ var gCSSProperties = {
other_values: [ "green", "rgba(255,128,0,0.5)", "transparent" ],
invalid_values: [ "#0", "#00", "#00000", "#0000000", "#000000000", "000000", "ff00ff" ]
},
"text-decoration-line": {
domProp: "textDecorationLine",
inherited: false,
type: CSS_TYPE_LONGHAND,
initial_values: [ "none" ],
- other_values: [ "underline", "overline", "line-through", "blink", "blink line-through underline", "underline overline line-through blink", "-moz-anchor-decoration", "blink -moz-anchor-decoration" ],
+ other_values: [ "underline", "overline", "line-through", "blink", "blink line-through underline", "underline overline line-through blink" ],
invalid_values: [ "none none", "underline none", "none underline", "line-through blink line-through", "underline overline line-through blink none", "underline overline line-throuh blink blink" ]
},
"text-decoration-style": {
domProp: "textDecorationStyle",
inherited: false,
type: CSS_TYPE_LONGHAND,
initial_values: [ "solid" ],
other_values: [ "double", "dotted", "dashed", "wavy", "-moz-none" ],
--- a/layout/style/test/stylo-failures.md
+++ b/layout/style/test/stylo-failures.md
@@ -366,18 +366,16 @@ to mochitest command.
* should reject whole value bug 1355352
* test_descriptor_storage.html `U+100-17F,U+200-17F` [1]
* test_font_face_parser.html `U+90-30` [2]
* ... `U+220043` [2]
* Gecko clamps rather than rejects invalid unicode range bug 1355356
* test_font_face_parser.html `U+??????` [2]
* ... `12FFFF` [2]
* test_default_computed_style.html: unship getDefaultComputedStyle bug 1355683 [1]
-* -moz-anchor-decoration value on text-decoration bug 1355734
- * test_value_storage.html `-moz-anchor-decoration` [10]
## Spec Unclear
* test_property_syntax_errors.html `'background'`: whether background shorthand should accept "text" [200]
## Unknown / Unsure
* test_additional_sheets.html: one sub-test cascade order is wrong [1]