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

Side by Side Diff: third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp

Issue 2394273006: Add CSS support for text-decoration-skip (Closed)
Patch Set: Histograms typo fixed, DCHECK Created 4 years, 2 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 unified diff | Download patch
OLDNEW
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/CSSContentDistributionValue.h" 10 #include "core/css/CSSContentDistributionValue.h"
(...skipping 1505 matching lines...) Expand 10 before | Expand all | Expand 10 after
1516 if (list->hasValue(*ident)) 1516 if (list->hasValue(*ident))
1517 return nullptr; 1517 return nullptr;
1518 list->append(*ident); 1518 list->append(*ident);
1519 } 1519 }
1520 1520
1521 if (!list->length()) 1521 if (!list->length())
1522 return nullptr; 1522 return nullptr;
1523 return list; 1523 return list;
1524 } 1524 }
1525 1525
1526 static CSSValue* consumeTextDecorationSkip(CSSParserTokenRange& range) {
1527 CSSValueList* list = CSSValueList::createSpaceSeparated();
1528 while (true) {
1529 CSSIdentifierValue* ident =
1530 consumeIdent<CSSValueObjects, CSSValueInk>(range);
1531 if (!ident)
1532 break;
1533 if (list->hasValue(*ident))
1534 return nullptr;
1535 list->append(*ident);
1536 }
1537
1538 if (!list->length())
1539 return nullptr;
1540
1541 return list;
1542 }
1543
1526 // none | strict | content | [ layout || style || paint || size ] 1544 // none | strict | content | [ layout || style || paint || size ]
1527 static CSSValue* consumeContain(CSSParserTokenRange& range) { 1545 static CSSValue* consumeContain(CSSParserTokenRange& range) {
1528 CSSValueID id = range.peek().id(); 1546 CSSValueID id = range.peek().id();
1529 if (id == CSSValueNone) 1547 if (id == CSSValueNone)
1530 return consumeIdent(range); 1548 return consumeIdent(range);
1531 1549
1532 CSSValueList* list = CSSValueList::createSpaceSeparated(); 1550 CSSValueList* list = CSSValueList::createSpaceSeparated();
1533 if (id == CSSValueStrict || id == CSSValueContent) { 1551 if (id == CSSValueStrict || id == CSSValueContent) {
1534 list->append(*consumeIdent(range)); 1552 list->append(*consumeIdent(range));
1535 return list; 1553 return list;
(...skipping 2074 matching lines...) Expand 10 before | Expand all | Expand 10 after
3610 property == CSSPropertyBoxShadow); 3628 property == CSSPropertyBoxShadow);
3611 case CSSPropertyFilter: 3629 case CSSPropertyFilter:
3612 case CSSPropertyBackdropFilter: 3630 case CSSPropertyBackdropFilter:
3613 return consumeFilter(m_range, m_context); 3631 return consumeFilter(m_range, m_context);
3614 case CSSPropertyTextDecoration: 3632 case CSSPropertyTextDecoration:
3615 ASSERT(!RuntimeEnabledFeatures::css3TextDecorationsEnabled()); 3633 ASSERT(!RuntimeEnabledFeatures::css3TextDecorationsEnabled());
3616 // fallthrough 3634 // fallthrough
3617 case CSSPropertyWebkitTextDecorationsInEffect: 3635 case CSSPropertyWebkitTextDecorationsInEffect:
3618 case CSSPropertyTextDecorationLine: 3636 case CSSPropertyTextDecorationLine:
3619 return consumeTextDecorationLine(m_range); 3637 return consumeTextDecorationLine(m_range);
3638 case CSSPropertyTextDecorationSkip:
3639 DCHECK(RuntimeEnabledFeatures::css3TextDecorationsEnabled());
3640 return consumeTextDecorationSkip(m_range);
3620 case CSSPropertyOffsetAnchor: 3641 case CSSPropertyOffsetAnchor:
3621 return consumeOffsetAnchor(m_range, m_context.mode()); 3642 return consumeOffsetAnchor(m_range, m_context.mode());
3622 case CSSPropertyOffsetPosition: 3643 case CSSPropertyOffsetPosition:
3623 return consumeOffsetPosition(m_range, m_context.mode(), 3644 return consumeOffsetPosition(m_range, m_context.mode(),
3624 m_context.useCounter()); 3645 m_context.useCounter());
3625 case CSSPropertyD: 3646 case CSSPropertyD:
3626 return consumePathOrNone(m_range); 3647 return consumePathOrNone(m_range);
3627 case CSSPropertyOffsetPath: 3648 case CSSPropertyOffsetPath:
3628 return consumeOffsetPath( 3649 return consumeOffsetPath(
3629 m_range, m_context.useCounter(), 3650 m_range, m_context.useCounter(),
(...skipping 1670 matching lines...) Expand 10 before | Expand all | Expand 10 after
5300 case CSSPropertyGridTemplate: 5321 case CSSPropertyGridTemplate:
5301 return consumeGridTemplateShorthand(CSSPropertyGridTemplate, important); 5322 return consumeGridTemplateShorthand(CSSPropertyGridTemplate, important);
5302 case CSSPropertyGrid: 5323 case CSSPropertyGrid:
5303 return consumeGridShorthand(important); 5324 return consumeGridShorthand(important);
5304 default: 5325 default:
5305 return false; 5326 return false;
5306 } 5327 }
5307 } 5328 }
5308 5329
5309 } // namespace blink 5330 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698