<?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>234058</bug_id>
          
          <creation_ts>2021-12-08 18:39:35 -0800</creation_ts>
          <short_desc>Make FontCache::m_shouldMockBoldSystemFontForAccessibility static</short_desc>
          <delta_ts>2023-06-12 16:34:15 -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>Layout and Rendering</component>
          <version>WebKit Local 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>233488</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Cameron McCormack (:heycam)">heycam</reporter>
          <assigned_to name="Cameron McCormack (:heycam)">heycam</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1821930</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-12-08 18:39:35 -0800</bug_when>
    <thetext>Make FontCache::m_shouldMockBoldSystemFontForAccessibility static</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821931</commentid>
    <comment_count>1</comment_count>
      <attachid>446480</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-12-08 18:40:35 -0800</bug_when>
    <thetext>Created attachment 446480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821982</commentid>
    <comment_count>2</comment_count>
      <attachid>446480</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-12-08 20:48:21 -0800</bug_when>
    <thetext>Comment on attachment 446480
Patch

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

&gt; Source/WebCore/platform/graphics/FontCache.h:151
&gt; +    static bool shouldMockBoldSystemFontForAccessibility() { return s_shouldMockBoldSystemFontForAccessibility; }

don&apos;t you need to do a .load()?

&gt; Source/WebCore/platform/graphics/FontCache.h:199
&gt; +    static inline std::atomic&lt;bool&gt; s_shouldMockBoldSystemFontForAccessibility { false };

I think adding globals is kind of the wrong direction. There will already be multiple font caches; why can&apos;t a worker just read the (non-atomic) bool from its thread&apos;s font cache?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821985</commentid>
    <comment_count>3</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-12-08 20:54:26 -0800</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #2)
&gt; Comment on attachment 446480 [details]
&gt; &gt; Source/WebCore/platform/graphics/FontCache.h:151
&gt; &gt; +    static bool shouldMockBoldSystemFontForAccessibility() { return s_shouldMockBoldSystemFontForAccessibility; }
&gt; 
&gt; don&apos;t you need to do a .load()?

std::atomic&lt;T&gt; has an operator T.

&gt; &gt; Source/WebCore/platform/graphics/FontCache.h:199
&gt; &gt; +    static inline std::atomic&lt;bool&gt; s_shouldMockBoldSystemFontForAccessibility { false };
&gt; 
&gt; I think adding globals is kind of the wrong direction. There will already be
&gt; multiple font caches; why can&apos;t a worker just read the (non-atomic) bool
&gt; from its thread&apos;s font cache?

