mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 14:22:01 +00:00
Bug 1303623 - Part2. Style structure changes. r=heycam
MozReview-Commit-ID: Lkdd5nAQRwG --HG-- extra : rebase_source : 644ad5a39359d956c6c102be3735278c42872ce3
This commit is contained in:
parent
a8763b0e05
commit
f1d376b659
@ -402,13 +402,13 @@ Declaration::GetImageLayerValue(
|
||||
if (clip->mValue.GetIntValue() != NS_STYLE_IMAGELAYER_CLIP_BORDER ||
|
||||
origin->mValue.GetIntValue() != originDefaultValue) {
|
||||
#ifdef DEBUG
|
||||
for (size_t i = 0; nsCSSProps::kImageLayerOriginKTable[i].mValue != -1; i++) {
|
||||
const nsCSSProps::KTableEntry* originTable = nsCSSProps::kKeywordTableTable[aTable[nsStyleImageLayers::origin]];
|
||||
const nsCSSProps::KTableEntry* clipTable = nsCSSProps::kKeywordTableTable[aTable[nsStyleImageLayers::clip]];
|
||||
for (size_t i = 0; originTable[i].mValue != -1; i++) {
|
||||
// For each keyword & value in kOriginKTable, ensure that
|
||||
// kBackgroundKTable has a matching entry at the same position.
|
||||
MOZ_ASSERT(nsCSSProps::kImageLayerOriginKTable[i].mKeyword ==
|
||||
nsCSSProps::kBackgroundClipKTable[i].mKeyword);
|
||||
MOZ_ASSERT(nsCSSProps::kImageLayerOriginKTable[i].mValue ==
|
||||
nsCSSProps::kBackgroundClipKTable[i].mValue);
|
||||
MOZ_ASSERT(originTable[i].mKeyword == clipTable[i].mKeyword);
|
||||
MOZ_ASSERT(originTable[i].mValue == clipTable[i].mValue);
|
||||
}
|
||||
#endif
|
||||
static_assert(NS_STYLE_IMAGELAYER_CLIP_BORDER ==
|
||||
|
@ -12441,6 +12441,7 @@ CSSParserImpl::ParseImageLayersItem(
|
||||
haveMode = false,
|
||||
haveSomething = false;
|
||||
|
||||
const KTableEntry* originTable = nsCSSProps::kKeywordTableTable[aTable[nsStyleImageLayers::origin]];
|
||||
while (GetToken(true)) {
|
||||
nsCSSTokenType tt = mToken.mType;
|
||||
UngetToken(); // ...but we'll still cheat and use mToken
|
||||
@ -12510,8 +12511,7 @@ CSSParserImpl::ParseImageLayersItem(
|
||||
aState.mSize->mXValue = scratch.mXValue;
|
||||
aState.mSize->mYValue = scratch.mYValue;
|
||||
}
|
||||
} else if (nsCSSProps::FindKeyword(keyword,
|
||||
nsCSSProps::kImageLayerOriginKTable, dummy)) {
|
||||
} else if (nsCSSProps::FindKeyword(keyword, originTable, dummy)) {
|
||||
if (haveOrigin)
|
||||
return false;
|
||||
haveOrigin = true;
|
||||
@ -12526,13 +12526,12 @@ CSSParserImpl::ParseImageLayersItem(
|
||||
// immediately following the first one (for background-origin).
|
||||
|
||||
#ifdef DEBUG
|
||||
for (size_t i = 0; nsCSSProps::kImageLayerOriginKTable[i].mValue != -1; i++) {
|
||||
const KTableEntry* clipTable = nsCSSProps::kKeywordTableTable[aTable[nsStyleImageLayers::clip]];
|
||||
for (size_t i = 0; originTable[i].mValue != -1; i++) {
|
||||
// For each keyword & value in kOriginKTable, ensure that
|
||||
// kBackgroundKTable has a matching entry at the same position.
|
||||
MOZ_ASSERT(nsCSSProps::kImageLayerOriginKTable[i].mKeyword ==
|
||||
nsCSSProps::kBackgroundClipKTable[i].mKeyword);
|
||||
MOZ_ASSERT(nsCSSProps::kImageLayerOriginKTable[i].mValue ==
|
||||
nsCSSProps::kBackgroundClipKTable[i].mValue);
|
||||
MOZ_ASSERT(originTable[i].mKeyword == clipTable[i].mKeyword);
|
||||
MOZ_ASSERT(originTable[i].mValue == clipTable[i].mValue);
|
||||
}
|
||||
#endif
|
||||
static_assert(NS_STYLE_IMAGELAYER_CLIP_BORDER ==
|
||||
|
@ -564,7 +564,7 @@ CSS_PROP_BACKGROUND(
|
||||
CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
|
||||
"",
|
||||
VARIANT_KEYWORD, // used by list parsing
|
||||
kImageLayerOriginKTable,
|
||||
kBackgroundOriginKTable,
|
||||
CSS_PROP_NO_OFFSET,
|
||||
eStyleAnimType_Discrete)
|
||||
CSS_PROP_SHORTHAND(
|
||||
@ -2686,7 +2686,7 @@ CSS_PROP_SVGRESET(
|
||||
CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
|
||||
"",
|
||||
VARIANT_KEYWORD, // used by list parsing
|
||||
kImageLayerOriginKTable,
|
||||
kMaskClipKTable,
|
||||
CSS_PROP_NO_OFFSET,
|
||||
eStyleAnimType_Discrete)
|
||||
CSS_PROP_SVGRESET(
|
||||
@ -2732,7 +2732,7 @@ CSS_PROP_SVGRESET(
|
||||
CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
|
||||
"",
|
||||
VARIANT_KEYWORD, // used by list parsing
|
||||
kImageLayerOriginKTable,
|
||||
kMaskOriginKTable,
|
||||
CSS_PROP_NO_OFFSET,
|
||||
eStyleAnimType_Discrete)
|
||||
CSS_PROP_SHORTHAND(
|
||||
|
@ -894,7 +894,7 @@ static_assert(NS_STYLE_IMAGELAYER_CLIP_BORDER == NS_STYLE_IMAGELAYER_ORIGIN_BORD
|
||||
"Except background-clip:text, all {background,mask}-clip and "
|
||||
"{background,mask}-origin style constants must agree");
|
||||
|
||||
const KTableEntry nsCSSProps::kImageLayerOriginKTable[] = {
|
||||
const KTableEntry nsCSSProps::kBackgroundOriginKTable[] = {
|
||||
{ eCSSKeyword_border_box, NS_STYLE_IMAGELAYER_ORIGIN_BORDER },
|
||||
{ eCSSKeyword_padding_box, NS_STYLE_IMAGELAYER_ORIGIN_PADDING },
|
||||
{ eCSSKeyword_content_box, NS_STYLE_IMAGELAYER_ORIGIN_CONTENT },
|
||||
@ -911,10 +911,26 @@ KTableEntry nsCSSProps::kBackgroundClipKTable[] = {
|
||||
{ eCSSKeyword_UNKNOWN, -1 }
|
||||
};
|
||||
|
||||
static_assert(MOZ_ARRAY_LENGTH(nsCSSProps::kImageLayerOriginKTable) ==
|
||||
MOZ_ARRAY_LENGTH(nsCSSProps::kBackgroundClipKTable) - 1,
|
||||
"background-clip has one extra value, which is text, compared"
|
||||
"to {background,mask}-origin");
|
||||
const KTableEntry nsCSSProps::kMaskOriginKTable[] = {
|
||||
{ eCSSKeyword_border_box, NS_STYLE_IMAGELAYER_ORIGIN_BORDER },
|
||||
{ eCSSKeyword_padding_box, NS_STYLE_IMAGELAYER_ORIGIN_PADDING },
|
||||
{ eCSSKeyword_content_box, NS_STYLE_IMAGELAYER_ORIGIN_CONTENT },
|
||||
{ eCSSKeyword_fill_box, NS_STYLE_IMAGELAYER_ORIGIN_FILL },
|
||||
{ eCSSKeyword_stroke_box, NS_STYLE_IMAGELAYER_ORIGIN_STROKE },
|
||||
{ eCSSKeyword_view_box, NS_STYLE_IMAGELAYER_ORIGIN_VIEW },
|
||||
{ eCSSKeyword_UNKNOWN, -1 }
|
||||
};
|
||||
|
||||
const KTableEntry nsCSSProps::kMaskClipKTable[] = {
|
||||
{ eCSSKeyword_border_box, NS_STYLE_IMAGELAYER_CLIP_BORDER },
|
||||
{ eCSSKeyword_padding_box, NS_STYLE_IMAGELAYER_CLIP_PADDING },
|
||||
{ eCSSKeyword_content_box, NS_STYLE_IMAGELAYER_CLIP_CONTENT },
|
||||
{ eCSSKeyword_fill_box, NS_STYLE_IMAGELAYER_CLIP_FILL },
|
||||
{ eCSSKeyword_stroke_box, NS_STYLE_IMAGELAYER_CLIP_STROKE },
|
||||
{ eCSSKeyword_view_box, NS_STYLE_IMAGELAYER_CLIP_VIEW },
|
||||
{ eCSSKeyword_no_clip, NS_STYLE_IMAGELAYER_CLIP_NO_CLIP },
|
||||
{ eCSSKeyword_UNKNOWN, -1 }
|
||||
};
|
||||
|
||||
// Note: Don't change this table unless you update
|
||||
// ParseImageLayerPosition!
|
||||
|
@ -692,7 +692,8 @@ public:
|
||||
static const KTableEntry kBackfaceVisibilityKTable[];
|
||||
static const KTableEntry kTransformStyleKTable[];
|
||||
static const KTableEntry kImageLayerAttachmentKTable[];
|
||||
static const KTableEntry kImageLayerOriginKTable[];
|
||||
static const KTableEntry kBackgroundOriginKTable[];
|
||||
static const KTableEntry kMaskOriginKTable[];
|
||||
static const KTableEntry kImageLayerPositionKTable[];
|
||||
static const KTableEntry kImageLayerRepeatKTable[];
|
||||
static const KTableEntry kImageLayerRepeatPartKTable[];
|
||||
@ -702,6 +703,7 @@ public:
|
||||
// Not const because we modify its entries when the pref
|
||||
// "layout.css.background-clip.text" changes:
|
||||
static KTableEntry kBackgroundClipKTable[];
|
||||
static const KTableEntry kMaskClipKTable[];
|
||||
static const KTableEntry kBlendModeKTable[];
|
||||
static const KTableEntry kBorderCollapseKTable[];
|
||||
static const KTableEntry kBorderImageRepeatKTable[];
|
||||
|
@ -2379,7 +2379,7 @@ nsComputedDOMStyle::DoGetBackgroundOrigin()
|
||||
return GetBackgroundList(&nsStyleImageLayers::Layer::mOrigin,
|
||||
&nsStyleImageLayers::mOriginCount,
|
||||
StyleBackground()->mImage,
|
||||
nsCSSProps::kImageLayerOriginKTable);
|
||||
nsCSSProps::kBackgroundOriginKTable);
|
||||
}
|
||||
|
||||
void
|
||||
@ -6215,7 +6215,7 @@ nsComputedDOMStyle::DoGetMaskClip()
|
||||
return GetBackgroundList(&nsStyleImageLayers::Layer::mClip,
|
||||
&nsStyleImageLayers::mClipCount,
|
||||
StyleSVGReset()->mMask,
|
||||
nsCSSProps::kImageLayerOriginKTable);
|
||||
nsCSSProps::kMaskClipKTable);
|
||||
}
|
||||
|
||||
already_AddRefed<CSSValue>
|
||||
@ -6249,7 +6249,7 @@ nsComputedDOMStyle::DoGetMaskOrigin()
|
||||
return GetBackgroundList(&nsStyleImageLayers::Layer::mOrigin,
|
||||
&nsStyleImageLayers::mOriginCount,
|
||||
StyleSVGReset()->mMask,
|
||||
nsCSSProps::kImageLayerOriginKTable);
|
||||
nsCSSProps::kMaskOriginKTable);
|
||||
}
|
||||
|
||||
already_AddRefed<CSSValue>
|
||||
|
Loading…
Reference in New Issue
Block a user