[Cocoa] Move ui-serif, ui-monospaced, and ui-rounded out from behind SPI
authormmaxfield@apple.com <mmaxfield@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 Oct 2019 04:05:19 +0000 (04:05 +0000)
committermmaxfield@apple.com <mmaxfield@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 Oct 2019 04:05:19 +0000 (04:05 +0000)
https://bugs.webkit.org/show_bug.cgi?id=203129

Reviewed by Tim Horton.

Source/WebCore:

https://github.com/w3c/csswg-drafts/issues/4107 resolved to name these new fonts
ui-serif, ui-monospaced, and ui-rounded. This patch renames them, and removes the SPI
to access these fonts.

Tests: fast/text/design-system-ui*.html

* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::shouldAllowDesignSystemUIFonts const): Deleted.
* css/CSSFontFace.h:
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::load):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::initializeFontStyle):
* page/Settings.yaml:
* platform/graphics/FontCache.h:
(WebCore::FontDescriptionKey::makeFlagsKey):
* platform/graphics/FontDescription.cpp:
(WebCore::m_shouldAllowUserInstalledFonts):
(WebCore::m_shouldAllowDesignSystemUIFonts): Deleted.
* platform/graphics/FontDescription.h:
(WebCore::FontDescription::shouldAllowUserInstalledFonts const):
(WebCore::FontDescription::setShouldAllowUserInstalledFonts):
(WebCore::FontDescription::operator== const):
(WebCore::FontDescription::shouldAllowDesignSystemUIFonts const): Deleted.
(WebCore::FontDescription::setShouldAllowDesignSystemUIFonts): Deleted.
* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::platformFontLookupWithFamily):
(WebCore::fontWithFamilySpecialCase):
* platform/graphics/cocoa/FontDescriptionCocoa.cpp:
(WebCore::matchSystemFontUse):
(WebCore::FontCascadeDescription::effectiveFamilyCount const):
(WebCore::FontCascadeDescription::effectiveFamilyAt const):
* platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
(WebCore::SystemFontDatabaseCoreText::systemFontParameters):
* style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):

Source/WebKit:

* Shared/WebPreferences.yaml:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _shouldAllowDesignSystemUIFonts]): Deleted.
(-[WKPreferences _setShouldAllowDesignSystemUIFonts:]): Deleted.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:

LayoutTests:

Update the tests to use the new names, and to not set the setting.

* fast/text/design-system-ui-10-expected-mismatch.html:
* 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-expected.html:
* fast/text/design-system-ui-2.html:
* fast/text/design-system-ui-3-expected-mismatch.html:
* fast/text/design-system-ui-3.html:
* fast/text/design-system-ui-4-expected-mismatch.html:
* fast/text/design-system-ui-4.html:
* fast/text/design-system-ui-5-expected-mismatch.html:
* fast/text/design-system-ui-5.html:
* fast/text/design-system-ui-6-expected.html:
* fast/text/design-system-ui-6.html:
* fast/text/design-system-ui-7-expected.html:
* fast/text/design-system-ui-7.html:
* fast/text/design-system-ui-8-expected-mismatch.html:
* fast/text/design-system-ui-8.html:
* fast/text/design-system-ui-9-expected-mismatch.html:
* fast/text/design-system-ui-9.html:
* fast/text/design-system-ui-expected.html:
* fast/text/design-system-ui.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251413 268f45cc-cd09-0410-ab3c-d52691b4dbfc

45 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/text/design-system-ui-10-expected-mismatch.html
LayoutTests/fast/text/design-system-ui-10.html
LayoutTests/fast/text/design-system-ui-11.html
LayoutTests/fast/text/design-system-ui-12.html
LayoutTests/fast/text/design-system-ui-13.html
LayoutTests/fast/text/design-system-ui-14.html
LayoutTests/fast/text/design-system-ui-15.html
LayoutTests/fast/text/design-system-ui-16.html
LayoutTests/fast/text/design-system-ui-2-expected.html
LayoutTests/fast/text/design-system-ui-2.html
LayoutTests/fast/text/design-system-ui-3-expected-mismatch.html
LayoutTests/fast/text/design-system-ui-3.html
LayoutTests/fast/text/design-system-ui-4-expected-mismatch.html
LayoutTests/fast/text/design-system-ui-4.html
LayoutTests/fast/text/design-system-ui-5-expected-mismatch.html
LayoutTests/fast/text/design-system-ui-5.html
LayoutTests/fast/text/design-system-ui-6-expected.html
LayoutTests/fast/text/design-system-ui-6.html
LayoutTests/fast/text/design-system-ui-7-expected.html
LayoutTests/fast/text/design-system-ui-7.html
LayoutTests/fast/text/design-system-ui-8-expected-mismatch.html
LayoutTests/fast/text/design-system-ui-8.html
LayoutTests/fast/text/design-system-ui-9-expected-mismatch.html
LayoutTests/fast/text/design-system-ui-9.html
LayoutTests/fast/text/design-system-ui-expected.html
LayoutTests/fast/text/design-system-ui.html
Source/WebCore/ChangeLog
Source/WebCore/css/CSSFontFace.cpp
Source/WebCore/css/CSSFontFace.h
Source/WebCore/css/CSSFontFaceSource.cpp
Source/WebCore/css/StyleResolver.cpp
Source/WebCore/page/Settings.yaml
Source/WebCore/platform/graphics/FontCache.h
Source/WebCore/platform/graphics/FontDescription.cpp
Source/WebCore/platform/graphics/FontDescription.h
Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp
Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp
Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp
Source/WebCore/style/StyleResolveForDocument.cpp
Source/WebCore/svg/graphics/SVGImage.cpp
Source/WebKit/ChangeLog
Source/WebKit/Shared/WebPreferences.yaml
Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm
Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h

