<?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>234451</bug_id>
          
          <creation_ts>2021-12-17 16:03:56 -0800</creation_ts>
          <short_desc>Use character names instead of hex codes in FontCascade.h</short_desc>
          <delta_ts>2021-12-21 01:53:40 -0800</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>RESOLVED</bug_status>
          <resolution>FIXED</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1825239</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-12-17 16:03:56 -0800</bug_when>
    <thetext>Use character names instead of hex codes in FontCascade.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825243</commentid>
    <comment_count>1</comment_count>
      <attachid>447489</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-12-17 16:07:32 -0800</bug_when>
    <thetext>Created attachment 447489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825502</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-19 17:13:45 -0800</bug_when>
    <thetext>Committed r287250 (245408@main): &lt;https://commits.webkit.org/245408@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447489.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825503</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-19 17:14:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/86703692&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825504</commentid>
    <comment_count>4</comment_count>
      <attachid>447489</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-19 17:25:05 -0800</bug_when>
    <thetext>Comment on attachment 447489
Patch

I agree that these are easier to understand when it&apos;s ==.

But when using &lt;= and &gt;= I am not so sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825661</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-12-20 11:31:36 -0800</bug_when>
    <thetext>I think it could go either way. I did them here for consistency, but I’m happy to put them back if people (or you) think it’s better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825677</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-20 12:10:39 -0800</bug_when>
    <thetext>May seem like overkill, but I would have made named functions for those sets of characters rather than using &lt;= &gt;= inline in that function. Might even put those named functions in CharacterNames.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825929</commentid>
    <comment_count>7</comment_count>
      <attachid>447489</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-21 01:53:40 -0800</bug_when>
    <thetext>Comment on attachment 447489
Patch

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

&gt; Source/WebCore/platform/graphics/FontCascade.h:264
&gt; +    static bool treatAsZeroWidthSpaceInComplexScript(UChar32 c) { return c &lt; space || (c &gt;= deleteCharacter &amp;&amp; c &lt; noBreakSpace) || c == softHyphen || c == zeroWidthSpace || (c &gt;= leftToRightMark &amp;&amp; c &lt;= rightToLeftMark) || (c &gt;= leftToRightEmbed &amp;&amp; c &lt;= rightToLeftOverride) || c == zeroWidthNoBreakSpace || c == objectReplacementCharacter; }

It seems like we should change these:

    c &lt; space
        -&gt; isC0ControlCharacter(c)
    (c &gt;= leftToRightMark &amp;&amp; c &lt;= rightToLeftMark) || (c &gt;= leftToRightEmbed &amp;&amp; c &lt;= rightToLeftOverride)
        -&gt; isDirectionalFormattingCharacter(c)

But to deserve the name isDirectionalFormattingCharacter, it would include 5 other characters &lt;https://www.unicode.org/reports/tr9/#Directional_Formatting_Characters&gt;. It seems clear that those 5 other characters also should also be treated as zero-width space. Unless maybe it’s not so important to have that be an exhaustive list. Unclear what the importance of including characters here is, and how we test it. Presumably it works around incorrectly constructed fonts where those characters aren’t zero-width?

If we were not using an isDirectionalFormattingCharacter function, then we&apos;d want to do this:

    (c &gt;= leftToRightMark &amp;&amp; c &lt;= rightToLeftMark)
        -&gt; c == leftToRightMark || c == rightToLeftMark

But more importantly, what character are covered in the range leftToRightEmbed through rightToLeftOverride is not self-explanatory.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447489</attachid>
            <date>2021-12-17 16:07:32 -0800</date>
            <delta_ts>2021-12-19 17:13:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234451-20211217160732.patch</filename>
            <type>text/plain</type>
            <size>2689</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E3ZmJhNTc5YWM1NDVj
