Source/WebCore:
Fix builds where HAVE_DESIGN_SYSTEM_UI_FONTS is not defined.
Patch by Simon Fraser <simon.fraser@apple.com> on 2019-07-11
* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::fontWithFamilySpecialCase):
Source/WebKit:
New York font erroneously gets synthetic bold
https://bugs.webkit.org/show_bug.cgi?id=199653
<rdar://problem/51692592>
Reviewed by Simon Fraser.
Add the SPI to enable the new fonts.
* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetShouldAllowDesignSystemUIFonts):
(WKPreferencesGetShouldAllowDesignSystemUIFonts):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _shouldAllowDesignSystemUIFonts]):
(-[WKPreferences _setShouldAllowDesignSystemUIFonts:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
Source/WTF:
New York font erroneously gets synthetic bold
https://bugs.webkit.org/show_bug.cgi?id=199653
<rdar://problem/51692592>
Reviewed by Simon Fraser.
* wtf/Platform.h:
LayoutTests:
New York font erroneously gets synthetic bold
https://bugs.webkit.org/show_bug.cgi?id=199653
<rdar://problem/51692592>
Reviewed by Simon Fraser.
* TestExpectations:
* fast/text/design-system-ui-10-expected-mismatch.html: Added.
* fast/text/design-system-ui-10.html: Added.
* fast/text/design-system-ui-11-expected-mismatch.html: Added.
* fast/text/design-system-ui-11.html: Added.
* fast/text/design-system-ui-12-expected-mismatch.html: Added.
* fast/text/design-system-ui-12.html: Added.
* fast/text/design-system-ui-13-expected-mismatch.html: Added.
* fast/text/design-system-ui-13.html: Added.
* fast/text/design-system-ui-14-expected-mismatch.html: Added.
* fast/text/design-system-ui-14.html: Added.
* fast/text/design-system-ui-15-expected-mismatch.html: Added.
* fast/text/design-system-ui-15.html: Added.
* fast/text/design-system-ui-16-expected-mismatch.html: Added.
* fast/text/design-system-ui-16.html: Added.
* fast/text/design-system-ui-2-expected.html: Added.
* fast/text/design-system-ui-2.html: Added.
* fast/text/design-system-ui-3-expected-mismatch.html: Added.
* fast/text/design-system-ui-3.html: Added.
* fast/text/design-system-ui-4-expected-mismatch.html: Added.
* fast/text/design-system-ui-4.html: Added.
* fast/text/design-system-ui-5-expected-mismatch.html: Added.
* fast/text/design-system-ui-5.html: Added.
* fast/text/design-system-ui-6-expected.html: Added.
* fast/text/design-system-ui-6.html: Added.
* fast/text/design-system-ui-7-expected.html: Added.
* fast/text/design-system-ui-7.html: Added.
* fast/text/design-system-ui-8-expected-mismatch.html: Added.
* fast/text/design-system-ui-8.html: Added.
* fast/text/design-system-ui-9-expected-mismatch.html: Added.
* fast/text/design-system-ui-9.html: Added.
* fast/text/design-system-ui-expected.html: Added.
* fast/text/design-system-ui.html: Added.
* platform/mac/TestExpectations:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@247462 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index dcb4e59..df7c161 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,46 @@
+2019-07-11 Myles C. Maxfield <mmaxfield@apple.com>
+
+ New York font erroneously gets synthetic bold
+ https://bugs.webkit.org/show_bug.cgi?id=199653
+ <rdar://problem/51692592>
+
+ Reviewed by Simon Fraser.
+
+ * TestExpectations:
+ * fast/text/design-system-ui-10-expected-mismatch.html: Added.
+ * fast/text/design-system-ui-10.html: Added.
+ * fast/text/design-system-ui-11-expected-mismatch.html: Added.
+ * fast/text/design-system-ui-11.html: Added.
+ * fast/text/design-system-ui-12-expected-mismatch.html: Added.
+ * fast/text/design-system-ui-12.html: Added.
+ * fast/text/design-system-ui-13-expected-mismatch.html: Added.
+ * fast/text/design-system-ui-13.html: Added.
+ * fast/text/design-system-ui-14-expected-mismatch.html: Added.
+ * fast/text/design-system-ui-14.html: Added.
+ * fast/text/design-system-ui-15-expected-mismatch.html: Added.
+ * fast/text/design-system-ui-15.html: Added.
+ * fast/text/design-system-ui-16-expected-mismatch.html: Added.
+ * fast/text/design-system-ui-16.html: Added.
+ * fast/text/design-system-ui-2-expected.html: Added.
+ * fast/text/design-system-ui-2.html: Added.
+ * fast/text/design-system-ui-3-expected-mismatch.html: Added.
+ * fast/text/design-system-ui-3.html: Added.
+ * fast/text/design-system-ui-4-expected-mismatch.html: Added.
+ * fast/text/design-system-ui-4.html: Added.
+ * fast/text/design-system-ui-5-expected-mismatch.html: Added.
+ * fast/text/design-system-ui-5.html: Added.
+ * fast/text/design-system-ui-6-expected.html: Added.
+ * fast/text/design-system-ui-6.html: Added.
+ * fast/text/design-system-ui-7-expected.html: Added.
+ * fast/text/design-system-ui-7.html: Added.
+ * fast/text/design-system-ui-8-expected-mismatch.html: Added.
+ * fast/text/design-system-ui-8.html: Added.
+ * fast/text/design-system-ui-9-expected-mismatch.html: Added.
+ * fast/text/design-system-ui-9.html: Added.
+ * fast/text/design-system-ui-expected.html: Added.
+ * fast/text/design-system-ui.html: Added.
+ * platform/mac/TestExpectations:
+
2019-07-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Improve wasm wpt test results by fixing miscellaneous issues
diff --git a/Source/WTF/ChangeLog b/Source/WTF/ChangeLog
index b902892..53b603c 100644
--- a/Source/WTF/ChangeLog
+++ b/Source/WTF/ChangeLog
@@ -1,3 +1,13 @@
+2019-07-11 Myles C. Maxfield <mmaxfield@apple.com>
+
+ New York font erroneously gets synthetic bold
+ https://bugs.webkit.org/show_bug.cgi?id=199653
+ <rdar://problem/51692592>
+
+ Reviewed by Simon Fraser.
+
+ * wtf/Platform.h:
+
2019-07-15 Brady Eidson <beidson@apple.com>
Make WKURLSchemeTask thread safe.
diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
index 5237af2..6b82053 100644
--- a/Source/WTF/wtf/Platform.h
+++ b/Source/WTF/wtf/Platform.h
@@ -1598,6 +1598,10 @@
#define HAVE_SUBVIEWS_IVAR_SPI 1
#endif
+#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101300) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000) || (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MIN_REQUIRED >= 40000) || (PLATFORM(APPLETV) && __TV_OS_VERSION_MIN_REQUIRED >= 110000)
+#define USE_PLATFORM_SYSTEM_FALLBACK_LIST 1
+#endif
+
#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MIN_REQUIRED >= 60000) || (PLATFORM(APPLETV) && __TV_OS_VERSION_MIN_REQUIRED >= 130000)
#define HAVE_DESIGN_SYSTEM_UI_FONTS 1
#endif
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 39fe382..e2a5d1f 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,104 @@
+2019-07-11 Simon Fraser <simon.fraser@apple.com>
+
+ Fix builds where HAVE_DESIGN_SYSTEM_UI_FONTS is not defined.
+
+ * platform/graphics/cocoa/FontCacheCoreText.cpp:
+ (WebCore::fontWithFamilySpecialCase):
+
+2019-07-11 Justin Fan <justin_fan@apple.com>
+
+ Unreviewed build fix.
+
+ * Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp: Missing include.
+
+2019-07-11 Myles C. Maxfield <mmaxfield@apple.com>
+
+ New York font erroneously gets synthetic bold
+ https://bugs.webkit.org/show_bug.cgi?id=199653
+ <rdar://problem/51692592>
+
+ Reviewed by Simon Fraser.
+
+ This patch adds support for -apple-system-ui-serif, -apple-system-ui-monospaced,
+ and -apple-system-ui-rounded, behind an SPI that is off-by-default. We don't want
+ to expose these fonts to the web because we don't a standardization story for them
+ yet, but we do want some apps to be able to use them.
+
+ WebKit clients who want to use these fonts can set
+ -[WKPreferences _shouldAllowDesignSystemUIFonts] = YES.
+
+ The patch generalizes our existing system-ui infrastructure to handle these three
+ additional fonts. It also explicitly disables the unsupported dot-prefixed names
+ so they don't leak out into Web content.
+
+ Tests: fast/text/design-system-ui-10.html
+ fast/text/design-system-ui-11.html
+ fast/text/design-system-ui-12.html
+ fast/text/design-system-ui-13.html
+ fast/text/design-system-ui-14.html
+ fast/text/design-system-ui-15.html
+ fast/text/design-system-ui-16.html
+ fast/text/design-system-ui-2.html
+ fast/text/design-system-ui-3.html
+ fast/text/design-system-ui-4.html
+ fast/text/design-system-ui-5.html
+ fast/text/design-system-ui-6.html
+ fast/text/design-system-ui-7.html
+ fast/text/design-system-ui-8.html
+ fast/text/design-system-ui-9.html
+ fast/text/design-system-ui.html
+
+ * css/CSSFontFace.cpp:
+ (WebCore::CSSFontFace::shouldAllowDesignSystemUIFonts const):
+ * css/CSSFontFace.h:
+ * css/CSSFontFaceSource.cpp:
+ (WebCore::CSSFontFaceSource::load):
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::initializeFontStyle):
+ * page/Settings.yaml:
+ * platform/graphics/FontDescription.cpp:
+ (WebCore::m_shouldAllowDesignSystemUIFonts):
+ (WebCore::m_shouldAllowUserInstalledFonts): Deleted.
+ * platform/graphics/FontDescription.h:
+ (WebCore::FontDescription::shouldAllowDesignSystemUIFonts const):
+ (WebCore::FontDescription::setShouldAllowDesignSystemUIFonts):
+ (WebCore::FontDescription::operator== const):
+ * platform/graphics/cocoa/FontCacheCoreText.cpp:
+ (WebCore::platformFontLookupWithFamily):
+ (WebCore::fontWithFamily):
+ * platform/graphics/cocoa/FontCacheCoreText.h:
+ * platform/graphics/cocoa/FontDescriptionCocoa.cpp:
+ (WebCore::systemFontUse):
+ (WebCore::systemFontCascadeList):
+ (WebCore::FontCascadeDescription::effectiveFamilyCount const):
+ (WebCore::FontCascadeDescription::effectiveFamilyAt const):
+ (WebCore::isSystemFontString): Deleted.
+ (WebCore::isUIFontTextStyle): Deleted.
+ * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
+ (WebCore::FontPlatformData::ctFont const):
+ * platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
+ (WebCore::SystemFontDatabaseCoreText::createSystemUI):
+ (WebCore::SystemFontDatabaseCoreText::createDesignSystemUI):
+ (WebCore::SystemFontDatabaseCoreText::createTextStyle):
+ (WebCore::SystemFontDatabaseCoreText::cascadeList):
+ (WebCore::SystemFontDatabaseCoreText::applyWeightItalicsAndFallbackBehavior):
+ (WebCore::SystemFontDatabaseCoreText::systemFontParameters):
+ * platform/graphics/cocoa/SystemFontDatabaseCoreText.h:
+ * platform/graphics/ios/FontCacheIOS.mm:
+ (WebCore::platformFontWithFamilySpecialCase):
+ * platform/graphics/mac/FontCacheMac.mm:
+ (WebCore::platformFontWithFamilySpecialCase):
+ * style/StyleResolveForDocument.cpp:
+ (WebCore::Style::resolveForDocument):
+ * svg/graphics/SVGImage.cpp:
+ (WebCore::SVGImage::dataChanged):
+ * testing/InternalSettings.cpp:
+ (WebCore::InternalSettings::Backup::Backup):
+ (WebCore::InternalSettings::Backup::restoreTo):
+ (WebCore::InternalSettings::setShouldAllowDesignSystemUIFonts):
+ * testing/InternalSettings.h:
+ * testing/InternalSettings.idl:
+
2019-07-15 Chris Dumez <cdumez@apple.com>
Crash under DisplayRefreshMonitorManager::displayWasUpdated()
diff --git a/Source/WebCore/Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp b/Source/WebCore/Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp
index 6af88fe..ba497b3 100644
--- a/Source/WebCore/Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp
+++ b/Source/WebCore/Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp
@@ -30,6 +30,7 @@
#include "WHLSLCallExpression.h"
#include "WHLSLFunctionDefinition.h"
+#include "WHLSLProgram.h"
#include "WHLSLVisitor.h"
#include <wtf/HashSet.h>
diff --git a/Source/WebCore/page/ProcessWarming.cpp b/Source/WebCore/page/ProcessWarming.cpp
index a158990..26aeac2 100644
--- a/Source/WebCore/page/ProcessWarming.cpp
+++ b/Source/WebCore/page/ProcessWarming.cpp
@@ -72,7 +72,7 @@
// Prewarms JS VM.
commonVM();
-#if USE_PLATFORM_SYSTEM_FALLBACK_LIST
+#if USE(PLATFORM_SYSTEM_FALLBACK_LIST)
// Cache system UI font fallbacks. Almost every web process needs these.
// Initializing one size is sufficient to warm CoreText caches.
FontCascadeDescription systemFontDescription;
diff --git a/Source/WebCore/page/cocoa/MemoryReleaseCocoa.mm b/Source/WebCore/page/cocoa/MemoryReleaseCocoa.mm
index 2b8a3dc..d2121e7 100644
--- a/Source/WebCore/page/cocoa/MemoryReleaseCocoa.mm
+++ b/Source/WebCore/page/cocoa/MemoryReleaseCocoa.mm
@@ -44,7 +44,7 @@
void platformReleaseMemory(Critical)
{
-#if USE_PLATFORM_SYSTEM_FALLBACK_LIST
+#if USE(PLATFORM_SYSTEM_FALLBACK_LIST)
SystemFontDatabaseCoreText::singleton().clear();
#endif
clearFontFamilySpecificationCoreTextCache();
diff --git a/Source/WebCore/platform/graphics/FontCascadeDescription.cpp b/Source/WebCore/platform/graphics/FontCascadeDescription.cpp
index 34e5b8fc..8eb4471 100644
--- a/Source/WebCore/platform/graphics/FontCascadeDescription.cpp
+++ b/Source/WebCore/platform/graphics/FontCascadeDescription.cpp
@@ -62,7 +62,7 @@
{
}
-#if !USE_PLATFORM_SYSTEM_FALLBACK_LIST
+#if !USE(PLATFORM_SYSTEM_FALLBACK_LIST)
unsigned FontCascadeDescription::effectiveFamilyCount() const
{
diff --git a/Source/WebCore/platform/graphics/FontDescription.h b/Source/WebCore/platform/graphics/FontDescription.h
index 21de238..c8d4a85 100644
--- a/Source/WebCore/platform/graphics/FontDescription.h
+++ b/Source/WebCore/platform/graphics/FontDescription.h
@@ -31,8 +31,6 @@
#include <unicode/uscript.h>
#include <wtf/MathExtras.h>
-#define USE_PLATFORM_SYSTEM_FALLBACK_LIST ((PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101300))
-
namespace WebCore {
using namespace WebKitFontFamilyNames;
diff --git a/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp b/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp
index 80c1322..062929c 100644
--- a/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp
+++ b/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp
@@ -1237,7 +1237,7 @@
return;
}
-#if USE_PLATFORM_SYSTEM_FALLBACK_LIST
+#if USE(PLATFORM_SYSTEM_FALLBACK_LIST)
SystemFontDatabaseCoreText::singleton().clear();
#endif
clearFontFamilySpecificationCoreTextCache();
@@ -1393,7 +1393,7 @@
CFIndex coveredLength = 0;
RetainPtr<CTFontRef> result;
-#if !USE_PLATFORM_SYSTEM_FALLBACK_LIST && (PLATFORM(MAC) || (PLATFORM(IOS_FAMILY) && TARGET_OS_IOS))
+#if !USE(PLATFORM_SYSTEM_FALLBACK_LIST) && (PLATFORM(MAC) || (PLATFORM(IOS_FAMILY) && TARGET_OS_IOS))
result = adoptCF(CTFontCreatePhysicalFontForCharactersWithLanguage(font, characters, length, localeString.get(), &coveredLength));
#else
result = adoptCF(CTFontCreateForCharactersWithLanguage(font, characters, length, localeString.get(), &coveredLength));
diff --git a/Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp b/Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp
index 43e6a93..95577c2 100644
--- a/Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp
+++ b/Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp
@@ -32,7 +32,7 @@
namespace WebCore {
-#if USE_PLATFORM_SYSTEM_FALLBACK_LIST
+#if USE(PLATFORM_SYSTEM_FALLBACK_LIST)
#if PLATFORM(IOS_FAMILY)
@@ -121,7 +121,7 @@
FontFamilySpecification FontCascadeDescription::effectiveFamilyAt(unsigned index) const
{
// The special cases in this function need to match the behavior in FontCacheIOS.mm and FontCacheMac.mm. On systems
- // where USE_PLATFORM_SYSTEM_FALLBACK_LIST is set to true, this code is used for regular (element style) lookups,
+ // where USE(PLATFORM_SYSTEM_FALLBACK_LIST) is set to true, this code is used for regular (element style) lookups,
// and the code in FontDescriptionCocoa.cpp is used when src:local(special-cased-name) is specified inside an
// @font-face block.
// FIXME: Currently, an @font-face block corresponds to a single item in the font-family: fallback list, which
@@ -144,7 +144,7 @@
return nullAtom();
}
-#endif // USE_PLATFORM_SYSTEM_FALLBACK_LIST
+#endif // USE(PLATFORM_SYSTEM_FALLBACK_LIST)
static String computeSpecializedChineseLocale()
{
diff --git a/Source/WebCore/platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp b/Source/WebCore/platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp
index c96a2ed..1ce0c94 100644
--- a/Source/WebCore/platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp
+++ b/Source/WebCore/platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp
@@ -103,7 +103,7 @@
auto font = adoptCF(CTFontCreateWithFontDescriptor(m_fontDescriptor.get(), size, nullptr));
auto fontForSynthesisComputation = font;
-#if USE_PLATFORM_SYSTEM_FALLBACK_LIST
+#if USE(PLATFORM_SYSTEM_FALLBACK_LIST)
if (auto physicalFont = adoptCF(CTFontCopyPhysicalFont(font.get())))
fontForSynthesisComputation = physicalFont;
#endif
diff --git a/Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp b/Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp
index 3283280..ac0e34b 100644
--- a/Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp
+++ b/Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp
@@ -45,7 +45,7 @@
{
}
-#if USE_PLATFORM_SYSTEM_FALLBACK_LIST
+#if USE(PLATFORM_SYSTEM_FALLBACK_LIST)
RetainPtr<CTFontRef> SystemFontDatabaseCoreText::createSystemUIFont(const CascadeListParameters& parameters, CFStringRef locale)
{
@@ -238,7 +238,7 @@
return cascadeList(systemFontParameters(description, cssFamily, clientUse, allowUserInstalledFonts), clientUse);
}
-#endif // USE_PLATFORM_SYSTEM_FALLBACK_LIST
+#endif // USE(PLATFORM_SYSTEM_FALLBACK_LIST)
static String genericFamily(const String& locale, HashMap<String, String>& map, CFStringRef ctKey)
{
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog
index cfd15bc..0f0140c 100644
--- a/Source/WebKit/ChangeLog
+++ b/Source/WebKit/ChangeLog
@@ -1,3 +1,23 @@
+2019-07-11 Myles C. Maxfield <mmaxfield@apple.com>
+
+ New York font erroneously gets synthetic bold
+ https://bugs.webkit.org/show_bug.cgi?id=199653
+ <rdar://problem/51692592>
+
+ Reviewed by Simon Fraser.
+
+ Add the SPI to enable the new fonts.
+
+ * Shared/WebPreferences.yaml:
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetShouldAllowDesignSystemUIFonts):
+ (WKPreferencesGetShouldAllowDesignSystemUIFonts):
+ * UIProcess/API/C/WKPreferencesRefPrivate.h:
+ * UIProcess/API/Cocoa/WKPreferences.mm:
+ (-[WKPreferences _shouldAllowDesignSystemUIFonts]):
+ (-[WKPreferences _setShouldAllowDesignSystemUIFonts:]):
+ * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
+
2019-07-15 Brady Eidson <beidson@apple.com>
Make WKURLSchemeTask thread safe.