index d91dd80..2ec1a7b 100644 (file)
@@ -1,3 +1,39 @@
+2019-10-21  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        [Cocoa] Move ui-serif, ui-monospaced, and ui-rounded out from behind SPI
+        https://bugs.webkit.org/show_bug.cgi?id=203129
+
+        Reviewed by Tim Horton.
+
+        Update the tests to use the new names, and to not set the setting.
+
+        * fast/text/design-system-ui-10-expected-mismatch.html:
+        * 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-expected.html:
+        * fast/text/design-system-ui-2.html:
+        * fast/text/design-system-ui-3-expected-mismatch.html:
+        * fast/text/design-system-ui-3.html:
+        * fast/text/design-system-ui-4-expected-mismatch.html:
+        * fast/text/design-system-ui-4.html:
+        * fast/text/design-system-ui-5-expected-mismatch.html:
+        * fast/text/design-system-ui-5.html:
+        * fast/text/design-system-ui-6-expected.html:
+        * fast/text/design-system-ui-6.html:
+        * fast/text/design-system-ui-7-expected.html:
+        * fast/text/design-system-ui-7.html:
+        * fast/text/design-system-ui-8-expected-mismatch.html:
+        * fast/text/design-system-ui-8.html:
+        * fast/text/design-system-ui-9-expected-mismatch.html:
+        * fast/text/design-system-ui-9.html:
+        * fast/text/design-system-ui-expected.html:
+        * fast/text/design-system-ui.html:
+
 2019-10-21  Simon Fraser  <simon.fraser@apple.com>
 
         [WK1] Layout Test legacy-animation-engine/compositing/backing/transform-transition-from-outside-view.html is a flaky failure
index ad59bae..9b72b40 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 <style>
 @font-face {
     font-family: "AppleSystemUIRounded";
-    src: local("-apple-system-ui-rounded");
+    src: local("ui-rounded");
 }
 </style>
 </head>
index 5f6a3eb..202e321 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 <style>
 @font-face {
     font-family: "AppleSystemUIRounded";
-    src: local("-apple-system-ui-rounded");
+    src: local("ui-rounded");
 }
 </style>
 </head>
index b403a7c..5e43908 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 </head>
 <body>
 <div>
-<div style="display: inline-block; font: 72px '-apple-system-ui-serif';">HeJllo</div>
+<div style="display: inline-block; font: 72px 'ui-serif';">HeJllo</div>
 </div>
 </body>
 </html>
index 2a39637..f51cf97 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 </head>
 <body>
 <div>
-<div style="display: inline-block; font: 72px '-apple-system-ui-monospaced';">HeJllo</div>
+<div style="display: inline-block; font: 72px 'ui-monospaced';">HeJllo</div>
 </div>
 </body>
 </html>
index c614391..bd23c84 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 </head>
 <body>
 <div>
-<div style="display: inline-block; font: 72px '-apple-system-ui-rounded';">HeJllo</div>
+<div style="display: inline-block; font: 72px 'ui-rounded';">HeJllo</div>
 </div>
 </body>
 </html>
index d5ca66b..62870da 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 <style>
 @font-face {
     font-family: "AppleSystemUISerif";
-    src: local("-apple-system-ui-serif");
+    src: local("ui-serif");
 }
 </style>
 </head>
index 2a6fffa..f4454bf 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 <style>
 @font-face {
     font-family: "AppleSystemUIMonospaced";
-    src: local("-apple-system-ui-monospaced");
+    src: local("ui-monospaced");
 }
 </style>
 </head>
index 771d38d..835d674 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 <style>
 @font-face {
     font-family: "AppleSystemUIRounded";
-    src: local("-apple-system-ui-rounded");
+    src: local("ui-rounded");
 }
 </style>
 </head>
index 5adc362..32e81d5 100644 (file)
@@ -1,17 +1,13 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 </head>
 <body>
-This test makes sure that the design system UI fonts don't work unless the shouldAllowDesignSystemUIFonts preference is set. The test passes if all the text below is bold.
+This test makes sure that the bold versions of the design system UI fonts work. The test passes if all the text below is bold.
 <div>
-<div style="display: inline-block; font: bold 72px '-apple-system-ui-serif';">HeJllo</div>
-<div style="display: inline-block; font: bold 72px '-apple-system-ui-monospaced';">HeJllo</div>
-<div style="display: inline-block; font: bold 72px '-apple-system-ui-rounded';">HeJllo</div>
+<div style="display: inline-block; font: bold 72px 'ui-serif';">HeJllo</div>
+<div style="display: inline-block; font: bold 72px 'ui-monospaced';">HeJllo</div>
+<div style="display: inline-block; font: bold 72px 'ui-rounded';">HeJllo</div>
 <div style="display: inline-block; font: bold 72px '.AppleSystemUIFontSerif';">HeJllo</div>
 <div style="display: inline-block; font: bold 72px '.SF NS Mono';">HeJllo</div>
 <div style="display: inline-block; font: bold 72px '.SF UI Mono';">HeJllo</div>
index 77f66cd..ac35eea 100644 (file)
@@ -1,17 +1,13 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 </head>
 <body>