MDk3ZWYwNWI4NzA3MDA2NThhYjg0MTZkMy4uYTdjYjY4YTNlY2Y5YWYwNTcxNTA1OWJmYTM3YTRl
ODI5MzNkODRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTEyLTE3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGNoYXJh
Y3RlciBuYW1lcyBpbnN0ZWFkIG9mIGhleCBjb2RlcyBpbiBGb250Q2FzY2FkZS5oCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTYXlpbmcgc29tZXRoaW5n
IGxpa2UgImMgPT0gemVyb1dpZHRoTm9uSm9pbmVyIiBpcyBtdWNoIG1vcmUgY2xlYXIgdGhhbiAi
YyA9PSAweDIwMGMiLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5v
IGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6dHJlYXRBc1NwYWNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRDYXNjYWRlOjp0cmVhdEFzWmVyb1dpZHRoU3BhY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGU6OnRyZWF0QXNaZXJvV2lkdGhTcGFjZUluQ29tcGxl
eFNjcmlwdCk6CisKIDIwMjEtMTItMTcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBXaWR0aEl0ZXJhdG9yOjphcHBseUNTU1Zpc2li
aWxpdHlSdWxlcygpIHRvIGJlIGEgbGl0dGxlIG1vcmUgZWxlZ2FudApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKaW5kZXggNmFmNTgxMmQ4YTcyMmI4
ZmRiZDM5MzgxYmQ2NDgzMjc2OWU0ZmEzYS4uYzM0NTY4MDE3ZmNkZTk4M2U2ZjVhYzcwZWUxNzgz
YTlmNzNlOTA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhc2NhZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q2FzY2FkZS5oCkBAIC0yNTksOSArMjU5LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBDb2RlUGF0
aCBzX2NvZGVQYXRoOwogCiAgICAgRm9udFNlbGVjdG9yKiBmb250U2VsZWN0b3IoKSBjb25zdDsK
LSAgICBzdGF0aWMgYm9vbCB0cmVhdEFzU3BhY2UoVUNoYXIzMiBjKSB7IHJldHVybiBjID09ICcg
JyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXG4nIHx8IGMgPT0gbm9CcmVha1NwYWNlOyB9Ci0gICAg
c3RhdGljIGJvb2wgdHJlYXRBc1plcm9XaWR0aFNwYWNlKFVDaGFyMzIgYykgeyByZXR1cm4gdHJl
YXRBc1plcm9XaWR0aFNwYWNlSW5Db21wbGV4U2NyaXB0KGMpIHx8IGMgPT0gMHgyMDBjIHx8IGMg
PT0gMHgyMDBkOyB9Ci0gICAgc3RhdGljIGJvb2wgdHJlYXRBc1plcm9XaWR0aFNwYWNlSW5Db21w
bGV4U2NyaXB0KFVDaGFyMzIgYykgeyByZXR1cm4gYyA8IDB4MjAgfHwgKGMgPj0gMHg3RiAmJiBj
IDwgMHhBMCkgfHwgYyA9PSBzb2Z0SHlwaGVuIHx8IGMgPT0gemVyb1dpZHRoU3BhY2UgfHwgKGMg
Pj0gMHgyMDBlICYmIGMgPD0gMHgyMDBmKSB8fCAoYyA+PSAweDIwMmEgJiYgYyA8PSAweDIwMmUp
IHx8IGMgPT0gemVyb1dpZHRoTm9CcmVha1NwYWNlIHx8IGMgPT0gb2JqZWN0UmVwbGFjZW1lbnRD
aGFyYWN0ZXI7IH0KKyAgICBzdGF0aWMgYm9vbCB0cmVhdEFzU3BhY2UoVUNoYXIzMiBjKSB7IHJl
dHVybiBjID09IHNwYWNlIHx8IGMgPT0gdGFiQ2hhcmFjdGVyIHx8IGMgPT0gbmV3bGluZUNoYXJh
Y3RlciB8fCBjID09IG5vQnJlYWtTcGFjZTsgfQorICAgIHN0YXRpYyBib29sIHRyZWF0QXNaZXJv
V2lkdGhTcGFjZShVQ2hhcjMyIGMpIHsgcmV0dXJuIHRyZWF0QXNaZXJvV2lkdGhTcGFjZUluQ29t
cGxleFNjcmlwdChjKSB8fCBjID09IHplcm9XaWR0aE5vbkpvaW5lciB8fCBjID09IHplcm9XaWR0
aEpvaW5lcjsgfQorICAgIHN0YXRpYyBib29sIHRyZWF0QXNaZXJvV2lkdGhTcGFjZUluQ29tcGxl
eFNjcmlwdChVQ2hhcjMyIGMpIHsgcmV0dXJuIGMgPCBzcGFjZSB8fCAoYyA+PSBkZWxldGVDaGFy
YWN0ZXIgJiYgYyA8IG5vQnJlYWtTcGFjZSkgfHwgYyA9PSBzb2Z0SHlwaGVuIHx8IGMgPT0gemVy
b1dpZHRoU3BhY2UgfHwgKGMgPj0gbGVmdFRvUmlnaHRNYXJrICYmIGMgPD0gcmlnaHRUb0xlZnRN
YXJrKSB8fCAoYyA+PSBsZWZ0VG9SaWdodEVtYmVkICYmIGMgPD0gcmlnaHRUb0xlZnRPdmVycmlk
ZSkgfHwgYyA9PSB6ZXJvV2lkdGhOb0JyZWFrU3BhY2UgfHwgYyA9PSBvYmplY3RSZXBsYWNlbWVu
dENoYXJhY3RlcjsgfQogICAgIHN0YXRpYyBib29sIGNhblJlY2VpdmVUZXh0RW1waGFzaXMoVUNo
YXIzMik7CiAKICAgICBzdGF0aWMgaW5saW5lIFVDaGFyIG5vcm1hbGl6ZVNwYWNlcyhVQ2hhciBj
aGFyYWN0ZXIpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>