⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 176584 in webkit


Ignore:
Timestamp:
Nov 29, 2014, 4:39:14 PM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Move the '-webkit-locale', '-webkit-text-orientation', '-webkit-writing-mode', '-webkit-justify-self' and '-webkit-perspective' CSS properties to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=139104

Patch by Sam Weinig <sam@webkit.org> on 2014-11-29
Reviewed by Anders Carlsson.

  • css/CSSPropertyNames.in:
  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderFunctions::applyValueWebkitLocale):
(WebCore::StyleBuilderFunctions::applyValueWebkitWritingMode):
(WebCore::StyleBuilderFunctions::applyValueWebkitTextOrientation):
(WebCore::StyleBuilderFunctions::applyValueWebkitJustifySelf):
(WebCore::StyleBuilderFunctions::applyValueWebkitPerspective):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r176577 r176584  
     12014-11-29  Sam Weinig  <sam@webkit.org>
     2
     3        Move the '-webkit-locale', '-webkit-text-orientation', '-webkit-writing-mode', '-webkit-justify-self' and '-webkit-perspective' CSS properties to the new StyleBuilder
     4        https://bugs.webkit.org/show_bug.cgi?id=139104
     5
     6        Reviewed by Anders Carlsson.
     7
     8        * css/CSSPropertyNames.in:
     9        * css/StyleBuilderCustom.h:
     10        (WebCore::StyleBuilderFunctions::applyValueWebkitLocale):
     11        (WebCore::StyleBuilderFunctions::applyValueWebkitWritingMode):
     12        (WebCore::StyleBuilderFunctions::applyValueWebkitTextOrientation):
     13        (WebCore::StyleBuilderFunctions::applyValueWebkitJustifySelf):
     14        (WebCore::StyleBuilderFunctions::applyValueWebkitPerspective):
     15        * css/StyleResolver.cpp:
     16        (WebCore::StyleResolver::applyProperty):
     17
    1182014-11-29  Anders Carlsson  <andersca@apple.com>
    219
  • trunk/Source/WebCore/css/CSSPropertyNames.in

    r176571 r176584  
    7070-webkit-font-smoothing [Inherited, LegacyStyleBuilder]
    7171-webkit-font-variant-ligatures [Inherited, LegacyStyleBuilder]
    72 -webkit-locale [Inherited, LegacyStyleBuilder]
    73 -webkit-text-orientation [Inherited, LegacyStyleBuilder]
     72-webkit-locale [Inherited, Custom=Value]
     73-webkit-text-orientation [Inherited, Custom=Value]
    7474-epub-text-orientation = -webkit-text-orientation
    7575#if defined(ENABLE_IOS_TEXT_AUTOSIZING) && ENABLE_IOS_TEXT_AUTOSIZING
    7676-webkit-text-size-adjust [Inherited, LegacyStyleBuilder]
    7777#endif
    78 -webkit-writing-mode [Inherited, LegacyStyleBuilder]
     78-webkit-writing-mode [Inherited, Custom=Value]
    7979-epub-writing-mode = -webkit-writing-mode
    8080zoom [Custom=All]
     
    388388-webkit-backdrop-filter [LegacyStyleBuilder]
    389389#endif
    390 -webkit-justify-self [LegacyStyleBuilder]
     390-webkit-justify-self [Custom=Value]
    391391-webkit-font-size-delta [LegacyStyleBuilder]
    392392#if defined(ENABLE_CSS_GRID_LAYOUT) && ENABLE_CSS_GRID_LAYOUT
     
    467467-webkit-padding-end [LegacyStyleBuilder]
    468468-webkit-padding-start [LegacyStyleBuilder]
    469 -webkit-perspective [LegacyStyleBuilder]
     469-webkit-perspective [Custom=Value]
    470470-webkit-perspective-origin [LegacyStyleBuilder]
    471471-webkit-perspective-origin-x [Converter=Length]
  • trunk/Source/WebCore/css/StyleBuilderCustom.h

    r176490 r176584  
    3333#include "CSSImageValue.h"
    3434#include "Frame.h"
     35#include "LocaleToScriptMapping.h"
    3536#include "Rect.h"
    3637#include "StyleResolver.h"
     
    648649}
    649650
     651inline void applyValueWebkitLocale(StyleResolver& styleResolver, CSSValue& value)
     652{
     653    auto& primitiveValue = downcast<CSSPrimitiveValue>(value);
     654
     655    if (primitiveValue.getValueID() == CSSValueAuto)
     656        styleResolver.style()->setLocale(nullAtom);
     657    else
     658        styleResolver.style()->setLocale(primitiveValue.getStringValue());
     659   
     660    FontDescription fontDescription = styleResolver.style()->fontDescription();
     661    fontDescription.setScript(localeToScriptCodeForFontSelection(styleResolver.style()->locale()));
     662    styleResolver.setFontDescription(fontDescription);
     663}
     664
     665inline void applyValueWebkitWritingMode(StyleResolver& styleResolver, CSSValue& value)
     666{
     667    styleResolver.setWritingMode(downcast<CSSPrimitiveValue>(value));
     668
     669    // FIXME: It is not ok to modify document state while applying style.
     670    auto& state = styleResolver.state();
     671    if (state.element() && state.element() == state.document().documentElement())
     672        state.document().setWritingModeSetOnDocumentElement(true);
     673}
     674
     675inline void applyValueWebkitTextOrientation(StyleResolver& styleResolver, CSSValue& value)
     676{
     677    styleResolver.setTextOrientation(downcast<CSSPrimitiveValue>(value));
     678}
     679
     680inline void applyValueWebkitJustifySelf(StyleResolver& styleResolver, CSSValue& value)
     681{
     682    auto& primitiveValue = downcast<CSSPrimitiveValue>(value);
     683
     684    if (Pair* pairValue = primitiveValue.getPairValue()) {
     685        styleResolver.style()->setJustifySelf(*pairValue->first());
     686        styleResolver.style()->setJustifySelfOverflowAlignment(*pairValue->second());
     687    } else
     688        styleResolver.style()->setJustifySelf(primitiveValue);
     689}
     690
     691inline void applyValueWebkitPerspective(StyleResolver& styleResolver, CSSValue& value)
     692{
     693    auto& primitiveValue = downcast<CSSPrimitiveValue>(value);
     694
     695    if (primitiveValue.getValueID() == CSSValueNone) {
     696        styleResolver.style()->setPerspective(0);
     697        return;
     698    }
     699
     700    float perspectiveValue;
     701    if (primitiveValue.isLength())
     702        perspectiveValue = primitiveValue.computeLength<float>(styleResolver.state().cssToLengthConversionData());
     703    else if (primitiveValue.isNumber()) {
     704        // For backward compatibility, treat valueless numbers as px.
     705        Ref<CSSPrimitiveValue> value(CSSPrimitiveValue::create(primitiveValue.getDoubleValue(), CSSPrimitiveValue::CSS_PX));
     706        perspectiveValue = value.get().computeLength<float>(styleResolver.state().cssToLengthConversionData());
     707    } else {
     708        ASSERT_NOT_REACHED();
     709        return;
     710    }
     711
     712    if (perspectiveValue >= 0.0f)
     713        styleResolver.style()->setPerspective(perspectiveValue);
     714}
     715
    650716} // namespace StyleBuilderFunctions
    651717
  • trunk/Source/WebCore/css/StyleResolver.cpp

    r176571 r176584  
    24162416    case CSSPropertyUnicodeRange: // Only used in @font-face rules.
    24172417        return;
    2418     case CSSPropertyWebkitLocale: {
    2419         HANDLE_INHERIT_AND_INITIAL(locale, Locale);
    2420         if (!primitiveValue)
    2421             return;
    2422         if (primitiveValue->getValueID() == CSSValueAuto)
    2423             state.style()->setLocale(nullAtom);
    2424         else
    2425             state.style()->setLocale(primitiveValue->getStringValue());
    2426         FontDescription fontDescription = state.style()->fontDescription();
    2427         fontDescription.setScript(localeToScriptCodeForFontSelection(state.style()->locale()));
    2428         setFontDescription(fontDescription);
    2429         return;
    2430     }
    24312418#if ENABLE(IOS_TEXT_AUTOSIZING)
    24322419    case CSSPropertyWebkitTextSizeAdjust: {
     
    24902477    }
    24912478#endif
    2492     case CSSPropertyWebkitPerspective: {
    2493         HANDLE_INHERIT_AND_INITIAL(perspective, Perspective)
    2494 
    2495         if (!primitiveValue)
    2496             return;
    2497 
    2498         if (primitiveValue->getValueID() == CSSValueNone) {
    2499             state.style()->setPerspective(0);
    2500             return;
    2501         }
    2502 
    2503         float perspectiveValue;
    2504         if (primitiveValue->isLength())
    2505             perspectiveValue = primitiveValue->computeLength<float>(state.cssToLengthConversionData());
    2506         else if (primitiveValue->isNumber()) {
    2507             // For backward compatibility, treat valueless numbers as px.
    2508             Ref<CSSPrimitiveValue> value(CSSPrimitiveValue::create(primitiveValue->getDoubleValue(), CSSPrimitiveValue::CSS_PX));
    2509             perspectiveValue = value.get().computeLength<float>(state.cssToLengthConversionData());
    2510         } else
    2511             return;
    2512 
    2513         if (perspectiveValue >= 0.0f)
    2514             state.style()->setPerspective(perspectiveValue);
    2515         return;
    2516     }
    25172479#if PLATFORM(IOS)
    25182480    case CSSPropertyWebkitTouchCallout: {
     
    25682530        return;
    25692531
    2570     // CSS Text Layout Module Level 3: Vertical writing support
    2571     case CSSPropertyWebkitWritingMode: {
    2572         HANDLE_INHERIT_AND_INITIAL(writingMode, WritingMode);
    2573        
    2574         if (primitiveValue)
    2575             setWritingMode(*primitiveValue);
    2576 
    2577         // FIXME: It is not ok to modify document state while applying style.
    2578         if (state.element() && state.element() == state.document().documentElement())
    2579             state.document().setWritingModeSetOnDocumentElement(true);
    2580         return;
    2581     }
    2582 
    2583     case CSSPropertyWebkitTextOrientation: {
    2584         HANDLE_INHERIT_AND_INITIAL(textOrientation, TextOrientation);
    2585 
    2586         if (primitiveValue)
    2587             setTextOrientation(*primitiveValue);
    2588 
    2589         return;
    2590     }
    2591 
    25922532    // CSS Fonts Module Level 3
    25932533    case CSSPropertyWebkitFontFeatureSettings: {
     
    28102750    }
    28112751#endif /* ENABLE(CSS_GRID_LAYOUT) */
    2812 
    2813     case CSSPropertyWebkitJustifySelf:
    2814         HANDLE_INHERIT_AND_INITIAL(justifySelf, JustifySelf);
    2815         if (Pair* pairValue = primitiveValue->getPairValue()) {
    2816             state.style()->setJustifySelf(*pairValue->first());
    2817             state.style()->setJustifySelfOverflowAlignment(*pairValue->second());
    2818         } else
    2819             state.style()->setJustifySelf(*primitiveValue);
    2820         return;
    2821 
    28222752#if ENABLE(CSS_SCROLL_SNAP)
    28232753    case CSSPropertyWebkitScrollSnapType:
     
    30102940    case CSSPropertyWebkitColumnBreakBefore:
    30112941    case CSSPropertyWebkitColumnBreakInside:
     2942    case CSSPropertyWebkitJustifySelf:
     2943    case CSSPropertyWebkitLocale:
     2944    case CSSPropertyWebkitTextOrientation:
     2945    case CSSPropertyWebkitWritingMode:
    30122946    case CSSPropertyColumnCount:
    30132947    case CSSPropertyColumnGap:
     
    30723006    case CSSPropertyWebkitMaskSourceType:
    30733007    case CSSPropertyWebkitNbspMode:
     3008    case CSSPropertyWebkitPerspective:
    30743009    case CSSPropertyWebkitPerspectiveOrigin:
    30753010    case CSSPropertyWebkitPerspectiveOriginX:
Note: See TracChangeset for help on using the changeset viewer.