We can easily do that with the callOnAllFontCaches() function from bug 234060.  But it seems overkill for a field that when set doesn&apos;t need any other special processing to happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821986</commentid>
    <comment_count>4</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-12-08 20:55:54 -0800</bug_when>
    <thetext>(In reply to Cameron McCormack (:heycam) from comment #3)
&gt; We can easily do that with the callOnAllFontCaches() function from bug
&gt; 234060.  But it seems overkill for a field that when set doesn&apos;t need any
&gt; other special processing to happen.

But I&apos;m happy to change to use that if you prefer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822041</commentid>
    <comment_count>5</comment_count>
      <attachid>446480</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-12-09 02:32:26 -0800</bug_when>
    <thetext>Comment on attachment 446480
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/FontCache.h:199
&gt;&gt;&gt; +    static inline std::atomic&lt;bool&gt; s_shouldMockBoldSystemFontForAccessibility { false };
&gt;&gt; 
&gt;&gt; I think adding globals is kind of the wrong direction. There will already be multiple font caches; why can&apos;t a worker just read the (non-atomic) bool from its thread&apos;s font cache?
&gt; 
&gt; We can easily do that with the callOnAllFontCaches() function from bug 234060.  But it seems overkill for a field that when set doesn&apos;t need any other special processing to happen.

I think that would be better.

I&apos;m also not sure if callOnAllFontCaches() is needed. Do you think that&apos;s better than just setting the current thread&apos;s value?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822332</commentid>
    <comment_count>6</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-12-09 14:20:54 -0800</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #5)
&gt; I think that would be better.
&gt; 
&gt; I&apos;m also not sure if callOnAllFontCaches() is needed. Do you think that&apos;s
&gt; better than just setting the current thread&apos;s value?

So you&apos;re saying: existing tests only need this value to be set on the main thread, and so we shouldn&apos;t bother propagating it to workers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822361</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-12-09 14:54:52 -0800</bug_when>
    <thetext>(In reply to Cameron McCormack (:heycam) from comment #6)
&gt; (In reply to Myles C. Maxfield from comment #5)
&gt; &gt; I&apos;m also not sure if callOnAllFontCaches() is needed. Do you think that&apos;s
&gt; &gt; better than just setting the current thread&apos;s value?
&gt; 
&gt; So you&apos;re saying: existing tests only need this value to be set on the main
&gt; thread,

Yes.

&gt; and so we shouldn&apos;t bother propagating it to workers?

I wasn&apos;t going that far as to make a statement. I was just asking the question. If you think it should be set on all the threads because future tests may want that functionality, then sure, that makes sense. But I could also imagine a worker test that require the worker to call this function itself. I think it&apos;s up to you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822550</commentid>
    <comment_count>8</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-12-09 23:59:00 -0800</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #7)
&gt; I wasn&apos;t going that far as to make a statement. I was just asking the
&gt; question. If you think it should be set on all the threads because future
&gt; tests may want that functionality, then sure, that makes sense. But I could
&gt; also imagine a worker test that require the worker to call this function
&gt; itself. I think it&apos;s up to you.

OK that&apos;s a fair point.  Since this is set through Internals.settings, which feels like a global thing rather than a per-thread thing, I&apos;m going to propagate to workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822551</commentid>
    <comment_count>9</comment_count>
      <attachid>446674</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-12-10 00:12:09 -0800</bug_when>
    <thetext>Created attachment 446674
Patch propagating to all FontCaches</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822553</commentid>
    <comment_count>10</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-12-10 00:12:50 -0800</bug_when>
    <thetext>I really don&apos;t know that this is better than having a static variable that all FontCache instances can consult.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824638</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-15 18:40:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/86553539&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1961175</commentid>
    <comment_count>12</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2023-06-12 16:34:15 -0700</bug_when>
    <thetext>*** Bug 234057 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446480</attachid>
            <date>2021-12-08 18:40:35 -0800</date>
            <delta_ts>2021-12-08 18:40:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234058-20211209134034.patch</filename>
            <type>text/plain</type>
            <size>4328</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBlNDI2YTFjMGMzMWUw
N2NiZTVmZDkxZTRmMjBkMmQ0ZjNiMTc1MS4uNTMxYTRlY2EzNGFkM2FmZDg3M2YyYTRjYmU1ZDZk
NTFjYzU1OTdhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTEyLTAzICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBGb250Q2Fj
aGU6Om1fc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSBzdGF0aWMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDA1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvbnRDYWNoZTo6
bV9zaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5IGlzIHNldCBieQorICAg
ICAgICBJbnRlcm5hbFNldHRpbmdzIGJ1dCB3ZSBjdXJyZW50bHkgb25seSBzZXQgaXQgb24gdGhl
IG1haW4gdGhyZWFkJ3MKKyAgICAgICAgRm9udENhY2hlIG9iamVjdC4gV2UgZG9uJ3QgbmVlZCB0
byByZXNwb25kIHRvIGNoYW5nZXMgaW4gdGhpcyB2YXJpYWJsZQorICAgICAgICBpbiBhbnkgcGFy
dGljdWxhciB3YXksIHNvIHdlIGNhbiBtYWtlIHRoaXMgdmFyaWFibGUgYSBzdGF0aWMgYXRvbWlj
IHNvCisgICAgICAgIHRoYXQgd29ya2VyIHRocmVhZHMgY2FuIHJlYWQgdGhlIHNhbWUgc2V0dGlu
Zy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhY2hlOjpzaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmls
aXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c2V0U2hvdWxkTW9ja0JvbGRTeXN0
ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnNo
b3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHkgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVUbyk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbFNldHRpbmdzOjpzZXRTaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3Np
YmlsaXR5KToKKwogMjAyMS0xMi0wMyAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFVzZSB0aHJlYWQgc2FmZSBpbml0aWFsaXphdGlvbiBmb3Igc3RhdGlj
cyBpbiBGb250OjpnZXRDRlN0cmluZ0F0dHJpYnV0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5kZXggM2JjYTgzODQ2ZTMzNmE4MmYwMzIwYWZmZDMy
YzM4NzBmYWYxNWNhOC4uNWEwYmRhN2M4OTExMWNlZTI4NTVkNzRjZmEwYjRhYjUwNTYzZTc1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTE0
OCw4ICsxNDgsOCBAQCBwdWJsaWM6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3Jt
RGF0YT4gY3JlYXRlRm9udFBsYXRmb3JtRGF0YUZvclRlc3RpbmcoY29uc3QgRm9udERlc2NyaXB0
aW9uJiwgY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5KTsKICAgICAKLSAgICBib29sIHNob3VsZE1v
Y2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHkoKSBjb25zdCB7IHJldHVybiBtX3Nob3Vs
ZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHk7IH0KLSAgICB2b2lkIHNldFNob3Vs
ZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHkoYm9vbCBzaG91bGRNb2NrQm9sZFN5
c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5KSB7IG1fc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9y
QWNjZXNzaWJpbGl0eSA9IHNob3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHk7
IH0KKyAgICBzdGF0aWMgYm9vbCBzaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmls
aXR5KCkgeyByZXR1cm4gc19zaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5
OyB9CisgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNz
aWJpbGl0eShib29sIHNob3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHkpIHsg
c19zaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5ID0gc2hvdWxkTW9ja0Jv
bGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eTsgfQogCiAgICAgc3RydWN0IFByZXdhcm1JbmZv
cm1hdGlvbiB7CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHNlZW5GYW1pbGllczsKQEAgLTE5Niw3
ICsxOTYsNyBAQCBwcml2YXRlOgogCiAgICAgVGltZXIgbV9wdXJnZVRpbWVyOwogICAgIAotICAg
IGJvb2wgbV9zaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5IHsgZmFsc2Ug
fTsKKyAgICBzdGF0aWMgaW5saW5lIHN0ZDo6YXRvbWljPGJvb2w+IHNfc2hvdWxkTW9ja0JvbGRT
eXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSB7IGZhbHNlIH07CiAKICAgICBIYXNoU2V0PEZvbnRT
ZWxlY3Rvcio+IG1fY2xpZW50czsKICAgICBzdHJ1Y3QgRm9udERhdGFDYWNoZXM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCBlMjljNWNhZjQ3OTJk
M2Y4OTIyMzMyMmFiOGM2YThkMjAwNGRjMzcxLi45YjRjMDRlZDkwNjkyOTA4MmU1NDc1ODU2YmJj
YTZiYTlmMWZhNWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHAKQEAgLTEzMSw4ICsxMzEsNyBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6
cmVzdG9yZVRvKFNldHRpbmdzJiBzZXR0aW5ncykKICNlbmRpZgogCiAgICAgUmVuZGVyVGhlbWU6
OnNpbmdsZXRvbigpLnNldFNob3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHko
bV9zaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5KTsKLSAgICAvLyBGSVhN
RTogQ2FsbCBzZXRTaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5KCkgb24g
YWxsIHdvcmtlcnMuCi0gICAgRm9udENhY2hlOjpmb3JDdXJyZW50VGhyZWFkKCkuc2V0U2hvdWxk
TW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eShtX3Nob3VsZE1vY2tCb2xkU3lzdGVt
Rm9udEZvckFjY2Vzc2liaWxpdHkpOworICAgIEZvbnRDYWNoZTo6c2V0U2hvdWxkTW9ja0JvbGRT
eXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eShtX3Nob3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFj
Y2Vzc2liaWxpdHkpOwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBBdWRpb0NvbnRleHQ6
OnNldERlZmF1bHRTYW1wbGVSYXRlRm9yVGVzdGluZyhzdGQ6Om51bGxvcHQpOwpAQCAtNTcxLDgg
KzU3MCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldFNob3VsZE1v
Y2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHkoCiAgICAgaWYgKCFtX3BhZ2UpCiAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKICAgICBSZW5kZXJU
aGVtZTo6c2luZ2xldG9uKCkuc2V0U2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJp
bGl0eShyZXF1aXJlcyk7Ci0gICAgLy8gRklYTUU6IENhbGwgc2V0U2hvdWxkTW9ja0JvbGRTeXN0
ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSgpIG9uIGFsbCB3b3JrZXJzLgotICAgIEZvbnRDYWNoZTo6
Zm9yQ3VycmVudFRocmVhZCgpLnNldFNob3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2li
aWxpdHkocmVxdWlyZXMpOworICAgIEZvbnRDYWNoZTo6c2V0U2hvdWxkTW9ja0JvbGRTeXN0ZW1G
b250Rm9yQWNjZXNzaWJpbGl0eShyZXF1aXJlcyk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAo=
</data>
<flag name="review"
          id="471886"
          type_id="1"
          status="?"
          setter="heycam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446674</attachid>
            <date>2021-12-10 00:12:09 -0800</date>
            <delta_ts>2021-12-10 15:19:25 -0800</delta_ts>
            <desc>Patch propagating to all FontCaches</desc>
            <filename>bug-234058-20211210191208.patch</filename>
            <type>text/plain</type>
            <size>4514</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ3MWNiYTE3ZTI4NTNh
NGNiZjZkN2ZlNWMxZWZlMzJkNWU0MTViNS4uNDBjY2IxNjkzYzZjZmI1Y2NhYzA4Mjg0ZDEwOWU3
N2ZhNjNhNTkxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTAzICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUHJvcGFnYXRlIEZv
bnRDYWNoZTo6bV9zaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5IGNoYW5n
ZXMgdG8gYWxsIEZvbnRDYWNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNDA1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEZvbnRDYWNoZTo6bV9zaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nl
c3NpYmlsaXR5IGlzIHNldCBieQorICAgICAgICBJbnRlcm5hbFNldHRpbmdzIGJ1dCB3ZSBjdXJy
ZW50bHkgb25seSBzZXQgaXQgb24gdGhlIG1haW4gdGhyZWFkJ3MKKyAgICAgICAgRm9udENhY2hl
IG9iamVjdC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nl
c3NpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c2V0U2hvdWxkTW9ja0Jv
bGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2Fj
aGU6OnNob3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHkgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVUbyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRTaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JB
Y2Nlc3NpYmlsaXR5KToKKwogMjAyMS0xMi0wOCAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgRm9udENhY2hlOjppbnZhbGlkYXRlQWxsRm9udENh
Y2hlcyBjYWxsIGludmFsaWRhdGUgb24gYWxsIHdvcmtlciBGb250Q2FjaGVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCBkNDRkMmY5OWNm
NDM0MWQ1OTJkNzk0ZmEzYmFkMDhhMmQyYjE3YmFhLi5mZWQxYmY4YjdjMDFiOWQwMGRkZDlhYTVk
MGU5YWM4OGQ3OTE1ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYWNoZS5jcHAKQEAgLTQxNiw2ICs0MTYsMTMgQEAgdm9pZCBGb250Q2FjaGU6OmludmFs
aWRhdGVBbGxGb250Q2FjaGVzKCkKICAgICB9KTsKIH0KIAordm9pZCBGb250Q2FjaGU6OnNldFNo
b3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHlPbkFsbEZvbnRDYWNoZXMoYm9v
bCBzaG91bGRNb2NrKQoreworICAgIGNhbGxPbkFsbEZvbnRDYWNoZXMoW10oRm9udENhY2hlJiBm
b250Q2FjaGUpIHsKKyAgICAgICAgZm9udENhY2hlLm1fc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250
Rm9yQWNjZXNzaWJpbGl0eSA9IHNob3VsZE1vY2s7CisgICAgfSk7Cit9CisKIGJvb2wgRm9udENh
Y2hlOjp1c2VCYWNrc2xhc2hBc1llblNpZ25Gb3JGYW1pbHkoY29uc3QgQXRvbVN0cmluZyYgZmFt
aWx5KQogewogICAgIGlmIChmYW1pbHkuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAppbmRleCA2YTI5ZGNmODkxNzNmYjVmYjVlYjI3ZDEy
OTFhNDIzMzNlOGMxMDQxLi4yOGEwZGQyYzZiZDNhOTExMmMzYTAyMjQxZDY2MThkYjg0NzRjNGFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAt
MTQ5LDggKzE0OSw4IEBAIHB1YmxpYzoKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZv
cm1EYXRhPiBjcmVhdGVGb250UGxhdGZvcm1EYXRhRm9yVGVzdGluZyhjb25zdCBGb250RGVzY3Jp
cHRpb24mLCBjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHkpOwogICAgIAotICAgIGJvb2wgc2hvdWxk
TW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hv
dWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eTsgfQotICAgIHZvaWQgc2V0U2hv
dWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eShib29sIHNob3VsZE1vY2tCb2xk
U3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHkpIHsgbV9zaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRG
b3JBY2Nlc3NpYmlsaXR5ID0gc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0
eTsgfQorICAgIGJvb2wgc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSgp
IHsgcmV0dXJuIG1fc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eTsgfQor
ICAgIHZvaWQgc2V0U2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eU9uQWxs
Rm9udENhY2hlcyhib29sKTsKIAogICAgIHN0cnVjdCBQcmV3YXJtSW5mb3JtYXRpb24gewogICAg
ICAgICBWZWN0b3I8U3RyaW5nPiBzZWVuRmFtaWxpZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCBlMjljNWNhZjQ3OTJkM2Y4OTIyMzMyMmFiOGM2
YThkMjAwNGRjMzcxLi4yZDQzNDkwN2RjNzVmYTc1YmVhNWQ0YjExYmJlMTJmNWU0YzA5Y2IyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTEzMSw4
ICsxMzEsNyBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKFNldHRp
bmdzJiBzZXR0aW5ncykKICNlbmRpZgogCiAgICAgUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLnNl
dFNob3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHkobV9zaG91bGRNb2NrQm9s
ZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5KTsKLSAgICAvLyBGSVhNRTogQ2FsbCBzZXRTaG91
bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5KCkgb24gYWxsIHdvcmtlcnMuCi0g
ICAgRm9udENhY2hlOjpmb3JDdXJyZW50VGhyZWFkKCkuc2V0U2hvdWxkTW9ja0JvbGRTeXN0ZW1G
b250Rm9yQWNjZXNzaWJpbGl0eShtX3Nob3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2li
aWxpdHkpOworICAgIEZvbnRDYWNoZTo6c2V0U2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNj
ZXNzaWJpbGl0eU9uQWxsRm9udENhY2hlcyhtX3Nob3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFj
Y2Vzc2liaWxpdHkpOwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBBdWRpb0NvbnRleHQ6
OnNldERlZmF1bHRTYW1wbGVSYXRlRm9yVGVzdGluZyhzdGQ6Om51bGxvcHQpOwpAQCAtNTcxLDgg
KzU3MCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldFNob3VsZE1v
Y2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHkoCiAgICAgaWYgKCFtX3BhZ2UpCiAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKICAgICBSZW5kZXJU
aGVtZTo6c2luZ2xldG9uKCkuc2V0U2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJp
bGl0eShyZXF1aXJlcyk7Ci0gICAgLy8gRklYTUU6IENhbGwgc2V0U2hvdWxkTW9ja0JvbGRTeXN0
ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSgpIG9uIGFsbCB3b3JrZXJzLgotICAgIEZvbnRDYWNoZTo6
Zm9yQ3VycmVudFRocmVhZCgpLnNldFNob3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2li
aWxpdHkocmVxdWlyZXMpOworICAgIEZvbnRDYWNoZTo6c2V0U2hvdWxkTW9ja0JvbGRTeXN0ZW1G
b250Rm9yQWNjZXNzaWJpbGl0eU9uQWxsRm9udENhY2hlcyhyZXF1aXJlcyk7CiAgICAgcmV0dXJu
IHsgfTsKIH0KIAo=
</data>
<flag name="review"
          id="472137"
          type_id="1"
          status="+"
          setter="mmaxfield"
    />
          </attachment>
      

    </bug>

</bugzilla>