Bug 1334330 - Part 5: stylo: Use GenericSpecifiedValue abstraction for <li>,<pre>,<ol>,<ul>,<textarea>; r?emilio
MozReview-Commit-ID: JQaa26ay5va
--- a/dom/html/HTMLLIElement.cpp
+++ b/dom/html/HTMLLIElement.cpp
@@ -67,30 +67,28 @@ HTMLLIElement::ParseAttribute(int32_t aN
}
return nsGenericHTMLElement::ParseAttribute(aNamespaceID, aAttribute, aValue,
aResult);
}
void
HTMLLIElement::MapAttributesIntoRule(const nsMappedAttributes* aAttributes,
- GenericSpecifiedValues* aGenericData)
+ GenericSpecifiedValues* aData)
{
- nsRuleData* aData = aGenericData->AsRuleData();
- if (aData->mSIDs & NS_STYLE_INHERIT_BIT(List)) {
- nsCSSValue* listStyleType = aData->ValueForListStyleType();
- if (listStyleType->GetUnit() == eCSSUnit_Null) {
+ if (aData->ShouldComputeStyleStruct(NS_STYLE_INHERIT_BIT(List))) {
+ if (!aData->PropertyIsSet(eCSSProperty_list_style_type)) {
// type: enum
const nsAttrValue* value = aAttributes->GetAttr(nsGkAtoms::type);
if (value && value->Type() == nsAttrValue::eEnum)
- listStyleType->SetIntValue(value->GetEnumValue(), eCSSUnit_Enumerated);
+ aData->SetKeywordValue(eCSSProperty_list_style_type, value->GetEnumValue());
}
}
- nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aGenericData);
+ nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aData);
}
NS_IMETHODIMP_(bool)
HTMLLIElement::IsAttributeMapped(const nsIAtom* aAttribute) const
{
static const MappedAttributeEntry attributes[] = {
{ &nsGkAtoms::type },
{ nullptr },
--- a/dom/html/HTMLPreElement.cpp
+++ b/dom/html/HTMLPreElement.cpp
@@ -42,29 +42,27 @@ HTMLPreElement::ParseAttribute(int32_t a
}
return nsGenericHTMLElement::ParseAttribute(aNamespaceID, aAttribute, aValue,
aResult);
}
void
HTMLPreElement::MapAttributesIntoRule(const nsMappedAttributes* aAttributes,
- GenericSpecifiedValues* aGenericData)
+ GenericSpecifiedValues* aData)
{
- nsRuleData* aData = aGenericData->AsRuleData();
- if (aData->mSIDs & NS_STYLE_INHERIT_BIT(Text)) {
- nsCSSValue* whiteSpace = aData->ValueForWhiteSpace();
- if (whiteSpace->GetUnit() == eCSSUnit_Null) {
+ if (aData->ShouldComputeStyleStruct(NS_STYLE_INHERIT_BIT(Text))) {
+ if (!aData->PropertyIsSet(eCSSProperty_white_space)) {
// wrap: empty
if (aAttributes->GetAttr(nsGkAtoms::wrap))
- whiteSpace->SetIntValue(NS_STYLE_WHITESPACE_PRE_WRAP, eCSSUnit_Enumerated);
+ aData->SetKeywordValue(eCSSProperty_white_space, NS_STYLE_WHITESPACE_PRE_WRAP);
}
}
- nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aGenericData);
+ nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aData);
}
NS_IMETHODIMP_(bool)
HTMLPreElement::IsAttributeMapped(const nsIAtom* aAttribute) const
{
if (!mNodeInfo->Equals(nsGkAtoms::pre)) {
return nsGenericHTMLElement::IsAttributeMapped(aAttribute);
}
--- a/dom/html/HTMLSharedElement.cpp
+++ b/dom/html/HTMLSharedElement.cpp
@@ -108,35 +108,33 @@ HTMLSharedElement::ParseAttribute(int32_
}
return nsGenericHTMLElement::ParseAttribute(aNamespaceID, aAttribute, aValue,
aResult);
}
static void
DirectoryMapAttributesIntoRule(const nsMappedAttributes* aAttributes,
- GenericSpecifiedValues* aGenericData)
+ GenericSpecifiedValues* aData)
{
- nsRuleData* aData = aGenericData->AsRuleData();
- if (aData->mSIDs & NS_STYLE_INHERIT_BIT(List)) {
- nsCSSValue* listStyleType = aData->ValueForListStyleType();
- if (listStyleType->GetUnit() == eCSSUnit_Null) {
+ if (aData->ShouldComputeStyleStruct(NS_STYLE_INHERIT_BIT(List))) {
+ if (!aData->PropertyIsSet(eCSSProperty_list_style_type)) {
// type: enum
const nsAttrValue* value = aAttributes->GetAttr(nsGkAtoms::type);
if (value) {
if (value->Type() == nsAttrValue::eEnum) {
- listStyleType->SetIntValue(value->GetEnumValue(), eCSSUnit_Enumerated);
+ aData->SetKeywordValue(eCSSProperty_list_style_type, value->GetEnumValue());
} else {
- listStyleType->SetIntValue(NS_STYLE_LIST_STYLE_DISC, eCSSUnit_Enumerated);
+ aData->SetKeywordValue(eCSSProperty_list_style_type, NS_STYLE_LIST_STYLE_DISC);
}
}
}
}
- nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aGenericData);
+ nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aData);
}
NS_IMETHODIMP_(bool)
HTMLSharedElement::IsAttributeMapped(const nsIAtom* aAttribute) const
{
if (mNodeInfo->Equals(nsGkAtoms::dir)) {
static const MappedAttributeEntry attributes[] = {
{ &nsGkAtoms::type },
--- a/dom/html/HTMLSharedListElement.cpp
+++ b/dom/html/HTMLSharedListElement.cpp
@@ -87,31 +87,29 @@ HTMLSharedListElement::ParseAttribute(in
}
return nsGenericHTMLElement::ParseAttribute(aNamespaceID, aAttribute, aValue,
aResult);
}
void
HTMLSharedListElement::MapAttributesIntoRule(const nsMappedAttributes* aAttributes,
- GenericSpecifiedValues* aGenericData)
+ GenericSpecifiedValues* aData)
{
- nsRuleData* aData = aGenericData->AsRuleData();
- if (aData->mSIDs & NS_STYLE_INHERIT_BIT(List)) {
- nsCSSValue* listStyleType = aData->ValueForListStyleType();
- if (listStyleType->GetUnit() == eCSSUnit_Null) {
+ if (aData->ShouldComputeStyleStruct(NS_STYLE_INHERIT_BIT(List))) {
+ if (!aData->PropertyIsSet(eCSSProperty_list_style_type)) {
// type: enum
const nsAttrValue* value = aAttributes->GetAttr(nsGkAtoms::type);
if (value && value->Type() == nsAttrValue::eEnum) {
- listStyleType->SetIntValue(value->GetEnumValue(), eCSSUnit_Enumerated);
+ aData->SetKeywordValue(eCSSProperty_list_style_type, value->GetEnumValue());
}
}
}
- nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aGenericData);
+ nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aData);
}
NS_IMETHODIMP_(bool)
HTMLSharedListElement::IsAttributeMapped(const nsIAtom* aAttribute) const
{
if (mNodeInfo->Equals(nsGkAtoms::ol) ||
mNodeInfo->Equals(nsGkAtoms::ul)) {
static const MappedAttributeEntry attributes[] = {
--- a/dom/html/HTMLTextAreaElement.cpp
+++ b/dom/html/HTMLTextAreaElement.cpp
@@ -431,33 +431,31 @@ HTMLTextAreaElement::ParseAttribute(int3
}
}
return nsGenericHTMLElement::ParseAttribute(aNamespaceID, aAttribute, aValue,
aResult);
}
void
HTMLTextAreaElement::MapAttributesIntoRule(const nsMappedAttributes* aAttributes,
- GenericSpecifiedValues* aGenericData)
+ GenericSpecifiedValues* aData)
{
- nsRuleData* aData = aGenericData->AsRuleData();
- if (aData->mSIDs & NS_STYLE_INHERIT_BIT(Text)) {
+ if (aData->ShouldComputeStyleStruct(NS_STYLE_INHERIT_BIT(Text))) {
// wrap=off
- nsCSSValue* whiteSpace = aData->ValueForWhiteSpace();
- if (whiteSpace->GetUnit() == eCSSUnit_Null) {
+ if (!aData->PropertyIsSet(eCSSProperty_white_space)) {
const nsAttrValue* value = aAttributes->GetAttr(nsGkAtoms::wrap);
if (value && value->Type() == nsAttrValue::eString &&
value->Equals(nsGkAtoms::OFF, eIgnoreCase)) {
- whiteSpace->SetIntValue(NS_STYLE_WHITESPACE_PRE, eCSSUnit_Enumerated);
+ aData->SetKeywordValue(eCSSProperty_white_space, NS_STYLE_WHITESPACE_PRE);
}
}
}
- nsGenericHTMLFormElementWithState::MapDivAlignAttributeInto(aAttributes, aGenericData);
- nsGenericHTMLFormElementWithState::MapCommonAttributesInto(aAttributes, aGenericData);
+ nsGenericHTMLFormElementWithState::MapDivAlignAttributeInto(aAttributes, aData);
+ nsGenericHTMLFormElementWithState::MapCommonAttributesInto(aAttributes, aData);
}
nsChangeHint
HTMLTextAreaElement::GetAttributeChangeHint(const nsIAtom* aAttribute,
int32_t aModType) const
{
nsChangeHint retval =
nsGenericHTMLFormElementWithState::GetAttributeChangeHint(aAttribute, aModType);