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

Side by Side Diff: third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.cpp

Issue 2755493004: Replace ASSERT, ASSERT_NOT_REACHED, and RELEASE_ASSERT in core/css/ (Closed)
Patch Set: All windows error are Resolved now. Created 3 years, 8 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 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * * Redistributions of source code must retain the above copyright 4 * * Redistributions of source code must retain the above copyright
5 * notice, this list of conditions and the following disclaimer. 5 * notice, this list of conditions and the following disclaimer.
6 * * Redistributions in binary form must reproduce the above 6 * * Redistributions in binary form must reproduce the above
7 * copyright notice, this list of conditions and the following disclaimer 7 * copyright notice, this list of conditions and the following disclaimer
8 * in the documentation and/or other materials provided with the 8 * in the documentation and/or other materials provided with the
9 * distribution. 9 * distribution.
10 * * Neither the name of Google Inc. nor the names of its 10 * * Neither the name of Google Inc. nor the names of its
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 convertGenericFamily(toCSSIdentifierValue(value).getValueID()); 203 convertGenericFamily(toCSSIdentifierValue(value).getValueID());
204 familyName = state.fontBuilder().genericFontFamilyName(genericFamily); 204 familyName = state.fontBuilder().genericFontFamilyName(genericFamily);
205 } 205 }
206 206
207 return !familyName.isEmpty(); 207 return !familyName.isEmpty();
208 } 208 }
209 209
210 FontDescription::FamilyDescription StyleBuilderConverter::convertFontFamily( 210 FontDescription::FamilyDescription StyleBuilderConverter::convertFontFamily(
211 StyleResolverState& state, 211 StyleResolverState& state,
212 const CSSValue& value) { 212 const CSSValue& value) {
213 ASSERT(value.isValueList()); 213 DCHECK(value.isValueList());
214 214
215 FontDescription::FamilyDescription desc(FontDescription::NoFamily); 215 FontDescription::FamilyDescription desc(FontDescription::NoFamily);
216 FontFamily* currFamily = nullptr; 216 FontFamily* currFamily = nullptr;
217 217
218 for (auto& family : toCSSValueList(value)) { 218 for (auto& family : toCSSValueList(value)) {
219 FontDescription::GenericFamilyType genericFamily = 219 FontDescription::GenericFamilyType genericFamily =
220 FontDescription::NoFamily; 220 FontDescription::NoFamily;
221 AtomicString familyName; 221 AtomicString familyName;
222 222
223 if (!convertFontFamilyName(state, *family, genericFamily, familyName)) 223 if (!convertFontFamilyName(state, *family, genericFamily, familyName))
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 static float computeFontSize(StyleResolverState& state, 278 static float computeFontSize(StyleResolverState& state,
279 const CSSPrimitiveValue& primitiveValue, 279 const CSSPrimitiveValue& primitiveValue,
280 const FontDescription::Size& parentSize) { 280 const FontDescription::Size& parentSize) {
281 if (primitiveValue.isLength()) 281 if (primitiveValue.isLength())
282 return primitiveValue.computeLength<float>(state.fontSizeConversionData()); 282 return primitiveValue.computeLength<float>(state.fontSizeConversionData());
283 if (primitiveValue.isCalculatedPercentageWithLength()) 283 if (primitiveValue.isCalculatedPercentageWithLength())
284 return primitiveValue.cssCalcValue() 284 return primitiveValue.cssCalcValue()
285 ->toCalcValue(state.fontSizeConversionData()) 285 ->toCalcValue(state.fontSizeConversionData())
286 ->evaluate(parentSize.value); 286 ->evaluate(parentSize.value);
287 287
288 ASSERT_NOT_REACHED(); 288 NOTREACHED();
289 return 0; 289 return 0;
290 } 290 }
291 291
292 FontDescription::Size StyleBuilderConverter::convertFontSize( 292 FontDescription::Size StyleBuilderConverter::convertFontSize(
293 StyleResolverState& state, 293 StyleResolverState& state,
294 const CSSValue& value) { 294 const CSSValue& value) {
295 FontDescription::Size parentSize(0, 0.0f, false); 295 FontDescription::Size parentSize(0, 0.0f, false);
296 296
297 // FIXME: Find out when parentStyle could be 0? 297 // FIXME: Find out when parentStyle could be 0?
298 if (state.parentStyle()) 298 if (state.parentStyle())
299 parentSize = state.parentFontDescription().getSize(); 299 parentSize = state.parentFontDescription().getSize();
300 300
301 if (value.isIdentifierValue()) { 301 if (value.isIdentifierValue()) {
302 CSSValueID valueID = toCSSIdentifierValue(value).getValueID(); 302 CSSValueID valueID = toCSSIdentifierValue(value).getValueID();
303 if (FontSize::isValidValueID(valueID)) 303 if (FontSize::isValidValueID(valueID))
304 return FontDescription::Size(FontSize::keywordSize(valueID), 0.0f, false); 304 return FontDescription::Size(FontSize::keywordSize(valueID), 0.0f, false);
305 if (valueID == CSSValueSmaller) 305 if (valueID == CSSValueSmaller)
306 return FontDescription::smallerSize(parentSize); 306 return FontDescription::smallerSize(parentSize);
307 if (valueID == CSSValueLarger) 307 if (valueID == CSSValueLarger)
308 return FontDescription::largerSize(parentSize); 308 return FontDescription::largerSize(parentSize);
309 ASSERT_NOT_REACHED(); 309 NOTREACHED();
310 return FontBuilder::initialSize(); 310 return FontBuilder::initialSize();
311 } 311 }
312 312
313 bool parentIsAbsoluteSize = state.parentFontDescription().isAbsoluteSize(); 313 bool parentIsAbsoluteSize = state.parentFontDescription().isAbsoluteSize();
314 314
315 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); 315 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
316 if (primitiveValue.isPercentage()) 316 if (primitiveValue.isPercentage())
317 return FontDescription::Size( 317 return FontDescription::Size(
318 0, (primitiveValue.getFloatValue() * parentSize.value / 100.0f), 318 0, (primitiveValue.getFloatValue() * parentSize.value / 100.0f),
319 parentIsAbsoluteSize); 319 parentIsAbsoluteSize);
320 320
321 return FontDescription::Size( 321 return FontDescription::Size(
322 0, computeFontSize(state, primitiveValue, parentSize), 322 0, computeFontSize(state, primitiveValue, parentSize),
323 parentIsAbsoluteSize || !primitiveValue.isFontRelativeLength()); 323 parentIsAbsoluteSize || !primitiveValue.isFontRelativeLength());
324 } 324 }
325 325
326 float StyleBuilderConverter::convertFontSizeAdjust(StyleResolverState& state, 326 float StyleBuilderConverter::convertFontSizeAdjust(StyleResolverState& state,
327 const CSSValue& value) { 327 const CSSValue& value) {
328 if (value.isIdentifierValue() && 328 if (value.isIdentifierValue() &&
329 toCSSIdentifierValue(value).getValueID() == CSSValueNone) 329 toCSSIdentifierValue(value).getValueID() == CSSValueNone)
330 return FontBuilder::initialSizeAdjust(); 330 return FontBuilder::initialSizeAdjust();
331 331
332 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); 332 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
333 ASSERT(primitiveValue.isNumber()); 333 DCHECK(primitiveValue.isNumber());
334 return primitiveValue.getFloatValue(); 334 return primitiveValue.getFloatValue();
335 } 335 }
336 336
337 double StyleBuilderConverter::convertValueToNumber( 337 double StyleBuilderConverter::convertValueToNumber(
338 const CSSFunctionValue* filter, 338 const CSSFunctionValue* filter,
339 const CSSPrimitiveValue* value) { 339 const CSSPrimitiveValue* value) {
340 switch (filter->functionType()) { 340 switch (filter->functionType()) {
341 case CSSValueGrayscale: 341 case CSSValueGrayscale:
342 case CSSValueSepia: 342 case CSSValueSepia:
343 case CSSValueSaturate: 343 case CSSValueSaturate:
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 case CSSValueHistoricalLigatures: 431 case CSSValueHistoricalLigatures:
432 ligatures.historical = FontDescription::EnabledLigaturesState; 432 ligatures.historical = FontDescription::EnabledLigaturesState;
433 break; 433 break;
434 case CSSValueNoContextual: 434 case CSSValueNoContextual:
435 ligatures.contextual = FontDescription::DisabledLigaturesState; 435 ligatures.contextual = FontDescription::DisabledLigaturesState;
436 break; 436 break;
437 case CSSValueContextual: 437 case CSSValueContextual:
438 ligatures.contextual = FontDescription::EnabledLigaturesState; 438 ligatures.contextual = FontDescription::EnabledLigaturesState;
439 break; 439 break;
440 default: 440 default:
441 ASSERT_NOT_REACHED(); 441 NOTREACHED();
442 break; 442 break;
443 } 443 }
444 } 444 }
445 return ligatures; 445 return ligatures;
446 } 446 }
447 447
448 SECURITY_DCHECK(value.isIdentifierValue()); 448 SECURITY_DCHECK(value.isIdentifierValue());
449 if (toCSSIdentifierValue(value).getValueID() == CSSValueNone) { 449 if (toCSSIdentifierValue(value).getValueID() == CSSValueNone) {
450 return FontDescription::VariantLigatures( 450 return FontDescription::VariantLigatures(
451 FontDescription::DisabledLigaturesState); 451 FontDescription::DisabledLigaturesState);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 case CSSValueStackedFractions: 485 case CSSValueStackedFractions:
486 variantNumeric.setNumericFraction(FontVariantNumeric::StackedFractions); 486 variantNumeric.setNumericFraction(FontVariantNumeric::StackedFractions);
487 break; 487 break;
488 case CSSValueOrdinal: 488 case CSSValueOrdinal:
489 variantNumeric.setOrdinal(FontVariantNumeric::OrdinalOn); 489 variantNumeric.setOrdinal(FontVariantNumeric::OrdinalOn);
490 break; 490 break;
491 case CSSValueSlashedZero: 491 case CSSValueSlashedZero:
492 variantNumeric.setSlashedZero(FontVariantNumeric::SlashedZeroOn); 492 variantNumeric.setSlashedZero(FontVariantNumeric::SlashedZeroOn);
493 break; 493 break;
494 default: 494 default:
495 ASSERT_NOT_REACHED(); 495 NOTREACHED();
496 break; 496 break;
497 } 497 }
498 } 498 }
499 return variantNumeric; 499 return variantNumeric;
500 } 500 }
501 501
502 StyleSelfAlignmentData StyleBuilderConverter::convertSelfOrDefaultAlignmentData( 502 StyleSelfAlignmentData StyleBuilderConverter::convertSelfOrDefaultAlignmentData(
503 StyleResolverState&, 503 StyleResolverState&,
504 const CSSValue& value) { 504 const CSSValue& value) {
505 StyleSelfAlignmentData alignmentData = ComputedStyle::initialSelfAlignment(); 505 StyleSelfAlignmentData alignmentData = ComputedStyle::initialSelfAlignment();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 case CSSValueSpaceAround: 541 case CSSValueSpaceAround:
542 alignmentData.setDistribution( 542 alignmentData.setDistribution(
543 identifierValue.convertTo<ContentDistributionType>()); 543 identifierValue.convertTo<ContentDistributionType>());
544 break; 544 break;
545 case CSSValueFlexStart: 545 case CSSValueFlexStart:
546 case CSSValueFlexEnd: 546 case CSSValueFlexEnd:
547 case CSSValueCenter: 547 case CSSValueCenter:
548 alignmentData.setPosition(identifierValue.convertTo<ContentPosition>()); 548 alignmentData.setPosition(identifierValue.convertTo<ContentPosition>());
549 break; 549 break;
550 default: 550 default:
551 ASSERT_NOT_REACHED(); 551 NOTREACHED();
552 } 552 }
553 return alignmentData; 553 return alignmentData;
554 } 554 }
555 const CSSContentDistributionValue& contentValue = 555 const CSSContentDistributionValue& contentValue =
556 toCSSContentDistributionValue(value); 556 toCSSContentDistributionValue(value);
557 if (contentValue.distribution()->getValueID() != CSSValueInvalid) 557 if (contentValue.distribution()->getValueID() != CSSValueInvalid)
558 alignmentData.setDistribution( 558 alignmentData.setDistribution(
559 contentValue.distribution()->convertTo<ContentDistributionType>()); 559 contentValue.distribution()->convertTo<ContentDistributionType>());
560 if (contentValue.position()->getValueID() != CSSValueInvalid) 560 if (contentValue.position()->getValueID() != CSSValueInvalid)
561 alignmentData.setPosition( 561 alignmentData.setPosition(
562 contentValue.position()->convertTo<ContentPosition>()); 562 contentValue.position()->convertTo<ContentPosition>());
563 if (contentValue.overflow()->getValueID() != CSSValueInvalid) 563 if (contentValue.overflow()->getValueID() != CSSValueInvalid)
564 alignmentData.setOverflow( 564 alignmentData.setOverflow(
565 contentValue.overflow()->convertTo<OverflowAlignment>()); 565 contentValue.overflow()->convertTo<OverflowAlignment>());
566 566
567 return alignmentData; 567 return alignmentData;
568 } 568 }
569 569
570 GridAutoFlow StyleBuilderConverter::convertGridAutoFlow(StyleResolverState&, 570 GridAutoFlow StyleBuilderConverter::convertGridAutoFlow(StyleResolverState&,
571 const CSSValue& value) { 571 const CSSValue& value) {
572 const CSSValueList& list = toCSSValueList(value); 572 const CSSValueList& list = toCSSValueList(value);
573 573
574 ASSERT(list.length() >= 1); 574 DCHECK_GE(list.length(), 1u);
575 const CSSIdentifierValue& first = toCSSIdentifierValue(list.item(0)); 575 const CSSIdentifierValue& first = toCSSIdentifierValue(list.item(0));
576 const CSSIdentifierValue* second = 576 const CSSIdentifierValue* second =
577 list.length() == 2 ? &toCSSIdentifierValue(list.item(1)) : nullptr; 577 list.length() == 2 ? &toCSSIdentifierValue(list.item(1)) : nullptr;
578 578
579 switch (first.getValueID()) { 579 switch (first.getValueID()) {
580 case CSSValueRow: 580 case CSSValueRow:
581 if (second && second->getValueID() == CSSValueDense) 581 if (second && second->getValueID() == CSSValueDense)
582 return AutoFlowRowDense; 582 return AutoFlowRowDense;
583 return AutoFlowRow; 583 return AutoFlowRow;
584 case CSSValueColumn: 584 case CSSValueColumn:
585 if (second && second->getValueID() == CSSValueDense) 585 if (second && second->getValueID() == CSSValueDense)
586 return AutoFlowColumnDense; 586 return AutoFlowColumnDense;
587 return AutoFlowColumn; 587 return AutoFlowColumn;
588 case CSSValueDense: 588 case CSSValueDense:
589 if (second && second->getValueID() == CSSValueColumn) 589 if (second && second->getValueID() == CSSValueColumn)
590 return AutoFlowColumnDense; 590 return AutoFlowColumnDense;
591 return AutoFlowRowDense; 591 return AutoFlowRowDense;
592 default: 592 default:
593 ASSERT_NOT_REACHED(); 593 NOTREACHED();
594 return ComputedStyle::initialGridAutoFlow(); 594 return ComputedStyle::initialGridAutoFlow();
595 } 595 }
596 } 596 }
597 597
598 GridPosition StyleBuilderConverter::convertGridPosition(StyleResolverState&, 598 GridPosition StyleBuilderConverter::convertGridPosition(StyleResolverState&,
599 const CSSValue& value) { 599 const CSSValue& value) {
600 // We accept the specification's grammar: 600 // We accept the specification's grammar:
601 // 'auto' | [ <integer> || <custom-ident> ] | 601 // 'auto' | [ <integer> || <custom-ident> ] |
602 // [ span && [ <integer> || <custom-ident> ] ] | <custom-ident> 602 // [ span && [ <integer> || <custom-ident> ] ] | <custom-ident>
603 603
604 GridPosition position; 604 GridPosition position;
605 605
606 if (value.isCustomIdentValue()) { 606 if (value.isCustomIdentValue()) {
607 position.setNamedGridArea(toCSSCustomIdentValue(value).value()); 607 position.setNamedGridArea(toCSSCustomIdentValue(value).value());
608 return position; 608 return position;
609 } 609 }
610 610
611 if (value.isIdentifierValue()) { 611 if (value.isIdentifierValue()) {
612 DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueAuto); 612 DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueAuto);
613 return position; 613 return position;
614 } 614 }
615 615
616 const CSSValueList& values = toCSSValueList(value); 616 const CSSValueList& values = toCSSValueList(value);
617 ASSERT(values.length()); 617 DCHECK(values.length());
618 618
619 bool isSpanPosition = false; 619 bool isSpanPosition = false;
620 // The specification makes the <integer> optional, in which case it default to 620 // The specification makes the <integer> optional, in which case it default to
621 // '1'. 621 // '1'.
622 int gridLineNumber = 1; 622 int gridLineNumber = 1;
623 AtomicString gridLineName; 623 AtomicString gridLineName;
624 624
625 auto it = values.begin(); 625 auto it = values.begin();
626 const CSSValue* currentValue = it->get(); 626 const CSSValue* currentValue = it->get();
627 if (currentValue->isIdentifierValue() && 627 if (currentValue->isIdentifierValue() &&
628 toCSSIdentifierValue(currentValue)->getValueID() == CSSValueSpan) { 628 toCSSIdentifierValue(currentValue)->getValueID() == CSSValueSpan) {
629 isSpanPosition = true; 629 isSpanPosition = true;
630 ++it; 630 ++it;
631 currentValue = it != values.end() ? it->get() : nullptr; 631 currentValue = it != values.end() ? it->get() : nullptr;
632 } 632 }
633 633
634 if (currentValue && currentValue->isPrimitiveValue() && 634 if (currentValue && currentValue->isPrimitiveValue() &&
635 toCSSPrimitiveValue(currentValue)->isNumber()) { 635 toCSSPrimitiveValue(currentValue)->isNumber()) {
636 gridLineNumber = toCSSPrimitiveValue(currentValue)->getIntValue(); 636 gridLineNumber = toCSSPrimitiveValue(currentValue)->getIntValue();
637 ++it; 637 ++it;
638 currentValue = it != values.end() ? it->get() : nullptr; 638 currentValue = it != values.end() ? it->get() : nullptr;
639 } 639 }
640 640
641 if (currentValue && currentValue->isCustomIdentValue()) { 641 if (currentValue && currentValue->isCustomIdentValue()) {
642 gridLineName = toCSSCustomIdentValue(currentValue)->value(); 642 gridLineName = toCSSCustomIdentValue(currentValue)->value();
643 ++it; 643 ++it;
644 } 644 }
645 645
646 ASSERT(it == values.end()); 646 DCHECK_EQ(it, values.end());
647 if (isSpanPosition) 647 if (isSpanPosition)
648 position.setSpanPosition(gridLineNumber, gridLineName); 648 position.setSpanPosition(gridLineNumber, gridLineName);
649 else 649 else
650 position.setExplicitPosition(gridLineNumber, gridLineName); 650 position.setExplicitPosition(gridLineNumber, gridLineName);
651 651
652 return position; 652 return position;
653 } 653 }
654 654
655 GridTrackSize StyleBuilderConverter::convertGridTrackSize( 655 GridTrackSize StyleBuilderConverter::convertGridTrackSize(
656 StyleResolverState& state, 656 StyleResolverState& state,
(...skipping 12 matching lines...) Expand all
669 GridLength minTrackBreadth(convertGridTrackBreadth(state, function.item(0))); 669 GridLength minTrackBreadth(convertGridTrackBreadth(state, function.item(0)));
670 GridLength maxTrackBreadth(convertGridTrackBreadth(state, function.item(1))); 670 GridLength maxTrackBreadth(convertGridTrackBreadth(state, function.item(1)));
671 return GridTrackSize(minTrackBreadth, maxTrackBreadth); 671 return GridTrackSize(minTrackBreadth, maxTrackBreadth);
672 } 672 }
673 673
674 static void convertGridLineNamesList( 674 static void convertGridLineNamesList(
675 const CSSValue& value, 675 const CSSValue& value,
676 size_t currentNamedGridLine, 676 size_t currentNamedGridLine,
677 NamedGridLinesMap& namedGridLines, 677 NamedGridLinesMap& namedGridLines,
678 OrderedNamedGridLines& orderedNamedGridLines) { 678 OrderedNamedGridLines& orderedNamedGridLines) {
679 ASSERT(value.isGridLineNamesValue()); 679 DCHECK(value.isGridLineNamesValue());
680 680
681 for (auto& namedGridLineValue : toCSSValueList(value)) { 681 for (auto& namedGridLineValue : toCSSValueList(value)) {
682 String namedGridLine = toCSSCustomIdentValue(*namedGridLineValue).value(); 682 String namedGridLine = toCSSCustomIdentValue(*namedGridLineValue).value();
683 NamedGridLinesMap::AddResult result = 683 NamedGridLinesMap::AddResult result =
684 namedGridLines.insert(namedGridLine, Vector<size_t>()); 684 namedGridLines.insert(namedGridLine, Vector<size_t>());
685 result.storedValue->value.push_back(currentNamedGridLine); 685 result.storedValue->value.push_back(currentNamedGridLine);
686 OrderedNamedGridLines::AddResult orderedInsertionResult = 686 OrderedNamedGridLines::AddResult orderedInsertionResult =
687 orderedNamedGridLines.insert(currentNamedGridLine, Vector<String>()); 687 orderedNamedGridLines.insert(currentNamedGridLine, Vector<String>());
688 orderedInsertionResult.storedValue->value.push_back(namedGridLine); 688 orderedInsertionResult.storedValue->value.push_back(namedGridLine);
689 } 689 }
(...skipping 30 matching lines...) Expand all
720 720
721 size_t currentNamedGridLine = 0; 721 size_t currentNamedGridLine = 0;
722 for (auto currValue : toCSSValueList(value)) { 722 for (auto currValue : toCSSValueList(value)) {
723 if (currValue->isGridLineNamesValue()) { 723 if (currValue->isGridLineNamesValue()) {
724 convertGridLineNamesList(*currValue, currentNamedGridLine, namedGridLines, 724 convertGridLineNamesList(*currValue, currentNamedGridLine, namedGridLines,
725 orderedNamedGridLines); 725 orderedNamedGridLines);
726 continue; 726 continue;
727 } 727 }
728 728
729 if (currValue->isGridAutoRepeatValue()) { 729 if (currValue->isGridAutoRepeatValue()) {
730 ASSERT(autoRepeatTrackSizes.isEmpty()); 730 DCHECK(autoRepeatTrackSizes.isEmpty());
731 size_t autoRepeatIndex = 0; 731 size_t autoRepeatIndex = 0;
732 CSSValueID autoRepeatID = 732 CSSValueID autoRepeatID =
733 toCSSGridAutoRepeatValue(currValue.get())->autoRepeatID(); 733 toCSSGridAutoRepeatValue(currValue.get())->autoRepeatID();
734 ASSERT(autoRepeatID == CSSValueAutoFill || 734 DCHECK(autoRepeatID == CSSValueAutoFill ||
735 autoRepeatID == CSSValueAutoFit); 735 autoRepeatID == CSSValueAutoFit);
736 autoRepeatType = autoRepeatID == CSSValueAutoFill ? AutoFill : AutoFit; 736 autoRepeatType = autoRepeatID == CSSValueAutoFill ? AutoFill : AutoFit;
737 for (auto autoRepeatValue : toCSSValueList(*currValue)) { 737 for (auto autoRepeatValue : toCSSValueList(*currValue)) {
738 if (autoRepeatValue->isGridLineNamesValue()) { 738 if (autoRepeatValue->isGridLineNamesValue()) {
739 convertGridLineNamesList(*autoRepeatValue, autoRepeatIndex, 739 convertGridLineNamesList(*autoRepeatValue, autoRepeatIndex,
740 autoRepeatNamedGridLines, 740 autoRepeatNamedGridLines,
741 autoRepeatOrderedNamedGridLines); 741 autoRepeatOrderedNamedGridLines);
742 continue; 742 continue;
743 } 743 }
744 ++autoRepeatIndex; 744 ++autoRepeatIndex;
745 autoRepeatTrackSizes.push_back( 745 autoRepeatTrackSizes.push_back(
746 convertGridTrackSize(state, *autoRepeatValue)); 746 convertGridTrackSize(state, *autoRepeatValue));
747 } 747 }
748 autoRepeatInsertionPoint = currentNamedGridLine++; 748 autoRepeatInsertionPoint = currentNamedGridLine++;
749 continue; 749 continue;
750 } 750 }
751 751
752 ++currentNamedGridLine; 752 ++currentNamedGridLine;
753 trackSizes.push_back(convertGridTrackSize(state, *currValue)); 753 trackSizes.push_back(convertGridTrackSize(state, *currValue));
754 } 754 }
755 755
756 // The parser should have rejected any <track-list> without any <track-size> 756 // The parser should have rejected any <track-list> without any <track-size>
757 // as this is not conformant to the syntax. 757 // as this is not conformant to the syntax.
758 ASSERT(!trackSizes.isEmpty() || !autoRepeatTrackSizes.isEmpty()); 758 DCHECK(!trackSizes.isEmpty() || !autoRepeatTrackSizes.isEmpty());
759 } 759 }
760 760
761 void StyleBuilderConverter::convertOrderedNamedGridLinesMapToNamedGridLinesMap( 761 void StyleBuilderConverter::convertOrderedNamedGridLinesMapToNamedGridLinesMap(
762 const OrderedNamedGridLines& orderedNamedGridLines, 762 const OrderedNamedGridLines& orderedNamedGridLines,
763 NamedGridLinesMap& namedGridLines) { 763 NamedGridLinesMap& namedGridLines) {
764 ASSERT(namedGridLines.size() == 0); 764 DCHECK_EQ(namedGridLines.size(), 0u);
765 765
766 if (orderedNamedGridLines.size() == 0) 766 if (orderedNamedGridLines.size() == 0)
767 return; 767 return;
768 768
769 for (auto& orderedNamedGridLine : orderedNamedGridLines) { 769 for (auto& orderedNamedGridLine : orderedNamedGridLines) {
770 for (auto& lineName : orderedNamedGridLine.value) { 770 for (auto& lineName : orderedNamedGridLine.value) {
771 NamedGridLinesMap::AddResult startResult = 771 NamedGridLinesMap::AddResult startResult =
772 namedGridLines.insert(lineName, Vector<size_t>()); 772 namedGridLines.insert(lineName, Vector<size_t>());
773 startResult.storedValue->value.push_back(orderedNamedGridLine.key); 773 startResult.storedValue->value.push_back(orderedNamedGridLine.key);
774 } 774 }
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 case CSSValueWebkitMaxContent: 841 case CSSValueWebkitMaxContent:
842 return Length(MaxContent); 842 return Length(MaxContent);
843 case CSSValueWebkitFillAvailable: 843 case CSSValueWebkitFillAvailable:
844 return Length(FillAvailable); 844 return Length(FillAvailable);
845 case CSSValueWebkitFitContent: 845 case CSSValueWebkitFitContent:
846 case CSSValueFitContent: 846 case CSSValueFitContent:
847 return Length(FitContent); 847 return Length(FitContent);
848 case CSSValueAuto: 848 case CSSValueAuto:
849 return Length(Auto); 849 return Length(Auto);
850 default: 850 default:
851 ASSERT_NOT_REACHED(); 851 NOTREACHED();
852 return Length(); 852 return Length();
853 } 853 }
854 } 854 }
855 855
856 Length StyleBuilderConverter::convertLengthMaxSizing(StyleResolverState& state, 856 Length StyleBuilderConverter::convertLengthMaxSizing(StyleResolverState& state,
857 const CSSValue& value) { 857 const CSSValue& value) {
858 if (value.isIdentifierValue() && 858 if (value.isIdentifierValue() &&
859 toCSSIdentifierValue(value).getValueID() == CSSValueNone) 859 toCSSIdentifierValue(value).getValueID() == CSSValueNone)
860 return Length(MaxSizeNone); 860 return Length(MaxSizeNone);
861 return convertLengthSizing(state, value); 861 return convertLengthSizing(state, value);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
908 } 908 }
909 909
910 DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueNormal); 910 DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueNormal);
911 return ComputedStyle::initialLineHeight(); 911 return ComputedStyle::initialLineHeight();
912 } 912 }
913 913
914 float StyleBuilderConverter::convertNumberOrPercentage( 914 float StyleBuilderConverter::convertNumberOrPercentage(
915 StyleResolverState& state, 915 StyleResolverState& state,
916 const CSSValue& value) { 916 const CSSValue& value) {
917 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); 917 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
918 ASSERT(primitiveValue.isNumber() || primitiveValue.isPercentage()); 918 DCHECK(primitiveValue.isNumber() || primitiveValue.isPercentage());
919 if (primitiveValue.isNumber()) 919 if (primitiveValue.isNumber())
920 return primitiveValue.getFloatValue(); 920 return primitiveValue.getFloatValue();
921 return primitiveValue.getFloatValue() / 100.0f; 921 return primitiveValue.getFloatValue() / 100.0f;
922 } 922 }
923 923
924 StyleOffsetRotation StyleBuilderConverter::convertOffsetRotate( 924 StyleOffsetRotation StyleBuilderConverter::convertOffsetRotate(
925 StyleResolverState&, 925 StyleResolverState&,
926 const CSSValue& value) { 926 const CSSValue& value) {
927 return convertOffsetRotate(value); 927 return convertOffsetRotate(value);
928 } 928 }
929 929
930 StyleOffsetRotation StyleBuilderConverter::convertOffsetRotate( 930 StyleOffsetRotation StyleBuilderConverter::convertOffsetRotate(
931 const CSSValue& value) { 931 const CSSValue& value) {
932 StyleOffsetRotation result(0, OffsetRotationFixed); 932 StyleOffsetRotation result(0, OffsetRotationFixed);
933 933
934 const CSSValueList& list = toCSSValueList(value); 934 const CSSValueList& list = toCSSValueList(value);
935 ASSERT(list.length() == 1 || list.length() == 2); 935 DCHECK(list.length() == 1 || list.length() == 2);
936 for (const auto& item : list) { 936 for (const auto& item : list) {
937 if (item->isIdentifierValue() && 937 if (item->isIdentifierValue() &&
938 toCSSIdentifierValue(*item).getValueID() == CSSValueAuto) { 938 toCSSIdentifierValue(*item).getValueID() == CSSValueAuto) {
939 result.type = OffsetRotationAuto; 939 result.type = OffsetRotationAuto;
940 } else if (item->isIdentifierValue() && 940 } else if (item->isIdentifierValue() &&
941 toCSSIdentifierValue(*item).getValueID() == CSSValueReverse) { 941 toCSSIdentifierValue(*item).getValueID() == CSSValueReverse) {
942 result.type = OffsetRotationAuto; 942 result.type = OffsetRotationAuto;
943 result.angle = clampTo<float>(result.angle + 180); 943 result.angle = clampTo<float>(result.angle + 180);
944 } else { 944 } else {
945 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(*item); 945 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(*item);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
992 case CSSValueFill: 992 case CSSValueFill:
993 return orderTypeList.length() > 1 ? PaintOrderFillMarkersStroke 993 return orderTypeList.length() > 1 ? PaintOrderFillMarkersStroke
994 : PaintOrderFillStrokeMarkers; 994 : PaintOrderFillStrokeMarkers;
995 case CSSValueStroke: 995 case CSSValueStroke:
996 return orderTypeList.length() > 1 ? PaintOrderStrokeMarkersFill 996 return orderTypeList.length() > 1 ? PaintOrderStrokeMarkersFill
997 : PaintOrderStrokeFillMarkers; 997 : PaintOrderStrokeFillMarkers;
998 case CSSValueMarkers: 998 case CSSValueMarkers:
999 return orderTypeList.length() > 1 ? PaintOrderMarkersStrokeFill 999 return orderTypeList.length() > 1 ? PaintOrderMarkersStrokeFill
1000 : PaintOrderMarkersFillStroke; 1000 : PaintOrderMarkersFillStroke;
1001 default: 1001 default:
1002 ASSERT_NOT_REACHED(); 1002 NOTREACHED();
1003 return PaintOrderNormal; 1003 return PaintOrderNormal;
1004 } 1004 }
1005 } 1005 }
1006 1006
1007 return PaintOrderNormal; 1007 return PaintOrderNormal;
1008 } 1008 }
1009 1009
1010 Length StyleBuilderConverter::convertQuirkyLength(StyleResolverState& state, 1010 Length StyleBuilderConverter::convertQuirkyLength(StyleResolverState& state,
1011 const CSSValue& value) { 1011 const CSSValue& value) {
1012 Length length = convertLengthOrAuto(state, value); 1012 Length length = convertLengthOrAuto(state, value);
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
1125 if (value.isBasicShapeValue()) { 1125 if (value.isBasicShapeValue()) {
1126 shape = basicShapeForValue(state, value); 1126 shape = basicShapeForValue(state, value);
1127 } else { 1127 } else {
1128 cssBox = toCSSIdentifierValue(value).convertTo<CSSBoxType>(); 1128 cssBox = toCSSIdentifierValue(value).convertTo<CSSBoxType>();
1129 } 1129 }
1130 } 1130 }
1131 1131
1132 if (shape) 1132 if (shape)
1133 return ShapeValue::createShapeValue(shape.release(), cssBox); 1133 return ShapeValue::createShapeValue(shape.release(), cssBox);
1134 1134
1135 ASSERT(cssBox != BoxMissing); 1135 DCHECK_NE(cssBox, BoxMissing);
1136 return ShapeValue::createBoxShapeValue(cssBox); 1136 return ShapeValue::createBoxShapeValue(cssBox);
1137 } 1137 }
1138 1138
1139 float StyleBuilderConverter::convertSpacing(StyleResolverState& state, 1139 float StyleBuilderConverter::convertSpacing(StyleResolverState& state,
1140 const CSSValue& value) { 1140 const CSSValue& value) {
1141 if (value.isIdentifierValue() && 1141 if (value.isIdentifierValue() &&
1142 toCSSIdentifierValue(value).getValueID() == CSSValueNormal) 1142 toCSSIdentifierValue(value).getValueID() == CSSValueNormal)
1143 return 0; 1143 return 0;
1144 return toCSSPrimitiveValue(value).computeLength<float>( 1144 return toCSSPrimitiveValue(value).computeLength<float>(
1145 state.cssToLengthConversionData()); 1145 state.cssToLengthConversionData());
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
1272 } 1272 }
1273 1273
1274 PassRefPtr<TranslateTransformOperation> StyleBuilderConverter::convertTranslate( 1274 PassRefPtr<TranslateTransformOperation> StyleBuilderConverter::convertTranslate(
1275 StyleResolverState& state, 1275 StyleResolverState& state,
1276 const CSSValue& value) { 1276 const CSSValue& value) {
1277 if (value.isIdentifierValue()) { 1277 if (value.isIdentifierValue()) {
1278 DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueNone); 1278 DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueNone);
1279 return nullptr; 1279 return nullptr;
1280 } 1280 }
1281 const CSSValueList& list = toCSSValueList(value); 1281 const CSSValueList& list = toCSSValueList(value);
1282 ASSERT(list.length() <= 3); 1282 DCHECK_LE(list.length(), 3u);
1283 Length tx = convertLength(state, list.item(0)); 1283 Length tx = convertLength(state, list.item(0));
1284 Length ty(0, Fixed); 1284 Length ty(0, Fixed);
1285 double tz = 0; 1285 double tz = 0;
1286 if (list.length() >= 2) 1286 if (list.length() >= 2)
1287 ty = convertLength(state, list.item(1)); 1287 ty = convertLength(state, list.item(1));
1288 if (list.length() == 3) 1288 if (list.length() == 3)
1289 tz = toCSSPrimitiveValue(list.item(2)) 1289 tz = toCSSPrimitiveValue(list.item(2))
1290 .computeLength<double>(state.cssToLengthConversionData()); 1290 .computeLength<double>(state.cssToLengthConversionData());
1291 1291
1292 return TranslateTransformOperation::create(tx, ty, tz, 1292 return TranslateTransformOperation::create(tx, ty, tz,
1293 TransformOperation::Translate3D); 1293 TransformOperation::Translate3D);
1294 } 1294 }
1295 1295
1296 Rotation StyleBuilderConverter::convertRotation(const CSSValue& value) { 1296 Rotation StyleBuilderConverter::convertRotation(const CSSValue& value) {
1297 if (value.isIdentifierValue()) { 1297 if (value.isIdentifierValue()) {
1298 DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueNone); 1298 DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueNone);
1299 return Rotation(FloatPoint3D(0, 0, 1), 0); 1299 return Rotation(FloatPoint3D(0, 0, 1), 0);
1300 } 1300 }
1301 1301
1302 const CSSValueList& list = toCSSValueList(value); 1302 const CSSValueList& list = toCSSValueList(value);
1303 ASSERT(list.length() == 1 || list.length() == 4); 1303 DCHECK(list.length() == 1 || list.length() == 4);
1304 double x = 0; 1304 double x = 0;
1305 double y = 0; 1305 double y = 0;
1306 double z = 1; 1306 double z = 1;
1307 if (list.length() == 4) { 1307 if (list.length() == 4) {
1308 x = toCSSPrimitiveValue(list.item(0)).getDoubleValue(); 1308 x = toCSSPrimitiveValue(list.item(0)).getDoubleValue();
1309 y = toCSSPrimitiveValue(list.item(1)).getDoubleValue(); 1309 y = toCSSPrimitiveValue(list.item(1)).getDoubleValue();
1310 z = toCSSPrimitiveValue(list.item(2)).getDoubleValue(); 1310 z = toCSSPrimitiveValue(list.item(2)).getDoubleValue();
1311 } 1311 }
1312 double angle = 1312 double angle =
1313 toCSSPrimitiveValue(list.item(list.length() - 1)).computeDegrees(); 1313 toCSSPrimitiveValue(list.item(list.length() - 1)).computeDegrees();
(...skipping 14 matching lines...) Expand all
1328 1328
1329 PassRefPtr<ScaleTransformOperation> StyleBuilderConverter::convertScale( 1329 PassRefPtr<ScaleTransformOperation> StyleBuilderConverter::convertScale(
1330 StyleResolverState& state, 1330 StyleResolverState& state,
1331 const CSSValue& value) { 1331 const CSSValue& value) {
1332 if (value.isIdentifierValue()) { 1332 if (value.isIdentifierValue()) {
1333 DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueNone); 1333 DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueNone);
1334 return nullptr; 1334 return nullptr;
1335 } 1335 }
1336 1336
1337 const CSSValueList& list = toCSSValueList(value); 1337 const CSSValueList& list = toCSSValueList(value);
1338 ASSERT(list.length() <= 3); 1338 DCHECK_LE(list.length(), 3u);
1339 double sx = toCSSPrimitiveValue(list.item(0)).getDoubleValue(); 1339 double sx = toCSSPrimitiveValue(list.item(0)).getDoubleValue();
1340 double sy = 1; 1340 double sy = 1;
1341 double sz = 1; 1341 double sz = 1;
1342 if (list.length() >= 2) 1342 if (list.length() >= 2)
1343 sy = toCSSPrimitiveValue(list.item(1)).getDoubleValue(); 1343 sy = toCSSPrimitiveValue(list.item(1)).getDoubleValue();
1344 if (list.length() == 3) 1344 if (list.length() == 3)
1345 sz = toCSSPrimitiveValue(list.item(2)).getDoubleValue(); 1345 sz = toCSSPrimitiveValue(list.item(2)).getDoubleValue();
1346 1346
1347 return ScaleTransformOperation::create(sx, sy, sz, 1347 return ScaleTransformOperation::create(sx, sy, sz,
1348 TransformOperation::Scale3D); 1348 TransformOperation::Scale3D);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1402 } 1402 }
1403 1403
1404 const CSSValue& StyleBuilderConverter::convertRegisteredPropertyValue( 1404 const CSSValue& StyleBuilderConverter::convertRegisteredPropertyValue(
1405 const StyleResolverState& state, 1405 const StyleResolverState& state,
1406 const CSSValue& value) { 1406 const CSSValue& value) {
1407 return computeRegisteredPropertyValue(state.cssToLengthConversionData(), 1407 return computeRegisteredPropertyValue(state.cssToLengthConversionData(),
1408 value); 1408 value);
1409 } 1409 }
1410 1410
1411 } // namespace blink 1411 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698