-This test makes sure that the design system UI fonts don't work unless the shouldAllowDesignSystemUIFonts preference is set. The test passes if all the text below is bold.
+This test makes sure that the bold versions of the design system UI fonts work. The test passes if all the text below is bold.
 <div>
-<div style="display: inline-block; font: bold 72px '-apple-system-ui-serif'; font-synthesis: none;">HeJllo</div>
-<div style="display: inline-block; font: bold 72px '-apple-system-ui-monospaced'; font-synthesis: none;">HeJllo</div>
-<div style="display: inline-block; font: bold 72px '-apple-system-ui-rounded'; font-synthesis: none;">HeJllo</div>
+<div style="display: inline-block; font: bold 72px 'ui-serif'; font-synthesis: none;">HeJllo</div>
+<div style="display: inline-block; font: bold 72px 'ui-monospaced'; font-synthesis: none;">HeJllo</div>
+<div style="display: inline-block; font: bold 72px 'ui-rounded'; font-synthesis: none;">HeJllo</div>
 <div style="display: inline-block; font: bold 72px '.AppleSystemUIFontSerif'; font-synthesis: none;">HeJllo</div>
 <div style="display: inline-block; font: bold 72px '.SF NS Mono'; font-synthesis: none;">HeJllo</div>
 <div style="display: inline-block; font: bold 72px '.SF UI Mono'; font-synthesis: none;">HeJllo</div>
index 616138f..0b1c44a 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 </head>
 <body>
 <div>
-<div style="display: inline-block; font: 72px '-apple-system-ui-serif'; font-synthesis: none;">HeJllo</div>
+<div style="display: inline-block; font: 72px 'ui-serif'; font-synthesis: none;">HeJllo</div>
 </div>
 </body>
 </html>
index c5334a6..e9152e0 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 </head>
 <body>
 <div>
-<div style="display: inline-block; font: bold 72px '-apple-system-ui-serif'; font-synthesis: none;">HeJllo</div>
+<div style="display: inline-block; font: bold 72px 'ui-serif'; font-synthesis: none;">HeJllo</div>
 </div>
 </body>
 </html>
index fc2e48a..bf16368 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 </head>
 <body>
 <div>
-<div style="display: inline-block; font: 72px '-apple-system-ui-monospaced'; font-synthesis: none;">HeJllo</div>
+<div style="display: inline-block; font: 72px 'ui-monospaced'; font-synthesis: none;">HeJllo</div>
 </div>
 </body>
 </html>
index 837f2ba..50483d5 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 </head>
 <body>
 <div>
-<div style="display: inline-block; font: bold 72px '-apple-system-ui-monospaced'; font-synthesis: none;">HeJllo</div>
+<div style="display: inline-block; font: bold 72px 'ui-monospaced'; font-synthesis: none;">HeJllo</div>
 </div>
 </body>
 </html>
index 2186ce6..3417e69 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 </head>
 <body>
 <div>
-<div style="display: inline-block; font: 72px '-apple-system-ui-rounded'; font-synthesis: none;">HeJllo</div>
+<div style="display: inline-block; font: 72px 'ui-rounded'; font-synthesis: none;">HeJllo</div>
 </div>
 </body>
 </html>
index cfa6fae..7548c90 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 </head>
 <body>
 <div>
-<div style="display: inline-block; font: bold 72px '-apple-system-ui-rounded'; font-synthesis: none;">HeJllo</div>
+<div style="display: inline-block; font: bold 72px 'ui-rounded'; font-synthesis: none;">HeJllo</div>
 </div>
 </body>
 </html>
index b6cdaed..04ae5a7 100644 (file)
@@ -3,15 +3,12 @@
 <head>
 </head>
 <body>
-This test makes sure that the design system UI fonts don't work unless the shouldAllowDesignSystemUIFonts preference is set. The test passes if all the text below is rendered in Times.
+This test makes sure that the design system UI fonts don't work unless they are accessed from their correct names. The test passes if all the text below is rendered in Times.
 <div>
 <div style="display: inline-block; font-size: 72px;">HeJllo</div>
 <div style="display: inline-block; font-size: 72px;">HeJllo</div>
 <div style="display: inline-block; font-size: 72px;">HeJllo</div>
 <div style="display: inline-block; font-size: 72px;">HeJllo</div>
-<div style="display: inline-block; font-size: 72px;">HeJllo</div>
-<div style="display: inline-block; font-size: 72px;">HeJllo</div>
-<div style="display: inline-block; font-size: 72px;">HeJllo</div>
 </div>
 </body>
 </html>
index 12dabb6..9c32dca 100644 (file)
@@ -3,18 +3,6 @@
 <head>
 <style>
 @font-face {
-    font-family: "AppleSystemUISerif";
-    src: local("-apple-system-ui-serif");
-}
-@font-face {
-    font-family: "AppleSystemUIMonospaced";
-    src: local("-apple-system-ui-monospaced");
-}
-@font-face {
-    font-family: "AppleSystemUIRounded";
-    src: local("-apple-system-ui-rounded");
-}
-@font-face {
     font-family: "DotAppleSystemUIFontSerif";
     src: local(".AppleSystemUIFontSerif");
 }
 </style>
 </head>
 <body>
-This test makes sure that the design system UI fonts don't work unless the shouldAllowDesignSystemUIFonts preference is set. The test passes if all the text below is rendered in Times.
+This test makes sure that the design system UI fonts don't work unless they are accessed from their correct names. The test passes if all the text below is rendered in Times.
 <div>
-<div style="display: inline-block; font: 72px 'AppleSystemUISerif';">HeJllo</div>
-<div style="display: inline-block; font: 72px 'AppleSystemUIMonospaced';">HeJllo</div>
-<div style="display: inline-block; font: 72px 'AppleSystemUIRounded';">HeJllo</div>
 <div style="display: inline-block; font: 72px 'DotAppleSystemUIFontSerif';">HeJllo</div>
 <div style="display: inline-block; font: 72px 'DotSFNSMono';">HeJllo</div>
 <div style="display: inline-block; font: 72px 'DotSFUIMono';">HeJllo</div>
index 4753870..a6127cb 100644 (file)
@@ -1,22 +1,18 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 <style>
 @font-face {
     font-family: "AppleSystemUISerif";
-    src: local("-apple-system-ui-serif");
+    src: local("ui-serif");
 }
 @font-face {
     font-family: "AppleSystemUIMonospaced";
-    src: local("-apple-system-ui-monospaced");
+    src: local("ui-monospaced");
 }
 @font-face {
     font-family: "AppleSystemUIRounded";
-    src: local("-apple-system-ui-rounded");
+    src: local("ui-rounded");
 }
 @font-face {
     font-family: "DotAppleSystemUIFontSerif";
@@ -37,7 +33,7 @@ if (window.internals)
 </style>
 </head>
 <body>
-This test makes sure that the design system UI fonts don't work unless the shouldAllowDesignSystemUIFonts preference is set. The test passes if all the text below is bold.
+This test makes sure that the bold versions of the design system UI fonts work in @font-face. The test passes if all the text below is bold.
 <div>
 <div style="display: inline-block; font: bold 72px 'AppleSystemUISerif';">HeJllo</div>
 <div style="display: inline-block; font: bold 72px 'AppleSystemUIMonospaced';">HeJllo</div>
index 616d87d..2bf90d1 100644 (file)
@@ -1,22 +1,18 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 <style>
 @font-face {
     font-family: "AppleSystemUISerif";
-    src: local("-apple-system-ui-serif");
+    src: local("ui-serif");
 }
 @font-face {
     font-family: "AppleSystemUIMonospaced";
-    src: local("-apple-system-ui-monospaced");
+    src: local("ui-monospaced");
 }
 @font-face {
     font-family: "AppleSystemUIRounded";
-    src: local("-apple-system-ui-rounded");
+    src: local("ui-rounded");
 }
 @font-face {
     font-family: "DotAppleSystemUIFontSerif";
@@ -37,7 +33,7 @@ if (window.internals)
 </style>
 </head>
 <body>
-This test makes sure that the design system UI fonts don't work unless the shouldAllowDesignSystemUIFonts preference is set. The test passes if all the text below is bold.
+This test makes sure that the bold versions of the design system UI fonts work in @font-face. The test passes if all the text below is bold.
 <div>
 <div style="display: inline-block; font: bold 72px 'AppleSystemUISerif'; font-synthesis: none;">HeJllo</div>
 <div style="display: inline-block; font: bold 72px 'AppleSystemUIMonospaced'; font-synthesis: none;">HeJllo</div>
index 9e98049..437b426 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 <style>
 @font-face {
     font-family: "AppleSystemUISerif";
-    src: local("-apple-system-ui-serif");
+    src: local("ui-serif");
 }
 </style>
 </head>
index 49a1d1d..e235c04 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 <style>
 @font-face {
     font-family: "AppleSystemUISerif";
-    src: local("-apple-system-ui-serif");
+    src: local("ui-serif");
 }
 </style>
 </head>
index e0fbf78..17247b5 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 <style>
 @font-face {
     font-family: "AppleSystemUIMonospaced";
-    src: local("-apple-system-ui-monospaced");
+    src: local("ui-monospaced");
 }
 </style>
 </head>
index 469eeb4..d0a90d6 100644 (file)
@@ -1,14 +1,10 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-if (window.internals)
-    window.internals.settings.setShouldAllowDesignSystemUIFonts(true);
-</script>
 <style>
 @font-face {
     font-family: "AppleSystemUIMonospaced";
-    src: local("-apple-system-ui-monospaced");
+    src: local("ui-monospaced");
 }
 </style>
 </head>
index b6cdaed..04ae5a7 100644 (file)
@@ -3,15 +3,12 @@
 <head>
 </head>
 <body>
-This test makes sure that the design system UI fonts don't work unless the shouldAllowDesignSystemUIFonts preference is set. The test passes if all the text below is rendered in Times.
+This test makes sure that the design system UI fonts don't work unless they are accessed from their correct names. The test passes if all the text below is rendered in Times.
 <div>
 <div style="display: inline-block; font-size: 72px;">HeJllo</div>
 <div style="display: inline-block; font-size: 72px;">HeJllo</div>
 <div style="display: inline-block; font-size: 72px;">HeJllo</div>
 <div style="display: inline-block; font-size: 72px;">HeJllo</div>
-<div style="display: inline-block; font-size: 72px;">HeJllo</div>
-<div style="display: inline-block; font-size: 72px;">HeJllo</div>
-<div style="display: inline-block; font-size: 72px;">HeJllo</div>
 </div>
 </body>
 </html>
index 40470c0..cdec8bf 100644 (file)
@@ -3,11 +3,8 @@
 <head>
 </head>
 <body>
-This test makes sure that the design system UI fonts don't work unless the shouldAllowDesignSystemUIFonts preference is set. The test passes if all the text below is rendered in Times.
+This test makes sure that the design system UI fonts don't work unless they are accessed from their correct names. The test passes if all the text below is rendered in Times.
 <div>
-<div style="display: inline-block; font: 72px '-apple-system-ui-serif';">HeJllo</div>
-<div style="display: inline-block; font: 72px '-apple-system-ui-monospaced';">HeJllo</div>
-<div style="display: inline-block; font: 72px '-apple-system-ui-rounded';">HeJllo</div>
 <div style="display: inline-block; font: 72px '.AppleSystemUIFontSerif';">HeJllo</div>
 <div style="display: inline-block; font: 72px '.SF NS Mono';">HeJllo</div>
 <div style="display: inline-block; font: 72px '.SF UI Mono';">HeJllo</div>
index 5c33d49..da6e573 100644 (file)
@@ -1,3 +1,49 @@
+2019-10-21  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        [Cocoa] Move ui-serif, ui-monospaced, and ui-rounded out from behind SPI
+        https://bugs.webkit.org/show_bug.cgi?id=203129
+
+        Reviewed by Tim Horton.
+
+        https://github.com/w3c/csswg-drafts/issues/4107 resolved to name these new fonts
+        ui-serif, ui-monospaced, and ui-rounded. This patch renames them, and removes the SPI
+        to access these fonts.
+
+        Tests: fast/text/design-system-ui*.html
+
+        * css/CSSFontFace.cpp:
+        (WebCore::CSSFontFace::shouldAllowDesignSystemUIFonts const): Deleted.
+        * css/CSSFontFace.h:
+        * css/CSSFontFaceSource.cpp:
+        (WebCore::CSSFontFaceSource::load):
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::initializeFontStyle):
+        * page/Settings.yaml:
+        * platform/graphics/FontCache.h:
+        (WebCore::FontDescriptionKey::makeFlagsKey):
+        * platform/graphics/FontDescription.cpp:
+        (WebCore::m_shouldAllowUserInstalledFonts):
+        (WebCore::m_shouldAllowDesignSystemUIFonts): Deleted.
+        * platform/graphics/FontDescription.h:
+        (WebCore::FontDescription::shouldAllowUserInstalledFonts const):
+        (WebCore::FontDescription::setShouldAllowUserInstalledFonts):
+        (WebCore::FontDescription::operator== const):
+        (WebCore::FontDescription::shouldAllowDesignSystemUIFonts const): Deleted.
+        (WebCore::FontDescription::setShouldAllowDesignSystemUIFonts): Deleted.
+        * platform/graphics/cocoa/FontCacheCoreText.cpp:
+        (WebCore::platformFontLookupWithFamily):
+        (WebCore::fontWithFamilySpecialCase):
+        * platform/graphics/cocoa/FontDescriptionCocoa.cpp:
+        (WebCore::matchSystemFontUse):
+        (WebCore::FontCascadeDescription::effectiveFamilyCount const):
+        (WebCore::FontCascadeDescription::effectiveFamilyAt const):
+        * platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
+        (WebCore::SystemFontDatabaseCoreText::systemFontParameters):
+        * style/StyleResolveForDocument.cpp:
+        (WebCore::Style::resolveForDocument):
+        * svg/graphics/SVGImage.cpp:
+        (WebCore::SVGImage::dataChanged):
+
 2019-10-21  youenn fablet  <youenn@apple.com>
 
         Move service worker registration matching for navigation loads to network process
index 8d21b3a..f1bce07 100644 (file)
@@ -594,13 +594,6 @@ AllowUserInstalledFonts CSSFontFace::allowUserInstalledFonts() const
     return AllowUserInstalledFonts::Yes;
 }
 
-bool CSSFontFace::shouldAllowDesignSystemUIFonts() const
-{
-    if (m_fontSelector && m_fontSelector->document())
-        return m_fontSelector->document()->settings().shouldAllowDesignSystemUIFonts();
-    return false;
-}
-
 static Settings::FontLoadTimingOverride fontLoadTimingOverride(CSSFontSelector* fontSelector)
 {
     auto overrideValue = Settings::FontLoadTimingOverride::None;
index f522df4..340661c 100644 (file)
@@ -163,7 +163,6 @@ public:
     bool purgeable() const;
 
     AllowUserInstalledFonts allowUserInstalledFonts() const;
-    bool shouldAllowDesignSystemUIFonts() const;
 
     void updateStyleIfNeeded();
 
index 6747a23..8802606 100644 (file)
@@ -179,7 +179,6 @@ void CSSFontFaceSource::load(CSSFontSelector* fontSelector)
             fontDescription.setOneFamily(m_familyNameOrURI);
             fontDescription.setComputedSize(1);
             fontDescription.setShouldAllowUserInstalledFonts(m_face.allowUserInstalledFonts());
-            fontDescription.setShouldAllowDesignSystemUIFonts(m_face.shouldAllowDesignSystemUIFonts());
             success = FontCache::singleton().fontForFamily(fontDescription, m_familyNameOrURI, nullptr, nullptr, FontSelectionSpecifiedCapabilities(), true);
             if (RuntimeEnabledFeatures::sharedFeatures().webAPIStatisticsEnabled()) {
                 if (auto* document = fontSelector->document())
index e4f14db..c5f1bc3 100644 (file)
@@ -1951,7 +1951,6 @@ void StyleResolver::initializeFontStyle()
     fontDescription.setKeywordSizeFromIdentifier(CSSValueMedium);
     setFontSize(fontDescription, Style::fontSizeForKeyword(CSSValueMedium, false, document()));
     fontDescription.setShouldAllowUserInstalledFonts(settings().shouldAllowUserInstalledFonts() ? AllowUserInstalledFonts::Yes : AllowUserInstalledFonts::No);
-    fontDescription.setShouldAllowDesignSystemUIFonts(settings().shouldAllowDesignSystemUIFonts());
     setFontDescription(WTFMove(fontDescription));
 }
 
index dbb3d84..f04dfa6 100644 (file)
@@ -751,10 +751,6 @@ shouldAllowUserInstalledFonts:
   initial: true
   onChange: setNeedsRecalcStyleInAllFrames
 
-shouldAllowDesignSystemUIFonts:
-  initial: false
-  onChange: setNeedsRecalcStyleInAllFrames
-
 resizeObserverEnabled:
   initial: false
   conditional: RESIZE_OBSERVER
index 0a3a33f..17d3257 100644 (file)
@@ -128,8 +128,7 @@ struct FontDescriptionKey {
 private:
     static std::array<unsigned, 2> makeFlagsKey(const FontDescription& description)
     {
-        unsigned first = static_cast<unsigned>(description.script()) << 15
-            | static_cast<unsigned>(description.shouldAllowDesignSystemUIFonts()) << 14
+        unsigned first = static_cast<unsigned>(description.script()) << 14
             | static_cast<unsigned>(description.shouldAllowUserInstalledFonts()) << 13
             | static_cast<unsigned>(description.fontStyleAxis() == FontStyleAxis::slnt) << 12
             | static_cast<unsigned>(description.opticalSizing()) << 11
index 132162c..8a924f9 100644 (file)
@@ -62,7 +62,6 @@ FontDescription::FontDescription()
     , m_opticalSizing(static_cast<unsigned>(FontOpticalSizing::Enabled))
     , m_fontStyleAxis(FontCascadeDescription::initialFontStyleAxis() == FontStyleAxis::ital)
     , m_shouldAllowUserInstalledFonts(static_cast<unsigned>(AllowUserInstalledFonts::No))
-    , m_shouldAllowDesignSystemUIFonts(false)
 {
 }
 
index c8d4a85..102a158 100644 (file)
@@ -95,7 +95,6 @@ public:
     FontOpticalSizing opticalSizing() const { return static_cast<FontOpticalSizing>(m_opticalSizing); }
     FontStyleAxis fontStyleAxis() const { return m_fontStyleAxis ? FontStyleAxis::ital : FontStyleAxis::slnt; }
     AllowUserInstalledFonts shouldAllowUserInstalledFonts() const { return static_cast<AllowUserInstalledFonts>(m_shouldAllowUserInstalledFonts); }
-    bool shouldAllowDesignSystemUIFonts() const { return m_shouldAllowDesignSystemUIFonts; }
 
     void setComputedSize(float s) { m_computedSize = clampToFloat(s); }
     void setItalic(Optional<FontSelectionValue> italic) { m_fontSelectionRequest.slope = italic; }
@@ -131,7 +130,6 @@ public:
     void setOpticalSizing(FontOpticalSizing sizing) { m_opticalSizing = static_cast<unsigned>(sizing); }
     void setFontStyleAxis(FontStyleAxis axis) { m_fontStyleAxis = axis == FontStyleAxis::ital; }
     void setShouldAllowUserInstalledFonts(AllowUserInstalledFonts shouldAllowUserInstalledFonts) { m_shouldAllowUserInstalledFonts = static_cast<unsigned>(shouldAllowUserInstalledFonts); }
-    void setShouldAllowDesignSystemUIFonts(bool allow) { m_shouldAllowDesignSystemUIFonts = allow; }
 
     static AtomString platformResolveGenericFamily(UScriptCode, const AtomString& locale, const AtomString& familyName);
 
@@ -168,7 +166,6 @@ private:
     unsigned m_opticalSizing : 1; // FontOpticalSizing
     unsigned m_fontStyleAxis : 1; // Whether "font-style: italic" or "font-style: oblique 20deg" was specified
     unsigned m_shouldAllowUserInstalledFonts : 1; // AllowUserInstalledFonts: If this description is allowed to match a user-installed font
-    unsigned m_shouldAllowDesignSystemUIFonts : 1; // Whether -apple-system-ui-serif, -apple-system-ui-monospaced, and -apple-system-ui-rounded are supported
 };
 
 inline bool FontDescription::operator==(const FontDescription& other) const
@@ -203,8 +200,7 @@ inline bool FontDescription::operator==(const FontDescription& other) const
         && m_variantEastAsianRuby == other.m_variantEastAsianRuby
         && m_opticalSizing == other.m_opticalSizing
         && m_fontStyleAxis == other.m_fontStyleAxis
-        && m_shouldAllowUserInstalledFonts == other.m_shouldAllowUserInstalledFonts
-        && m_shouldAllowDesignSystemUIFonts == other.m_shouldAllowDesignSystemUIFonts;
+        && m_shouldAllowUserInstalledFonts == other.m_shouldAllowUserInstalledFonts;
 }
 
 }
