OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 3 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
4 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 4 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
5 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 5 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. |
7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
10 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 10 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 #include "StyleBuilderFunctions.h" | 44 #include "StyleBuilderFunctions.h" |
45 #include "StylePropertyShorthand.h" | 45 #include "StylePropertyShorthand.h" |
46 #include "core/css/BasicShapeFunctions.h" | 46 #include "core/css/BasicShapeFunctions.h" |
47 #include "core/css/CSSAspectRatioValue.h" | 47 #include "core/css/CSSAspectRatioValue.h" |
48 #include "core/css/CSSCursorImageValue.h" | 48 #include "core/css/CSSCursorImageValue.h" |
49 #include "core/css/CSSFontValue.h" | 49 #include "core/css/CSSFontValue.h" |
50 #include "core/css/CSSFunctionValue.h" | 50 #include "core/css/CSSFunctionValue.h" |
51 #include "core/css/CSSGradientValue.h" | 51 #include "core/css/CSSGradientValue.h" |
52 #include "core/css/CSSGridLineNamesValue.h" | 52 #include "core/css/CSSGridLineNamesValue.h" |
53 #include "core/css/CSSGridTemplateValue.h" | 53 #include "core/css/CSSGridTemplateValue.h" |
| 54 #include "core/css/CSSHelper.h" |
54 #include "core/css/CSSImageSetValue.h" | 55 #include "core/css/CSSImageSetValue.h" |
55 #include "core/css/CSSLineBoxContainValue.h" | 56 #include "core/css/CSSLineBoxContainValue.h" |
56 #include "core/css/CSSParser.h" | 57 #include "core/css/CSSParser.h" |
57 #include "core/css/CSSPrimitiveValueMappings.h" | 58 #include "core/css/CSSPrimitiveValueMappings.h" |
58 #include "core/css/CSSProperty.h" | 59 #include "core/css/CSSProperty.h" |
59 #include "core/css/CSSReflectValue.h" | 60 #include "core/css/CSSReflectValue.h" |
60 #include "core/css/CSSShadowValue.h" | 61 #include "core/css/CSSShadowValue.h" |
61 #include "core/css/CSSVariableValue.h" | 62 #include "core/css/CSSVariableValue.h" |
62 #include "core/css/Counter.h" | 63 #include "core/css/Counter.h" |
63 #include "core/css/Pair.h" | 64 #include "core/css/Pair.h" |
(...skipping 20 matching lines...) Expand all Loading... |
84 #include "core/svg/SVGURIReference.h" | 85 #include "core/svg/SVGURIReference.h" |
85 #include "platform/fonts/FontDescription.h" | 86 #include "platform/fonts/FontDescription.h" |
86 #include "wtf/MathExtras.h" | 87 #include "wtf/MathExtras.h" |
87 #include "wtf/StdLibExtras.h" | 88 #include "wtf/StdLibExtras.h" |
88 #include "wtf/Vector.h" | 89 #include "wtf/Vector.h" |
89 | 90 |
90 namespace WebCore { | 91 namespace WebCore { |
91 | 92 |
92 static Length clipConvertToLength(StyleResolverState& state, CSSPrimitiveValue*
value) | 93 static Length clipConvertToLength(StyleResolverState& state, CSSPrimitiveValue*
value) |
93 { | 94 { |
94 return value->convertToLength<FixedConversion | PercentConversion | AutoConv
ersion>(state.style(), state.rootElementStyle(), state.style()->effectiveZoom())
; | 95 return value->convertToLength<FixedConversion | PercentConversion | AutoConv
ersion>(state.cssToLengthConversionData()); |
95 } | 96 } |
96 | 97 |
97 void StyleBuilderFunctions::applyInitialCSSPropertyClip(StyleResolverState& stat
e) | 98 void StyleBuilderFunctions::applyInitialCSSPropertyClip(StyleResolverState& stat
e) |
98 { | 99 { |
99 state.style()->setClip(Length(), Length(), Length(), Length()); | 100 state.style()->setClip(Length(), Length(), Length(), Length()); |
100 state.style()->setHasClip(false); | 101 state.style()->setHasClip(false); |
101 } | 102 } |
102 | 103 |
103 void StyleBuilderFunctions::applyInheritCSSPropertyClip(StyleResolverState& stat
e) | 104 void StyleBuilderFunctions::applyInheritCSSPropertyClip(StyleResolverState& stat
e) |
104 { | 105 { |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
268 { | 269 { |
269 if (!value->isPrimitiveValue()) | 270 if (!value->isPrimitiveValue()) |
270 return; | 271 return; |
271 | 272 |
272 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 273 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
273 Length lineHeight; | 274 Length lineHeight; |
274 | 275 |
275 if (primitiveValue->getValueID() == CSSValueNormal) { | 276 if (primitiveValue->getValueID() == CSSValueNormal) { |
276 lineHeight = RenderStyle::initialLineHeight(); | 277 lineHeight = RenderStyle::initialLineHeight(); |
277 } else if (primitiveValue->isLength()) { | 278 } else if (primitiveValue->isLength()) { |
278 double multiplier = state.style()->effectiveZoom(); | 279 float multiplier = state.style()->effectiveZoom(); |
279 if (Frame* frame = state.document().frame()) | 280 if (Frame* frame = state.document().frame()) |
280 multiplier *= frame->textZoomFactor(); | 281 multiplier *= frame->textZoomFactor(); |
281 lineHeight = primitiveValue->computeLength<Length>(state.style(), state.
rootElementStyle(), multiplier); | 282 lineHeight = primitiveValue->computeLength<Length>(state.cssToLengthConv
ersionData().copyWithAdjustedZoom(multiplier)); |
282 } else if (primitiveValue->isPercentage()) { | 283 } else if (primitiveValue->isPercentage()) { |
283 lineHeight = Length((state.style()->computedFontSize() * primitiveValue-
>getIntValue()) / 100.0, Fixed); | 284 lineHeight = Length((state.style()->computedFontSize() * primitiveValue-
>getIntValue()) / 100.0, Fixed); |
284 } else if (primitiveValue->isNumber()) { | 285 } else if (primitiveValue->isNumber()) { |
285 lineHeight = Length(primitiveValue->getDoubleValue() * 100.0, Percent); | 286 lineHeight = Length(primitiveValue->getDoubleValue() * 100.0, Percent); |
286 } else if (primitiveValue->isViewportPercentageLength()) { | 287 } else if (primitiveValue->isViewportPercentageLength()) { |
287 lineHeight = primitiveValue->viewportPercentageLength(); | 288 lineHeight = primitiveValue->viewportPercentageLength(); |
288 } else if (primitiveValue->isCalculated()) { | 289 } else if (primitiveValue->isCalculated()) { |
289 double multiplier = state.style()->effectiveZoom(); | 290 double multiplier = state.style()->effectiveZoom(); |
290 if (Frame* frame = state.document().frame()) | 291 if (Frame* frame = state.document().frame()) |
291 multiplier *= frame->textZoomFactor(); | 292 multiplier *= frame->textZoomFactor(); |
292 Length zoomedLength = Length(primitiveValue->cssCalcValue()->toCalcValue
(state.style(), state.rootElementStyle(), multiplier)); | 293 Length zoomedLength = Length(primitiveValue->cssCalcValue()->toCalcValue
(state.cssToLengthConversionData().copyWithAdjustedZoom(multiplier))); |
293 lineHeight = Length(valueForLength(zoomedLength, state.style()->fontSize
()), Fixed); | 294 lineHeight = Length(valueForLength(zoomedLength, state.style()->fontSize
()), Fixed); |
294 } else { | 295 } else { |
295 return; | 296 return; |
296 } | 297 } |
297 state.style()->setLineHeight(lineHeight); | 298 state.style()->setLineHeight(lineHeight); |
298 } | 299 } |
299 | 300 |
300 void StyleBuilderFunctions::applyValueCSSPropertyListStyleImage(StyleResolverSta
te& state, CSSValue* value) | 301 void StyleBuilderFunctions::applyValueCSSPropertyListStyleImage(StyleResolverSta
te& state, CSSValue* value) |
301 { | 302 { |
302 state.style()->setListStyleImage(state.styleImage(CSSPropertyListStyleImage,
value)); | 303 state.style()->setListStyleImage(state.styleImage(CSSPropertyListStyleImage,
value)); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 case CSSValueAuto: | 336 case CSSValueAuto: |
336 if (Settings* settings = state.document().settings()) | 337 if (Settings* settings = state.document().settings()) |
337 r = settings->textAreasAreResizable() ? RESIZE_BOTH : RESIZE_NONE; | 338 r = settings->textAreasAreResizable() ? RESIZE_BOTH : RESIZE_NONE; |
338 break; | 339 break; |
339 default: | 340 default: |
340 r = *primitiveValue; | 341 r = *primitiveValue; |
341 } | 342 } |
342 state.style()->setResize(r); | 343 state.style()->setResize(r); |
343 } | 344 } |
344 | 345 |
345 static Length mmLength(double mm) { return CSSPrimitiveValue::create(mm, CSSPrim
itiveValue::CSS_MM)->computeLength<Length>(0, 0); } | 346 static Length mmLength(double mm) { return Length(mm * cssPixelsPerMillimeter, F
ixed); } |
346 static Length inchLength(double inch) { return CSSPrimitiveValue::create(inch, C
SSPrimitiveValue::CSS_IN)->computeLength<Length>(0, 0); } | 347 static Length inchLength(double inch) { return Length(inch * cssPixelsPerInch, F
ixed); } |
347 static bool getPageSizeFromName(CSSPrimitiveValue* pageSizeName, CSSPrimitiveVal
ue* pageOrientation, Length& width, Length& height) | 348 static bool getPageSizeFromName(CSSPrimitiveValue* pageSizeName, CSSPrimitiveVal
ue* pageOrientation, Length& width, Length& height) |
348 { | 349 { |
349 DEFINE_STATIC_LOCAL(Length, a5Width, (mmLength(148))); | 350 DEFINE_STATIC_LOCAL(Length, a5Width, (mmLength(148))); |
350 DEFINE_STATIC_LOCAL(Length, a5Height, (mmLength(210))); | 351 DEFINE_STATIC_LOCAL(Length, a5Height, (mmLength(210))); |
351 DEFINE_STATIC_LOCAL(Length, a4Width, (mmLength(210))); | 352 DEFINE_STATIC_LOCAL(Length, a4Width, (mmLength(210))); |
352 DEFINE_STATIC_LOCAL(Length, a4Height, (mmLength(297))); | 353 DEFINE_STATIC_LOCAL(Length, a4Height, (mmLength(297))); |
353 DEFINE_STATIC_LOCAL(Length, a3Width, (mmLength(297))); | 354 DEFINE_STATIC_LOCAL(Length, a3Width, (mmLength(297))); |
354 DEFINE_STATIC_LOCAL(Length, a3Height, (mmLength(420))); | 355 DEFINE_STATIC_LOCAL(Length, a3Height, (mmLength(420))); |
355 DEFINE_STATIC_LOCAL(Length, b5Width, (mmLength(176))); | 356 DEFINE_STATIC_LOCAL(Length, b5Width, (mmLength(176))); |
356 DEFINE_STATIC_LOCAL(Length, b5Height, (mmLength(250))); | 357 DEFINE_STATIC_LOCAL(Length, b5Height, (mmLength(250))); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
431 case 2: { | 432 case 2: { |
432 // <length>{2} | <page-size> <orientation> | 433 // <length>{2} | <page-size> <orientation> |
433 if (!inspector.first()->isPrimitiveValue() || !inspector.second()->isPri
mitiveValue()) | 434 if (!inspector.first()->isPrimitiveValue() || !inspector.second()->isPri
mitiveValue()) |
434 return; | 435 return; |
435 CSSPrimitiveValue* first = toCSSPrimitiveValue(inspector.first()); | 436 CSSPrimitiveValue* first = toCSSPrimitiveValue(inspector.first()); |
436 CSSPrimitiveValue* second = toCSSPrimitiveValue(inspector.second()); | 437 CSSPrimitiveValue* second = toCSSPrimitiveValue(inspector.second()); |
437 if (first->isLength()) { | 438 if (first->isLength()) { |
438 // <length>{2} | 439 // <length>{2} |
439 if (!second->isLength()) | 440 if (!second->isLength()) |
440 return; | 441 return; |
441 width = first->computeLength<Length>(state.style(), state.rootElemen
tStyle()); | 442 width = first->computeLength<Length>(state.cssToLengthConversionData
().copyWithAdjustedZoom(1.0)); |
442 height = second->computeLength<Length>(state.style(), state.rootElem
entStyle()); | 443 height = second->computeLength<Length>(state.cssToLengthConversionDa
ta().copyWithAdjustedZoom(1.0)); |
443 } else { | 444 } else { |
444 // <page-size> <orientation> | 445 // <page-size> <orientation> |
445 // The value order is guaranteed. See CSSParser::parseSizeParameter. | 446 // The value order is guaranteed. See CSSParser::parseSizeParameter. |
446 if (!getPageSizeFromName(first, second, width, height)) | 447 if (!getPageSizeFromName(first, second, width, height)) |
447 return; | 448 return; |
448 } | 449 } |
449 pageSizeType = PAGE_SIZE_RESOLVED; | 450 pageSizeType = PAGE_SIZE_RESOLVED; |
450 break; | 451 break; |
451 } | 452 } |
452 case 1: { | 453 case 1: { |
453 // <length> | auto | <page-size> | [ portrait | landscape] | 454 // <length> | auto | <page-size> | [ portrait | landscape] |
454 if (!inspector.first()->isPrimitiveValue()) | 455 if (!inspector.first()->isPrimitiveValue()) |
455 return; | 456 return; |
456 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(inspector.first(
)); | 457 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(inspector.first(
)); |
457 if (primitiveValue->isLength()) { | 458 if (primitiveValue->isLength()) { |
458 // <length> | 459 // <length> |
459 pageSizeType = PAGE_SIZE_RESOLVED; | 460 pageSizeType = PAGE_SIZE_RESOLVED; |
460 width = height = primitiveValue->computeLength<Length>(state.style()
, state.rootElementStyle()); | 461 width = height = primitiveValue->computeLength<Length>(state.cssToLe
ngthConversionData().copyWithAdjustedZoom(1.0)); |
461 } else { | 462 } else { |
462 switch (primitiveValue->getValueID()) { | 463 switch (primitiveValue->getValueID()) { |
463 case 0: | 464 case 0: |
464 return; | 465 return; |
465 case CSSValueAuto: | 466 case CSSValueAuto: |
466 pageSizeType = PAGE_SIZE_AUTO; | 467 pageSizeType = PAGE_SIZE_AUTO; |
467 break; | 468 break; |
468 case CSSValuePortrait: | 469 case CSSValuePortrait: |
469 pageSizeType = PAGE_SIZE_AUTO_PORTRAIT; | 470 pageSizeType = PAGE_SIZE_AUTO_PORTRAIT; |
470 break; | 471 break; |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
534 { | 535 { |
535 if (!value->isValueList()) | 536 if (!value->isValueList()) |
536 return; | 537 return; |
537 | 538 |
538 // [ <length> | <percentage> ] each-line | 539 // [ <length> | <percentage> ] each-line |
539 // The order is guaranteed. See CSSParser::parseTextIndent. | 540 // The order is guaranteed. See CSSParser::parseTextIndent. |
540 // The second value, each-line is handled only when css3TextEnabled() return
s true. | 541 // The second value, each-line is handled only when css3TextEnabled() return
s true. |
541 | 542 |
542 CSSValueList* valueList = toCSSValueList(value); | 543 CSSValueList* valueList = toCSSValueList(value); |
543 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(valueList->itemWitho
utBoundsCheck(0)); | 544 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(valueList->itemWitho
utBoundsCheck(0)); |
544 Length lengthOrPercentageValue = primitiveValue->convertToLength<FixedConver
sion | PercentConversion>(state.style(), state.rootElementStyle(), state.style()
->effectiveZoom()); | 545 Length lengthOrPercentageValue = primitiveValue->convertToLength<FixedConver
sion | PercentConversion>(state.cssToLengthConversionData()); |
545 ASSERT(!lengthOrPercentageValue.isUndefined()); | 546 ASSERT(!lengthOrPercentageValue.isUndefined()); |
546 state.style()->setTextIndent(lengthOrPercentageValue); | 547 state.style()->setTextIndent(lengthOrPercentageValue); |
547 | 548 |
548 ASSERT(valueList->length() <= 2); | 549 ASSERT(valueList->length() <= 2); |
549 CSSPrimitiveValue* eachLineValue = toCSSPrimitiveValue(valueList->item(1)); | 550 CSSPrimitiveValue* eachLineValue = toCSSPrimitiveValue(valueList->item(1)); |
550 if (eachLineValue) { | 551 if (eachLineValue) { |
551 ASSERT(eachLineValue->getValueID() == CSSValueEachLine); | 552 ASSERT(eachLineValue->getValueID() == CSSValueEachLine); |
552 state.style()->setTextIndentLine(TextIndentEachLine); | 553 state.style()->setTextIndentLine(TextIndentEachLine); |
553 } else | 554 } else |
554 state.style()->setTextIndentLine(TextIndentFirstLine); | 555 state.style()->setTextIndentLine(TextIndentFirstLine); |
555 } | 556 } |
556 | 557 |
557 void StyleBuilderFunctions::applyValueCSSPropertyVerticalAlign(StyleResolverStat
e& state, CSSValue* value) | 558 void StyleBuilderFunctions::applyValueCSSPropertyVerticalAlign(StyleResolverStat
e& state, CSSValue* value) |
558 { | 559 { |
559 if (!value->isPrimitiveValue()) | 560 if (!value->isPrimitiveValue()) |
560 return; | 561 return; |
561 | 562 |
562 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 563 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
563 | 564 |
564 if (primitiveValue->getValueID()) | 565 if (primitiveValue->getValueID()) |
565 return state.style()->setVerticalAlign(*primitiveValue); | 566 return state.style()->setVerticalAlign(*primitiveValue); |
566 | 567 |
567 state.style()->setVerticalAlignLength(primitiveValue->convertToLength<FixedC
onversion | PercentConversion>(state.style(), state.rootElementStyle(), state.st
yle()->effectiveZoom())); | 568 state.style()->setVerticalAlignLength(primitiveValue->convertToLength<FixedC
onversion | PercentConversion>(state.cssToLengthConversionData())); |
568 } | 569 } |
569 | 570 |
570 static void resetEffectiveZoom(StyleResolverState& state) | 571 static void resetEffectiveZoom(StyleResolverState& state) |
571 { | 572 { |
572 // Reset the zoom in effect. This allows the setZoom method to accurately co
mpute a new zoom in effect. | 573 // Reset the zoom in effect. This allows the setZoom method to accurately co
mpute a new zoom in effect. |
573 state.setEffectiveZoom(state.parentStyle() ? state.parentStyle()->effectiveZ
oom() : RenderStyle::initialZoom()); | 574 state.setEffectiveZoom(state.parentStyle() ? state.parentStyle()->effectiveZ
oom() : RenderStyle::initialZoom()); |
574 } | 575 } |
575 | 576 |
576 void StyleBuilderFunctions::applyInitialCSSPropertyZoom(StyleResolverState& stat
e) | 577 void StyleBuilderFunctions::applyInitialCSSPropertyZoom(StyleResolverState& stat
e) |
577 { | 578 { |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
685 case CSSValueNormal: | 686 case CSSValueNormal: |
686 state.style()->setMarqueeIncrement(Length(6, Fixed)); // 6px. The Wi
nIE default. | 687 state.style()->setMarqueeIncrement(Length(6, Fixed)); // 6px. The Wi
nIE default. |
687 break; | 688 break; |
688 case CSSValueLarge: | 689 case CSSValueLarge: |
689 state.style()->setMarqueeIncrement(Length(36, Fixed)); // 36px. | 690 state.style()->setMarqueeIncrement(Length(36, Fixed)); // 36px. |
690 break; | 691 break; |
691 default: | 692 default: |
692 break; | 693 break; |
693 } | 694 } |
694 } else { | 695 } else { |
695 Length marqueeLength = primitiveValue ? primitiveValue->convertToLength<
FixedConversion | PercentConversion>(state.style(), state.rootElementStyle()) :
Length(Undefined); | 696 Length marqueeLength = primitiveValue ? primitiveValue->convertToLength<
FixedConversion | PercentConversion>(state.cssToLengthConversionData()) : Length
(Undefined); |
696 if (!marqueeLength.isUndefined()) | 697 if (!marqueeLength.isUndefined()) |
697 state.style()->setMarqueeIncrement(marqueeLength); | 698 state.style()->setMarqueeIncrement(marqueeLength); |
698 } | 699 } |
699 } | 700 } |
700 | 701 |
701 void StyleBuilderFunctions::applyValueCSSPropertyInternalMarqueeSpeed(StyleResol
verState& state, CSSValue* value) | 702 void StyleBuilderFunctions::applyValueCSSPropertyInternalMarqueeSpeed(StyleResol
verState& state, CSSValue* value) |
702 { | 703 { |
703 if (!value->isPrimitiveValue()) | 704 if (!value->isPrimitiveValue()) |
704 return; | 705 return; |
705 | 706 |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
824 { | 825 { |
825 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 826 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
826 if (primitiveValue->isURI()) | 827 if (primitiveValue->isURI()) |
827 return SVGURIReference::fragmentIdentifierFromIRIString(primitiveValue->
getStringValue(), state.document()); | 828 return SVGURIReference::fragmentIdentifierFromIRIString(primitiveValue->
getStringValue(), state.document()); |
828 return String(); | 829 return String(); |
829 } | 830 } |
830 | 831 |
831 Length StyleBuilderConverter::convertLength(StyleResolverState& state, CSSValue*
value) | 832 Length StyleBuilderConverter::convertLength(StyleResolverState& state, CSSValue*
value) |
832 { | 833 { |
833 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 834 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
834 Length result = primitiveValue->convertToLength<FixedConversion | PercentCon
version>(state.style(), state.rootElementStyle(), state.style()->effectiveZoom()
); | 835 Length result = primitiveValue->convertToLength<FixedConversion | PercentCon
version>(state.cssToLengthConversionData()); |
835 ASSERT(!result.isUndefined()); | 836 ASSERT(!result.isUndefined()); |
836 result.setQuirk(primitiveValue->isQuirkValue()); | 837 result.setQuirk(primitiveValue->isQuirkValue()); |
837 return result; | 838 return result; |
838 } | 839 } |
839 | 840 |
840 Length StyleBuilderConverter::convertLengthOrAuto(StyleResolverState& state, CSS
Value* value) | 841 Length StyleBuilderConverter::convertLengthOrAuto(StyleResolverState& state, CSS
Value* value) |
841 { | 842 { |
842 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 843 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
843 Length result = primitiveValue->convertToLength<FixedConversion | PercentCon
version | AutoConversion>(state.style(), state.rootElementStyle(), state.style()
->effectiveZoom()); | 844 Length result = primitiveValue->convertToLength<FixedConversion | PercentCon
version | AutoConversion>(state.cssToLengthConversionData()); |
844 ASSERT(!result.isUndefined()); | 845 ASSERT(!result.isUndefined()); |
845 result.setQuirk(primitiveValue->isQuirkValue()); | 846 result.setQuirk(primitiveValue->isQuirkValue()); |
846 return result; | 847 return result; |
847 } | 848 } |
848 | 849 |
849 Length StyleBuilderConverter::convertLengthSizing(StyleResolverState& state, CSS
Value* value) | 850 Length StyleBuilderConverter::convertLengthSizing(StyleResolverState& state, CSS
Value* value) |
850 { | 851 { |
851 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 852 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
852 switch (primitiveValue->getValueID()) { | 853 switch (primitiveValue->getValueID()) { |
853 case CSSValueInvalid: | 854 case CSSValueInvalid: |
(...skipping 23 matching lines...) Expand all Loading... |
877 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 878 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
878 if (primitiveValue->getValueID() == CSSValueNone) | 879 if (primitiveValue->getValueID() == CSSValueNone) |
879 return Length(Undefined); | 880 return Length(Undefined); |
880 return convertLengthSizing(state, value); | 881 return convertLengthSizing(state, value); |
881 } | 882 } |
882 | 883 |
883 LengthPoint StyleBuilderConverter::convertLengthPoint(StyleResolverState& state,
CSSValue* value) | 884 LengthPoint StyleBuilderConverter::convertLengthPoint(StyleResolverState& state,
CSSValue* value) |
884 { | 885 { |
885 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 886 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
886 Pair* pair = primitiveValue->getPairValue(); | 887 Pair* pair = primitiveValue->getPairValue(); |
887 Length x = pair->first()->convertToLength<FixedConversion | PercentConversio
n>(state.style(), state.rootElementStyle(), state.style()->effectiveZoom()); | 888 Length x = pair->first()->convertToLength<FixedConversion | PercentConversio
n>(state.cssToLengthConversionData()); |
888 Length y = pair->second()->convertToLength<FixedConversion | PercentConversi
on>(state.style(), state.rootElementStyle(), state.style()->effectiveZoom()); | 889 Length y = pair->second()->convertToLength<FixedConversion | PercentConversi
on>(state.cssToLengthConversionData()); |
889 return LengthPoint(x, y); | 890 return LengthPoint(x, y); |
890 } | 891 } |
891 | 892 |
892 float StyleBuilderConverter::convertNumberOrPercentage(StyleResolverState& state
, CSSValue* value) | 893 float StyleBuilderConverter::convertNumberOrPercentage(StyleResolverState& state
, CSSValue* value) |
893 { | 894 { |
894 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 895 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
895 ASSERT(primitiveValue->isNumber() || primitiveValue->isPercentage()); | 896 ASSERT(primitiveValue->isNumber() || primitiveValue->isPercentage()); |
896 if (primitiveValue->isNumber()) | 897 if (primitiveValue->isNumber()) |
897 return primitiveValue->getFloatValue(); | 898 return primitiveValue->getFloatValue(); |
898 return primitiveValue->getFloatValue() / 100.0f; | 899 return primitiveValue->getFloatValue() / 100.0f; |
899 } | 900 } |
900 | 901 |
901 LengthSize StyleBuilderConverter::convertRadius(StyleResolverState& state, CSSVa
lue* value) | 902 LengthSize StyleBuilderConverter::convertRadius(StyleResolverState& state, CSSVa
lue* value) |
902 { | 903 { |
903 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 904 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
904 Pair* pair = primitiveValue->getPairValue(); | 905 Pair* pair = primitiveValue->getPairValue(); |
905 Length radiusWidth = pair->first()->convertToLength<FixedConversion | Percen
tConversion>(state.style(), state.rootElementStyle(), state.style()->effectiveZo
om()); | 906 Length radiusWidth = pair->first()->convertToLength<FixedConversion | Percen
tConversion>(state.cssToLengthConversionData()); |
906 Length radiusHeight = pair->second()->convertToLength<FixedConversion | Perc
entConversion>(state.style(), state.rootElementStyle(), state.style()->effective
Zoom()); | 907 Length radiusHeight = pair->second()->convertToLength<FixedConversion | Perc
entConversion>(state.cssToLengthConversionData()); |
907 float width = radiusWidth.value(); | 908 float width = radiusWidth.value(); |
908 float height = radiusHeight.value(); | 909 float height = radiusHeight.value(); |
909 ASSERT(width >= 0 && height >= 0); | 910 ASSERT(width >= 0 && height >= 0); |
910 if (width <= 0 || height <= 0) | 911 if (width <= 0 || height <= 0) |
911 return LengthSize(Length(0, Fixed), Length(0, Fixed)); | 912 return LengthSize(Length(0, Fixed), Length(0, Fixed)); |
912 return LengthSize(radiusWidth, radiusHeight); | 913 return LengthSize(radiusWidth, radiusHeight); |
913 } | 914 } |
914 | 915 |
915 PassRefPtr<ShadowList> StyleBuilderConverter::convertShadow(StyleResolverState&
state, CSSValue* value) | 916 PassRefPtr<ShadowList> StyleBuilderConverter::convertShadow(StyleResolverState&
state, CSSValue* value) |
916 { | 917 { |
917 if (value->isPrimitiveValue()) { | 918 if (value->isPrimitiveValue()) { |
918 ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueNone); | 919 ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueNone); |
919 return PassRefPtr<ShadowList>(); | 920 return PassRefPtr<ShadowList>(); |
920 } | 921 } |
921 | 922 |
922 const CSSValueList* valueList = toCSSValueList(value); | 923 const CSSValueList* valueList = toCSSValueList(value); |
923 size_t shadowCount = valueList->length(); | 924 size_t shadowCount = valueList->length(); |
924 float zoom = state.style()->effectiveZoom(); | |
925 ShadowDataVector shadows; | 925 ShadowDataVector shadows; |
926 for (size_t i = 0; i < shadowCount; ++i) { | 926 for (size_t i = 0; i < shadowCount; ++i) { |
927 const CSSShadowValue* item = toCSSShadowValue(valueList->item(i)); | 927 const CSSShadowValue* item = toCSSShadowValue(valueList->item(i)); |
928 int x = item->x->computeLength<int>(state.style(), state.rootElementStyl
e(), zoom); | 928 int x = item->x->computeLength<int>(state.cssToLengthConversionData()); |
929 int y = item->y->computeLength<int>(state.style(), state.rootElementStyl
e(), zoom); | 929 int y = item->y->computeLength<int>(state.cssToLengthConversionData()); |
930 int blur = item->blur ? item->blur->computeLength<int>(state.style(), st
ate.rootElementStyle(), zoom) : 0; | 930 int blur = item->blur ? item->blur->computeLength<int>(state.cssToLength
ConversionData()) : 0; |
931 int spread = item->spread ? item->spread->computeLength<int>(state.style
(), state.rootElementStyle(), zoom) : 0; | 931 int spread = item->spread ? item->spread->computeLength<int>(state.cssTo
LengthConversionData()) : 0; |
932 ShadowStyle shadowStyle = item->style && item->style->getValueID() == CS
SValueInset ? Inset : Normal; | 932 ShadowStyle shadowStyle = item->style && item->style->getValueID() == CS
SValueInset ? Inset : Normal; |
933 Color color; | 933 Color color; |
934 if (item->color) | 934 if (item->color) |
935 color = state.document().textLinkColors().colorFromPrimitiveValue(it
em->color.get(), state.style()->visitedDependentColor(CSSPropertyColor)); | 935 color = state.document().textLinkColors().colorFromPrimitiveValue(it
em->color.get(), state.style()->visitedDependentColor(CSSPropertyColor)); |
936 else | 936 else |
937 color = state.style()->color(); | 937 color = state.style()->color(); |
938 | 938 |
939 if (!color.isValid()) | 939 if (!color.isValid()) |
940 color = Color::transparent; | 940 color = Color::transparent; |
941 shadows.append(ShadowData(IntPoint(x, y), blur, spread, shadowStyle, col
or)); | 941 shadows.append(ShadowData(IntPoint(x, y), blur, spread, shadowStyle, col
or)); |
942 } | 942 } |
943 return ShadowList::adopt(shadows); | 943 return ShadowList::adopt(shadows); |
944 } | 944 } |
945 | 945 |
946 float StyleBuilderConverter::convertSpacing(StyleResolverState& state, CSSValue*
value) | 946 float StyleBuilderConverter::convertSpacing(StyleResolverState& state, CSSValue*
value) |
947 { | 947 { |
948 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 948 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
949 if (primitiveValue->getValueID() == CSSValueNormal) | 949 if (primitiveValue->getValueID() == CSSValueNormal) |
950 return 0; | 950 return 0; |
951 float zoom = state.useSVGZoomRules() ? 1.0f : state.style()->effectiveZoom()
; | 951 if (state.useSVGZoomRules()) |
952 return primitiveValue->computeLength<float>(state.style(), state.rootElement
Style(), zoom); | 952 return primitiveValue->computeLength<float>(state.cssToLengthConversionD
ata().copyWithAdjustedZoom(1)); |
| 953 return primitiveValue->computeLength<float>(state.cssToLengthConversionData(
)); |
953 } | 954 } |
954 | 955 |
955 SVGLength StyleBuilderConverter::convertSVGLength(StyleResolverState&, CSSValue*
value) | 956 SVGLength StyleBuilderConverter::convertSVGLength(StyleResolverState&, CSSValue*
value) |
956 { | 957 { |
957 return SVGLength::fromCSSPrimitiveValue(toCSSPrimitiveValue(value)); | 958 return SVGLength::fromCSSPrimitiveValue(toCSSPrimitiveValue(value)); |
958 } | 959 } |
959 | 960 |
960 | 961 |
961 // Everything below this line is from the old StyleResolver::applyProperty | 962 // Everything below this line is from the old StyleResolver::applyProperty |
962 // and eventually needs to move into new StyleBuilderFunctions calls intead. | 963 // and eventually needs to move into new StyleBuilderFunctions calls intead. |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
998 workingLength = Length(MaxContent); | 999 workingLength = Length(MaxContent); |
999 return true; | 1000 return true; |
1000 } | 1001 } |
1001 | 1002 |
1002 if (primitiveValue->isFlex()) { | 1003 if (primitiveValue->isFlex()) { |
1003 // Fractional unit. | 1004 // Fractional unit. |
1004 workingLength.setFlex(primitiveValue->getDoubleValue()); | 1005 workingLength.setFlex(primitiveValue->getDoubleValue()); |
1005 return true; | 1006 return true; |
1006 } | 1007 } |
1007 | 1008 |
1008 workingLength = primitiveValue->convertToLength<FixedConversion | PercentCon
version | AutoConversion>(state.style(), state.rootElementStyle(), state.style()
->effectiveZoom()); | 1009 workingLength = primitiveValue->convertToLength<FixedConversion | PercentCon
version | AutoConversion>(state.cssToLengthConversionData()); |
1009 if (workingLength.length().isUndefined()) | 1010 if (workingLength.length().isUndefined()) |
1010 return false; | 1011 return false; |
1011 | 1012 |
1012 if (primitiveValue->isLength()) | 1013 if (primitiveValue->isLength()) |
1013 workingLength.length().setQuirk(primitiveValue->isQuirkValue()); | 1014 workingLength.length().setQuirk(primitiveValue->isQuirkValue()); |
1014 | 1015 |
1015 return true; | 1016 return true; |
1016 } | 1017 } |
1017 | 1018 |
1018 static bool createGridTrackSize(CSSValue* value, GridTrackSize& trackSize, const
StyleResolverState& state) | 1019 static bool createGridTrackSize(CSSValue* value, GridTrackSize& trackSize, const
StyleResolverState& state) |
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1322 | 1323 |
1323 // Fall back to the old switch statement, which is now in StyleBuilderCustom
.cpp | 1324 // Fall back to the old switch statement, which is now in StyleBuilderCustom
.cpp |
1324 StyleBuilder::oldApplyProperty(id, state, value, isInitial, isInherit); | 1325 StyleBuilder::oldApplyProperty(id, state, value, isInitial, isInherit); |
1325 } | 1326 } |
1326 | 1327 |
1327 | 1328 |
1328 void StyleBuilder::oldApplyProperty(CSSPropertyID id, StyleResolverState& state,
CSSValue* value, bool isInitial, bool isInherit) | 1329 void StyleBuilder::oldApplyProperty(CSSPropertyID id, StyleResolverState& state,
CSSValue* value, bool isInitial, bool isInherit) |
1329 { | 1330 { |
1330 CSSPrimitiveValue* primitiveValue = value->isPrimitiveValue() ? toCSSPrimiti
veValue(value) : 0; | 1331 CSSPrimitiveValue* primitiveValue = value->isPrimitiveValue() ? toCSSPrimiti
veValue(value) : 0; |
1331 | 1332 |
1332 float zoomFactor = state.style()->effectiveZoom(); | |
1333 | |
1334 // What follows is a list that maps the CSS properties into their correspond
ing front-end | 1333 // What follows is a list that maps the CSS properties into their correspond
ing front-end |
1335 // RenderStyle values. | 1334 // RenderStyle values. |
1336 switch (id) { | 1335 switch (id) { |
1337 case CSSPropertyContent: | 1336 case CSSPropertyContent: |
1338 // list of string, uri, counter, attr, i | 1337 // list of string, uri, counter, attr, i |
1339 { | 1338 { |
1340 // FIXME: In CSS3, it will be possible to inherit content. In CSS2 i
t is not. This | 1339 // FIXME: In CSS3, it will be possible to inherit content. In CSS2 i
t is not. This |
1341 // note is a reminder that eventually "inherit" needs to be supporte
d. | 1340 // note is a reminder that eventually "inherit" needs to be supporte
d. |
1342 | 1341 |
1343 if (isInitial) { | 1342 if (isInitial) { |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1517 return; | 1516 return; |
1518 } | 1517 } |
1519 | 1518 |
1520 if (!value->isReflectValue()) | 1519 if (!value->isReflectValue()) |
1521 return; | 1520 return; |
1522 | 1521 |
1523 CSSReflectValue* reflectValue = toCSSReflectValue(value); | 1522 CSSReflectValue* reflectValue = toCSSReflectValue(value); |
1524 RefPtr<StyleReflection> reflection = StyleReflection::create(); | 1523 RefPtr<StyleReflection> reflection = StyleReflection::create(); |
1525 reflection->setDirection(*reflectValue->direction()); | 1524 reflection->setDirection(*reflectValue->direction()); |
1526 if (reflectValue->offset()) | 1525 if (reflectValue->offset()) |
1527 reflection->setOffset(reflectValue->offset()->convertToLength<FixedC
onversion | PercentConversion>(state.style(), state.rootElementStyle(), zoomFact
or)); | 1526 reflection->setOffset(reflectValue->offset()->convertToLength<FixedC
onversion | PercentConversion>(state.cssToLengthConversionData())); |
1528 NinePieceImage mask; | 1527 NinePieceImage mask; |
1529 mask.setMaskDefaults(); | 1528 mask.setMaskDefaults(); |
1530 state.styleMap().mapNinePieceImage(state.style(), id, reflectValue->mask
(), mask); | 1529 state.styleMap().mapNinePieceImage(state.style(), id, reflectValue->mask
(), mask); |
1531 reflection->setMask(mask); | 1530 reflection->setMask(mask); |
1532 | 1531 |
1533 state.style()->setBoxReflect(reflection.release()); | 1532 state.style()->setBoxReflect(reflection.release()); |
1534 return; | 1533 return; |
1535 } | 1534 } |
1536 case CSSPropertySrc: // Only used in @font-face rules. | 1535 case CSSPropertySrc: // Only used in @font-face rules. |
1537 return; | 1536 return; |
(...skipping 22 matching lines...) Expand all Loading... |
1560 float width = 0; | 1559 float width = 0; |
1561 switch (primitiveValue->getValueID()) { | 1560 switch (primitiveValue->getValueID()) { |
1562 case CSSValueThin: | 1561 case CSSValueThin: |
1563 case CSSValueMedium: | 1562 case CSSValueMedium: |
1564 case CSSValueThick: { | 1563 case CSSValueThick: { |
1565 double result = 1.0 / 48; | 1564 double result = 1.0 / 48; |
1566 if (primitiveValue->getValueID() == CSSValueMedium) | 1565 if (primitiveValue->getValueID() == CSSValueMedium) |
1567 result *= 3; | 1566 result *= 3; |
1568 else if (primitiveValue->getValueID() == CSSValueThick) | 1567 else if (primitiveValue->getValueID() == CSSValueThick) |
1569 result *= 5; | 1568 result *= 5; |
1570 width = CSSPrimitiveValue::create(result, CSSPrimitiveValue::CSS_EMS
)->computeLength<float>(state.style(), state.rootElementStyle(), zoomFactor); | 1569 width = CSSPrimitiveValue::create(result, CSSPrimitiveValue::CSS_EMS
)->computeLength<float>(state.cssToLengthConversionData()); |
1571 break; | 1570 break; |
1572 } | 1571 } |
1573 default: | 1572 default: |
1574 width = primitiveValue->computeLength<float>(state.style(), state.ro
otElementStyle(), zoomFactor); | 1573 width = primitiveValue->computeLength<float>(state.cssToLengthConver
sionData()); |
1575 break; | 1574 break; |
1576 } | 1575 } |
1577 state.style()->setTextStrokeWidth(width); | 1576 state.style()->setTextStrokeWidth(width); |
1578 return; | 1577 return; |
1579 } | 1578 } |
1580 case CSSPropertyWebkitTransform: { | 1579 case CSSPropertyWebkitTransform: { |
1581 HANDLE_INHERIT_AND_INITIAL(transform, Transform); | 1580 HANDLE_INHERIT_AND_INITIAL(transform, Transform); |
1582 TransformOperations operations; | 1581 TransformOperations operations; |
1583 TransformBuilder::createTransformOperations(value, state.style(), state.
rootElementStyle(), operations); | 1582 TransformBuilder::createTransformOperations(value, state.cssToLengthConv
ersionData(), operations); |
1584 state.style()->setTransform(operations); | 1583 state.style()->setTransform(operations); |
1585 return; | 1584 return; |
1586 } | 1585 } |
1587 case CSSPropertyWebkitPerspective: { | 1586 case CSSPropertyWebkitPerspective: { |
1588 HANDLE_INHERIT_AND_INITIAL(perspective, Perspective) | 1587 HANDLE_INHERIT_AND_INITIAL(perspective, Perspective) |
1589 | 1588 |
1590 if (!primitiveValue) | 1589 if (!primitiveValue) |
1591 return; | 1590 return; |
1592 | 1591 |
1593 if (primitiveValue->getValueID() == CSSValueNone) { | 1592 if (primitiveValue->getValueID() == CSSValueNone) { |
1594 state.style()->setPerspective(0); | 1593 state.style()->setPerspective(0); |
1595 return; | 1594 return; |
1596 } | 1595 } |
1597 | 1596 |
1598 float perspectiveValue; | 1597 float perspectiveValue; |
1599 if (primitiveValue->isLength()) { | 1598 if (primitiveValue->isLength()) { |
1600 perspectiveValue = primitiveValue->computeLength<float>(state.style(
), state.rootElementStyle(), zoomFactor); | 1599 perspectiveValue = primitiveValue->computeLength<float>(state.cssToL
engthConversionData()); |
1601 } else if (primitiveValue->isNumber()) { | 1600 } else if (primitiveValue->isNumber()) { |
1602 // For backward compatibility, treat valueless numbers as px. | 1601 // For backward compatibility, treat valueless numbers as px. |
1603 perspectiveValue = CSSPrimitiveValue::create(primitiveValue->getDoub
leValue(), CSSPrimitiveValue::CSS_PX)->computeLength<float>(state.style(), state
.rootElementStyle(), zoomFactor); | 1602 perspectiveValue = CSSPrimitiveValue::create(primitiveValue->getDoub
leValue(), CSSPrimitiveValue::CSS_PX)->computeLength<float>(state.cssToLengthCon
versionData()); |
1604 } else { | 1603 } else { |
1605 return; | 1604 return; |
1606 } | 1605 } |
1607 | 1606 |
1608 if (perspectiveValue >= 0.0f) | 1607 if (perspectiveValue >= 0.0f) |
1609 state.style()->setPerspective(perspectiveValue); | 1608 state.style()->setPerspective(perspectiveValue); |
1610 return; | 1609 return; |
1611 } | 1610 } |
1612 case CSSPropertyWebkitTapHighlightColor: { | 1611 case CSSPropertyWebkitTapHighlightColor: { |
1613 HANDLE_INHERIT_AND_INITIAL(tapHighlightColor, TapHighlightColor); | 1612 HANDLE_INHERIT_AND_INITIAL(tapHighlightColor, TapHighlightColor); |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1729 if (!value->isValueList()) | 1728 if (!value->isValueList()) |
1730 return; | 1729 return; |
1731 | 1730 |
1732 state.fontBuilder().setFeatureSettingsValue(value); | 1731 state.fontBuilder().setFeatureSettingsValue(value); |
1733 return; | 1732 return; |
1734 } | 1733 } |
1735 | 1734 |
1736 case CSSPropertyWebkitFilter: { | 1735 case CSSPropertyWebkitFilter: { |
1737 HANDLE_INHERIT_AND_INITIAL(filter, Filter); | 1736 HANDLE_INHERIT_AND_INITIAL(filter, Filter); |
1738 FilterOperations operations; | 1737 FilterOperations operations; |
1739 if (FilterOperationResolver::createFilterOperations(value, state.style()
, state.rootElementStyle(), operations, state)) | 1738 if (FilterOperationResolver::createFilterOperations(value, state.cssToLe
ngthConversionData(), operations, state)) |
1740 state.style()->setFilter(operations); | 1739 state.style()->setFilter(operations); |
1741 return; | 1740 return; |
1742 } | 1741 } |
1743 case CSSPropertyGridAutoColumns: { | 1742 case CSSPropertyGridAutoColumns: { |
1744 HANDLE_INHERIT_AND_INITIAL(gridAutoColumns, GridAutoColumns); | 1743 HANDLE_INHERIT_AND_INITIAL(gridAutoColumns, GridAutoColumns); |
1745 GridTrackSize trackSize; | 1744 GridTrackSize trackSize; |
1746 if (!createGridTrackSize(value, trackSize, state)) | 1745 if (!createGridTrackSize(value, trackSize, state)) |
1747 return; | 1746 return; |
1748 state.style()->setGridAutoColumns(trackSize); | 1747 state.style()->setGridAutoColumns(trackSize); |
1749 return; | 1748 return; |
(...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2306 break; | 2305 break; |
2307 } | 2306 } |
2308 case CSSPropertyEnableBackground: | 2307 case CSSPropertyEnableBackground: |
2309 // Silently ignoring this property for now | 2308 // Silently ignoring this property for now |
2310 // http://bugs.webkit.org/show_bug.cgi?id=6022 | 2309 // http://bugs.webkit.org/show_bug.cgi?id=6022 |
2311 break; | 2310 break; |
2312 } | 2311 } |
2313 } | 2312 } |
2314 | 2313 |
2315 } // namespace WebCore | 2314 } // namespace WebCore |
OLD | NEW |