| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/css/parser/CSSPropertyParser.h" | 5 #include "core/css/parser/CSSPropertyParser.h" |
| 6 | 6 |
| 7 #include "core/StylePropertyShorthand.h" | 7 #include "core/StylePropertyShorthand.h" |
| 8 #include "core/css/CSSBasicShapeValues.h" | 8 #include "core/css/CSSBasicShapeValues.h" |
| 9 #include "core/css/CSSBorderImage.h" | 9 #include "core/css/CSSBorderImage.h" |
| 10 #include "core/css/CSSCalculationValue.h" | 10 #include "core/css/CSSCalculationValue.h" |
| (...skipping 4415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4426 return false; | 4426 return false; |
| 4427 } | 4427 } |
| 4428 } | 4428 } |
| 4429 return false; | 4429 return false; |
| 4430 } | 4430 } |
| 4431 | 4431 |
| 4432 static inline CSSValueID mapFromPageBreakBetween(CSSValueID value) | 4432 static inline CSSValueID mapFromPageBreakBetween(CSSValueID value) |
| 4433 { | 4433 { |
| 4434 if (value == CSSValueAlways) | 4434 if (value == CSSValueAlways) |
| 4435 return CSSValuePage; | 4435 return CSSValuePage; |
| 4436 // TODO(mstensho): "avoid" should just return "avoid", not "avoid-page", acc
ording to the spec. | 4436 if (value == CSSValueAuto || value == CSSValueAvoid || value == CSSValueLeft
|| value == CSSValueRight) |
| 4437 if (value == CSSValueAvoid) | |
| 4438 return CSSValueAvoidPage; | |
| 4439 if (value == CSSValueAuto || value == CSSValueLeft || value == CSSValueRight
) | |
| 4440 return value; | 4437 return value; |
| 4441 return CSSValueInvalid; | 4438 return CSSValueInvalid; |
| 4442 } | 4439 } |
| 4443 | 4440 |
| 4444 static inline CSSValueID mapFromColumnBreakBetween(CSSValueID value) | 4441 static inline CSSValueID mapFromColumnBreakBetween(CSSValueID value) |
| 4445 { | 4442 { |
| 4446 if (value == CSSValueAlways) | 4443 if (value == CSSValueAlways) |
| 4447 return CSSValueColumn; | 4444 return CSSValueColumn; |
| 4448 // TODO(mstensho): "avoid" should just return "avoid", not "avoid-column". | 4445 if (value == CSSValueAuto || value == CSSValueAvoid) |
| 4449 if (value == CSSValueAvoid) | |
| 4450 return CSSValueAvoidColumn; | |
| 4451 // TODO(mstensho): column break properties shouldn't take 'left' and 'right'
values (but | |
| 4452 // allowing it for now, since that's what we've always done). | |
| 4453 if (value == CSSValueAuto || value == CSSValueLeft || value == CSSValueRight
) | |
| 4454 return value; | 4446 return value; |
| 4455 return CSSValueInvalid; | 4447 return CSSValueInvalid; |
| 4456 } | 4448 } |
| 4457 | 4449 |
| 4458 static inline CSSValueID mapFromPageBreakInside(CSSValueID value) | 4450 static inline CSSValueID mapFromColumnOrPageBreakInside(CSSValueID value) |
| 4459 { | 4451 { |
| 4460 // TODO(mstensho): "avoid" should just return "avoid", not "avoid-page", acc
ording to the spec. | 4452 if (value == CSSValueAuto || value == CSSValueAvoid) |
| 4461 if (value == CSSValueAvoid) | |
| 4462 return CSSValueAvoidPage; | |
| 4463 if (value == CSSValueAuto) | |
| 4464 return value; | 4453 return value; |
| 4465 return CSSValueInvalid; | 4454 return CSSValueInvalid; |
| 4466 } | 4455 } |
| 4467 | |
| 4468 static inline CSSValueID mapFromColumnBreakInside(CSSValueID value) | |
| 4469 { | |
| 4470 // TODO(mstensho): "avoid" should just return "avoid", not "avoid-column". | |
| 4471 if (value == CSSValueAvoid) | |
| 4472 return CSSValueAvoidColumn; | |
| 4473 if (value == CSSValueAuto) | |
| 4474 return value; | |
| 4475 return CSSValueInvalid; | |
| 4476 } | |
| 4477 | 4456 |
| 4478 static inline CSSPropertyID mapFromLegacyBreakProperty(CSSPropertyID property) | 4457 static inline CSSPropertyID mapFromLegacyBreakProperty(CSSPropertyID property) |
| 4479 { | 4458 { |
| 4480 if (property == CSSPropertyPageBreakAfter || property == CSSPropertyWebkitCo
lumnBreakAfter) | 4459 if (property == CSSPropertyPageBreakAfter || property == CSSPropertyWebkitCo
lumnBreakAfter) |
| 4481 return CSSPropertyBreakAfter; | 4460 return CSSPropertyBreakAfter; |
| 4482 if (property == CSSPropertyPageBreakBefore || property == CSSPropertyWebkitC
olumnBreakBefore) | 4461 if (property == CSSPropertyPageBreakBefore || property == CSSPropertyWebkitC
olumnBreakBefore) |
| 4483 return CSSPropertyBreakBefore; | 4462 return CSSPropertyBreakBefore; |
| 4484 ASSERT(property == CSSPropertyPageBreakInside || property == CSSPropertyWebk
itColumnBreakInside); | 4463 ASSERT(property == CSSPropertyPageBreakInside || property == CSSPropertyWebk
itColumnBreakInside); |
| 4485 return CSSPropertyBreakInside; | 4464 return CSSPropertyBreakInside; |
| 4486 } | 4465 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 4499 switch (property) { | 4478 switch (property) { |
| 4500 case CSSPropertyPageBreakAfter: | 4479 case CSSPropertyPageBreakAfter: |
| 4501 case CSSPropertyPageBreakBefore: | 4480 case CSSPropertyPageBreakBefore: |
| 4502 value = mapFromPageBreakBetween(value); | 4481 value = mapFromPageBreakBetween(value); |
| 4503 break; | 4482 break; |
| 4504 case CSSPropertyWebkitColumnBreakAfter: | 4483 case CSSPropertyWebkitColumnBreakAfter: |
| 4505 case CSSPropertyWebkitColumnBreakBefore: | 4484 case CSSPropertyWebkitColumnBreakBefore: |
| 4506 value = mapFromColumnBreakBetween(value); | 4485 value = mapFromColumnBreakBetween(value); |
| 4507 break; | 4486 break; |
| 4508 case CSSPropertyPageBreakInside: | 4487 case CSSPropertyPageBreakInside: |
| 4509 value = mapFromPageBreakInside(value); | |
| 4510 break; | |
| 4511 case CSSPropertyWebkitColumnBreakInside: | 4488 case CSSPropertyWebkitColumnBreakInside: |
| 4512 value = mapFromColumnBreakInside(value); | 4489 value = mapFromColumnOrPageBreakInside(value); |
| 4513 break; | 4490 break; |
| 4514 default: | 4491 default: |
| 4515 ASSERT_NOT_REACHED(); | 4492 ASSERT_NOT_REACHED(); |
| 4516 } | 4493 } |
| 4517 if (value == CSSValueInvalid) | 4494 if (value == CSSValueInvalid) |
| 4518 return false; | 4495 return false; |
| 4519 | 4496 |
| 4520 CSSPropertyID genericBreakProperty = mapFromLegacyBreakProperty(property); | 4497 CSSPropertyID genericBreakProperty = mapFromLegacyBreakProperty(property); |
| 4521 addProperty(genericBreakProperty, cssValuePool().createIdentifierValue(value
), important); | 4498 addProperty(genericBreakProperty, cssValuePool().createIdentifierValue(value
), important); |
| 4522 return true; | 4499 return true; |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4667 m_currentShorthand = oldShorthand; | 4644 m_currentShorthand = oldShorthand; |
| 4668 CSSParserValueList valueList(m_range); | 4645 CSSParserValueList valueList(m_range); |
| 4669 if (!valueList.size()) | 4646 if (!valueList.size()) |
| 4670 return false; | 4647 return false; |
| 4671 m_valueList = &valueList; | 4648 m_valueList = &valueList; |
| 4672 return legacyParseShorthand(unresolvedProperty, important); | 4649 return legacyParseShorthand(unresolvedProperty, important); |
| 4673 } | 4650 } |
| 4674 } | 4651 } |
| 4675 | 4652 |
| 4676 } // namespace blink | 4653 } // namespace blink |
| OLD | NEW |