Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(411)

Unified Diff: third_party/WebKit/Source/core/css/StylePropertySerializer.cpp

Issue 2612733002: Don't check implicit flag for serializing background and -webkit-mask (Closed)
Patch Set: Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/core/css/StylePropertySerializer.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/css/StylePropertySerializer.cpp
diff --git a/third_party/WebKit/Source/core/css/StylePropertySerializer.cpp b/third_party/WebKit/Source/core/css/StylePropertySerializer.cpp
index c16a818706da9ac4c69ff17cbf426756a5a096b0..3693f7efbb8feae9428f27da174bb1c6e37357cb 100644
--- a/third_party/WebKit/Source/core/css/StylePropertySerializer.cpp
+++ b/third_party/WebKit/Source/core/css/StylePropertySerializer.cpp
@@ -153,15 +153,6 @@ StylePropertySerializer::StylePropertySetForSerializer::getPropertyCSSValue(
return value.value();
}
-bool StylePropertySerializer::StylePropertySetForSerializer::isPropertyImplicit(
- CSSPropertyID propertyID) const {
- int index = findPropertyIndex(propertyID);
- if (index == -1)
- return false;
- StylePropertySerializer::PropertyValueForSerializer value = propertyAt(index);
- return value.isImplicit();
-}
-
StylePropertySerializer::StylePropertySerializer(
const StylePropertySet& properties)
: m_propertySet(properties) {}
@@ -319,6 +310,7 @@ String StylePropertySerializer::asText() const {
// special-casing
static bool allowInitialInShorthand(CSSPropertyID propertyID) {
switch (propertyID) {
+ case CSSPropertyBackground:
case CSSPropertyBorder:
case CSSPropertyBorderTop:
case CSSPropertyBorderRight:
@@ -333,11 +325,12 @@ static bool allowInitialInShorthand(CSSPropertyID propertyID) {
case CSSPropertyGridRow:
case CSSPropertyGridArea:
case CSSPropertyGridGap:
+ case CSSPropertyListStyle:
case CSSPropertyMotion:
case CSSPropertyOffset:
- case CSSPropertyWebkitMarginCollapse:
- case CSSPropertyListStyle:
case CSSPropertyTextDecoration:
+ case CSSPropertyWebkitMarginCollapse:
+ case CSSPropertyWebkitMask:
case CSSPropertyWebkitTextEmphasis:
case CSSPropertyWebkitTextStroke:
return true;
@@ -346,12 +339,6 @@ static bool allowInitialInShorthand(CSSPropertyID propertyID) {
}
}
-// TODO(timloh): This should go away eventually, see crbug.com/471917
-static bool allowImplicitInitialInShorthand(CSSPropertyID propertyID) {
- return propertyID == CSSPropertyBackground ||
- propertyID == CSSPropertyWebkitMask;
-}
-
String StylePropertySerializer::commonShorthandChecks(
const StylePropertyShorthand& shorthand) const {
int longhandCount = shorthand.length();
@@ -396,15 +383,8 @@ String StylePropertySerializer::commonShorthandChecks(
}
bool allowInitial = allowInitialInShorthand(shorthand.id());
- bool allowImplicitInitial =
- allowInitial || allowImplicitInitialInShorthand(shorthand.id());
for (int i = 0; i < longhandCount; i++) {
const CSSValue& value = *longhands[i];
- if (value.isImplicitInitialValue()) {
- if (allowImplicitInitial)
- continue;
- return emptyString();
- }
if (!allowInitial && value.isInitialValue())
return emptyString();
if (value.isInheritedValue() || value.isUnsetValue() ||
@@ -713,6 +693,8 @@ String StylePropertySerializer::getLayeredShorthandValue(
// If the below loop succeeds, there should always be at minimum 1 layer.
size_t numLayers = 1U;
+ // TODO(timloh): Shouldn't we fail if the lists are differently sized, with
+ // the exception of background-color?
for (size_t i = 0; i < size; i++) {
values[i] = m_propertySet.getPropertyCSSValue(shorthand.properties()[i]);
if (values[i]->isBaseValueList()) {
@@ -723,9 +705,7 @@ String StylePropertySerializer::getLayeredShorthandValue(
StringBuilder result;
- // Now stitch the properties together. Implicit initial values are flagged as
- // such and
- // can safely be omitted.
+ // Now stitch the properties together.
for (size_t layer = 0; layer < numLayers; layer++) {
StringBuilder layerResult;
bool useRepeatXShorthand = false;
@@ -756,10 +736,8 @@ String StylePropertySerializer::getLayeredShorthandValue(
continue;
// Special case for background-repeat.
- if ((propertyIndex < size - 1 &&
- m_propertySet.isPropertyImplicit(property)) &&
- (property == CSSPropertyBackgroundRepeatX ||
- property == CSSPropertyWebkitMaskRepeatX)) {
+ if (property == CSSPropertyBackgroundRepeatX ||
+ property == CSSPropertyWebkitMaskRepeatX) {
DCHECK(shorthand.properties()[propertyIndex + 1] ==
CSSPropertyBackgroundRepeatY ||
shorthand.properties()[propertyIndex + 1] ==
@@ -791,8 +769,7 @@ String StylePropertySerializer::getLayeredShorthandValue(
}
}
- if (!(value->isInitialValue() &&
- toCSSInitialValue(value)->isImplicit())) {
+ if (!value->isInitialValue()) {
if (property == CSSPropertyBackgroundSize ||
property == CSSPropertyWebkitMaskSize) {
if (foundPositionYCSSProperty || foundPositionXCSSProperty)
« no previous file with comments | « third_party/WebKit/Source/core/css/StylePropertySerializer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698