Diff
Modified: trunk/LayoutTests/ChangeLog (292858 => 292859)
--- trunk/LayoutTests/ChangeLog 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/LayoutTests/ChangeLog 2022-04-14 06:19:01 UTC (rev 292859)
@@ -1,3 +1,19 @@
+2022-04-13 Myles C. Maxfield <[email protected]>
+
+ Revert r291846 because it caused a 3% performance regression
+ https://bugs.webkit.org/show_bug.cgi?id=239323
+ <rdar://problem/91046238>
+
+ Rubber-stamped by Stephanie Lewis.
+
+ * TestExpectations:
+ * fast/text/accessibility-bold-expected-mismatch.html: Removed.
+ * fast/text/accessibility-bold.html: Removed.
+ * platform/ios-wk2/TestExpectations:
+ * platform/ios/TestExpectations:
+ * platform/mac-wk2/TestExpectations:
+ * platform/mac/TestExpectations:
+
2022-04-13 Antoine Quint <[email protected]>
[web-animations] REGRESSION(r291527): assertion hit during teardown of document with CSS Animations
Modified: trunk/LayoutTests/TestExpectations (292858 => 292859)
--- trunk/LayoutTests/TestExpectations 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/LayoutTests/TestExpectations 2022-04-14 06:19:01 UTC (rev 292859)
@@ -5207,9 +5207,6 @@
webkit.org/b/237108 http/tests/websocket/tests/hybi/deflate-frame-parameter.html [ Failure ] # <rdar://problem/33850189>
webkit.org/b/237108 http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers.html [ Pass Failure ]
-# This test is only relevant on Apple platforms.
-fast/text/accessibility-bold.html [ Pass ImageOnlyFailure ]
-
# Only certain ports have WebGPU implementations.
http/tests/webgpu [ Failure ImageOnlyFailure Pass Timeout ]
Deleted: trunk/LayoutTests/fast/text/accessibility-bold-expected-mismatch.html (292858 => 292859)
--- trunk/LayoutTests/fast/text/accessibility-bold-expected-mismatch.html 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/LayoutTests/fast/text/accessibility-bold-expected-mismatch.html 2022-04-14 06:19:01 UTC (rev 292859)
@@ -1,15 +0,0 @@
-<!DOCTYPE html><!-- webkit-test-runner [ runSingly=true ] -->
-<html>
-<head>
-<script>
-if (window.internals) {
- window.internals.invalidateFontCache();
- window.internals.setOverrideEnhanceTextLegibility(false);
-}
-</script>
-</head>
-<body>
-This test makes sure that accessibility bold is applied to font-family: system-ui. The test passes if the text below is bold.
-<p style="font: 24px system-ui;">Hello this is text</p>
-</body>
-</html>
Deleted: trunk/LayoutTests/fast/text/accessibility-bold.html (292858 => 292859)
--- trunk/LayoutTests/fast/text/accessibility-bold.html 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/LayoutTests/fast/text/accessibility-bold.html 2022-04-14 06:19:01 UTC (rev 292859)
@@ -1,15 +0,0 @@
-<!DOCTYPE html><!-- webkit-test-runner [ runSingly=true ] -->
-<html>
-<head>
-<script>
-if (window.internals) {
- window.internals.invalidateFontCache();
- window.internals.setOverrideEnhanceTextLegibility(true);
-}
-</script>
-</head>
-<body>
-This test makes sure that accessibility bold is applied to font-family: system-ui. The test passes if the text below is bold.
-<p style="font: 24px system-ui;">Hello this is text</p>
-</body>
-</html>
Modified: trunk/LayoutTests/platform/ios/TestExpectations (292858 => 292859)
--- trunk/LayoutTests/platform/ios/TestExpectations 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/LayoutTests/platform/ios/TestExpectations 2022-04-14 06:19:01 UTC (rev 292859)
@@ -3562,8 +3562,5 @@
webkit.org/b/237955 imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-044.html [ Failure ]
-# fast/text/accessibility-bold.html requires WK2. The ***-wk2/TestExpectation files mark it as PASS.
-fast/text/accessibility-bold.html [ Skip ]
-
# iOS has a WebGPU implementation.
http/tests/webgpu [ Pass ]
Modified: trunk/LayoutTests/platform/ios-wk2/TestExpectations (292858 => 292859)
--- trunk/LayoutTests/platform/ios-wk2/TestExpectations 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/LayoutTests/platform/ios-wk2/TestExpectations 2022-04-14 06:19:01 UTC (rev 292859)
@@ -2239,7 +2239,6 @@
webkit.org/b/237358 imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-005.html [ Failure ]
-fast/text/accessibility-bold.html [ Pass ]
webkit.org/b/143153 imported/w3c/web-platform-tests/css/css-writing-modes/full-width-003.html [ Pass ]
webkit.org/b/233621 http/tests/webgpu [ Skip ]
Modified: trunk/LayoutTests/platform/mac/TestExpectations (292858 => 292859)
--- trunk/LayoutTests/platform/mac/TestExpectations 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/LayoutTests/platform/mac/TestExpectations 2022-04-14 06:19:01 UTC (rev 292859)
@@ -2286,9 +2286,6 @@
webkit.org/b/237166 [ BigSur+ ] webgl/pending/conformance/textures/misc/tex-image-video-repeated.html [ Pass Timeout ]
-# fast/text/accessibility-bold.html requires WK2. The ***-wk2/TestExpectation files mark it as PASS.
-fast/text/accessibility-bold.html [ Skip ]
-
# macOS has a WebGPU implementation.
http/tests/webgpu [ Pass ]
Modified: trunk/LayoutTests/platform/mac-wk2/TestExpectations (292858 => 292859)
--- trunk/LayoutTests/platform/mac-wk2/TestExpectations 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/LayoutTests/platform/mac-wk2/TestExpectations 2022-04-14 06:19:01 UTC (rev 292859)
@@ -1645,9 +1645,6 @@
webkit.org/b/237165 [ BigSur+ Debug ] imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window.html [ Pass Crash ]
-# Monterey and later use the system font's variable-ness.
-[ Monterey+ ] fast/text/accessibility-bold.html [ Pass ]
-
webkit.org/b/233621 http/tests/webgpu [ Skip ]
fast/text/install-font-style-recalc.html [ Pass ]
Modified: trunk/Source/WebCore/ChangeLog (292858 => 292859)
--- trunk/Source/WebCore/ChangeLog 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/Source/WebCore/ChangeLog 2022-04-14 06:19:01 UTC (rev 292859)
@@ -1,3 +1,34 @@
+2022-04-13 Myles C. Maxfield <[email protected]>
+
+ Revert r291846 because it caused a 3% performance regression
+ https://bugs.webkit.org/show_bug.cgi?id=239323
+ <rdar://problem/91046238>
+
+ Rubber-stamped by Stephanie Lewis.
+
+ I'm having trouble figuring out why this caused a regression, so I'm reverting the patch
+ wholesale while I can do more investigation.
+
+ * platform/graphics/cocoa/FontCacheCoreText.cpp:
+ (WebCore::normalizeWeight):
+ (WebCore::denormalizeWeight):
+ (WebCore::preparePlatformFont):
+ (WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
+ (WebCore::FontCache::platformInit):
+ (WebCore::variationCapabilitiesForFontDescriptor):
+ (WebCore::normalizeGXWeight): Deleted.
+ (WebCore::normalizeCTWeight): Deleted.
+ (WebCore::denormalizeGXWeight): Deleted.
+ (WebCore::denormalizeCTWeight): Deleted.
+ (WebCore::overrideEnhanceTextLegibility): Deleted.
+ (WebCore::setOverrideEnhanceTextLegibility): Deleted.
+ (WebCore::shouldEnhanceTextLegibility): Deleted.
+ * platform/graphics/cocoa/FontCacheCoreText.h:
+ * testing/Internals.cpp:
+ (WebCore::Internals::setOverrideEnhanceTextLegibility): Deleted.
+ * testing/Internals.h:
+ * testing/Internals.idl:
+
2022-04-13 Antoine Quint <[email protected]>
[web-animations] REGRESSION(r291527): assertion hit during teardown of document with CSS Animations
Modified: trunk/Source/WebCore/PAL/ChangeLog (292858 => 292859)
--- trunk/Source/WebCore/PAL/ChangeLog 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/Source/WebCore/PAL/ChangeLog 2022-04-14 06:19:01 UTC (rev 292859)
@@ -1,3 +1,14 @@
+2022-04-13 Myles C. Maxfield <[email protected]>
+
+ Revert r291846 because it caused a 3% performance regression
+ https://bugs.webkit.org/show_bug.cgi?id=239323
+ <rdar://problem/91046238>
+
+ Rubber-stamped by Stephanie Lewis.
+
+ * pal/spi/cf/CoreTextSPI.h:
+ * pal/spi/cocoa/AccessibilitySupportSPI.h:
+
2022-04-12 Elliott Williams <[email protected]>
[Xcode] In open-source builds, disable bitcode in xcconfigs instead of build-webkit
Modified: trunk/Source/WebCore/PAL/pal/spi/cf/CoreTextSPI.h (292858 => 292859)
--- trunk/Source/WebCore/PAL/pal/spi/cf/CoreTextSPI.h 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/Source/WebCore/PAL/pal/spi/cf/CoreTextSPI.h 2022-04-14 06:19:01 UTC (rev 292859)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2014-2022 Apple Inc. All rights reserved.
+ * Copyright (C) 2014-2021 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -149,7 +149,6 @@
bool CTFontManagerEnableAllUserFonts(bool postFontChangeNotification);
void CTParagraphStyleSetCompositionLanguage(CTParagraphStyleRef, CTCompositionLanguage);
-CGFloat CTFontGetAccessibilityBoldWeightOfWeight(CGFloat);
extern const CFStringRef kCTFontCSSWeightAttribute;
extern const CFStringRef kCTFontCSSWidthAttribute;
Modified: trunk/Source/WebCore/PAL/pal/spi/cocoa/AccessibilitySupportSPI.h (292858 => 292859)
--- trunk/Source/WebCore/PAL/pal/spi/cocoa/AccessibilitySupportSPI.h 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/Source/WebCore/PAL/pal/spi/cocoa/AccessibilitySupportSPI.h 2022-04-14 06:19:01 UTC (rev 292859)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2020-2022 Apple Inc. All rights reserved.
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -47,9 +47,6 @@
void _AXSSetIsolatedTreeMode(AXSIsolatedTreeMode);
#endif // ENABLE(ACCESSIBILITY_ISOLATED_TREE)
-extern CFStringRef kAXSEnhanceTextLegibilityChangedNotification;
-Boolean _AXSEnhanceTextLegibilityEnabled(void);
-
WTF_EXTERN_C_END
#endif // USE(APPLE_INTERNAL_SDK)
Modified: trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp (292858 => 292859)
--- trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp 2022-04-14 06:19:01 UTC (rev 292859)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2015-2022 Apple Inc. All rights reserved.
+ * Copyright (C) 2015-2021 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -36,7 +36,6 @@
#include "SystemFontDatabaseCoreText.h"
#include <CoreText/SFNTLayoutTypes.h>
#include <pal/spi/cf/CoreTextSPI.h>
-#include <pal/spi/cocoa/AccessibilitySupportSPI.h>
#include <wtf/HashSet.h>
#include <wtf/Lock.h>
#include <wtf/MainThread.h>
@@ -351,6 +350,7 @@
return result;
}
+#if USE(NON_VARIABLE_SYSTEM_FONT)
static inline bool fontIsSystemFont(CTFontRef font)
{
if (isSystemFont(font))
@@ -359,70 +359,25 @@
auto name = adoptCF(CTFontCopyPostScriptName(font));
return fontNameIsSystemFont(name.get());
}
+#endif
// These values were calculated by performing a linear regression on the CSS weights/widths/slopes and Core Text weights/widths/slopes of San Francisco.
// FIXME: <rdar://problem/31312602> Get the real values from Core Text.
-static inline float normalizeGXWeight(float value)
+static inline float normalizeWeight(float value)
{
return 523.7 * value - 109.3;
}
-// These values were experimentally gathered from the various named weights of San Francisco.
-static struct {
- float ctWeight;
- float cssWeight;
-} keyframes[] = {
- { -0.8, 30 },
- { -0.4, 274 },
- { 0, 400 },
- { 0.23, 510 },
- { 0.3, 590 },
- { 0.4, 700 },
- { 0.56, 860 },
- { 0.62, 1000 },
-};
-static_assert(WTF_ARRAY_LENGTH(keyframes) > 0);
-
-static inline float normalizeCTWeight(float value)
-{
- if (value < keyframes[0].ctWeight)
- return keyframes[0].cssWeight;
- for (size_t i = 0; i < WTF_ARRAY_LENGTH(keyframes) - 1; ++i) {
- auto& before = keyframes[i];
- auto& after = keyframes[i];
- if (value < before.ctWeight || value > after.ctWeight)
- continue;
- float ratio = (value - before.ctWeight) / (after.ctWeight - before.ctWeight);
- return ratio * (after.cssWeight - before.cssWeight) + before.cssWeight;
- }
- return keyframes[WTF_ARRAY_LENGTH(keyframes) - 1].cssWeight;
-}
-
static inline float normalizeSlope(float value)
{
return value * 300;
}
-static inline float denormalizeGXWeight(float value)
+static inline float denormalizeWeight(float value)
{
return (value + 109.3) / 523.7;
}
-static inline float denormalizeCTWeight(float value)
-{
- if (value < keyframes[0].cssWeight)
- return keyframes[0].ctWeight;
- for (size_t i = 0; i < WTF_ARRAY_LENGTH(keyframes) - 1; ++i) {
- auto& before = keyframes[i];
- auto& after = keyframes[i];
- if (value < before.cssWeight || value > after.cssWeight)
- continue;
- float ratio = (value - before.cssWeight) / (after.cssWeight - before.cssWeight);
- return ratio * (after.ctWeight - before.ctWeight) + before.ctWeight;
- }
- return keyframes[WTF_ARRAY_LENGTH(keyframes) - 1].ctWeight;
-}
-
static inline float denormalizeSlope(float value)
{
return value / 300;
@@ -566,22 +521,6 @@
}
}
-static std::optional<bool>& overrideEnhanceTextLegibility()
-{
- static NeverDestroyed<std::optional<bool>> overrideEnhanceTextLegibility;
- return overrideEnhanceTextLegibility.get();
-}
-
-void setOverrideEnhanceTextLegibility(bool enhance)
-{
- overrideEnhanceTextLegibility() = enhance;
-}
-
-static bool shouldEnhanceTextLegibility()
-{
- return overrideEnhanceTextLegibility().value_or(_AXSEnhanceTextLegibilityEnabled());
-}
-
RetainPtr<CTFontRef> preparePlatformFont(CTFontRef originalFont, const FontDescription& fontDescription, const FontCreationContext& fontCreationContext, bool applyWeightWidthSlopeVariations)
{
if (!originalFont)
@@ -664,13 +603,8 @@
width = std::max(std::min(width, static_cast<float>(widthValue->maximum)), static_cast<float>(widthValue->minimum));
if (auto slopeValue = fontCreationContext.fontFaceCapabilities().weight)
slope = std::max(std::min(slope, static_cast<float>(slopeValue->maximum)), static_cast<float>(slopeValue->minimum));
- if (fontIsSystemFont(originalFont) && shouldEnhanceTextLegibility()) {
- auto ctWeight = denormalizeCTWeight(weight);
- ctWeight = CTFontGetAccessibilityBoldWeightOfWeight(ctWeight);
- weight = normalizeCTWeight(ctWeight);
- }
if (needsConversion) {
- weight = denormalizeGXWeight(weight);
+ weight = denormalizeWeight(weight);
width = denormalizeVariationWidth(width);
slope = denormalizeSlope(slope);
}
@@ -818,7 +752,7 @@
static void invalidateFontCache();
-static void fontCacheRegisteredFontsChangedNotificationCallback(CFNotificationCenterRef, void* observer, CFStringRef, const void*, CFDictionaryRef)
+static void fontCacheRegisteredFontsChangedNotificationCallback(CFNotificationCenterRef, void* observer, CFStringRef, const void *, CFDictionaryRef)
{
ASSERT_UNUSED(observer, isMainThread() && observer == &FontCache::forCurrentThread());
@@ -829,8 +763,6 @@
{
CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(), this, &fontCacheRegisteredFontsChangedNotificationCallback, kCTFontManagerRegisteredFontsChangedNotification, nullptr, CFNotificationSuspensionBehaviorDeliverImmediately);
- CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(), this, &fontCacheRegisteredFontsChangedNotificationCallback, kAXSEnhanceTextLegibilityChangedNotification, nullptr, CFNotificationSuspensionBehaviorDeliverImmediately);
-
#if PLATFORM(MAC)
CFNotificationCenterRef center = CFNotificationCenterGetLocalCenter();
const CFStringRef notificationName = kCFLocaleCurrentLocaleDidChangeNotification;
@@ -1131,7 +1063,7 @@
if (FontType(font.get()).variationType == FontType::VariationType::TrueTypeGX && !optOutFromGXNormalization) {
if (result.weight)
- result.weight = { { normalizeGXWeight(result.weight.value().minimum), normalizeGXWeight(result.weight.value().maximum) } };
+ result.weight = { { normalizeWeight(result.weight.value().minimum), normalizeWeight(result.weight.value().maximum) } };
if (result.width)
result.width = { { normalizeVariationWidth(result.width.value().minimum), normalizeVariationWidth(result.width.value().maximum) } };
if (result.slope)
@@ -1754,4 +1686,4 @@
#endif
}
-} // namespace WebCore
+}
Modified: trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.h (292858 => 292859)
--- trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.h 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.h 2022-04-14 06:19:01 UTC (rev 292859)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017-2022 Apple Inc. All rights reserved.
+ * Copyright (C) 2017-2021 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -72,7 +72,6 @@
RetainPtr<CTFontRef> createFontForInstalledFonts(CTFontRef, AllowUserInstalledFonts);
void addAttributesForWebFonts(CFMutableDictionaryRef attributes, AllowUserInstalledFonts);
RetainPtr<CFSetRef> installedFontMandatoryAttributes(AllowUserInstalledFonts);
+
VariationDefaultsMap defaultVariationValues(CTFontRef, ShouldLocalizeAxisNames);
-WEBCORE_EXPORT void setOverrideEnhanceTextLegibility(bool);
-
-} // namespace WebCore
+}
Modified: trunk/Source/WebCore/testing/Internals.cpp (292858 => 292859)
--- trunk/Source/WebCore/testing/Internals.cpp 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/Source/WebCore/testing/Internals.cpp 2022-04-14 06:19:01 UTC (rev 292859)
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2012 Google Inc. All rights reserved.
- * Copyright (C) 2013-2022 Apple Inc. All rights reserved.
+ * Copyright (C) 2013-2021 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -347,7 +347,6 @@
#endif
#if PLATFORM(COCOA)
-#include "FontCacheCoreText.h"
#include "SystemBattery.h"
#include "VP9UtilitiesCocoa.h"
#include <pal/spi/cf/CoreTextSPI.h>
@@ -1905,15 +1904,6 @@
FontCascade::setShouldUseSmoothing(enabled);
}
-void Internals::setOverrideEnhanceTextLegibility(bool enhance)
-{
-#if PLATFORM(COCOA)
- WebCore::setOverrideEnhanceTextLegibility(enhance);
-#else
- UNUSED_PARAM(enhance);
-#endif
-}
-
ExceptionOr<void> Internals::setLowPowerModeEnabled(bool isEnabled)
{
auto* document = contextDocument();
Modified: trunk/Source/WebCore/testing/Internals.h (292858 => 292859)
--- trunk/Source/WebCore/testing/Internals.h 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/Source/WebCore/testing/Internals.h 2022-04-14 06:19:01 UTC (rev 292859)
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2012 Google Inc. All rights reserved.
- * Copyright (C) 2013-2022 Apple Inc. All rights reserved.
+ * Copyright (C) 2013-2021 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -315,7 +315,6 @@
void invalidateFontCache();
void setFontSmoothingEnabled(bool);
- void setOverrideEnhanceTextLegibility(bool);
ExceptionOr<void> setLowPowerModeEnabled(bool);
ExceptionOr<void> setOutsideViewportThrottlingEnabled(bool);
Modified: trunk/Source/WebCore/testing/Internals.idl (292858 => 292859)
--- trunk/Source/WebCore/testing/Internals.idl 2022-04-14 06:11:25 UTC (rev 292858)
+++ trunk/Source/WebCore/testing/Internals.idl 2022-04-14 06:19:01 UTC (rev 292859)
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2012 Google Inc. All rights reserved.
- * Copyright (C) 2013-2022 Apple Inc. All rights reserved.
+ * Copyright (C) 2013-2021 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -428,7 +428,6 @@
undefined invalidateFontCache();
undefined setFontSmoothingEnabled(boolean enabled);
- undefined setOverrideEnhanceTextLegibility(boolean enhance);
undefined setScrollViewPosition(long x, long y);