| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
| 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
| 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. |
| 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
| 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
| 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
| 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. |
| 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
| (...skipping 2219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2230 // width/height/border/padding/... from the RenderStyle -> for SVG these values
would never scale, | 2230 // width/height/border/padding/... from the RenderStyle -> for SVG these values
would never scale, |
| 2231 // if we'd pass a 1.0 zoom factor everyhwere. So we only pass a zoom factor of 1
.0 for specific | 2231 // if we'd pass a 1.0 zoom factor everyhwere. So we only pass a zoom factor of 1
.0 for specific |
| 2232 // properties that are NOT allowed to scale within a zoomed SVG document (letter
/word-spacing/font-size). | 2232 // properties that are NOT allowed to scale within a zoomed SVG document (letter
/word-spacing/font-size). |
| 2233 bool StyleResolver::useSVGZoomRules() | 2233 bool StyleResolver::useSVGZoomRules() |
| 2234 { | 2234 { |
| 2235 return m_state.element() && m_state.element()->isSVGElement(); | 2235 return m_state.element() && m_state.element()->isSVGElement(); |
| 2236 } | 2236 } |
| 2237 | 2237 |
| 2238 static bool createGridTrackBreadth(CSSPrimitiveValue* primitiveValue, const Styl
eResolverState& state, GridLength& workingLength) | 2238 static bool createGridTrackBreadth(CSSPrimitiveValue* primitiveValue, const Styl
eResolverState& state, GridLength& workingLength) |
| 2239 { | 2239 { |
| 2240 if (primitiveValue->getIdent() == CSSValueWebkitMinContent) { | 2240 if (primitiveValue->getValueID() == CSSValueWebkitMinContent) { |
| 2241 workingLength = Length(MinContent); | 2241 workingLength = Length(MinContent); |
| 2242 return true; | 2242 return true; |
| 2243 } | 2243 } |
| 2244 | 2244 |
| 2245 if (primitiveValue->getIdent() == CSSValueWebkitMaxContent) { | 2245 if (primitiveValue->getValueID() == CSSValueWebkitMaxContent) { |
| 2246 workingLength = Length(MaxContent); | 2246 workingLength = Length(MaxContent); |
| 2247 return true; | 2247 return true; |
| 2248 } | 2248 } |
| 2249 | 2249 |
| 2250 if (primitiveValue->isFlex()) { | 2250 if (primitiveValue->isFlex()) { |
| 2251 // Fractional unit. | 2251 // Fractional unit. |
| 2252 workingLength.setFlex(primitiveValue->getFloatValue()); | 2252 workingLength.setFlex(primitiveValue->getFloatValue()); |
| 2253 return true; | 2253 return true; |
| 2254 } | 2254 } |
| 2255 | 2255 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 2286 | 2286 |
| 2287 trackSize.setMinMax(minTrackBreadth, maxTrackBreadth); | 2287 trackSize.setMinMax(minTrackBreadth, maxTrackBreadth); |
| 2288 return true; | 2288 return true; |
| 2289 } | 2289 } |
| 2290 | 2290 |
| 2291 static bool createGridTrackList(CSSValue* value, Vector<GridTrackSize>& trackSiz
es, NamedGridLinesMap& namedGridLines, const StyleResolverState& state) | 2291 static bool createGridTrackList(CSSValue* value, Vector<GridTrackSize>& trackSiz
es, NamedGridLinesMap& namedGridLines, const StyleResolverState& state) |
| 2292 { | 2292 { |
| 2293 // Handle 'none'. | 2293 // Handle 'none'. |
| 2294 if (value->isPrimitiveValue()) { | 2294 if (value->isPrimitiveValue()) { |
| 2295 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 2295 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
| 2296 return primitiveValue->getIdent() == CSSValueNone; | 2296 return primitiveValue->getValueID() == CSSValueNone; |
| 2297 } | 2297 } |
| 2298 | 2298 |
| 2299 if (!value->isValueList()) | 2299 if (!value->isValueList()) |
| 2300 return false; | 2300 return false; |
| 2301 | 2301 |
| 2302 size_t currentNamedGridLine = 0; | 2302 size_t currentNamedGridLine = 0; |
| 2303 for (CSSValueListIterator i = value; i.hasMore(); i.advance()) { | 2303 for (CSSValueListIterator i = value; i.hasMore(); i.advance()) { |
| 2304 CSSValue* currValue = i.value(); | 2304 CSSValue* currValue = i.value(); |
| 2305 if (currValue->isPrimitiveValue()) { | 2305 if (currValue->isPrimitiveValue()) { |
| 2306 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(currValue); | 2306 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(currValue); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 2325 return true; | 2325 return true; |
| 2326 } | 2326 } |
| 2327 | 2327 |
| 2328 | 2328 |
| 2329 static bool createGridPosition(CSSValue* value, GridPosition& position) | 2329 static bool createGridPosition(CSSValue* value, GridPosition& position) |
| 2330 { | 2330 { |
| 2331 // For now, we only accept: 'auto' | [ <integer> || <string> ] | span && <in
teger>? | 2331 // For now, we only accept: 'auto' | [ <integer> || <string> ] | span && <in
teger>? |
| 2332 | 2332 |
| 2333 if (value->isPrimitiveValue()) { | 2333 if (value->isPrimitiveValue()) { |
| 2334 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 2334 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
| 2335 ASSERT(primitiveValue->getIdent() == CSSValueAuto); | 2335 ASSERT(primitiveValue->getValueID() == CSSValueAuto); |
| 2336 return true; | 2336 return true; |
| 2337 } | 2337 } |
| 2338 | 2338 |
| 2339 CSSValueList* values = toCSSValueList(value); | 2339 CSSValueList* values = toCSSValueList(value); |
| 2340 ASSERT(values->length()); | 2340 ASSERT(values->length()); |
| 2341 | 2341 |
| 2342 bool isSpanPosition = false; | 2342 bool isSpanPosition = false; |
| 2343 // The specification makes the <integer> optional, in which case it default
to '1'. | 2343 // The specification makes the <integer> optional, in which case it default
to '1'. |
| 2344 int gridLineNumber = 1; | 2344 int gridLineNumber = 1; |
| 2345 String gridLineName; | 2345 String gridLineName; |
| 2346 | 2346 |
| 2347 CSSValueListIterator it = values; | 2347 CSSValueListIterator it = values; |
| 2348 CSSPrimitiveValue* currentValue = toCSSPrimitiveValue(it.value()); | 2348 CSSPrimitiveValue* currentValue = toCSSPrimitiveValue(it.value()); |
| 2349 if (currentValue->getIdent() == CSSValueSpan) { | 2349 if (currentValue->getValueID() == CSSValueSpan) { |
| 2350 isSpanPosition = true; | 2350 isSpanPosition = true; |
| 2351 it.advance(); | 2351 it.advance(); |
| 2352 currentValue = it.hasMore() ? toCSSPrimitiveValue(it.value()) : 0; | 2352 currentValue = it.hasMore() ? toCSSPrimitiveValue(it.value()) : 0; |
| 2353 } | 2353 } |
| 2354 | 2354 |
| 2355 if (currentValue && currentValue->isNumber()) { | 2355 if (currentValue && currentValue->isNumber()) { |
| 2356 gridLineNumber = currentValue->getIntValue(); | 2356 gridLineNumber = currentValue->getIntValue(); |
| 2357 it.advance(); | 2357 it.advance(); |
| 2358 currentValue = it.hasMore() ? toCSSPrimitiveValue(it.value()) : 0; | 2358 currentValue = it.hasMore() ? toCSSPrimitiveValue(it.value()) : 0; |
| 2359 } | 2359 } |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2530 state.parentStyle()->setUnique(); | 2530 state.parentStyle()->setUnique(); |
| 2531 QualifiedName attr(nullAtom, contentValue->getStringValue().
impl(), nullAtom); | 2531 QualifiedName attr(nullAtom, contentValue->getStringValue().
impl(), nullAtom); |
| 2532 const AtomicString& value = state.element()->getAttribute(at
tr); | 2532 const AtomicString& value = state.element()->getAttribute(at
tr); |
| 2533 state.style()->setContent(value.isNull() ? emptyAtom : value
.impl(), didSet); | 2533 state.style()->setContent(value.isNull() ? emptyAtom : value
.impl(), didSet); |
| 2534 didSet = true; | 2534 didSet = true; |
| 2535 // register the fact that the attribute value affects the st
yle | 2535 // register the fact that the attribute value affects the st
yle |
| 2536 m_features.attrsInRules.add(attr.localName().impl()); | 2536 m_features.attrsInRules.add(attr.localName().impl()); |
| 2537 } else if (contentValue->isCounter()) { | 2537 } else if (contentValue->isCounter()) { |
| 2538 Counter* counterValue = contentValue->getCounterValue(); | 2538 Counter* counterValue = contentValue->getCounterValue(); |
| 2539 EListStyleType listStyleType = NoneListStyle; | 2539 EListStyleType listStyleType = NoneListStyle; |
| 2540 int listStyleIdent = counterValue->listStyleIdent(); | 2540 CSSValueID listStyleIdent = counterValue->listStyleIdent(); |
| 2541 if (listStyleIdent != CSSValueNone) | 2541 if (listStyleIdent != CSSValueNone) |
| 2542 listStyleType = static_cast<EListStyleType>(listStyleIde
nt - CSSValueDisc); | 2542 listStyleType = static_cast<EListStyleType>(listStyleIde
nt - CSSValueDisc); |
| 2543 OwnPtr<CounterContent> counter = adoptPtr(new CounterContent
(counterValue->identifier(), listStyleType, counterValue->separator())); | 2543 OwnPtr<CounterContent> counter = adoptPtr(new CounterContent
(counterValue->identifier(), listStyleType, counterValue->separator())); |
| 2544 state.style()->setContent(counter.release(), didSet); | 2544 state.style()->setContent(counter.release(), didSet); |
| 2545 didSet = true; | 2545 didSet = true; |
| 2546 } else { | 2546 } else { |
| 2547 switch (contentValue->getIdent()) { | 2547 switch (contentValue->getValueID()) { |
| 2548 case CSSValueOpenQuote: | 2548 case CSSValueOpenQuote: |
| 2549 state.style()->setContent(OPEN_QUOTE, didSet); | 2549 state.style()->setContent(OPEN_QUOTE, didSet); |
| 2550 didSet = true; | 2550 didSet = true; |
| 2551 break; | 2551 break; |
| 2552 case CSSValueCloseQuote: | 2552 case CSSValueCloseQuote: |
| 2553 state.style()->setContent(CLOSE_QUOTE, didSet); | 2553 state.style()->setContent(CLOSE_QUOTE, didSet); |
| 2554 didSet = true; | 2554 didSet = true; |
| 2555 break; | 2555 break; |
| 2556 case CSSValueNoOpenQuote: | 2556 case CSSValueNoOpenQuote: |
| 2557 state.style()->setContent(NO_OPEN_QUOTE, didSet); | 2557 state.style()->setContent(NO_OPEN_QUOTE, didSet); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2590 if (!second) | 2590 if (!second) |
| 2591 continue; | 2591 continue; |
| 2592 String startQuote = toCSSPrimitiveValue(first)->getStringValue()
; | 2592 String startQuote = toCSSPrimitiveValue(first)->getStringValue()
; |
| 2593 String endQuote = toCSSPrimitiveValue(second)->getStringValue(); | 2593 String endQuote = toCSSPrimitiveValue(second)->getStringValue(); |
| 2594 quotes->addPair(std::make_pair(startQuote, endQuote)); | 2594 quotes->addPair(std::make_pair(startQuote, endQuote)); |
| 2595 } | 2595 } |
| 2596 state.style()->setQuotes(quotes); | 2596 state.style()->setQuotes(quotes); |
| 2597 return; | 2597 return; |
| 2598 } | 2598 } |
| 2599 if (primitiveValue) { | 2599 if (primitiveValue) { |
| 2600 if (primitiveValue->getIdent() == CSSValueNone) | 2600 if (primitiveValue->getValueID() == CSSValueNone) |
| 2601 state.style()->setQuotes(QuotesData::create()); | 2601 state.style()->setQuotes(QuotesData::create()); |
| 2602 } | 2602 } |
| 2603 return; | 2603 return; |
| 2604 // Shorthand properties. | 2604 // Shorthand properties. |
| 2605 case CSSPropertyFont: | 2605 case CSSPropertyFont: |
| 2606 if (isInherit) { | 2606 if (isInherit) { |
| 2607 FontDescription fontDescription = state.parentStyle()->fontDescripti
on(); | 2607 FontDescription fontDescription = state.parentStyle()->fontDescripti
on(); |
| 2608 state.style()->setLineHeight(state.parentStyle()->specifiedLineHeigh
t()); | 2608 state.style()->setLineHeight(state.parentStyle()->specifiedLineHeigh
t()); |
| 2609 state.setLineHeightValue(0); | 2609 state.setLineHeightValue(0); |
| 2610 setFontDescription(fontDescription); | 2610 setFontDescription(fontDescription); |
| 2611 } else if (isInitial) { | 2611 } else if (isInitial) { |
| 2612 Settings* settings = documentSettings(); | 2612 Settings* settings = documentSettings(); |
| 2613 ASSERT(settings); // If we're doing style resolution, this document
should always be in a frame and thus have settings | 2613 ASSERT(settings); // If we're doing style resolution, this document
should always be in a frame and thus have settings |
| 2614 if (!settings) | 2614 if (!settings) |
| 2615 return; | 2615 return; |
| 2616 initializeFontStyle(settings); | 2616 initializeFontStyle(settings); |
| 2617 } else if (primitiveValue) { | 2617 } else if (primitiveValue) { |
| 2618 state.style()->setLineHeight(RenderStyle::initialLineHeight()); | 2618 state.style()->setLineHeight(RenderStyle::initialLineHeight()); |
| 2619 state.setLineHeightValue(0); | 2619 state.setLineHeightValue(0); |
| 2620 | 2620 |
| 2621 FontDescription fontDescription; | 2621 FontDescription fontDescription; |
| 2622 RenderTheme::defaultTheme()->systemFont(primitiveValue->getIdent(),
fontDescription); | 2622 RenderTheme::defaultTheme()->systemFont(primitiveValue->getValueID()
, fontDescription); |
| 2623 | 2623 |
| 2624 // Double-check and see if the theme did anything. If not, don't bot
her updating the font. | 2624 // Double-check and see if the theme did anything. If not, don't bot
her updating the font. |
| 2625 if (fontDescription.isAbsoluteSize()) { | 2625 if (fontDescription.isAbsoluteSize()) { |
| 2626 // Make sure the rendering mode and printer font settings are up
dated. | 2626 // Make sure the rendering mode and printer font settings are up
dated. |
| 2627 Settings* settings = documentSettings(); | 2627 Settings* settings = documentSettings(); |
| 2628 ASSERT(settings); // If we're doing style resolution, this docum
ent should always be in a frame and thus have settings | 2628 ASSERT(settings); // If we're doing style resolution, this docum
ent should always be in a frame and thus have settings |
| 2629 if (!settings) | 2629 if (!settings) |
| 2630 return; | 2630 return; |
| 2631 fontDescription.setRenderingMode(settings->fontRenderingMode()); | 2631 fontDescription.setRenderingMode(settings->fontRenderingMode()); |
| 2632 fontDescription.setUsePrinterFont(document()->printing()); | 2632 fontDescription.setUsePrinterFont(document()->printing()); |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2719 | 2719 |
| 2720 for (CSSValueListIterator i = value; i.hasMore(); i.advance()) { | 2720 for (CSSValueListIterator i = value; i.hasMore(); i.advance()) { |
| 2721 CSSValue* currValue = i.value(); | 2721 CSSValue* currValue = i.value(); |
| 2722 if (!currValue->isShadowValue()) | 2722 if (!currValue->isShadowValue()) |
| 2723 continue; | 2723 continue; |
| 2724 ShadowValue* item = static_cast<ShadowValue*>(currValue); | 2724 ShadowValue* item = static_cast<ShadowValue*>(currValue); |
| 2725 int x = item->x->computeLength<int>(state.style(), state.rootElement
Style(), zoomFactor); | 2725 int x = item->x->computeLength<int>(state.style(), state.rootElement
Style(), zoomFactor); |
| 2726 int y = item->y->computeLength<int>(state.style(), state.rootElement
Style(), zoomFactor); | 2726 int y = item->y->computeLength<int>(state.style(), state.rootElement
Style(), zoomFactor); |
| 2727 int blur = item->blur ? item->blur->computeLength<int>(state.style()
, state.rootElementStyle(), zoomFactor) : 0; | 2727 int blur = item->blur ? item->blur->computeLength<int>(state.style()
, state.rootElementStyle(), zoomFactor) : 0; |
| 2728 int spread = item->spread ? item->spread->computeLength<int>(state.s
tyle(), state.rootElementStyle(), zoomFactor) : 0; | 2728 int spread = item->spread ? item->spread->computeLength<int>(state.s
tyle(), state.rootElementStyle(), zoomFactor) : 0; |
| 2729 ShadowStyle shadowStyle = item->style && item->style->getIdent() ==
CSSValueInset ? Inset : Normal; | 2729 ShadowStyle shadowStyle = item->style && item->style->getValueID() =
= CSSValueInset ? Inset : Normal; |
| 2730 Color color; | 2730 Color color; |
| 2731 if (item->color) | 2731 if (item->color) |
| 2732 color = m_state.colorFromPrimitiveValue(item->color.get()); | 2732 color = m_state.colorFromPrimitiveValue(item->color.get()); |
| 2733 else if (state.style()) | 2733 else if (state.style()) |
| 2734 color = state.style()->color(); | 2734 color = state.style()->color(); |
| 2735 | 2735 |
| 2736 OwnPtr<ShadowData> shadowData = adoptPtr(new ShadowData(IntPoint(x,
y), blur, spread, shadowStyle, color.isValid() ? color : Color::transparent)); | 2736 OwnPtr<ShadowData> shadowData = adoptPtr(new ShadowData(IntPoint(x,
y), blur, spread, shadowStyle, color.isValid() ? color : Color::transparent)); |
| 2737 if (id == CSSPropertyTextShadow) | 2737 if (id == CSSPropertyTextShadow) |
| 2738 state.style()->setTextShadow(shadowData.release(), i.index()); /
/ add to the list if this is not the first entry | 2738 state.style()->setTextShadow(shadowData.release(), i.index()); /
/ add to the list if this is not the first entry |
| 2739 else | 2739 else |
| (...skipping 25 matching lines...) Expand all Loading... |
| 2765 return; | 2765 return; |
| 2766 } | 2766 } |
| 2767 case CSSPropertySrc: // Only used in @font-face rules. | 2767 case CSSPropertySrc: // Only used in @font-face rules. |
| 2768 return; | 2768 return; |
| 2769 case CSSPropertyUnicodeRange: // Only used in @font-face rules. | 2769 case CSSPropertyUnicodeRange: // Only used in @font-face rules. |
| 2770 return; | 2770 return; |
| 2771 case CSSPropertyWebkitLocale: { | 2771 case CSSPropertyWebkitLocale: { |
| 2772 HANDLE_INHERIT_AND_INITIAL(locale, Locale); | 2772 HANDLE_INHERIT_AND_INITIAL(locale, Locale); |
| 2773 if (!primitiveValue) | 2773 if (!primitiveValue) |
| 2774 return; | 2774 return; |
| 2775 if (primitiveValue->getIdent() == CSSValueAuto) | 2775 if (primitiveValue->getValueID() == CSSValueAuto) |
| 2776 state.style()->setLocale(nullAtom); | 2776 state.style()->setLocale(nullAtom); |
| 2777 else | 2777 else |
| 2778 state.style()->setLocale(primitiveValue->getStringValue()); | 2778 state.style()->setLocale(primitiveValue->getStringValue()); |
| 2779 FontDescription fontDescription = state.style()->fontDescription(); | 2779 FontDescription fontDescription = state.style()->fontDescription(); |
| 2780 fontDescription.setScript(localeToScriptCodeForFontSelection(state.style
()->locale())); | 2780 fontDescription.setScript(localeToScriptCodeForFontSelection(state.style
()->locale())); |
| 2781 setFontDescription(fontDescription); | 2781 setFontDescription(fontDescription); |
| 2782 return; | 2782 return; |
| 2783 } | 2783 } |
| 2784 case CSSPropertyWebkitAppRegion: { | 2784 case CSSPropertyWebkitAppRegion: { |
| 2785 if (!primitiveValue || !primitiveValue->getIdent()) | 2785 if (!primitiveValue || !primitiveValue->getValueID()) |
| 2786 return; | 2786 return; |
| 2787 state.style()->setDraggableRegionMode(primitiveValue->getIdent() == CSSV
alueDrag ? DraggableRegionDrag : DraggableRegionNoDrag); | 2787 state.style()->setDraggableRegionMode(primitiveValue->getValueID() == CS
SValueDrag ? DraggableRegionDrag : DraggableRegionNoDrag); |
| 2788 state.document()->setHasAnnotatedRegions(true); | 2788 state.document()->setHasAnnotatedRegions(true); |
| 2789 return; | 2789 return; |
| 2790 } | 2790 } |
| 2791 case CSSPropertyWebkitTextStrokeWidth: { | 2791 case CSSPropertyWebkitTextStrokeWidth: { |
| 2792 HANDLE_INHERIT_AND_INITIAL(textStrokeWidth, TextStrokeWidth) | 2792 HANDLE_INHERIT_AND_INITIAL(textStrokeWidth, TextStrokeWidth) |
| 2793 float width = 0; | 2793 float width = 0; |
| 2794 switch (primitiveValue->getIdent()) { | 2794 switch (primitiveValue->getValueID()) { |
| 2795 case CSSValueThin: | 2795 case CSSValueThin: |
| 2796 case CSSValueMedium: | 2796 case CSSValueMedium: |
| 2797 case CSSValueThick: { | 2797 case CSSValueThick: { |
| 2798 double result = 1.0 / 48; | 2798 double result = 1.0 / 48; |
| 2799 if (primitiveValue->getIdent() == CSSValueMedium) | 2799 if (primitiveValue->getValueID() == CSSValueMedium) |
| 2800 result *= 3; | 2800 result *= 3; |
| 2801 else if (primitiveValue->getIdent() == CSSValueThick) | 2801 else if (primitiveValue->getValueID() == CSSValueThick) |
| 2802 result *= 5; | 2802 result *= 5; |
| 2803 width = CSSPrimitiveValue::create(result, CSSPrimitiveValue::CSS_EMS
)->computeLength<float>(state.style(), state.rootElementStyle(), zoomFactor); | 2803 width = CSSPrimitiveValue::create(result, CSSPrimitiveValue::CSS_EMS
)->computeLength<float>(state.style(), state.rootElementStyle(), zoomFactor); |
| 2804 break; | 2804 break; |
| 2805 } | 2805 } |
| 2806 default: | 2806 default: |
| 2807 width = primitiveValue->computeLength<float>(state.style(), state.ro
otElementStyle(), zoomFactor); | 2807 width = primitiveValue->computeLength<float>(state.style(), state.ro
otElementStyle(), zoomFactor); |
| 2808 break; | 2808 break; |
| 2809 } | 2809 } |
| 2810 state.style()->setTextStrokeWidth(width); | 2810 state.style()->setTextStrokeWidth(width); |
| 2811 return; | 2811 return; |
| 2812 } | 2812 } |
| 2813 case CSSPropertyWebkitTransform: { | 2813 case CSSPropertyWebkitTransform: { |
| 2814 HANDLE_INHERIT_AND_INITIAL(transform, Transform); | 2814 HANDLE_INHERIT_AND_INITIAL(transform, Transform); |
| 2815 TransformOperations operations; | 2815 TransformOperations operations; |
| 2816 TransformBuilder::createTransformOperations(value, state.style(), state.
rootElementStyle(), operations); | 2816 TransformBuilder::createTransformOperations(value, state.style(), state.
rootElementStyle(), operations); |
| 2817 state.style()->setTransform(operations); | 2817 state.style()->setTransform(operations); |
| 2818 return; | 2818 return; |
| 2819 } | 2819 } |
| 2820 case CSSPropertyWebkitPerspective: { | 2820 case CSSPropertyWebkitPerspective: { |
| 2821 HANDLE_INHERIT_AND_INITIAL(perspective, Perspective) | 2821 HANDLE_INHERIT_AND_INITIAL(perspective, Perspective) |
| 2822 | 2822 |
| 2823 if (!primitiveValue) | 2823 if (!primitiveValue) |
| 2824 return; | 2824 return; |
| 2825 | 2825 |
| 2826 if (primitiveValue->getIdent() == CSSValueNone) { | 2826 if (primitiveValue->getValueID() == CSSValueNone) { |
| 2827 state.style()->setPerspective(0); | 2827 state.style()->setPerspective(0); |
| 2828 return; | 2828 return; |
| 2829 } | 2829 } |
| 2830 | 2830 |
| 2831 float perspectiveValue; | 2831 float perspectiveValue; |
| 2832 if (primitiveValue->isLength()) | 2832 if (primitiveValue->isLength()) |
| 2833 perspectiveValue = primitiveValue->computeLength<float>(state.style(
), state.rootElementStyle(), zoomFactor); | 2833 perspectiveValue = primitiveValue->computeLength<float>(state.style(
), state.rootElementStyle(), zoomFactor); |
| 2834 else if (primitiveValue->isNumber()) { | 2834 else if (primitiveValue->isNumber()) { |
| 2835 // For backward compatibility, treat valueless numbers as px. | 2835 // For backward compatibility, treat valueless numbers as px. |
| 2836 perspectiveValue = CSSPrimitiveValue::create(primitiveValue->getDoub
leValue(), CSSPrimitiveValue::CSS_PX)->computeLength<float>(state.style(), state
.rootElementStyle(), zoomFactor); | 2836 perspectiveValue = CSSPrimitiveValue::create(primitiveValue->getDoub
leValue(), CSSPrimitiveValue::CSS_PX)->computeLength<float>(state.style(), state
.rootElementStyle(), zoomFactor); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 2848 | 2848 |
| 2849 Color col = m_state.colorFromPrimitiveValue(primitiveValue); | 2849 Color col = m_state.colorFromPrimitiveValue(primitiveValue); |
| 2850 state.style()->setTapHighlightColor(col); | 2850 state.style()->setTapHighlightColor(col); |
| 2851 return; | 2851 return; |
| 2852 } | 2852 } |
| 2853 #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING) | 2853 #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING) |
| 2854 case CSSPropertyWebkitOverflowScrolling: { | 2854 case CSSPropertyWebkitOverflowScrolling: { |
| 2855 HANDLE_INHERIT_AND_INITIAL(useTouchOverflowScrolling, UseTouchOverflowSc
rolling); | 2855 HANDLE_INHERIT_AND_INITIAL(useTouchOverflowScrolling, UseTouchOverflowSc
rolling); |
| 2856 if (!primitiveValue) | 2856 if (!primitiveValue) |
| 2857 break; | 2857 break; |
| 2858 state.style()->setUseTouchOverflowScrolling(primitiveValue->getIdent() =
= CSSValueTouch); | 2858 state.style()->setUseTouchOverflowScrolling(primitiveValue->getValueID()
== CSSValueTouch); |
| 2859 return; | 2859 return; |
| 2860 } | 2860 } |
| 2861 #endif | 2861 #endif |
| 2862 case CSSPropertyInvalid: | 2862 case CSSPropertyInvalid: |
| 2863 return; | 2863 return; |
| 2864 // Directional properties are resolved by resolveDirectionAwareProperty() be
fore the switch. | 2864 // Directional properties are resolved by resolveDirectionAwareProperty() be
fore the switch. |
| 2865 case CSSPropertyWebkitBorderEndColor: | 2865 case CSSPropertyWebkitBorderEndColor: |
| 2866 case CSSPropertyWebkitBorderEndStyle: | 2866 case CSSPropertyWebkitBorderEndStyle: |
| 2867 case CSSPropertyWebkitBorderEndWidth: | 2867 case CSSPropertyWebkitBorderEndWidth: |
| 2868 case CSSPropertyWebkitBorderStartColor: | 2868 case CSSPropertyWebkitBorderStartColor: |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2932 HANDLE_INHERIT_AND_INITIAL(textOrientation, TextOrientation); | 2932 HANDLE_INHERIT_AND_INITIAL(textOrientation, TextOrientation); |
| 2933 | 2933 |
| 2934 if (primitiveValue) | 2934 if (primitiveValue) |
| 2935 setTextOrientation(*primitiveValue); | 2935 setTextOrientation(*primitiveValue); |
| 2936 | 2936 |
| 2937 return; | 2937 return; |
| 2938 } | 2938 } |
| 2939 | 2939 |
| 2940 case CSSPropertyWebkitLineBoxContain: { | 2940 case CSSPropertyWebkitLineBoxContain: { |
| 2941 HANDLE_INHERIT_AND_INITIAL(lineBoxContain, LineBoxContain) | 2941 HANDLE_INHERIT_AND_INITIAL(lineBoxContain, LineBoxContain) |
| 2942 if (primitiveValue && primitiveValue->getIdent() == CSSValueNone) { | 2942 if (primitiveValue && primitiveValue->getValueID() == CSSValueNone) { |
| 2943 state.style()->setLineBoxContain(LineBoxContainNone); | 2943 state.style()->setLineBoxContain(LineBoxContainNone); |
| 2944 return; | 2944 return; |
| 2945 } | 2945 } |
| 2946 | 2946 |
| 2947 if (!value->isCSSLineBoxContainValue()) | 2947 if (!value->isCSSLineBoxContainValue()) |
| 2948 return; | 2948 return; |
| 2949 | 2949 |
| 2950 CSSLineBoxContainValue* lineBoxContainValue = static_cast<CSSLineBoxCont
ainValue*>(value); | 2950 CSSLineBoxContainValue* lineBoxContainValue = static_cast<CSSLineBoxCont
ainValue*>(value); |
| 2951 state.style()->setLineBoxContain(lineBoxContainValue->value()); | 2951 state.style()->setLineBoxContain(lineBoxContainValue->value()); |
| 2952 return; | 2952 return; |
| 2953 } | 2953 } |
| 2954 | 2954 |
| 2955 // CSS Fonts Module Level 3 | 2955 // CSS Fonts Module Level 3 |
| 2956 case CSSPropertyWebkitFontFeatureSettings: { | 2956 case CSSPropertyWebkitFontFeatureSettings: { |
| 2957 if (primitiveValue && primitiveValue->getIdent() == CSSValueNormal) { | 2957 if (primitiveValue && primitiveValue->getValueID() == CSSValueNormal) { |
| 2958 setFontDescription(state.style()->fontDescription().makeNormalFeatur
eSettings()); | 2958 setFontDescription(state.style()->fontDescription().makeNormalFeatur
eSettings()); |
| 2959 return; | 2959 return; |
| 2960 } | 2960 } |
| 2961 | 2961 |
| 2962 if (!value->isValueList()) | 2962 if (!value->isValueList()) |
| 2963 return; | 2963 return; |
| 2964 | 2964 |
| 2965 FontDescription fontDescription = state.style()->fontDescription(); | 2965 FontDescription fontDescription = state.style()->fontDescription(); |
| 2966 CSSValueList* list = toCSSValueList(value); | 2966 CSSValueList* list = toCSSValueList(value); |
| 2967 RefPtr<FontFeatureSettings> settings = FontFeatureSettings::create(); | 2967 RefPtr<FontFeatureSettings> settings = FontFeatureSettings::create(); |
| (...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3458 } | 3458 } |
| 3459 | 3459 |
| 3460 void StyleResolver::setFontSize(FontDescription& fontDescription, float size) | 3460 void StyleResolver::setFontSize(FontDescription& fontDescription, float size) |
| 3461 { | 3461 { |
| 3462 fontDescription.setSpecifiedSize(size); | 3462 fontDescription.setSpecifiedSize(size); |
| 3463 fontDescription.setComputedSize(getComputedSizeFromSpecifiedSize(document(),
m_state.style(), fontDescription.isAbsoluteSize(), size, useSVGZoomRules())); | 3463 fontDescription.setComputedSize(getComputedSizeFromSpecifiedSize(document(),
m_state.style(), fontDescription.isAbsoluteSize(), size, useSVGZoomRules())); |
| 3464 } | 3464 } |
| 3465 | 3465 |
| 3466 bool StyleResolver::colorFromPrimitiveValueIsDerivedFromElement(CSSPrimitiveValu
e* value) | 3466 bool StyleResolver::colorFromPrimitiveValueIsDerivedFromElement(CSSPrimitiveValu
e* value) |
| 3467 { | 3467 { |
| 3468 int ident = value->getIdent(); | 3468 int ident = value->getValueID(); |
| 3469 switch (ident) { | 3469 switch (ident) { |
| 3470 case CSSValueWebkitText: | 3470 case CSSValueWebkitText: |
| 3471 case CSSValueWebkitLink: | 3471 case CSSValueWebkitLink: |
| 3472 case CSSValueWebkitActivelink: | 3472 case CSSValueWebkitActivelink: |
| 3473 case CSSValueCurrentcolor: | 3473 case CSSValueCurrentcolor: |
| 3474 return true; | 3474 return true; |
| 3475 default: | 3475 default: |
| 3476 return false; | 3476 return false; |
| 3477 } | 3477 } |
| 3478 } | 3478 } |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3739 info.addMember(m_state, "state"); | 3739 info.addMember(m_state, "state"); |
| 3740 | 3740 |
| 3741 // FIXME: move this to a place where it would be called only once? | 3741 // FIXME: move this to a place where it would be called only once? |
| 3742 info.addMember(CSSDefaultStyleSheets::defaultStyle, "defaultStyle"); | 3742 info.addMember(CSSDefaultStyleSheets::defaultStyle, "defaultStyle"); |
| 3743 info.addMember(CSSDefaultStyleSheets::defaultQuirksStyle, "defaultQuirksStyl
e"); | 3743 info.addMember(CSSDefaultStyleSheets::defaultQuirksStyle, "defaultQuirksStyl
e"); |
| 3744 info.addMember(CSSDefaultStyleSheets::defaultPrintStyle, "defaultPrintStyle"
); | 3744 info.addMember(CSSDefaultStyleSheets::defaultPrintStyle, "defaultPrintStyle"
); |
| 3745 info.addMember(CSSDefaultStyleSheets::defaultViewSourceStyle, "defaultViewSo
urceStyle"); | 3745 info.addMember(CSSDefaultStyleSheets::defaultViewSourceStyle, "defaultViewSo
urceStyle"); |
| 3746 } | 3746 } |
| 3747 | 3747 |
| 3748 } // namespace WebCore | 3748 } // namespace WebCore |
| OLD | NEW |