Changeset 192843 in webkit
- Timestamp:
- Nov 30, 2015 4:09:42 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 2 deleted
- 31 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r192833 r192843 1 2015-11-30 Commit Queue <commit-queue@webkit.org> 2 3 Unreviewed, rolling out r192819. 4 https://bugs.webkit.org/show_bug.cgi?id=151681 5 6 This change broke existing layout tests on Windows (Requested 7 by ryanhaddad on #webkit). 8 9 Reverted changeset: 10 11 "Unify font-variant-* with font-variant shorthand" 12 https://bugs.webkit.org/show_bug.cgi?id=149773 13 http://trac.webkit.org/changeset/192819 14 1 15 2015-11-30 Brady Eidson <beidson@apple.com> 2 16 -
trunk/LayoutTests/css3/font-variant-parsing-expected.txt
r192819 r192843 4 4 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-ligatures').cssText is "normal" 5 5 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-ligatures').cssText is "common-ligatures" 6 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-ligatures').cssText is " common-ligatures"6 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-ligatures').cssText is "normal" 7 7 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-ligatures').cssText is "no-common-ligatures" 8 8 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-ligatures').cssText is "discretionary-ligatures" … … 50 50 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-numeric').cssText is "slashed-zero" 51 51 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-numeric').cssText is "lining-nums slashed-zero" 52 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-numeric').cssText is " oldstyle-nums"53 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-numeric').cssText is " tabular-nums"54 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-numeric').cssText is " stacked-fractions"52 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-numeric').cssText is "normal" 53 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-numeric').cssText is "normal" 54 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-numeric').cssText is "normal" 55 55 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-numeric').cssText is "lining-nums proportional-nums" 56 56 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-numeric').cssText is "lining-nums diagonal-fractions" … … 75 75 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-east-asian').cssText is "proportional-width" 76 76 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-east-asian').cssText is "ruby" 77 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-east-asian').cssText is " jis83"78 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-east-asian').cssText is " traditional"77 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-east-asian').cssText is "normal" 78 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-east-asian').cssText is "normal" 79 79 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-east-asian').cssText is "traditional full-width" 80 80 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-east-asian').cssText is "jis04 proportional-width" 81 81 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-east-asian').cssText is "jis04 proportional-width ruby" 82 82 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-east-asian').cssText is "jis83 ruby" 83 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-east-asian').cssText is " proportional-width"83 PASS window.getComputedStyle(document.getElementById('testElement')).getPropertyCSSValue('font-variant-east-asian').cssText is "normal" 84 84 PASS successfullyParsed is true 85 85 -
trunk/LayoutTests/css3/font-variant-parsing.html
r192819 r192843 21 21 runTest("font-variant-ligatures", "notavalidvalue", "normal"); 22 22 runTest("font-variant-ligatures", "common-ligatures", "common-ligatures"); 23 runTest("font-variant-ligatures", "common-ligatures common-ligatures", " common-ligatures");23 runTest("font-variant-ligatures", "common-ligatures common-ligatures", "normal"); 24 24 runTest("font-variant-ligatures", "no-common-ligatures", "no-common-ligatures"); 25 25 runTest("font-variant-ligatures", "discretionary-ligatures", "discretionary-ligatures"); … … 70 70 runTest("font-variant-numeric", "slashed-zero", "slashed-zero"); 71 71 runTest("font-variant-numeric", "lining-nums slashed-zero", "lining-nums slashed-zero"); 72 runTest("font-variant-numeric", "lining-nums oldstyle-nums", " oldstyle-nums");73 runTest("font-variant-numeric", "proportional-nums tabular-nums", " tabular-nums");74 runTest("font-variant-numeric", "diagonal-fractions stacked-fractions", " stacked-fractions");72 runTest("font-variant-numeric", "lining-nums oldstyle-nums", "normal"); 73 runTest("font-variant-numeric", "proportional-nums tabular-nums", "normal"); 74 runTest("font-variant-numeric", "diagonal-fractions stacked-fractions", "normal"); 75 75 runTest("font-variant-numeric", "lining-nums proportional-nums", "lining-nums proportional-nums"); 76 76 runTest("font-variant-numeric", "lining-nums diagonal-fractions", "lining-nums diagonal-fractions"); … … 97 97 runTest("font-variant-east-asian", "proportional-width", "proportional-width"); 98 98 runTest("font-variant-east-asian", "ruby", "ruby"); 99 runTest("font-variant-east-asian", "jis78 jis83", " jis83");100 runTest("font-variant-east-asian", "jis90 traditional", " traditional");99 runTest("font-variant-east-asian", "jis78 jis83", "normal"); 100 runTest("font-variant-east-asian", "jis90 traditional", "normal"); 101 101 runTest("font-variant-east-asian", "full-width traditional", "traditional full-width"); 102 102 runTest("font-variant-east-asian", "jis04 proportional-width", "jis04 proportional-width"); 103 103 runTest("font-variant-east-asian", "jis04 proportional-width ruby", "jis04 proportional-width ruby"); 104 104 runTest("font-variant-east-asian", "jis83 ruby", "jis83 ruby"); 105 runTest("font-variant-east-asian", "full-width proportional-width", " proportional-width");105 runTest("font-variant-east-asian", "full-width proportional-width", "normal"); 106 106 </script> 107 107 <script src="../resources/js-test-post.js"></script> -
trunk/LayoutTests/fast/css/font-property-priority-expected.txt
r192819 r192843 2 2 3 3 Property 'font-weight' has priority 'important'. 4 Property 'font-variant -caps' has priority 'important'.4 Property 'font-variant' has priority 'important'. 5 5 Property 'font-style' has priority 'important'. 6 6 -
trunk/LayoutTests/fast/css/font-shorthand-expected.txt
r192819 r192843 2 2 Font for '12px monospace': 3 3 font-style: normal (original property was font and property was implicitly set.) 4 font-variant -caps: normal (original property was font and property was implicitly set.)4 font-variant: normal (original property was font and property was implicitly set.) 5 5 font-weight: normal (original property was font and property was implicitly set.) 6 6 font-size: 12px (original property was font) … … 10 10 Font for '12px/24px serif': 11 11 font-style: normal (original property was font and property was implicitly set.) 12 font-variant -caps: normal (original property was font and property was implicitly set.)12 font-variant: normal (original property was font and property was implicitly set.) 13 13 font-weight: normal (original property was font and property was implicitly set.) 14 14 font-size: 12px (original property was font) … … 18 18 Font for 'normal 12px serif': 19 19 font-style: normal (original property was font) 20 font-variant -caps: normal (original property was font and property was implicitly set.)20 font-variant: normal (original property was font and property was implicitly set.) 21 21 font-weight: normal (original property was font and property was implicitly set.) 22 22 font-size: 12px (original property was font) … … 26 26 Font for 'normal normal 12px serif': 27 27 font-style: normal (original property was font) 28 font-variant -caps: normal (original property was font)28 font-variant: normal (original property was font) 29 29 font-weight: normal (original property was font and property was implicitly set.) 30 30 font-size: 12px (original property was font) … … 34 34 Font for 'normal normal normal 12px serif': 35 35 font-style: normal (original property was font) 36 font-variant -caps: normal (original property was font)36 font-variant: normal (original property was font) 37 37 font-weight: normal (original property was font) 38 38 font-size: 12px (original property was font) … … 42 42 Font for 'italic small-caps 12px/24px serif': 43 43 font-style: italic (original property was font) 44 font-variant -caps: small-caps (original property was font)44 font-variant: small-caps (original property was font) 45 45 font-weight: normal (original property was font and property was implicitly set.) 46 46 font-size: 12px (original property was font) … … 51 51 font-style: italic (original property was font) 52 52 font-weight: bold (original property was font) 53 font-variant -caps: normal (original property was font and property was implicitly set.)53 font-variant: normal (original property was font and property was implicitly set.) 54 54 font-size: 12px (original property was font) 55 55 line-height: 24px (original property was font) … … 57 57 58 58 Font for 'small-caps bold 14px/28px Arial, sans-serif': 59 font-variant -caps: small-caps (original property was font)59 font-variant: small-caps (original property was font) 60 60 font-weight: bold (original property was font) 61 61 font-style: normal (original property was font and property was implicitly set.) … … 66 66 Font for 'italic small-caps bold 14px/28px Arial, sans-serif': 67 67 font-style: italic (original property was font) 68 font-variant -caps: small-caps (original property was font)68 font-variant: small-caps (original property was font) 69 69 font-weight: bold (original property was font) 70 70 font-size: 14px (original property was font) -
trunk/LayoutTests/fast/css/parsing-font-variant-ligatures-expected.txt
r192819 r192843 14 14 PASS: 'historical-ligatures' parsed as 'historical-ligatures' and computed to 'historical-ligatures' 15 15 16 PASS: 'no-common-ligatures no-common-ligatures' parsed as ' no-common-ligatures' and computed to 'no-common-ligatures'16 PASS: 'no-common-ligatures no-common-ligatures' parsed as '' and computed to 'normal' 17 17 PASS: 'common-ligatures no-discretionary-ligatures' parsed as 'common-ligatures no-discretionary-ligatures' and computed to 'common-ligatures no-discretionary-ligatures' 18 18 PASS: 'common-ligatures no-discretionary-ligatures historical-ligatures' parsed as 'common-ligatures no-discretionary-ligatures historical-ligatures' and computed to 'common-ligatures no-discretionary-ligatures historical-ligatures' -
trunk/LayoutTests/fast/css/parsing-font-variant-ligatures.html
r192819 r192843 44 44 45 45 log(""); 46 test('no-common-ligatures no-common-ligatures', ' no-common-ligatures', 'no-common-ligatures');46 test('no-common-ligatures no-common-ligatures', '', 'normal'); 47 47 test('common-ligatures no-discretionary-ligatures', 'common-ligatures no-discretionary-ligatures', 'common-ligatures no-discretionary-ligatures'); 48 48 test('common-ligatures no-discretionary-ligatures historical-ligatures', 'common-ligatures no-discretionary-ligatures historical-ligatures', 'common-ligatures no-discretionary-ligatures historical-ligatures'); -
trunk/LayoutTests/fast/inspector-support/style-expected.txt
r192819 r192843 17 17 color: white 18 18 font-style: normal (original property was font and property was implicitly set.) 19 font-variant -caps: normal (original property was font and property was implicitly set.)19 font-variant: normal (original property was font and property was implicitly set.) 20 20 font-weight: normal (original property was font and property was implicitly set.) 21 21 font-size: 24px (original property was font) -
trunk/LayoutTests/platform/mac/TestExpectations
r192819 r192843 1398 1398 1399 1399 webkit.org/b/151469 imported/w3c/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document.html [ Pass Crash ] 1400 1401 # Temporarily disable font-features tests until synthesis for font-variant-caps is implemented.1402 webkit.org/b/149774 css3/font-feature-settings-font-face-rendering.html [ Pass Failure ImageOnlyFailure ]1403 webkit.org/b/149774 css3/font-feature-settings-rendering.html [ Pass Failure ImageOnlyFailure ]1404 webkit.org/b/149774 css3/font-variant-all.html [ Pass Failure ImageOnlyFailure ]1405 webkit.org/b/149774 css3/font-variant-font-face-all.html [ Pass Failure ImageOnlyFailure ]1406 webkit.org/b/149774 css3/font-variant-font-face-override.html [ Pass Failure ImageOnlyFailure ] -
trunk/LayoutTests/platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.txt
r192819 r192843 14 14 RenderBlock {DIV} at (278,1) size 277x275 [bgcolor=#FFFFEE] 15 15 RenderBlock {P} at (14,28) size 63x219 [bgcolor=#FFAAAA] [border: none (20px solid #FF8888) none (20px solid #FF8888)] 16 RenderText {#text} at (21,1) size 20x1 7517 text run at (21,1) width 1 75: "\x{7B2C}\x{4E00}\x{6BB5}\x{843D} Paragraph 1"16 RenderText {#text} at (21,1) size 20x195 17 text run at (21,1) width 195: "\x{7B2C}\x{4E00}\x{6BB5}\x{843D} Paragraph 1" 18 18 RenderBlock {P} at (90,28) size 63x219 [bgcolor=#FFAAAA] [border: none (20px solid #FF8888) none (20px solid #FF8888)] 19 RenderText {#text} at (21,1) size 20x1 8120 text run at (21,1) width 1 81: "\x{7B2C}\x{4E8C}\x{6BB5}\x{843D} Paragraph 2"19 RenderText {#text} at (21,1) size 20x195 20 text run at (21,1) width 195: "\x{7B2C}\x{4E8C}\x{6BB5}\x{843D} Paragraph 2" -
trunk/Source/WebCore/ChangeLog
r192839 r192843 1 2015-11-30 Commit Queue <commit-queue@webkit.org> 2 3 Unreviewed, rolling out r192819. 4 https://bugs.webkit.org/show_bug.cgi?id=151681 5 6 This change broke existing layout tests on Windows (Requested 7 by ryanhaddad on #webkit). 8 9 Reverted changeset: 10 11 "Unify font-variant-* with font-variant shorthand" 12 https://bugs.webkit.org/show_bug.cgi?id=149773 13 http://trac.webkit.org/changeset/192819 14 1 15 2015-11-30 Darin Adler <darin@apple.com> 2 16 -
trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
r192819 r192843 1383 1383 case FontVariantEastAsianWidth::Normal: 1384 1384 break; 1385 case FontVariantEastAsianWidth::Full :1385 case FontVariantEastAsianWidth::FullWidth: 1386 1386 valueList->append(cssValuePool.createIdentifierValue(CSSValueFullWidth)); 1387 1387 break; 1388 case FontVariantEastAsianWidth::Proportional :1388 case FontVariantEastAsianWidth::ProportionalWidth: 1389 1389 valueList->append(cssValuePool.createIdentifierValue(CSSValueProportionalWidth)); 1390 1390 break; … … 1817 1817 } 1818 1818 1819 static Ref<CSSPrimitiveValue> fontStyleFromStyle(RenderStyle &style)1820 { 1821 if (style .fontDescription().italic())1819 static Ref<CSSPrimitiveValue> fontStyleFromStyle(RenderStyle* style) 1820 { 1821 if (style->fontDescription().italic()) 1822 1822 return CSSValuePool::singleton().createIdentifierValue(CSSValueItalic); 1823 1823 return CSSValuePool::singleton().createIdentifierValue(CSSValueNormal); 1824 1824 } 1825 1825 1826 static Ref<CSSValue> fontVariantFromStyle(RenderStyle& style) 1827 { 1828 if (style.fontDescription().variantSettings().isAllNormal()) 1829 return CSSValuePool::singleton().createIdentifierValue(CSSValueNormal); 1830 1831 auto list = CSSValueList::createSpaceSeparated(); 1832 1833 switch (style.fontDescription().variantCommonLigatures()) { 1834 case FontVariantLigatures::Normal: 1835 break; 1836 case FontVariantLigatures::Yes: 1837 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueCommonLigatures)); 1838 break; 1839 case FontVariantLigatures::No: 1840 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoCommonLigatures)); 1841 break; 1842 } 1843 1844 switch (style.fontDescription().variantDiscretionaryLigatures()) { 1845 case FontVariantLigatures::Normal: 1846 break; 1847 case FontVariantLigatures::Yes: 1848 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueDiscretionaryLigatures)); 1849 break; 1850 case FontVariantLigatures::No: 1851 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoDiscretionaryLigatures)); 1852 break; 1853 } 1854 1855 switch (style.fontDescription().variantHistoricalLigatures()) { 1856 case FontVariantLigatures::Normal: 1857 break; 1858 case FontVariantLigatures::Yes: 1859 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueHistoricalLigatures)); 1860 break; 1861 case FontVariantLigatures::No: 1862 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoHistoricalLigatures)); 1863 break; 1864 } 1865 1866 switch (style.fontDescription().variantContextualAlternates()) { 1867 case FontVariantLigatures::Normal: 1868 break; 1869 case FontVariantLigatures::Yes: 1870 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueContextual)); 1871 break; 1872 case FontVariantLigatures::No: 1873 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoContextual)); 1874 break; 1875 } 1876 1877 switch (style.fontDescription().variantPosition()) { 1878 case FontVariantPosition::Normal: 1879 break; 1880 case FontVariantPosition::Subscript: 1881 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueSub)); 1882 break; 1883 case FontVariantPosition::Superscript: 1884 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueSuper)); 1885 break; 1886 } 1887 1888 switch (style.fontDescription().variantCaps()) { 1889 case FontVariantCaps::Normal: 1890 break; 1891 case FontVariantCaps::Small: 1892 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueSmallCaps)); 1893 break; 1894 case FontVariantCaps::AllSmall: 1895 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueAllSmallCaps)); 1896 break; 1897 case FontVariantCaps::Petite: 1898 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValuePetiteCaps)); 1899 break; 1900 case FontVariantCaps::AllPetite: 1901 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueAllPetiteCaps)); 1902 break; 1903 case FontVariantCaps::Unicase: 1904 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueUnicase)); 1905 break; 1906 case FontVariantCaps::Titling: 1907 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueTitlingCaps)); 1908 break; 1909 } 1910 1911 switch (style.fontDescription().variantNumericFigure()) { 1912 case FontVariantNumericFigure::Normal: 1913 break; 1914 case FontVariantNumericFigure::LiningNumbers: 1915 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueLiningNums)); 1916 break; 1917 case FontVariantNumericFigure::OldStyleNumbers: 1918 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueOldstyleNums)); 1919 break; 1920 } 1921 1922 switch (style.fontDescription().variantNumericSpacing()) { 1923 case FontVariantNumericSpacing::Normal: 1924 break; 1925 case FontVariantNumericSpacing::ProportionalNumbers: 1926 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueProportionalNums)); 1927 break; 1928 case FontVariantNumericSpacing::TabularNumbers: 1929 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueTabularNums)); 1930 break; 1931 } 1932 1933 switch (style.fontDescription().variantNumericFraction()) { 1934 case FontVariantNumericFraction::Normal: 1935 break; 1936 case FontVariantNumericFraction::DiagonalFractions: 1937 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueDiagonalFractions)); 1938 break; 1939 case FontVariantNumericFraction::StackedFractions: 1940 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueStackedFractions)); 1941 break; 1942 } 1943 1944 switch (style.fontDescription().variantNumericOrdinal()) { 1945 case FontVariantNumericOrdinal::Normal: 1946 break; 1947 case FontVariantNumericOrdinal::Yes: 1948 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueOrdinal)); 1949 break; 1950 } 1951 1952 switch (style.fontDescription().variantNumericSlashedZero()) { 1953 case FontVariantNumericSlashedZero::Normal: 1954 break; 1955 case FontVariantNumericSlashedZero::Yes: 1956 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueSlashedZero)); 1957 break; 1958 } 1959 1960 switch (style.fontDescription().variantAlternates()) { 1961 case FontVariantAlternates::Normal: 1962 break; 1963 case FontVariantAlternates::HistoricalForms: 1964 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueHistoricalForms)); 1965 break; 1966 } 1967 1968 switch (style.fontDescription().variantEastAsianVariant()) { 1969 case FontVariantEastAsianVariant::Normal: 1970 break; 1971 case FontVariantEastAsianVariant::Jis78: 1972 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis78)); 1973 break; 1974 case FontVariantEastAsianVariant::Jis83: 1975 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis83)); 1976 break; 1977 case FontVariantEastAsianVariant::Jis90: 1978 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis90)); 1979 break; 1980 case FontVariantEastAsianVariant::Jis04: 1981 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis04)); 1982 break; 1983 case FontVariantEastAsianVariant::Simplified: 1984 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueSimplified)); 1985 break; 1986 case FontVariantEastAsianVariant::Traditional: 1987 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueTraditional)); 1988 break; 1989 } 1990 1991 switch (style.fontDescription().variantEastAsianWidth()) { 1992 case FontVariantEastAsianWidth::Normal: 1993 break; 1994 case FontVariantEastAsianWidth::Full: 1995 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueFullWidth)); 1996 break; 1997 case FontVariantEastAsianWidth::Proportional: 1998 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueProportionalWidth)); 1999 break; 2000 } 2001 2002 switch (style.fontDescription().variantEastAsianRuby()) { 2003 case FontVariantEastAsianRuby::Normal: 2004 break; 2005 case FontVariantEastAsianRuby::Yes: 2006 list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueRuby)); 2007 break; 2008 } 2009 2010 return WTF::move(list); 2011 } 2012 2013 static Ref<CSSPrimitiveValue> fontWeightFromStyle(RenderStyle& style) 2014 { 2015 switch (style.fontDescription().weight()) { 1826 static Ref<CSSPrimitiveValue> fontVariantFromStyle(RenderStyle* style) 1827 { 1828 if (style->fontDescription().smallCaps()) 1829 return CSSValuePool::singleton().createIdentifierValue(CSSValueSmallCaps); 1830 return CSSValuePool::singleton().createIdentifierValue(CSSValueNormal); 1831 } 1832 1833 static Ref<CSSPrimitiveValue> fontWeightFromStyle(RenderStyle* style) 1834 { 1835 switch (style->fontDescription().weight()) { 2016 1836 case FontWeight100: 2017 1837 return CSSValuePool::singleton().createIdentifierValue(CSSValue100); … … 2698 2518 case CSSPropertyFont: { 2699 2519 RefPtr<CSSFontValue> computedFont = CSSFontValue::create(); 2700 computedFont->style = fontStyleFromStyle(*style); 2701 if (style->fontDescription().variantCaps() == FontVariantCaps::Small) 2702 computedFont->variant = CSSValuePool::singleton().createIdentifierValue(CSSValueSmallCaps); 2703 else 2704 computedFont->variant = CSSValuePool::singleton().createIdentifierValue(CSSValueNormal); 2705 computedFont->weight = fontWeightFromStyle(*style); 2520 computedFont->style = fontStyleFromStyle(style.get()); 2521 computedFont->variant = fontVariantFromStyle(style.get()); 2522 computedFont->weight = fontWeightFromStyle(style.get()); 2706 2523 computedFont->size = fontSizeFromStyle(*style); 2707 2524 computedFont->lineHeight = lineHeightFromStyle(*style); … … 2720 2537 return fontSizeFromStyle(*style); 2721 2538 case CSSPropertyFontStyle: 2722 return fontStyleFromStyle( *style);2539 return fontStyleFromStyle(style.get()); 2723 2540 case CSSPropertyFontVariant: 2724 return fontVariantFromStyle( *style);2541 return fontVariantFromStyle(style.get()); 2725 2542 case CSSPropertyFontWeight: 2726 return fontWeightFromStyle( *style);2543 return fontWeightFromStyle(style.get()); 2727 2544 case CSSPropertyFontSynthesis: 2728 2545 return fontSynthesisFromStyle(*style); -
trunk/Source/WebCore/css/CSSFontSelector.cpp
r192819 r192843 305 305 applyValueFontVariantLigatures(fontFace.get(), *variantLigatures); 306 306 307 if ( is<CSSPrimitiveValue>(variantPosition.get()))307 if (variantPosition) 308 308 fontFace->setVariantPosition(downcast<CSSPrimitiveValue>(*variantPosition)); 309 309 310 if ( is<CSSPrimitiveValue>(variantCaps.get()))310 if (variantCaps) 311 311 fontFace->setVariantCaps(downcast<CSSPrimitiveValue>(*variantCaps)); 312 312 … … 314 314 applyValueFontVariantNumeric(fontFace.get(), *variantNumeric); 315 315 316 if ( is<CSSPrimitiveValue>(variantAlternates.get()))316 if (variantAlternates) 317 317 fontFace->setVariantAlternates(downcast<CSSPrimitiveValue>(*variantAlternates)); 318 318 -
trunk/Source/WebCore/css/CSSParser.cpp
r192819 r192843 1062 1062 case CSSPropertyFontVariantAlternates: // We only support the normal and historical-forms values. 1063 1063 if (valueID == CSSValueNormal || valueID == CSSValueHistoricalForms) 1064 return true; 1065 break; 1066 case CSSPropertyFontVariant: // normal | small-caps 1067 if (valueID == CSSValueNormal || valueID == CSSValueSmallCaps) 1064 1068 return true; 1065 1069 break; … … 1196 1200 case CSSPropertyFontVariantCaps: 1197 1201 case CSSPropertyFontVariantAlternates: 1202 case CSSPropertyFontVariant: 1198 1203 return true; 1199 1204 default: … … 3116 3121 validPrimitive = true; 3117 3122 else 3118 return parseFontVariantLigatures(important , UnknownIsFailure::Yes);3123 return parseFontVariantLigatures(important); 3119 3124 break; 3120 3125 case CSSPropertyFontVariantNumeric: … … 3122 3127 validPrimitive = true; 3123 3128 else 3124 return parseFontVariantNumeric(important , UnknownIsFailure::Yes);3129 return parseFontVariantNumeric(important); 3125 3130 break; 3126 3131 case CSSPropertyFontVariantEastAsian: … … 3128 3133 validPrimitive = true; 3129 3134 else 3130 return parseFontVariantEastAsian(important, UnknownIsFailure::Yes); 3131 break; 3132 case CSSPropertyFontVariant: 3133 if (id == CSSValueNormal) { 3134 ShorthandScope scope(this, CSSPropertyFontVariant); 3135 addProperty(CSSPropertyFontVariantLigatures, CSSValuePool::singleton().createIdentifierValue(CSSValueNormal), important, true); 3136 addProperty(CSSPropertyFontVariantPosition, CSSValuePool::singleton().createIdentifierValue(CSSValueNormal), important, true); 3137 addProperty(CSSPropertyFontVariantCaps, CSSValuePool::singleton().createIdentifierValue(CSSValueNormal), important, true); 3138 addProperty(CSSPropertyFontVariantNumeric, CSSValuePool::singleton().createIdentifierValue(CSSValueNormal), important, true); 3139 addProperty(CSSPropertyFontVariantAlternates, CSSValuePool::singleton().createIdentifierValue(CSSValueNormal), important, true); 3140 addProperty(CSSPropertyFontVariantEastAsian, CSSValuePool::singleton().createIdentifierValue(CSSValueNormal), important, true); 3141 return true; 3142 } 3143 if (id == CSSValueNone) { 3144 ShorthandScope scope(this, CSSPropertyFontVariant); 3145 addProperty(CSSPropertyFontVariantLigatures, CSSValuePool::singleton().createIdentifierValue(CSSValueNone), important, true); 3146 return true; 3147 } 3148 return parseFontVariant(important); 3135 return parseFontVariantEastAsian(important); 3136 break; 3149 3137 3150 3138 case CSSPropertyWebkitClipPath: … … 6819 6807 } else if (!fontVariantParsed && (value->id == CSSValueNormal || value->id == CSSValueSmallCaps)) { 6820 6808 // Font variant in the shorthand is particular, it only accepts normal or small-caps. 6821 addProperty(CSSPropertyFontVariant Caps, CSSValuePool::singleton().createIdentifierValue(value->id), important);6809 addProperty(CSSPropertyFontVariant, CSSValuePool::singleton().createIdentifierValue(value->id), important); 6822 6810 fontVariantParsed = true; 6823 6811 } else if (!fontWeightParsed && parseFontWeight(important)) … … 6834 6822 addProperty(CSSPropertyFontStyle, CSSValuePool::singleton().createIdentifierValue(CSSValueNormal), important, true); 6835 6823 if (!fontVariantParsed) 6836 addProperty(CSSPropertyFontVariant Caps, CSSValuePool::singleton().createIdentifierValue(CSSValueNormal), important, true);6824 addProperty(CSSPropertyFontVariant, CSSValuePool::singleton().createIdentifierValue(CSSValueNormal), important, true); 6837 6825 if (!fontWeightParsed) 6838 6826 addProperty(CSSPropertyFontWeight, CSSValuePool::singleton().createIdentifierValue(CSSValueNormal), important, true); … … 6893 6881 fontFamilyList->append(CSSValuePool::singleton().createFontFamilyValue(fontDescription.familyAt(0), FromSystemFontID::Yes)); 6894 6882 addProperty(CSSPropertyFontFamily, WTF::move(fontFamilyList), important); 6895 addProperty(CSSPropertyFontVariant Caps, CSSValuePool::singleton().createIdentifierValue(CSSValueNormal), important);6883 addProperty(CSSPropertyFontVariant, CSSValuePool::singleton().createIdentifierValue(CSSValueNormal), important); 6896 6884 addProperty(CSSPropertyLineHeight, CSSValuePool::singleton().createIdentifierValue(CSSValueNormal), important); 6897 6885 } … … 10620 10608 } 10621 10609 10622 bool CSSParser::parseFontVariantLigatures(bool important , UnknownIsFailure unknownIsFailure)10610 bool CSSParser::parseFontVariantLigatures(bool important) 10623 10611 { 10624 10612 auto values = CSSValueList::createSpaceSeparated(); 10625 FontVariantLigatures commonLigatures = FontVariantLigatures::Normal;10626 FontVariantLigatures discretionaryLigatures = FontVariantLigatures::Normal;10627 FontVariantLigatures historicalLigatures = FontVariantLigatures::Normal;10628 FontVariantLigatures contextualAlternates = FontVariantLigatures::Normal;10613 bool sawCommonValue = false; 10614 bool sawDiscretionaryValue = false; 10615 bool sawHistoricalValue = false; 10616 bool sawContextualValue = false; 10629 10617 10630 10618 for (CSSParserValue* value = m_valueList->current(); value; value = m_valueList->next()) { … … 10634 10622 switch (value->id) { 10635 10623 case CSSValueNoCommonLigatures: 10636 commonLigatures = FontVariantLigatures::No;10637 break;10638 10624 case CSSValueCommonLigatures: 10639 commonLigatures = FontVariantLigatures::Yes; 10625 if (sawCommonValue) 10626 return false; 10627 sawCommonValue = true; 10628 values->append(CSSValuePool::singleton().createIdentifierValue(value->id)); 10640 10629 break; 10641 10630 case CSSValueNoDiscretionaryLigatures: 10642 discretionaryLigatures = FontVariantLigatures::No;10643 break;10644 10631 case CSSValueDiscretionaryLigatures: 10645 discretionaryLigatures = FontVariantLigatures::Yes; 10632 if (sawDiscretionaryValue) 10633 return false; 10634 sawDiscretionaryValue = true; 10635 values->append(CSSValuePool::singleton().createIdentifierValue(value->id)); 10646 10636 break; 10647 10637 case CSSValueNoHistoricalLigatures: 10648 historicalLigatures = FontVariantLigatures::No;10649 break;10650 10638 case CSSValueHistoricalLigatures: 10651 historicalLigatures = FontVariantLigatures::Yes; 10639 if (sawHistoricalValue) 10640 return false; 10641 sawHistoricalValue = true; 10642 values->append(CSSValuePool::singleton().createIdentifierValue(value->id)); 10652 10643 break; 10653 10644 case CSSValueContextual: 10654 contextualAlternates = FontVariantLigatures::Yes;10655 break;10656 10645 case CSSValueNoContextual: 10657 contextualAlternates = FontVariantLigatures::No; 10646 if (sawContextualValue) 10647 return false; 10648 sawContextualValue = true; 10649 values->append(CSSValuePool::singleton().createIdentifierValue(value->id)); 10658 10650 break; 10659 10651 default: 10660 if (unknownIsFailure == UnknownIsFailure::Yes) 10661 return false; 10662 continue; 10663 } 10664 } 10665 10666 switch (commonLigatures) { 10667 case FontVariantLigatures::Normal: 10668 break; 10669 case FontVariantLigatures::Yes: 10670 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueCommonLigatures)); 10671 break; 10672 case FontVariantLigatures::No: 10673 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoCommonLigatures)); 10674 break; 10675 } 10676 10677 switch (discretionaryLigatures) { 10678 case FontVariantLigatures::Normal: 10679 break; 10680 case FontVariantLigatures::Yes: 10681 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueDiscretionaryLigatures)); 10682 break; 10683 case FontVariantLigatures::No: 10684 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoDiscretionaryLigatures)); 10685 break; 10686 } 10687 10688 switch (historicalLigatures) { 10689 case FontVariantLigatures::Normal: 10690 break; 10691 case FontVariantLigatures::Yes: 10692 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueHistoricalLigatures)); 10693 break; 10694 case FontVariantLigatures::No: 10695 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoHistoricalLigatures)); 10696 break; 10697 } 10698 10699 switch (contextualAlternates) { 10700 case FontVariantLigatures::Normal: 10701 break; 10702 case FontVariantLigatures::Yes: 10703 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueContextual)); 10704 break; 10705 case FontVariantLigatures::No: 10706 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoContextual)); 10707 break; 10652 return false; 10653 } 10708 10654 } 10709 10655 10710 10656 if (!values->length()) 10711 return unknownIsFailure == UnknownIsFailure::No;10712 10713 addProperty(CSSPropertyFontVariantLigatures, WTF::move(values), important , false);10657 return false; 10658 10659 addProperty(CSSPropertyFontVariantLigatures, WTF::move(values), important); 10714 10660 return true; 10715 10661 } 10716 10662 10717 bool CSSParser::parseFontVariantNumeric(bool important , UnknownIsFailure unknownIsFailure)10663 bool CSSParser::parseFontVariantNumeric(bool important) 10718 10664 { 10719 10665 auto values = CSSValueList::createSpaceSeparated(); 10720 FontVariantNumericFigure figure = FontVariantNumericFigure::Normal;10721 FontVariantNumericSpacing spacing = FontVariantNumericSpacing::Normal;10722 FontVariantNumericFraction fraction = FontVariantNumericFraction::Normal;10723 FontVariantNumericOrdinal ordinal = FontVariantNumericOrdinal::Normal;10724 FontVariantNumericSlashedZero slashedZero = FontVariantNumericSlashedZero::Normal;10666 bool sawFigureValue = false; 10667 bool sawSpacingValue = false; 10668 bool sawFractionValue = false; 10669 bool sawOrdinal = false; 10670 bool sawSlashedZero = false; 10725 10671 10726 10672 for (CSSParserValue* value = m_valueList->current(); value; value = m_valueList->next()) { … … 10730 10676 switch (value->id) { 10731 10677 case CSSValueLiningNums: 10732 figure = FontVariantNumericFigure::LiningNumbers;10733 break;10734 10678 case CSSValueOldstyleNums: 10735 figure = FontVariantNumericFigure::OldStyleNumbers; 10679 if (sawFigureValue) 10680 return false; 10681 sawFigureValue = true; 10682 values->append(CSSValuePool::singleton().createIdentifierValue(value->id)); 10736 10683 break; 10737 10684 case CSSValueProportionalNums: 10738 spacing = FontVariantNumericSpacing::ProportionalNumbers;10739 break;10740 10685 case CSSValueTabularNums: 10741 spacing = FontVariantNumericSpacing::TabularNumbers; 10686 if (sawSpacingValue) 10687 return false; 10688 sawSpacingValue = true; 10689 values->append(CSSValuePool::singleton().createIdentifierValue(value->id)); 10742 10690 break; 10743 10691 case CSSValueDiagonalFractions: 10744 fraction = FontVariantNumericFraction::DiagonalFractions;10745 break;10746 10692 case CSSValueStackedFractions: 10747 fraction = FontVariantNumericFraction::StackedFractions; 10693 if (sawFractionValue) 10694 return false; 10695 sawFractionValue = true; 10696 values->append(CSSValuePool::singleton().createIdentifierValue(value->id)); 10748 10697 break; 10749 10698 case CSSValueOrdinal: 10750 ordinal = FontVariantNumericOrdinal::Yes; 10699 if (sawOrdinal) 10700 return false; 10701 sawOrdinal = true; 10702 values->append(CSSValuePool::singleton().createIdentifierValue(value->id)); 10751 10703 break; 10752 10704 case CSSValueSlashedZero: 10753 slashedZero = FontVariantNumericSlashedZero::Yes; 10705 if (sawSlashedZero) 10706 return false; 10707 sawSlashedZero = true; 10708 values->append(CSSValuePool::singleton().createIdentifierValue(value->id)); 10754 10709 break; 10755 10710 default: 10756 if (unknownIsFailure == UnknownIsFailure::Yes) 10757 return false; 10758 continue; 10759 } 10760 } 10761 10762 switch (figure) { 10763 case FontVariantNumericFigure::Normal: 10764 break; 10765 case FontVariantNumericFigure::LiningNumbers: 10766 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueLiningNums)); 10767 break; 10768 case FontVariantNumericFigure::OldStyleNumbers: 10769 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueOldstyleNums)); 10770 break; 10771 } 10772 10773 switch (spacing) { 10774 case FontVariantNumericSpacing::Normal: 10775 break; 10776 case FontVariantNumericSpacing::ProportionalNumbers: 10777 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueProportionalNums)); 10778 break; 10779 case FontVariantNumericSpacing::TabularNumbers: 10780 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueTabularNums)); 10781 break; 10782 } 10783 10784 switch (fraction) { 10785 case FontVariantNumericFraction::Normal: 10786 break; 10787 case FontVariantNumericFraction::DiagonalFractions: 10788 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueDiagonalFractions)); 10789 break; 10790 case FontVariantNumericFraction::StackedFractions: 10791 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueStackedFractions)); 10792 break; 10793 } 10794 10795 switch (ordinal) { 10796 case FontVariantNumericOrdinal::Normal: 10797 break; 10798 case FontVariantNumericOrdinal::Yes: 10799 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueOrdinal)); 10800 break; 10801 } 10802 10803 switch (slashedZero) { 10804 case FontVariantNumericSlashedZero::Normal: 10805 break; 10806 case FontVariantNumericSlashedZero::Yes: 10807 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueSlashedZero)); 10808 break; 10711 return false; 10712 } 10809 10713 } 10810 10714 10811 10715 if (!values->length()) 10812 return unknownIsFailure == UnknownIsFailure::No;10813 10814 addProperty(CSSPropertyFontVariantNumeric, WTF::move(values), important , false);10716 return false; 10717 10718 addProperty(CSSPropertyFontVariantNumeric, WTF::move(values), important); 10815 10719 return true; 10816 10720 } 10817 10721 10818 bool CSSParser::parseFontVariantEastAsian(bool important , UnknownIsFailure unknownIsFailure)10722 bool CSSParser::parseFontVariantEastAsian(bool important) 10819 10723 { 10820 10724 auto values = CSSValueList::createSpaceSeparated(); 10821 FontVariantEastAsianVariant variant = FontVariantEastAsianVariant::Normal;10822 FontVariantEastAsianWidth width = FontVariantEastAsianWidth::Normal;10823 FontVariantEastAsianRuby ruby = FontVariantEastAsianRuby::Normal;10725 bool sawVariantValue = false; 10726 bool sawWidthValue = false; 10727 bool sawRuby = false; 10824 10728 10825 10729 for (CSSParserValue* value = m_valueList->current(); value; value = m_valueList->next()) { … … 10828 10732 10829 10733 switch (value->id) { 10830 case CSSValueJis78:10831 variant = FontVariantEastAsianVariant::Jis78;10832 break;10833 case CSSValueJis83:10834 variant = FontVariantEastAsianVariant::Jis83;10835 break;10836 case CSSValueJis90:10837 variant = FontVariantEastAsianVariant::Jis90;10838 break;10839 case CSSValueJis04:10840 variant = FontVariantEastAsianVariant::Jis04;10841 break;10842 case CSSValueSimplified:10843 variant = FontVariantEastAsianVariant::Simplified;10844 break;10845 case CSSValueTraditional:10846 variant = FontVariantEastAsianVariant::Traditional;10847 break;10848 case CSSValueFullWidth:10849 width = FontVariantEastAsianWidth::Full;10850 break;10851 case CSSValueProportionalWidth:10852 width = FontVariantEastAsianWidth::Proportional;10853 break;10854 case CSSValueRuby:10855 ruby = FontVariantEastAsianRuby::Yes;10856 break;10857 default:10858 if (unknownIsFailure == UnknownIsFailure::Yes)10859 return false;10860 continue;10861 }10862 }10863 10864 switch (variant) {10865 case FontVariantEastAsianVariant::Normal:10866 break;10867 case FontVariantEastAsianVariant::Jis78:10868 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis78));10869 break;10870 case FontVariantEastAsianVariant::Jis83:10871 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis83));10872 break;10873 case FontVariantEastAsianVariant::Jis90:10874 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis90));10875 break;10876 case FontVariantEastAsianVariant::Jis04:10877 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis04));10878 break;10879 case FontVariantEastAsianVariant::Simplified:10880 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueSimplified));10881 break;10882 case FontVariantEastAsianVariant::Traditional:10883 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueTraditional));10884 break;10885 }10886 10887 switch (width) {10888 case FontVariantEastAsianWidth::Normal:10889 break;10890 case FontVariantEastAsianWidth::Full:10891 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueFullWidth));10892 break;10893 case FontVariantEastAsianWidth::Proportional:10894 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueProportionalWidth));10895 break;10896 }10897 10898 switch (ruby) {10899 case FontVariantEastAsianRuby::Normal:10900 break;10901 case FontVariantEastAsianRuby::Yes:10902 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueRuby));10903 }10904 10905 if (!values->length())10906 return unknownIsFailure == UnknownIsFailure::No;10907 10908 addProperty(CSSPropertyFontVariantEastAsian, WTF::move(values), important, false);10909 return true;10910 }10911 10912 bool CSSParser::parseFontVariant(bool important)10913 {10914 ShorthandScope scope(this, CSSPropertyFontVariant);10915 if (!parseFontVariantLigatures(important, UnknownIsFailure::No))10916 return false;10917 m_valueList->setCurrentIndex(0);10918 if (!parseFontVariantNumeric(important, UnknownIsFailure::No))10919 return false;10920 m_valueList->setCurrentIndex(0);10921 if (!parseFontVariantEastAsian(important, UnknownIsFailure::No))10922 return false;10923 m_valueList->setCurrentIndex(0);10924 10925 FontVariantPosition position = FontVariantPosition::Normal;10926 FontVariantCaps caps = FontVariantCaps::Normal;10927 FontVariantAlternates alternates = FontVariantAlternates::Normal;10928 10929 for (CSSParserValue* value = m_valueList->current(); value; value = m_valueList->next()) {10930 if (value->unit != CSSPrimitiveValue::CSS_IDENT)10931 return false;10932 10933 switch (value->id) {10934 case CSSValueNoCommonLigatures:10935 case CSSValueCommonLigatures:10936 case CSSValueNoDiscretionaryLigatures:10937 case CSSValueDiscretionaryLigatures:10938 case CSSValueNoHistoricalLigatures:10939 case CSSValueHistoricalLigatures:10940 case CSSValueContextual:10941 case CSSValueNoContextual:10942 case CSSValueLiningNums:10943 case CSSValueOldstyleNums:10944 case CSSValueProportionalNums:10945 case CSSValueTabularNums:10946 case CSSValueDiagonalFractions:10947 case CSSValueStackedFractions:10948 case CSSValueOrdinal:10949 case CSSValueSlashedZero:10950 10734 case CSSValueJis78: 10951 10735 case CSSValueJis83: … … 10954 10738 case CSSValueSimplified: 10955 10739 case CSSValueTraditional: 10740 if (sawVariantValue) 10741 return false; 10742 sawVariantValue = true; 10743 values->append(CSSValuePool::singleton().createIdentifierValue(value->id)); 10744 break; 10956 10745 case CSSValueFullWidth: 10957 10746 case CSSValueProportionalWidth: 10747 if (sawWidthValue) 10748 return false; 10749 sawWidthValue = true; 10750 values->append(CSSValuePool::singleton().createIdentifierValue(value->id)); 10751 break; 10958 10752 case CSSValueRuby: 10959 break; 10960 case CSSValueSub: 10961 position = FontVariantPosition::Subscript; 10962 break; 10963 case CSSValueSuper: 10964 position = FontVariantPosition::Superscript; 10965 break; 10966 case CSSValueSmallCaps: 10967 caps = FontVariantCaps::Small; 10968 break; 10969 case CSSValueAllSmallCaps: 10970 caps = FontVariantCaps::AllSmall; 10971 break; 10972 case CSSValuePetiteCaps: 10973 caps = FontVariantCaps::Petite; 10974 break; 10975 case CSSValueAllPetiteCaps: 10976 caps = FontVariantCaps::AllPetite; 10977 break; 10978 case CSSValueUnicase: 10979 caps = FontVariantCaps::Unicase; 10980 break; 10981 case CSSValueTitlingCaps: 10982 caps = FontVariantCaps::Titling; 10983 break; 10984 case CSSValueHistoricalForms: 10985 alternates = FontVariantAlternates::HistoricalForms; 10753 sawRuby = true; 10986 10754 break; 10987 10755 default: … … 10990 10758 } 10991 10759 10992 switch (position) { 10993 case FontVariantPosition::Normal: 10994 break; 10995 case FontVariantPosition::Subscript: 10996 addProperty(CSSPropertyFontVariantPosition, CSSValuePool::singleton().createIdentifierValue(CSSValueSub), important, false); 10997 break; 10998 case FontVariantPosition::Superscript: 10999 addProperty(CSSPropertyFontVariantPosition, CSSValuePool::singleton().createIdentifierValue(CSSValueSuper), important, false); 11000 break; 11001 } 11002 11003 switch (caps) { 11004 case FontVariantCaps::Normal: 11005 break; 11006 case FontVariantCaps::Small: 11007 addProperty(CSSPropertyFontVariantCaps, CSSValuePool::singleton().createIdentifierValue(CSSValueSmallCaps), important, false); 11008 break; 11009 case FontVariantCaps::AllSmall: 11010 addProperty(CSSPropertyFontVariantCaps, CSSValuePool::singleton().createIdentifierValue(CSSValueAllSmallCaps), important, false); 11011 break; 11012 case FontVariantCaps::Petite: 11013 addProperty(CSSPropertyFontVariantCaps, CSSValuePool::singleton().createIdentifierValue(CSSValuePetiteCaps), important, false); 11014 break; 11015 case FontVariantCaps::AllPetite: 11016 addProperty(CSSPropertyFontVariantCaps, CSSValuePool::singleton().createIdentifierValue(CSSValueAllPetiteCaps), important, false); 11017 break; 11018 case FontVariantCaps::Unicase: 11019 addProperty(CSSPropertyFontVariantCaps, CSSValuePool::singleton().createIdentifierValue(CSSValueUnicase), important, false); 11020 break; 11021 case FontVariantCaps::Titling: 11022 addProperty(CSSPropertyFontVariantCaps, CSSValuePool::singleton().createIdentifierValue(CSSValueTitlingCaps), important, false); 11023 break; 11024 } 11025 11026 switch (alternates) { 11027 case FontVariantAlternates::Normal: 11028 break; 11029 case FontVariantAlternates::HistoricalForms: 11030 addProperty(CSSPropertyFontVariantAlternates, CSSValuePool::singleton().createIdentifierValue(CSSValueHistoricalForms), important, false); 11031 break; 11032 } 11033 10760 if (sawRuby) 10761 values->append(CSSValuePool::singleton().createIdentifierValue(CSSValueRuby)); 10762 10763 if (!values->length()) 10764 return false; 10765 10766 addProperty(CSSPropertyFontVariantEastAsian, WTF::move(values), important); 11034 10767 return true; 11035 10768 } -
trunk/Source/WebCore/css/CSSParser.h
r192819 r192843 349 349 bool parseRegionThread(CSSPropertyID, bool important); 350 350 351 enum class UnknownIsFailure { Yes, No }; 352 bool parseFontVariantLigatures(bool important, UnknownIsFailure); 353 bool parseFontVariantNumeric(bool important, UnknownIsFailure); 354 bool parseFontVariantEastAsian(bool important, UnknownIsFailure); 355 bool parseFontVariant(bool important); 351 bool parseFontVariantLigatures(bool important); 352 bool parseFontVariantNumeric(bool important); 353 bool parseFontVariantEastAsian(bool important); 356 354 357 355 bool parseWillChange(bool important); -
trunk/Source/WebCore/css/CSSPropertyNames.in
r192819 r192843 103 103 font-size [Inherited, Custom=All] 104 104 font-style [Inherited, FontProperty, NameForMethods=Italic] 105 font-variant [Inherited, FontProperty, NameForMethods=SmallCaps] 105 106 font-weight [Inherited, Custom=All] 106 107 text-rendering [Inherited, FontProperty, NameForMethods=TextRenderingMode] … … 229 230 flood-color [SVG, Converter=SVGColor] 230 231 flood-opacity [SVG, Converter=Opacity] 231 font [Inherited, Longhands=font-family|font-size|font-style|font-variant-caps|font-weight|line-height] 232 font-variant [Inherited, Longhands=font-variant-ligatures|font-variant-position|font-variant-caps|font-variant-numeric|font-variant-alternates|font-variant-east-asian] 232 font [Inherited, Longhands=font-family|font-size|font-style|font-variant|font-weight|line-height] 233 233 font-stretch [SkipBuilder] 234 234 glyph-orientation-horizontal [Inherited, SVG, Converter=GlyphOrientation] -
trunk/Source/WebCore/css/FontVariantBuilder.h
r192819 r192843 69 69 } 70 70 } 71 } else if (is<CSSPrimitiveValue>(value)){71 } else { 72 72 switch (downcast<CSSPrimitiveValue>(value).getValueID()) { 73 73 case CSSValueNormal: … … 132 132 } 133 133 } 134 } else if (is<CSSPrimitiveValue>(value))134 } else 135 135 ASSERT(downcast<CSSPrimitiveValue>(value).getValueID() == CSSValueNormal); 136 136 … … 171 171 break; 172 172 case CSSValueFullWidth: 173 width = FontVariantEastAsianWidth::Full ;173 width = FontVariantEastAsianWidth::FullWidth; 174 174 break; 175 175 case CSSValueProportionalWidth: 176 width = FontVariantEastAsianWidth::Proportional ;176 width = FontVariantEastAsianWidth::ProportionalWidth; 177 177 break; 178 178 case CSSValueRuby: … … 184 184 } 185 185 } 186 } else if (is<CSSPrimitiveValue>(value))186 } else 187 187 ASSERT(downcast<CSSPrimitiveValue>(value).getValueID() == CSSValueNormal); 188 188 -
trunk/Source/WebCore/css/StyleProperties.cpp
r192819 r192843 270 270 break; // No prefix. 271 271 case CSSPropertyFontFamily: 272 case CSSPropertyFontVariant Caps:272 case CSSPropertyFontVariant: 273 273 case CSSPropertyFontWeight: 274 274 prefix = ' '; … … 304 304 StringBuilder result; 305 305 appendFontLonghandValueIfExplicit(CSSPropertyFontStyle, result, commonValue); 306 appendFontLonghandValueIfExplicit(CSSPropertyFontVariant Caps, result, commonValue);306 appendFontLonghandValueIfExplicit(CSSPropertyFontVariant, result, commonValue); 307 307 appendFontLonghandValueIfExplicit(CSSPropertyFontWeight, result, commonValue); 308 308 if (!result.isEmpty()) … … 974 974 case CSSPropertyFontSize: 975 975 case CSSPropertyFontStyle: 976 case CSSPropertyFontVariant Caps:976 case CSSPropertyFontVariant: 977 977 case CSSPropertyFontWeight: 978 978 // Don't use CSSPropertyFont because old UAs can't recognize them but are important for editing. -
trunk/Source/WebCore/css/StyleResolver.cpp
r192819 r192843 1806 1806 case CSSPropertyFontSize: 1807 1807 case CSSPropertyFontStyle: 1808 case CSSPropertyFontVariant Caps:1808 case CSSPropertyFontVariant: 1809 1809 case CSSPropertyFontWeight: 1810 1810 case CSSPropertyLineHeight: -
trunk/Source/WebCore/editing/EditingStyle.cpp
r192819 r192843 61 61 CSSPropertyFontSize, 62 62 CSSPropertyFontStyle, 63 CSSPropertyFontVariant Caps,63 CSSPropertyFontVariant, 64 64 CSSPropertyFontWeight, 65 65 CSSPropertyLetterSpacing, -
trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm
r192819 r192843 758 758 break; 759 759 case CSSPropertyFontFamily: 760 case CSSPropertyFontVariant Caps:760 case CSSPropertyFontVariant: 761 761 case CSSPropertyTextTransform: 762 762 case CSSPropertyTextShadow: … … 1119 1119 } 1120 1120 #if !PLATFORM(IOS) // IJB: No small caps support on iOS 1121 if (_caches->propertyValueForNode(element, CSSPropertyFontVariant Caps) == "small-caps") {1121 if (_caches->propertyValueForNode(element, CSSPropertyFontVariant) == "small-caps") { 1122 1122 // ??? synthesize small-caps if [font isEqual:originalFont] 1123 1123 NSFont *originalFont = font; -
trunk/Source/WebCore/editing/ios/EditorIOS.mm
r192819 r192843 262 262 defaultStyle->removeProperty(CSSPropertyFontWeight); 263 263 defaultStyle->removeProperty(CSSPropertyFontStyle); 264 defaultStyle->removeProperty(CSSPropertyFontVariant Caps);264 defaultStyle->removeProperty(CSSPropertyFontVariant); 265 265 // FIXME: we should handle also pasted quoted text, strikethrough, etc. <rdar://problem/9255115> 266 266 defaultStyle->removeProperty(CSSPropertyTextDecoration); -
trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
r192819 r192843 2119 2119 if (fontDescription.italic()) 2120 2120 serializedFont.appendLiteral("italic "); 2121 if (fontDescription. variantCaps() == FontVariantCaps::Small)2121 if (fontDescription.smallCaps() == FontSmallCapsOn) 2122 2122 serializedFont.appendLiteral("small-caps "); 2123 2123 … … 2188 2188 styleResolver.applyPropertyToStyle(CSSPropertyFontFamily, parsedStyle->getPropertyCSSValue(CSSPropertyFontFamily).get(), &newStyle.get()); 2189 2189 styleResolver.applyPropertyToCurrentStyle(CSSPropertyFontStyle, parsedStyle->getPropertyCSSValue(CSSPropertyFontStyle).get()); 2190 styleResolver.applyPropertyToCurrentStyle(CSSPropertyFontVariant Caps, parsedStyle->getPropertyCSSValue(CSSPropertyFontVariantCaps).get());2190 styleResolver.applyPropertyToCurrentStyle(CSSPropertyFontVariant, parsedStyle->getPropertyCSSValue(CSSPropertyFontVariant).get()); 2191 2191 styleResolver.applyPropertyToCurrentStyle(CSSPropertyFontWeight, parsedStyle->getPropertyCSSValue(CSSPropertyFontWeight).get()); 2192 2192 -
trunk/Source/WebCore/platform/graphics/FontCache.h
r192819 r192843 111 111 { 112 112 static_assert(USCRIPT_CODE_LIMIT < 0x1000, "Script code must fit in an unsigned along with the other flags"); 113 unsigned first = static_cast<unsigned>(description.script()) << 10 114 | static_cast<unsigned>(description.textRenderingMode()) << 8 113 unsigned first = static_cast<unsigned>(description.script()) << 11 114 | static_cast<unsigned>(description.textRenderingMode()) << 9 115 | static_cast<unsigned>(description.smallCaps()) << 8 115 116 | static_cast<unsigned>(description.fontSynthesis()) << 6 116 117 | static_cast<unsigned>(description.widthVariant()) << 4 -
trunk/Source/WebCore/platform/graphics/FontCascade.cpp
r192819 r192843 394 394 { 395 395 if (variant == AutoVariant) { 396 if (m_fontDescription. variantCaps() == FontVariantCaps::Small&& !primaryFont().isSVGFont()) {396 if (m_fontDescription.smallCaps() && !primaryFont().isSVGFont()) { 397 397 UChar32 upperC = u_toupper(c); 398 398 if (upperC != c) { -
trunk/Source/WebCore/platform/graphics/FontCascade.h
r192819 r192843 149 149 void adjustSelectionRectForText(const TextRun&, LayoutRect& selectionRect, int from = 0, int to = -1) const; 150 150 151 bool isSmallCaps() const { return m_fontDescription. variantCaps() == FontVariantCaps::Small; }151 bool isSmallCaps() const { return m_fontDescription.smallCaps(); } 152 152 153 153 float wordSpacing() const { return m_wordSpacing; } -
trunk/Source/WebCore/platform/graphics/FontDescription.cpp
r192819 r192843 53 53 , m_widthVariant(RegularWidth) 54 54 , m_italic(FontItalicOff) 55 , m_smallCaps(FontSmallCapsOff) 55 56 , m_weight(FontWeightNormal) 56 57 , m_renderingMode(static_cast<unsigned>(FontRenderingMode::Normal)) -
trunk/Source/WebCore/platform/graphics/FontDescription.h
r192819 r192843 49 49 FontItalic italic() const { return static_cast<FontItalic>(m_italic); } 50 50 int computedPixelSize() const { return int(m_computedSize + 0.5f); } 51 FontSmallCaps smallCaps() const { return static_cast<FontSmallCaps>(m_smallCaps); } 51 52 FontWeight weight() const { return static_cast<FontWeight>(m_weight); } 52 53 FontWeight lighterWeight() const; … … 99 100 void setItalic(FontItalic i) { m_italic = i; } 100 101 void setIsItalic(bool i) { setItalic(i ? FontItalicOn : FontItalicOff); } 102 void setSmallCaps(FontSmallCaps c) { m_smallCaps = c; } 103 void setIsSmallCaps(bool c) { setSmallCaps(c ? FontSmallCapsOn : FontSmallCapsOff); } 101 104 void setWeight(FontWeight w) { m_weight = w; } 102 105 void setRenderingMode(FontRenderingMode mode) { m_renderingMode = static_cast<unsigned>(mode); } … … 135 138 unsigned m_widthVariant : 2; // FontWidthVariant 136 139 unsigned m_italic : 1; // FontItalic 140 unsigned m_smallCaps : 1; // FontSmallCaps 137 141 unsigned m_weight : 8; // FontWeight 138 142 unsigned m_renderingMode : 1; // Used to switch between CG and GDI text on Windows. … … 161 165 return m_computedSize == other.m_computedSize 162 166 && m_italic == other.m_italic 167 && m_smallCaps == other.m_smallCaps 163 168 && m_weight == other.m_weight 164 169 && m_renderingMode == other.m_renderingMode … … 247 252 return familiesEqualForTextAutoSizing(other) 248 253 && m_specifiedSize == other.m_specifiedSize 249 && variantSettings() == other.variantSettings()254 && smallCaps() == other.smallCaps() 250 255 && m_isAbsoluteSize == other.m_isAbsoluteSize; 251 256 } -
trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp
r192819 r192843 343 343 case FontVariantEastAsianWidth::Normal: 344 344 break; 345 case FontVariantEastAsianWidth::Full :345 case FontVariantEastAsianWidth::FullWidth: 346 346 result.add(fontFeatureTag("fwid"), 1); 347 347 break; 348 case FontVariantEastAsianWidth::Proportional :348 case FontVariantEastAsianWidth::ProportionalWidth: 349 349 result.add(fontFeatureTag("pwid"), 1); 350 350 break; -
trunk/Source/WebCore/platform/text/TextFlags.h
r192819 r192843 140 140 enum class FontVariantEastAsianWidth { 141 141 Normal, 142 Full ,143 Proportional 142 FullWidth, 143 ProportionalWidth 144 144 }; 145 145 … … 222 222 } 223 223 224 bool operator==(const FontVariantSettings& other)225 {226 return commonLigatures == other.commonLigatures227 && discretionaryLigatures == other.discretionaryLigatures228 && historicalLigatures == other.historicalLigatures229 && contextualAlternates == other.contextualAlternates230 && position == other.position231 && caps == other.caps232 && numericFigure == other.numericFigure233 && numericSpacing == other.numericSpacing234 && numericFraction == other.numericFraction235 && numericOrdinal == other.numericOrdinal236 && numericSlashedZero == other.numericSlashedZero237 && alternates == other.alternates238 && eastAsianVariant == other.eastAsianVariant239 && eastAsianWidth == other.eastAsianWidth240 && eastAsianRuby == other.eastAsianRuby;241 }242 243 224 FontVariantLigatures commonLigatures; 244 225 FontVariantLigatures discretionaryLigatures; -
trunk/Source/WebCore/rendering/RenderText.cpp
r192819 r192843 461 461 } 462 462 463 if (f.isFixedPitch() && f.fontDescription().variantSettings().isAllNormal() && m_isAllASCII && (!glyphOverflow || !glyphOverflow->computeBounds)) {463 if (f.isFixedPitch() && !f.isSmallCaps() && m_isAllASCII && (!glyphOverflow || !glyphOverflow->computeBounds)) { 464 464 float monospaceCharacterWidth = f.spaceWidth(); 465 465 float w = 0;
Note: See TracChangeset
for help on using the changeset viewer.