Commit adccf92c authored by shend's avatar shend Committed by Commit Bot

Generate enum/getters/setters/mappings for user-select.

Currently, the user-select property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.
We also generate the EUserSelect enum and use the generated
CSSValueID <-> EUserSelect mappings.

Diff of generated files:
https://gist.github.com/darrnshn/55f9abda5310dd37a0b60386f23e0e4a/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2911963004
Cr-Commit-Position: refs/heads/master@{#475867}
parent c05fc1a6
...@@ -1214,41 +1214,6 @@ inline EUserModify CSSIdentifierValue::ConvertTo() const { ...@@ -1214,41 +1214,6 @@ inline EUserModify CSSIdentifierValue::ConvertTo() const {
return EUserModify::kReadOnly; return EUserModify::kReadOnly;
} }
template <>
inline CSSIdentifierValue::CSSIdentifierValue(EUserSelect e)
: CSSValue(kIdentifierClass) {
switch (e) {
case EUserSelect::kNone:
value_id_ = CSSValueNone;
break;
case EUserSelect::kText:
value_id_ = CSSValueText;
break;
case EUserSelect::kAll:
value_id_ = CSSValueAll;
break;
}
}
template <>
inline EUserSelect CSSIdentifierValue::ConvertTo() const {
switch (value_id_) {
case CSSValueAuto:
return EUserSelect::kText;
case CSSValueNone:
return EUserSelect::kNone;
case CSSValueText:
return EUserSelect::kText;
case CSSValueAll:
return EUserSelect::kAll;
default:
break;
}
NOTREACHED();
return EUserSelect::kText;
}
template <> template <>
inline CSSIdentifierValue::CSSIdentifierValue(EVerticalAlign a) inline CSSIdentifierValue::CSSIdentifierValue(EVerticalAlign a)
: CSSValue(kIdentifierClass) { : CSSValue(kIdentifierClass) {
......
...@@ -2699,10 +2699,9 @@ ...@@ -2699,10 +2699,9 @@
{ {
name: "user-select", name: "user-select",
inherited: true, inherited: true,
field_template: "storage_only", field_template: "keyword",
type_name: "EUserSelect", keywords: ["none", "text", "all"],
default_value: "EUserSelect::kText", default_value: "text",
field_size: 2,
field_group: "rare-inherited", field_group: "rare-inherited",
}, },
{ {
......
...@@ -83,6 +83,13 @@ inline EDisplay CssValueIDToPlatformEnum(CSSValueID v) { ...@@ -83,6 +83,13 @@ inline EDisplay CssValueIDToPlatformEnum(CSSValueID v) {
return detail::cssValueIDToPlatformEnumGenerated<EDisplay>(v); return detail::cssValueIDToPlatformEnumGenerated<EDisplay>(v);
} }
template <>
inline EUserSelect CssValueIDToPlatformEnum(CSSValueID v) {
if (v == CSSValueAuto)
return EUserSelect::kText;
return detail::cssValueIDToPlatformEnumGenerated<EUserSelect>(v);
}
} // namespace blink } // namespace blink
#endif #endif
...@@ -1765,15 +1765,6 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase<ComputedStyle>, ...@@ -1765,15 +1765,6 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase<ComputedStyle>,
SET_VAR(rare_inherited_data_, user_modify_, static_cast<unsigned>(u)); SET_VAR(rare_inherited_data_, user_modify_, static_cast<unsigned>(u));
} }
// -webkit-user-select
static EUserSelect InitialUserSelect() { return EUserSelect::kText; }
EUserSelect UserSelect() const {
return static_cast<EUserSelect>(rare_inherited_data_->user_select_);
}
void SetUserSelect(EUserSelect s) {
SET_VAR(rare_inherited_data_, user_select_, static_cast<unsigned>(s));
}
// caret-color // caret-color
void SetCaretColor(const StyleAutoColor& color) { void SetCaretColor(const StyleAutoColor& color) {
SET_VAR(rare_inherited_data_, caret_color_, color.Resolve(Color())); SET_VAR(rare_inherited_data_, caret_color_, color.Resolve(Color()));
......
...@@ -181,10 +181,6 @@ enum class EUserModify { kReadOnly, kReadWrite, kReadWritePlaintextOnly }; ...@@ -181,10 +181,6 @@ enum class EUserModify { kReadOnly, kReadWrite, kReadWritePlaintextOnly };
enum EUserDrag { DRAG_AUTO, DRAG_NONE, DRAG_ELEMENT }; enum EUserDrag { DRAG_AUTO, DRAG_NONE, DRAG_ELEMENT };
// CSS3 User Select Values
enum class EUserSelect { kNone, kText, kAll };
// CSS3 Image Values // CSS3 Image Values
enum ObjectFit { enum ObjectFit {
kObjectFitFill, kObjectFitFill,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment