<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>225567</bug_id>
          
          <creation_ts>2021-05-08 17:29:42 -0700</creation_ts>
          <short_desc>[Cocoa] Disable Core Text&apos;s font cascade explicitly instead of setting the cascade to just point to LastResort</short_desc>
          <delta_ts>2021-07-22 11:03:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>215691</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1758233</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-05-08 17:29:42 -0700</bug_when>
    <thetext>[Cocoa] Disable Core Text&apos;s font cascade explicitly instead of setting the cascade to just point to LastResort</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758234</commentid>
    <comment_count>1</comment_count>
      <attachid>428101</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-05-08 17:31:27 -0700</bug_when>
    <thetext>Created attachment 428101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758272</commentid>
    <comment_count>2</comment_count>
      <attachid>428101</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-08 21:04:32 -0700</bug_when>
    <thetext>Comment on attachment 428101
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=428101&amp;action=review

&gt; Source/WebCore/platform/graphics/coretext/FontPlatformDataCoreText.cpp:100
&gt; +    static NeverDestroyed&lt;RetainPtr&lt;CTFontDescriptorRef&gt;&gt; descriptor;
&gt; +    if (descriptor.get())
&gt; +        return descriptor.get().get();

We don’t need to use this null checking style. It’s more elegant to just use &quot;initialized the first time this is called&quot; style.

    static NeverDestroyed&lt;RetainPtr&lt;CTFontDescriptorRef&gt;&gt; descriptor = [] {
        // body of the function, ending with ...
        return adoptCF(CTFontDescriptorCreateWithAttributes(dictionary.get()));
    };
    return descriptor.get().get();

&gt; Source/WebCore/platform/graphics/coretext/FontPlatformDataCoreText.cpp:103
&gt; +    CTFontFallbackOption fallbackOption = kCTFontFallbackOptionNone;
&gt; +    auto fallbackOptionNumber = adoptCF(CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt64Type, &amp;fallbackOption));

To make this obviously correct, since we are using kCFNumberSInt64Type, our local variable should be of type int64_t, not CTFontFallbackOption, even though that’s what we are storing there..

&gt; Source/WebCore/platform/graphics/coretext/FontPlatformDataCoreText.cpp:107
&gt; +    auto dictionary = adoptCF(CFDictionaryCreate(kCFAllocatorDefault, keys, values, WTF_ARRAY_LENGTH(keys), &amp;kCFTypeDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks));

Should use std::size(keys) instead of WTF_ARRAY_LENGTH(keys).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760507</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-15 17:30:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/78066207&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428101</attachid>
            <date>2021-05-08 17:31:27 -0700</date>
            <delta_ts>2021-05-08 19:19:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225567-20210508173126.patch</filename>
            <type>text/plain</type>
            <size>4032</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJhZDhjNjk3MGZmY2I3
MDg5ZjY3ZTY5ODVlMGJkMTA1MzBkOTI2OC4uMzcyYTkzY2RhYTU2OGYzODVmNmY5NDRkZDgxZmJi
NjA0MDJkMDVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTA4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBE
aXNhYmxlIENvcmUgVGV4dCdzIGZvbnQgY2FzY2FkZSBleHBsaWNpdGx5IGluc3RlYWQgb2Ygc2V0
dGluZyB0aGUgY2FzY2FkZSB0byBqdXN0IHBvaW50IHRvIExhc3RSZXNvcnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTU2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERpc2FibGluZyBDb3JlIFRleHQn
cyBmb250IGNhc2NhZGUgd2hvbGVzYWxlIGNhbiBsZXQgdGhlbSBza2lwIHRoZWlyIGVudGlyZSBm
b250IGNhc2NhZGluZyBpbmZyYXN0cnVjdHVyZS4KKyAgICAgICAgVGhlIFNQSSB0byBkbyB0aGlz
IGhhcyBleGlzdGVkIHNpbmNlIE1vamF2ZSwgc28gd2UgY2FuIGp1c3QgZW5hYmxlIGl0IGV2ZXJ5
d2hlcmUgbm93LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5vIGJl
aGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0Zv
bnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmb250RGVzY3Jp
cHRvckZvckRpc2FibGluZ0NvcmVUZXh0Q2FzY2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6OmN0Rm9udCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpjYXNjYWRl
VG9MYXN0UmVzb3J0QXR0cmlidXRlc0RpY3Rpb25hcnkpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Y2FzY2FkZVRvTGFzdFJlc29ydEFuZFZhcmlhdGlvbnNGb250RGVzY3JpcHRvcik6IERl
bGV0ZWQuCisKIDIwMjEtMDUtMDggIFJpY2t5IE1vbmRlbGxvICA8cm1vbmRlbGxvQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggYSB0eXBvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250UGxhdGZvcm1EYXRhQ29yZVRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNv
cmVUZXh0LmNwcAppbmRleCA2MTRjODAyZWRkNDhiNWNkOWZhNDdmYTNmOGZmZGI5ODMzNzM2NjA4
Li4yYjhjYWRlMmY5OTg4NDlmZjE1YjdjM2U0NDkxNzU1MjczNTgyYjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250UGxhdGZvcm1EYXRh
Q29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0
ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5jcHAKQEAgLTkzLDIyICs5MywyMCBAQCBpbmxp
bmUgaW50IG1hcEZvbnRXaWR0aFZhcmlhbnRUb0NURmVhdHVyZVNlbGVjdG9yKEZvbnRXaWR0aFZh
cmlhbnQgdmFyaWFudCkKICAgICByZXR1cm4ga1Byb3BvcnRpb25hbFRleHRTZWxlY3RvcjsKIH0K
IAotc3RhdGljIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGNhc2NhZGVUb0xhc3RSZXNvcnRB
dHRyaWJ1dGVzRGljdGlvbmFyeSgpCitzdGF0aWMgQ1RGb250RGVzY3JpcHRvclJlZiBmb250RGVz
Y3JpcHRvckZvckRpc2FibGluZ0NvcmVUZXh0Q2FzY2FkaW5nKCkKIHsKLSAgICBhdXRvIGxhc3RS
ZXNvcnQgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVXaXRoTmFtZUFuZFNpemUoQ0ZT
VFIoIkxhc3RSZXNvcnQiKSwgMCkpOwotCi0gICAgQ0ZUeXBlUmVmIGRlc2NyaXB0b3JzW10gPSB7
IGxhc3RSZXNvcnQuZ2V0KCkgfTsKLSAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gYXJyYXkgPSBh
ZG9wdENGKENGQXJyYXlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVzY3JpcHRvcnMsIFdU
Rl9BUlJBWV9MRU5HVEgoZGVzY3JpcHRvcnMpLCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKSk7Ci0K
LSAgICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250Q2FzY2FkZUxpc3RBdHRyaWJ1dGUgfTsK
LSAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGFycmF5LmdldCgpIH07Ci0gICAgcmV0dXJuIGFk
b3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtleXMsIHZhbHVl
cywgV1RGX0FSUkFZX0xFTkdUSChrZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tz
LCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwotfQotCi1zdGF0aWMgQ1RGb250
RGVzY3JpcHRvclJlZiBjYXNjYWRlVG9MYXN0UmVzb3J0QW5kVmFyaWF0aW9uc0ZvbnREZXNjcmlw
dG9yKCkKLXsKLSAgICBzdGF0aWMgQ1RGb250RGVzY3JpcHRvclJlZiBkZXNjcmlwdG9yID0gQ1RG
b250RGVzY3JpcHRvckNyZWF0ZVdpdGhBdHRyaWJ1dGVzKGNhc2NhZGVUb0xhc3RSZXNvcnRBdHRy
aWJ1dGVzRGljdGlvbmFyeSgpLmdldCgpKTsKLSAgICByZXR1cm4gZGVzY3JpcHRvcjsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPENURm9udERlc2NyaXB0b3JSZWY+PiBkZXNj
cmlwdG9yOworICAgIGlmIChkZXNjcmlwdG9yLmdldCgpKQorICAgICAgICByZXR1cm4gZGVzY3Jp
cHRvci5nZXQoKS5nZXQoKTsKKworICAgIENURm9udEZhbGxiYWNrT3B0aW9uIGZhbGxiYWNrT3B0
aW9uID0ga0NURm9udEZhbGxiYWNrT3B0aW9uTm9uZTsKKyAgICBhdXRvIGZhbGxiYWNrT3B0aW9u
TnVtYmVyID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZO
dW1iZXJTSW50NjRUeXBlLCAmZmFsbGJhY2tPcHRpb24pKTsKKworICAgIENGVHlwZVJlZiBrZXlz
W10gPSB7IGtDVEZvbnRGYWxsYmFja09wdGlvbkF0dHJpYnV0ZSB9OworICAgIENGVHlwZVJlZiB2
YWx1ZXNbXSA9IHsgZmFsbGJhY2tPcHRpb25OdW1iZXIuZ2V0KCkgfTsKKyAgICBhdXRvIGRpY3Rp
b25hcnkgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBr
ZXlzLCB2YWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtl
eUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKKyAgICBkZXNj
cmlwdG9yLmdldCgpID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlV2l0aEF0dHJpYnV0
ZXMoZGljdGlvbmFyeS5nZXQoKSkpOworICAgIHJldHVybiBkZXNjcmlwdG9yLmdldCgpLmdldCgp
OwogfQogCiBDVEZvbnRSZWYgRm9udFBsYXRmb3JtRGF0YTo6Y3RGb250KCkgY29uc3QKQEAgLTEx
Nyw3ICsxMTUsNyBAQCBDVEZvbnRSZWYgRm9udFBsYXRmb3JtRGF0YTo6Y3RGb250KCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIG1fY3RGb250LmdldCgpOwogCiAgICAgQVNTRVJUKG1fZm9udCk7Ci0g
ICAgbV9jdEZvbnQgPSBhZG9wdENGKENURm9udENyZWF0ZUNvcHlXaXRoQXR0cmlidXRlcyhtX2Zv
bnQuZ2V0KCksIG1fc2l6ZSwgbnVsbHB0ciwgY2FzY2FkZVRvTGFzdFJlc29ydEFuZFZhcmlhdGlv
bnNGb250RGVzY3JpcHRvcigpKSk7CisgICAgbV9jdEZvbnQgPSBhZG9wdENGKENURm9udENyZWF0
ZUNvcHlXaXRoQXR0cmlidXRlcyhtX2ZvbnQuZ2V0KCksIG1fc2l6ZSwgbnVsbHB0ciwgZm9udERl
c2NyaXB0b3JGb3JEaXNhYmxpbmdDb3JlVGV4dENhc2NhZGluZygpKSk7CiAKICAgICBpZiAobV93
aWR0aFZhcmlhbnQgIT0gRm9udFdpZHRoVmFyaWFudDo6UmVndWxhcldpZHRoKSB7CiAgICAgICAg
IGludCBmZWF0dXJlVHlwZVZhbHVlID0ga1RleHRTcGFjaW5nVHlwZTsK
</data>
<flag name="commit-queue"
          id="448931"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>