index 55bb6ba..16cb518 100644 (file)
@@ -1206,8 +1206,7 @@ static FontLookup platformFontLookupWithFamily(const AtomString& family, FontSel
         || equalLettersIgnoringASCIICase(family, ".sf ns mono")
         || equalLettersIgnoringASCIICase(family, ".sf ui mono")
         || equalLettersIgnoringASCIICase(family, ".applesystemuifontrounded")) {
-        // If you want to use these fonts, set the shouldAllowDesignSystemUIFonts Setting and use
-        // -apple-system-ui-serif, -apple-system-ui-monospaced, and -apple-system-ui-rounded.
+        // If you want to use these fonts, use ui-serif, ui-monospaced, and ui-rounded.
         return { nullptr };
     }
 
@@ -1271,15 +1270,12 @@ static void invalidateFontCache()
 static RetainPtr<CTFontRef> fontWithFamilySpecialCase(const AtomString& family, const FontDescription& fontDescription, float size, AllowUserInstalledFonts allowUserInstalledFonts)
 {
 #if HAVE(DESIGN_SYSTEM_UI_FONTS)
-    if (!fontDescription.shouldAllowDesignSystemUIFonts())
-        return nullptr;
-
     Optional<SystemFontDatabaseCoreText::ClientUse> designSystemUI;
-    if (equalLettersIgnoringASCIICase(family, "-apple-system-ui-serif"))
+    if (equalLettersIgnoringASCIICase(family, "ui-serif"))
         designSystemUI = SystemFontDatabaseCoreText::ClientUse::ForSystemUISerif;
-    else if (equalLettersIgnoringASCIICase(family, "-apple-system-ui-monospaced"))
+    else if (equalLettersIgnoringASCIICase(family, "ui-monospaced"))
         designSystemUI = SystemFontDatabaseCoreText::ClientUse::ForSystemUIMonospaced;
-    else if (equalLettersIgnoringASCIICase(family, "-apple-system-ui-rounded"))
+    else if (equalLettersIgnoringASCIICase(family, "ui-rounded"))
         designSystemUI = SystemFontDatabaseCoreText::ClientUse::ForSystemUIRounded;
 
     if (designSystemUI) {
index 95577c2..c0c1294 100644 (file)
@@ -47,7 +47,7 @@ template<typename T, typename U, std::size_t size> inline std::array<T, size> co
 }
 #endif
 
-static inline Optional<SystemFontDatabaseCoreText::ClientUse> matchSystemFontUse(const AtomString& string, bool shouldAllowDesignSystemUIFonts)
+static inline Optional<SystemFontDatabaseCoreText::ClientUse> matchSystemFontUse(const AtomString& string)
 {
     if (equalLettersIgnoringASCIICase(string, "-webkit-system-font")
         || equalLettersIgnoringASCIICase(string, "-apple-system")
@@ -56,16 +56,12 @@ static inline Optional<SystemFontDatabaseCoreText::ClientUse> matchSystemFontUse
         return SystemFontDatabaseCoreText::ClientUse::ForSystemUI;
 
 #if HAVE(DESIGN_SYSTEM_UI_FONTS)
-    if (shouldAllowDesignSystemUIFonts) {
-        if (equalLettersIgnoringASCIICase(string, "-apple-system-ui-serif"))
-            return SystemFontDatabaseCoreText::ClientUse::ForSystemUISerif;
-        if (equalLettersIgnoringASCIICase(string, "-apple-system-ui-monospaced"))
-            return SystemFontDatabaseCoreText::ClientUse::ForSystemUIMonospaced;
-        if (equalLettersIgnoringASCIICase(string, "-apple-system-ui-rounded"))
-            return SystemFontDatabaseCoreText::ClientUse::ForSystemUIRounded;
-    }
-#else
-    UNUSED_PARAM(shouldAllowDesignSystemUIFonts);
+    if (equalLettersIgnoringASCIICase(string, "ui-serif"))
+        return SystemFontDatabaseCoreText::ClientUse::ForSystemUISerif;
+    if (equalLettersIgnoringASCIICase(string, "ui-monospaced"))
+        return SystemFontDatabaseCoreText::ClientUse::ForSystemUIMonospaced;
+    if (equalLettersIgnoringASCIICase(string, "ui-rounded"))
+        return SystemFontDatabaseCoreText::ClientUse::ForSystemUIRounded;
 #endif
 
 #if PLATFORM(IOS_FAMILY)
@@ -110,7 +106,7 @@ unsigned FontCascadeDescription::effectiveFamilyCount() const
     unsigned result = 0;
     for (unsigned i = 0; i < familyCount(); ++i) {
         const auto& cssFamily = familyAt(i);
-        if (auto use = matchSystemFontUse(cssFamily, shouldAllowDesignSystemUIFonts()))
+        if (auto use = matchSystemFontUse(cssFamily))
             result += systemFontCascadeList(*this, cssFamily, *use, shouldAllowUserInstalledFonts()).size();
         else
             ++result;
@@ -129,7 +125,7 @@ FontFamilySpecification FontCascadeDescription::effectiveFamilyAt(unsigned index
     // These two behaviors should be unified, which would hopefully allow us to delete this duplicate code.
     for (unsigned i = 0; i < familyCount(); ++i) {
         const auto& cssFamily = familyAt(i);
-        if (auto use = matchSystemFontUse(cssFamily, shouldAllowDesignSystemUIFonts())) {
+        if (auto use = matchSystemFontUse(cssFamily)) {
             auto cascadeList = systemFontCascadeList(*this, cssFamily, *use, shouldAllowUserInstalledFonts());
             if (index < cascadeList.size())
                 return FontFamilySpecification(cascadeList[index].get());
index 7b86ce0..3039561 100644 (file)
@@ -217,17 +217,17 @@ SystemFontDatabaseCoreText::CascadeListParameters SystemFontDatabaseCoreText::sy
         break;
     }
     case ClientUse::ForSystemUISerif: {
-        static NeverDestroyed<AtomString> systemUISerif = AtomString("system-ui-serif", AtomString::ConstructFromLiteral);
+        static NeverDestroyed<AtomString> systemUISerif = AtomString("ui-serif", AtomString::ConstructFromLiteral);
         result.fontName = systemUISerif.get();
         break;
     }
     case ClientUse::ForSystemUIMonospaced: {
-        static NeverDestroyed<AtomString> systemUIMonospaced = AtomString("system-ui-monospaced", AtomString::ConstructFromLiteral);
+        static NeverDestroyed<AtomString> systemUIMonospaced = AtomString("ui-monospaced", AtomString::ConstructFromLiteral);
         result.fontName = systemUIMonospaced.get();
         break;
     }
     case ClientUse::ForSystemUIRounded: {
-        static NeverDestroyed<AtomString> systemUIRounded = AtomString("system-ui-rounded", AtomString::ConstructFromLiteral);
+        static NeverDestroyed<AtomString> systemUIRounded = AtomString("ui-rounded", AtomString::ConstructFromLiteral);
         result.fontName = systemUIRounded.get();
         break;
     }
index dde8818..0e43d41 100644 (file)
@@ -110,7 +110,6 @@ RenderStyle resolveForDocument(const Document& document)
     fontDescription.setRenderingMode(settings.fontRenderingMode());
     fontDescription.setOneFamily(standardFamily);
     fontDescription.setShouldAllowUserInstalledFonts(settings.shouldAllowUserInstalledFonts() ? AllowUserInstalledFonts::Yes : AllowUserInstalledFonts::No);
-    fontDescription.setShouldAllowDesignSystemUIFonts(settings.shouldAllowDesignSystemUIFonts());
 
     fontDescription.setKeywordSizeFromIdentifier(CSSValueMedium);
     int size = fontSizeForKeyword(CSSValueMedium, false, document);
index 693cb34..1df4000 100644 (file)
@@ -483,7 +483,6 @@ EncodedDataStatus SVGImage::dataChanged(bool allDataReceived)
         m_page->settings().setPluginsEnabled(false);
         m_page->settings().setAcceleratedCompositingEnabled(false);
         m_page->settings().setShouldAllowUserInstalledFonts(false);
-        m_page->settings().setShouldAllowDesignSystemUIFonts(false);
 
         Frame& frame = m_page->mainFrame();
         frame.setView(FrameView::create(frame));
index ad2a45f..14a1f09 100644 (file)
@@ -1,3 +1,16 @@
+2019-10-21  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        [Cocoa] Move ui-serif, ui-monospaced, and ui-rounded out from behind SPI
+        https://bugs.webkit.org/show_bug.cgi?id=203129
+
+        Reviewed by Tim Horton.
+
+        * Shared/WebPreferences.yaml:
+        * UIProcess/API/Cocoa/WKPreferences.mm:
+        (-[WKPreferences _shouldAllowDesignSystemUIFonts]): Deleted.
+        (-[WKPreferences _setShouldAllowDesignSystemUIFonts:]): Deleted.
+        * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
+
 2019-10-21  youenn fablet  <youenn@apple.com>
 
         Move service worker registration matching for navigation loads to network process
index ef16776..3622549 100644 (file)
@@ -1131,10 +1131,6 @@ ShouldAllowUserInstalledFonts:
   type: bool
   defaultValue: true
 
-ShouldAllowDesignSystemUIFonts:
-  type: bool
-  defaultValue: false
-
 MediaCapabilitiesEnabled:
   type: bool
   defaultValue: true
index c1a7308..ea1073b 100644 (file)
@@ -713,16 +713,6 @@ static _WKStorageBlockingPolicy toAPI(WebCore::SecurityOrigin::StorageBlockingPo
     _preferences->setShouldAllowUserInstalledFonts(_shouldAllowUserInstalledFonts);
 }
 
-- (BOOL)_shouldAllowDesignSystemUIFonts
-{
-    return _preferences->shouldAllowDesignSystemUIFonts();
-}
-
-- (void)_setShouldAllowDesignSystemUIFonts:(BOOL)_shouldAllowDesignSystemUIFonts
-{
-    _preferences->setShouldAllowDesignSystemUIFonts(_shouldAllowDesignSystemUIFonts);
-}
-
 static _WKEditableLinkBehavior toAPI(WebCore::EditableLinkBehavior behavior)
 {
     switch (behavior) {
index 26fca7f..567fc35 100644 (file)
@@ -126,7 +126,6 @@ typedef NS_ENUM(NSInteger, _WKEditableLinkBehavior) {
 @property (nonatomic, setter=_setDOMPasteAllowed:) BOOL _domPasteAllowed WK_API_AVAILABLE(macos(10.13), ios(11.0));
 
 @property (nonatomic, setter=_setShouldAllowUserInstalledFonts:) BOOL _shouldAllowUserInstalledFonts WK_API_AVAILABLE(macos(10.13.4), ios(11.3));
-@property (nonatomic, setter=_setShouldAllowDesignSystemUIFonts:) BOOL _shouldAllowDesignSystemUIFonts WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
 
 @property (nonatomic, setter=_setEditableLinkBehavior:) _WKEditableLinkBehavior _editableLinkBehavior WK_API_AVAILABLE(macos(10.13.4), ios(11.3));