Changeset 245647 in webkit


Ignore:
Timestamp:
May 22, 2019 2:39:11 PM (5 years ago)
Author:
Ryan Haddad
Message:

Unreviewed, rolling out r245598.

Breaks watchOS build.

Reverted changeset:

"font-optical-sizing applies the wrong variation value"
https://bugs.webkit.org/show_bug.cgi?id=197528
https://trac.webkit.org/changeset/245598

Location:
trunk
Files:
9 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r245639 r245647  
     12019-05-22  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r245598.
     4
     5        Breaks watchOS build.
     6
     7        Reverted changeset:
     8
     9        "font-optical-sizing applies the wrong variation value"
     10        https://bugs.webkit.org/show_bug.cgi?id=197528
     11        https://trac.webkit.org/changeset/245598
     12
    1132019-05-22  Antoine Quint  <graouts@apple.com>
    214
  • trunk/LayoutTests/platform/win/TestExpectations

    r245619 r245647  
    32513251fast/text/text-combine-shrink-on-color-change.html [ Failure ]
    32523252fast/text/trak-optimizeLegibility.html [ Failure ]
    3253 fast/text/variations [ Failure Pass ImageOnlyFailure ]
     3253fast/text/variations/advances.html [ Failure ]
     3254fast/text/variations/getComputedStyle.html [ Failure ]
    32543255fast/text/whitespace/023.html [ Failure ]
    32553256fast/transforms/bounding-rect-zoom.html [ Failure ]
     
    33803381fast/text/emoji-single-parent-family-2.html [ ImageOnlyFailure ]
    33813382fast/text/emoji-single-parent-family.html [ ImageOnlyFailure ]
     3383fast/text/variations/exist.html [ ImageOnlyFailure ]
     3384fast/text/variations/outofbounds.html [ ImageOnlyFailure ]
    33823385http/tests/security/http-0.9/image-on-HTTP-0.9-default-port-page-allowed-ref-test.html [ ImageOnlyFailure ]
    33833386mathml/presentation/non-bmp-operators-stretching.html [ ImageOnlyFailure ]
     
    35543557fast/text/softbank-emoji.html [ Failure ]
    35553558fast/text/system-font-fallback-emoji.html [ Failure ]
     3559fast/text/variations/font-loading-api-parse-ranges.html [ Failure ]
     3560fast/text/variations/optical-sizing.html [ Failure ]
    35563561fast/text/web-font-load-invisible-during-loading.html [ Failure ]
    35573562fast/url/standard-url.html [ Failure ]
     
    36193624fast/text/multiple-codeunit-vertical-upright.html [ ImageOnlyFailure ]
    36203625fast/text/simple-line-layout-simple-text-but-complex-font-path.html [ ImageOnlyFailure ]
     3626fast/text/variations/font-face-format.html [ ImageOnlyFailure ]
     3627fast/text/variations/font-face-format-woff2.html [ ImageOnlyFailure ]
    36213628imported/blink/scrollbars/avoid-double-scrollbars-when-html-element-is-not-the-renderview.html [ ImageOnlyFailure ]
    36223629imported/w3c/i18n/bidi/bidi-plaintext-011.html [ ImageOnlyFailure ]
     
    36863693http/wpt/fetch/response-status-text.html [ Failure ]
    36873694js/dom/builtin-getter-name.html [ Failure ]
     3695fast/text/variations/font-selection-font-weight.html [ ImageOnlyFailure ]
    36883696fast/forms/file/entries-api/webkitdirectory-open-panel.html [ Skip ]
    36893697
     
    37333741# Animated image throttling behaves differently on WK1.
    37343742svg/animations/animated-svg-image-outside-viewport-paused.html [ Skip ]
     3743
     3744# This test requires Skia, which isn't available on Windows.
     3745webkit.org/b/174079 fast/text/variations/skia-postscript-name.html [ ImageOnlyFailure ]
    37353746
    37363747# Beacon is not supported on WK1.
  • trunk/Source/WTF/ChangeLog

    r245606 r245647  
     12019-05-22  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r245598.
     4
     5        Breaks watchOS build.
     6
     7        Reverted changeset:
     8
     9        "font-optical-sizing applies the wrong variation value"
     10        https://bugs.webkit.org/show_bug.cgi?id=197528
     11        https://trac.webkit.org/changeset/245598
     12
    1132019-05-21  Ross Kirsling  <ross.kirsling@sony.com>
    214
  • trunk/Source/WTF/wtf/Platform.h

    r245598 r245647  
    15561556#endif
    15571557
    1558 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 120000) || (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MIN_REQUIRED >= 50000) || (PLATFORM(APPLETV) && __TV_OS_VERSION_MIN_REQUIRED >= 120000)
    1559 #define HAVE_CORETEXT_AUTO_OPTICAL_SIZING 1
    1560 #endif
    1561 
  • trunk/Source/WebCore/ChangeLog

    r245644 r245647  
     12019-05-22  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r245598.
     4
     5        Breaks watchOS build.
     6
     7        Reverted changeset:
     8
     9        "font-optical-sizing applies the wrong variation value"
     10        https://bugs.webkit.org/show_bug.cgi?id=197528
     11        https://trac.webkit.org/changeset/245598
     12
    1132019-05-22  Daniel Bates  <dabates@apple.com>
    214
  • trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp

    r245598 r245647  
    485485        if (!tables)
    486486            return;
    487         bool foundStat = false;
    488         bool foundTrak = false;
    489487        auto size = CFArrayGetCount(tables.get());
    490488        for (CFIndex i = 0; i < size; ++i) {
     
    500498                break;
    501499            case 'STAT':
    502                 foundStat = true;
    503500                variationType = VariationType::OpenType18;
    504501                break;
     
    511508                openTypeShaping = true;
    512509                break;
    513             case 'trak':
    514                 foundTrak = true;
    515                 break;
    516510            }
    517511        }
    518         if (foundStat && foundTrak)
    519             trackingType = TrackingType::Automatic;
    520         else if (foundTrak)
    521             trackingType = TrackingType::Manual;
    522     }
    523 
    524     enum class VariationType : uint8_t { NotVariable, TrueTypeGX, OpenType18, };
     512    }
     513
     514    enum class VariationType {
     515        NotVariable,
     516        TrueTypeGX,
     517        OpenType18
     518    };
    525519    VariationType variationType { VariationType::NotVariable };
    526     enum class TrackingType : uint8_t { None, Automatic, Manual, };
    527     TrackingType trackingType { TrackingType::None };
    528520    bool openTypeShaping { false };
    529521    bool aatShaping { false };
    530522};
    531523
    532 RetainPtr<CTFontRef> preparePlatformFont(CTFontRef originalFont, const FontDescription& fontDescription, const FontFeatureSettings* fontFaceFeatures, const FontVariantSettings* fontFaceVariantSettings, FontSelectionSpecifiedCapabilities fontFaceCapabilities, bool applyWeightWidthSlopeVariations)
    533 {
    534     if (!originalFont)
    535         return originalFont;
    536 
     524RetainPtr<CTFontRef> preparePlatformFont(CTFontRef originalFont, const FontDescription& fontDescription, const FontFeatureSettings* fontFaceFeatures, const FontVariantSettings* fontFaceVariantSettings, FontSelectionSpecifiedCapabilities fontFaceCapabilities, float size, bool applyWeightWidthSlopeVariations)
     525{
     526    bool alwaysAddVariations = false;
     527
     528    // FIXME: Remove when <rdar://problem/29859207> is fixed
    537529#if ENABLE(VARIATION_FONTS)
    538530    auto defaultValues = defaultVariationValues(originalFont);
     531    alwaysAddVariations = !defaultValues.isEmpty();
    539532
    540533    auto fontSelectionRequest = fontDescription.fontSelectionRequest();
     
    543536#else
    544537    UNUSED_PARAM(fontFaceCapabilities);
     538    UNUSED_PARAM(size);
    545539    UNUSED_PARAM(applyWeightWidthSlopeVariations);
    546540#endif
     
    551545    auto textRenderingMode = fontDescription.textRenderingMode();
    552546
    553     FontType fontType { originalFont };
    554 
    555     bool forceOpticalSizingOn = fontOpticalSizing == FontOpticalSizing::Enabled && fontType.variationType == FontType::VariationType::TrueTypeGX && defaultValues.contains({{'o', 'p', 's', 'z'}});
    556     bool forceVariations = defaultValues.contains({{'w', 'g', 'h', 't'}}) || defaultValues.contains({{'w', 'd', 't', 'h'}}) || (fontStyleAxis == FontStyleAxis::ital && defaultValues.contains({{'i', 't', 'a', 'l'}})) || (fontStyleAxis == FontStyleAxis::slnt && defaultValues.contains({{'s', 'l', 'n', 't'}}));
    557 
    558     // We might want to check fontType.trackingType == FontType::TrackingType::Manual here, but in order to maintain compatibility with the rest of the system, we don't.
    559     bool noFontFeatureSettings = features.isEmpty();
    560     bool noFontVariationSettings = !forceVariations && variations.isEmpty();
    561     bool textRenderingModeIsAuto = textRenderingMode == TextRenderingMode::AutoTextRendering;
    562     bool variantSettingsIsNormal = variantSettings.isAllNormal();
    563     bool dontNeedToApplyOpticalSizing = fontOpticalSizing == FontOpticalSizing::Enabled && !forceOpticalSizingOn;
    564     bool fontFaceDoesntSpecifyFeatures = !fontFaceFeatures || fontFaceFeatures->isEmpty();
    565     bool fontFaceDoesntSpecifyVariations = !fontFaceVariantSettings || fontFaceVariantSettings->isAllNormal();
    566     if (noFontFeatureSettings && noFontVariationSettings && textRenderingModeIsAuto && variantSettingsIsNormal && dontNeedToApplyOpticalSizing && fontFaceDoesntSpecifyFeatures && fontFaceDoesntSpecifyVariations)
     547    if (!originalFont || (!features.size() && (!alwaysAddVariations && variations.isEmpty()) && (textRenderingMode == TextRenderingMode::AutoTextRendering) && variantSettings.isAllNormal()
     548        && (!fontFaceFeatures || !fontFaceFeatures->size()) && (!fontFaceVariantSettings || fontFaceVariantSettings->isAllNormal())))
    567549        return originalFont;
    568550
     
    598580    for (auto& newFeature : features)
    599581        featuresToBeApplied.set(newFeature.tag(), newFeature.value());
     582
     583    FontType fontType(originalFont);
    600584
    601585#if ENABLE(VARIATION_FONTS)
     
    636620    }
    637621
     622    if (fontOpticalSizing == FontOpticalSizing::Enabled) {
     623        const float pxToPtRatio = 3.0f / 4;
     624        applyVariation({{'o', 'p', 's', 'z'}}, size * pxToPtRatio);
     625    }
     626
    638627    for (auto& newVariation : variations)
    639628        applyVariation(newVariation.tag(), newVariation.value());
     629
    640630#endif // ENABLE(VARIATION_FONTS)
    641631
     
    666656#endif
    667657
    668     if (forceOpticalSizingOn || textRenderingMode == TextRenderingMode::OptimizeLegibility) {
    669 #if HAVE(CORETEXT_AUTO_OPTICAL_SIZING)
    670         CFDictionaryAddValue(attributes.get(), kCTFontOpticalSizeAttribute, CFSTR("auto"));
    671 #else
    672         auto size = CTFontGetSize(originalFont);
     658    if (textRenderingMode == TextRenderingMode::OptimizeLegibility) {
     659        CGFloat size = CTFontGetSize(originalFont);
    673660        auto sizeNumber = adoptCF(CFNumberCreate(kCFAllocatorDefault, kCFNumberCGFloatType, &size));
    674661        CFDictionaryAddValue(attributes.get(), kCTFontOpticalSizeAttribute, sizeNumber.get());
    675 #endif
    676     } else if (fontOpticalSizing == FontOpticalSizing::Disabled) {
    677 #if HAVE(CORETEXT_AUTO_OPTICAL_SIZING)
    678         CFDictionaryAddValue(attributes.get(), kCTFontOpticalSizeAttribute, CFSTR("none"));
    679 #endif
    680     }
    681 
     662    }
    682663    auto descriptor = adoptCF(CTFontDescriptorCreateWithAttributes(attributes.get()));
    683664    auto result = adoptCF(CTFontCreateCopyWithAttributes(originalFont, CTFontGetSize(originalFont), nullptr, descriptor.get()));
     
    12431224    if (!fontLookup.result)
    12441225        fontLookup = platformFontLookupWithFamily(family, request, size, fontDescription.shouldAllowUserInstalledFonts());
    1245     return preparePlatformFont(fontLookup.result.get(), fontDescription, fontFaceFeatures, fontFaceVariantSettings, fontFaceCapabilities, !fontLookup.createdFromPostScriptName);
     1226    return preparePlatformFont(fontLookup.result.get(), fontDescription, fontFaceFeatures, fontFaceVariantSettings, fontFaceCapabilities, size, !fontLookup.createdFromPostScriptName);
    12461227}
    12471228
     
    13941375
    13951376    auto result = lookupFallbackFont(platformData.font(), description.weight(), description.locale(), characters, length);
    1396     result = preparePlatformFont(result.get(), description, nullptr, nullptr, { });
     1377    result = preparePlatformFont(result.get(), description, nullptr, nullptr, { }, description.computedSize());
    13971378
    13981379    if (!result)
  • trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.h

    r245598 r245647  
    5151};
    5252
    53 RetainPtr<CTFontRef> preparePlatformFont(CTFontRef, const FontDescription&, const FontFeatureSettings* fontFaceFeatures, const FontVariantSettings* fontFaceVariantSettings, FontSelectionSpecifiedCapabilities fontFaceCapabilities, bool applyWeightWidthSlopeVariations = true);
     53RetainPtr<CTFontRef> preparePlatformFont(CTFontRef, const FontDescription&, const FontFeatureSettings* fontFaceFeatures, const FontVariantSettings* fontFaceVariantSettings, FontSelectionSpecifiedCapabilities fontFaceCapabilities, float size, bool applyWeightWidthSlopeVariations = true);
    5454SynthesisPair computeNecessarySynthesis(CTFontRef, const FontDescription&, bool isPlatformFont = false);
    5555RetainPtr<CTFontRef> platformFontWithFamilySpecialCase(const AtomicString& family, FontSelectionRequest, float size, AllowUserInstalledFonts);
  • trunk/Source/WebCore/platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp

    r245598 r245647  
    109109#endif
    110110
    111         font = preparePlatformFont(font.get(), fontDescription, nullptr, nullptr, { });
     111        font = preparePlatformFont(font.get(), fontDescription, nullptr, nullptr, { }, fontDescription.computedSize());
    112112
    113113        bool syntheticBold, syntheticOblique;
  • trunk/Source/WebCore/platform/graphics/mac/FontCustomPlatformData.cpp

    r245598 r245647  
    4747    FontWidthVariant widthVariant = fontDescription.widthVariant();
    4848    RetainPtr<CTFontRef> font = adoptCF(CTFontCreateWithFontDescriptor(modifiedFontDescriptor.get(), size, nullptr));
    49     font = preparePlatformFont(font.get(), fontDescription, &fontFaceFeatures, &fontFaceVariantSettings, fontFaceCapabilities);
     49    font = preparePlatformFont(font.get(), fontDescription, &fontFaceFeatures, &fontFaceVariantSettings, fontFaceCapabilities, fontDescription.computedSize());
    5050    ASSERT(font);
    5151    return FontPlatformData(font.get(), size, bold, italic, orientation, widthVariant, fontDescription.textRenderingMode());
Note: See TracChangeset for help on using the changeset viewer.