<?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>143583</bug_id>
          
          <creation_ts>2015-04-09 15:33:53 -0700</creation_ts>
          <short_desc>[iOS] Delete hardcoded font fallback tables</short_desc>
          <delta_ts>2015-04-16 10:33:34 -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>528+ (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>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1084077</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-04-09 15:33:53 -0700</bug_when>
    <thetext>[iOS] Delete hardcoded font fallback tables</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084078</commentid>
    <comment_count>1</comment_count>
      <attachid>250473</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-04-09 15:35:08 -0700</bug_when>
    <thetext>Created attachment 250473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084106</commentid>
    <comment_count>2</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2015-04-09 16:11:01 -0700</bug_when>
    <thetext>rdar://problem/20050226</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085371</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-04-14 18:17:45 -0700</bug_when>
    <thetext>Perf says we&apos;re good to go with this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085372</commentid>
    <comment_count>4</comment_count>
      <attachid>250770</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-04-14 18:21:36 -0700</bug_when>
    <thetext>Created attachment 250770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085556</commentid>
    <comment_count>5</comment_count>
      <attachid>250770</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-15 10:10:50 -0700</bug_when>
    <thetext>Comment on attachment 250770
Patch

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

What kind of testing did you do?

&gt; Source/WebCore/platform/graphics/ios/FontCacheIOS.mm:450
&gt; +    RetainPtr&lt;CTFontDescriptorRef&gt; fallbackFontDescriptor = adoptCF(CTFontCreatePhysicalFontDescriptorForCharactersWithLanguage(originalFontData-&gt;getCTFont(), characters, length, nullptr, nullptr));
&gt; +    if (RetainPtr&lt;CFStringRef&gt; foundFontName = adoptCF(static_cast&lt;CFStringRef&gt;(CTFontDescriptorCopyAttribute(fallbackFontDescriptor.get(), kCTFontNameAttribute))))
&gt; +        font = fontForFamily(description, foundFontName.get(), false);

I think these would read better with auto instead of writing out the types. Seems a little strange that we don’t pass a language in, since webpages do, in fact, sometimes have language information, but I guess this is very low-level code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085598</commentid>
    <comment_count>6</comment_count>
      <attachid>250770</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-04-15 11:12:59 -0700</bug_when>
    <thetext>Comment on attachment 250770
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/ios/FontCacheIOS.mm:450
&gt;&gt; +        font = fontForFamily(description, foundFontName.get(), false);
&gt; 
&gt; I think these would read better with auto instead of writing out the types. Seems a little strange that we don’t pass a language in, since webpages do, in fact, sometimes have language information, but I guess this is very low-level code.

I agree - it seems like something we should do. https://bugs.webkit.org/show_bug.cgi?id=143788</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085605</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-04-15 11:26:34 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 250770 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=250770&amp;action=review
&gt; 
&gt; What kind of testing did you do?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/ios/FontCacheIOS.mm:450
&gt; &gt; +    RetainPtr&lt;CTFontDescriptorRef&gt; fallbackFontDescriptor = adoptCF(CTFontCreatePhysicalFontDescriptorForCharactersWithLanguage(originalFontData-&gt;getCTFont(), characters, length, nullptr, nullptr));
&gt; &gt; +    if (RetainPtr&lt;CFStringRef&gt; foundFontName = adoptCF(static_cast&lt;CFStringRef&gt;(CTFontDescriptorCopyAttribute(fallbackFontDescriptor.get(), kCTFontNameAttribute))))
&gt; &gt; +        font = fontForFamily(description, foundFontName.get(), false);
&gt; 
&gt; I think these would read better with auto instead of writing out the types.
&gt; Seems a little strange that we don’t pass a language in, since webpages do,
&gt; in fact, sometimes have language information, but I guess this is very
&gt; low-level code.

I ran PLT with and without this patch, and it didn&apos;t report any difference.

As for correctness, I have yet to run layout tests. Note that chosen fallback fonts will change with this patch, which is both expected and desirable. I am going to look at all the test output to make sure nothing is going awry, and if not, update expected results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085956</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-04-16 10:21:54 -0700</bug_when>
    <thetext>These are the tests which need to be rebaselined. I will do so when I commit this patch today.

editing/selection/vertical-rl-rtl-extend-line-backward-br.html
editing/selection/vertical-rl-rtl-extend-line-backward-p.html
editing/selection/vertical-rl-rtl-extend-line-forward-br.html
editing/selection/vertical-rl-rtl-extend-line-forward-p.html
fast/text/international/danda-space.html
fast/text/international/thai-baht-space.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085968</commentid>
    <comment_count>9</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-04-16 10:33:34 -0700</bug_when>
    <thetext>Committed r182894: &lt;http://trac.webkit.org/changeset/182894&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250473</attachid>
            <date>2015-04-09 15:35:08 -0700</date>
            <delta_ts>2015-04-14 18:21:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143583-20150409153417.patch</filename>
            <type>text/plain</type>
            <size>5458</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjczNjM5ZGYyN2NkMjA4
ZmMyYTUxZWU2NGI4YzYxM2Q0NjE2ZDEzMC4uZWE1YjE3Y2MwMWEzMTYxYTM0MjA5NDFiMDRlODQ0
MTY4Zjc0N2M4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA0LTA5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRGVs
ZXRlIGhhcmRjb2RlZCBmb250IGZhbGxiYWNrIHRhYmxlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzNTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBoYXJkY29kaW5nIHdoaWNoIGZv
bnQgdG8gdXNlIGZvciBhIHBhcnRpY3VsYXIgY2hhcmFjdGVyLCB1c2UKKyAgICAgICAgQ1RGb250
Q3JlYXRlUGh5c2ljYWxGb250RGVzY3JpcHRvckZvckNoYXJhY3RlcnNXaXRoTGFuZ3VhZ2UoKS4K
KworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFu
Z2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRTeXN0ZW1Gb250RmFsbGJhY2tGb3JDaGFy
YWN0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JD
aGFyYWN0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaDoK
KwogMjAxNS0wNC0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgRXhwb3NlIHRoZSAiU2hhcmUiIG1lbnUgZm9yIGxpbmtzLCBpbWFnZXMsIGFuZCBtZWRpYS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2Fj
aGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hl
SU9TLm1tCmluZGV4IDJhNjYwYTJmZGZkNWU0Mzc4YjNmMWI1NWI0NjkwMGNlNTA4M2JmMmUuLmVl
Nzg3OWM1OGNjYTYzZjM5ODU1NGQyMmIzMjZkNzFmZmI3ZTBlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbQpAQCAtNTMs
NiArNTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcmVxdWlyZXNDdXN0b21GYWxsYmFja0ZvbnQo
Y29uc3QgVUludDMyIGNoYXJhY3RlcikKICAgICByZXR1cm4gY2hhcmFjdGVyID09IEFwcGxlTG9n
byB8fCBjaGFyYWN0ZXIgPT0gYmxhY2tDaXJjbGUgfHwgY2hhcmFjdGVyID09IG5hcnJvd05vbkJy
ZWFraW5nU3BhY2U7CiB9CiAKKyNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA8
IDkwMDAwCiBzdGF0aWMgQ0ZDaGFyYWN0ZXJTZXRSZWYgY29weUZvbnRDaGFyYWN0ZXJTZXQoQ0ZT
dHJpbmdSZWYgZm9udE5hbWUpCiB7CiAgICAgLy8gVGhlIHNpemUsIDEwLCBpcyBhcmJpdHJhcnku
CkBAIC03Miw2ICs3Myw3IEBAIHN0YXRpYyBDRkNoYXJhY3RlclNldFJlZiBwaG9uZUZhbGxiYWNr
Q2hhcmFjdGVyU2V0KCkKICAgICBzdGF0aWMgQ0ZDaGFyYWN0ZXJTZXRSZWYgY2hhcmFjdGVyU2V0
ID0gY29weUZvbnRDaGFyYWN0ZXJTZXQoQ0ZTVFIoIi5QaG9uZUZhbGxiYWNrIikpOwogICAgIHJl
dHVybiBjaGFyYWN0ZXJTZXQ7CiB9CisjZW5kaWYKIAogUGFzc1JlZlB0cjxGb250PiBGb250Q2Fj
aGU6OmdldFN5c3RlbUZvbnRGYWxsYmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgRm9udCogb3JpZ2luYWxGb250RGF0YSwgY29uc3QgVUNo
YXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKIHsKQEAgLTgxLDcgKzgzLDcgQEAgUGFz
c1JlZlB0cjxGb250PiBGb250Q2FjaGU6OmdldFN5c3RlbUZvbnRGYWxsYmFja0ZvckNoYXJhY3Rl
cnMoY29uc3QgRm9udERlc2NyaXAKICAgICBDRkluZGV4IGNvdmVyZWRMZW5ndGggPSAwOwogICAg
IFJldGFpblB0cjxDVEZvbnRSZWY+IHN1YnN0aXR1dGVGb250ID0gYWRvcHRDRihDVEZvbnRDcmVh
dGVQaHlzaWNhbEZvbnRGb3JDaGFyYWN0ZXJzV2l0aExhbmd1YWdlKGN0Rm9udCwgKGNvbnN0IFVU
RjE2Q2hhciopY2hhcmFjdGVycywgKENGSW5kZXgpbGVuZ3RoLCAwLCAmY292ZXJlZExlbmd0aCkp
OwogICAgIGlmICghc3Vic3RpdHV0ZUZvbnQpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIENURm9udFN5bWJvbGljVHJhaXRzIG9yaWdpbmFsVHJhaXRz
ID0gQ1RGb250R2V0U3ltYm9saWNUcmFpdHMoY3RGb250KTsKICAgICBDVEZvbnRTeW1ib2xpY1Ry
YWl0cyBhY3R1YWxUcmFpdHMgPSAwOwpAQCAtOTcsNiArOTksNyBAQCBQYXNzUmVmUHRyPEZvbnQ+
IEZvbnRDYWNoZTo6Z2V0U3lzdGVtRm9udEZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBGb250
RGVzY3JpcAogICAgIHJldHVybiBmb250Rm9yUGxhdGZvcm1EYXRhKGFsdGVybmF0ZUZvbnQpOwog
fQogCisjaWYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCA5MDAwMAogZW51bSBj
bGFzcyBMYW5ndWFnZVNwZWNpZmljRm9udCB7CiAgICAgTm9uZSwKICAgICBDaGluZXNlSmFwYW5l
c2UsCkBAIC0xOTMsNiArMTk2LDcgQEAgc3RhdGljIExhbmd1YWdlU3BlY2lmaWNGb250IGxhbmd1
YWdlU3BlY2lmaWNGYWxsYmFja0ZvbnQoVUNoYXIzMiBjKQogICAgICAgICByZXR1cm4gTGFuZ3Vh
Z2VTcGVjaWZpY0ZvbnQ6OkNoaW5lc2VKYXBhbmVzZTsKICAgICByZXR1cm4gTGFuZ3VhZ2VTcGVj
aWZpY0ZvbnQ6Ok5vbmU7CiB9CisjZW5kaWYKIAogUmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6c3lz
dGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRp
b24sIGNvbnN0IEZvbnQqIG9yaWdpbmFsRm9udERhdGEsIGJvb2wsIGNvbnN0IFVDaGFyKiBjaGFy
YWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiB7CkBAIC0yMTYsMTIgKzIyMCwxMyBAQCBSZWZQdHI8
Rm9udD4gRm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBkZXNjcgogICAgICAgICAgICAgcmV0dXJuIGdldFN5c3RlbUZvbnRGYWxsYmFj
a0ZvckNoYXJhY3RlcnMoZGVzY3JpcHRpb24sIG9yaWdpbmFsRm9udERhdGEsIGNoYXJhY3RlcnMs
IGxlbmd0aCk7CiAgICAgfQogCisgICAgUmVmUHRyPEZvbnQ+IGZvbnQ7CisKKyNpZiBfX0lQSE9O
RV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDkwMDAwCiAgICAgTGFuZ3VhZ2VTcGVjaWZpY0Zv
bnQgbGFuZ3VhZ2VTcGVjaWZpY0ZvbnQgPSBMYW5ndWFnZVNwZWNpZmljRm9udDo6Tm9uZTsKICAg
ICBpZiAobGVuZ3RoKQogICAgICAgICBsYW5ndWFnZVNwZWNpZmljRm9udCA9IGxhbmd1YWdlU3Bl
Y2lmaWNGYWxsYmFja0ZvbnQoYyk7CiAKLSAgICBSZWZQdHI8Rm9udD4gZm9udDsKLQogICAgIHN3
aXRjaCAobGFuZ3VhZ2VTcGVjaWZpY0ZvbnQpIHsKICAgICBjYXNlIExhbmd1YWdlU3BlY2lmaWNG
b250OjpDaGluZXNlSmFwYW5lc2U6IHsKICAgICAgICAgLy8gQnkgZGVmYXVsdCwgQ2hpbmVzZSBm
b250IGlzIHByZWZlcnJlZCwgZmFsbCBiYWNrIG9uIEphcGFuZXNlLgpAQCAtNDM5LDYgKzQ0NCwx
MSBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcgogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
fQorI2Vsc2UKKyAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZmFsbGJhY2tGb250
RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlUGh5c2ljYWxGb250RGVzY3JpcHRvckZv
ckNoYXJhY3RlcnNXaXRoTGFuZ3VhZ2Uob3JpZ2luYWxGb250RGF0YS0+Z2V0Q1RGb250KCksIGNo
YXJhY3RlcnMsIGxlbmd0aCwgbnVsbHB0ciwgbnVsbHB0cikpOworICAgIGlmIChSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IGZvdW5kRm9udE5hbWUgPSBhZG9wdENGKHN0YXRpY19jYXN0PENGU3RyaW5n
UmVmPihDVEZvbnREZXNjcmlwdG9yQ29weUF0dHJpYnV0ZShmYWxsYmFja0ZvbnREZXNjcmlwdG9y
LmdldCgpLCBrQ1RGb250TmFtZUF0dHJpYnV0ZSkpKSkKKyAgICAgICAgZm9udCA9IGZvbnRGb3JG
YW1pbHkoZGVzY3JpcHRpb24sIGZvdW5kRm9udE5hbWUuZ2V0KCksIGZhbHNlKTsKKyNlbmRpZgog
CiAgICAgaWYgKGZvbnQpCiAgICAgICAgIHJldHVybiBmb250LnJlbGVhc2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKaW5kZXggYTc2YzBl
ZWRkNjkwODg1YzhmMTk1MzlmNGQ2ZDMzYTNmNzZlMjY4Zi4uYzEwY2FjNjJkYzE1ZjdkNzE3MTli
OGY3ZTdjNTVjZjE5NjRjMjkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Bp
L2NvY29hL0NvcmVUZXh0U1BJLmgKQEAgLTExMCw2ICsxMTAsOSBAQCBleHRlcm4gY29uc3QgQ0ZT
dHJpbmdSZWYga0NUVUlGb250VGV4dFN0eWxlVGl0bGUyOwogZXh0ZXJuIGNvbnN0IENGU3RyaW5n
UmVmIGtDVFVJRm9udFRleHRTdHlsZVRpdGxlMzsKICNlbmRpZgogCisjaWYgX19JUEhPTkVfT1Nf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gOTAwMDAKK0NURm9udERlc2NyaXB0b3JSZWYgQ1RGb250
Q3JlYXRlUGh5c2ljYWxGb250RGVzY3JpcHRvckZvckNoYXJhY3RlcnNXaXRoTGFuZ3VhZ2UoQ1RG
b250UmVmIGN1cnJlbnRGb250LCBjb25zdCBVVEYxNkNoYXIqIGNoYXJhY3RlcnMsIENGSW5kZXgg
bGVuZ3RoLCBDRlN0cmluZ1JlZiBsYW5ndWFnZSwgQ0ZJbmRleCogY292ZXJlZExlbmd0aCk7Cisj
ZW5kaWYKIENURm9udFJlZiBDVEZvbnRDcmVhdGVQaHlzaWNhbEZvbnRGb3JDaGFyYWN0ZXJzV2l0
aExhbmd1YWdlKENURm9udFJlZiwgY29uc3QgVVRGMTZDaGFyKiBjaGFyYWN0ZXJzLCBDRkluZGV4
IGxlbmd0aCwgQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UsIENGSW5kZXgqIGNvdmVyZWRMZW5ndGgpOwog
Ym9vbCBDVEZvbnRJc0FwcGxlQ29sb3JFbW9qaShDVEZvbnRSZWYpOwogYm9vbCBDVEZvbnREZXNj
cmlwdG9ySXNTeXN0ZW1VSUZvbnQoQ1RGb250RGVzY3JpcHRvclJlZik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250770</attachid>
            <date>2015-04-14 18:21:36 -0700</date>
            <delta_ts>2015-04-15 10:10:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143583-20150414182040.patch</filename>
            <type>text/plain</type>
            <size>5404</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjlhNWJiNTUzMDgxMjUz
Y2FjMTUwZTFkNWJmY2VmMzhjMThkMjFiYy4uNDZiNWVjMzc2ODE1ZTFjZmQ0MjFjODU2YjgxNDY0
MDZkOTE2YjAzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA0LTE0ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRGVs
ZXRlIGhhcmRjb2RlZCBmb250IGZhbGxiYWNrIHRhYmxlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzNTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBoYXJkY29kaW5nIHdoaWNoIGZv
bnQgdG8gdXNlIGZvciBhIHBhcnRpY3VsYXIgY2hhcmFjdGVyLCB1c2UKKyAgICAgICAgQ1RGb250
Q3JlYXRlUGh5c2ljYWxGb250RGVzY3JpcHRvckZvckNoYXJhY3RlcnNXaXRoTGFuZ3VhZ2UoKS4K
KworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFu
Z2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRTeXN0ZW1Gb250RmFsbGJhY2tGb3JDaGFy
YWN0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JD
aGFyYWN0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaDoK
KwogMjAxNS0wNC0xNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEZyYW1lVmlldzo6bV9mcmFtZSBzaG91bGQgYmUgYSBSZWY8RnJhbWU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbQppbmRleCAy
YTY2MGEyZmRmZDVlNDM3OGIzZjFiNTViNDY5MDBjZTUwODNiZjJlLi5lZTc4NzljNThjY2E2M2Yz
OTg1NTRkMjJiMzI2ZDcxZmZiN2UwZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KQEAgLTUzLDYgKzUzLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHJlcXVpcmVzQ3VzdG9tRmFsbGJhY2tGb250KGNvbnN0IFVJbnQzMiBj
aGFyYWN0ZXIpCiAgICAgcmV0dXJuIGNoYXJhY3RlciA9PSBBcHBsZUxvZ28gfHwgY2hhcmFjdGVy
ID09IGJsYWNrQ2lyY2xlIHx8IGNoYXJhY3RlciA9PSBuYXJyb3dOb25CcmVha2luZ1NwYWNlOwog
fQogCisjaWYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCA5MDAwMAogc3RhdGlj
IENGQ2hhcmFjdGVyU2V0UmVmIGNvcHlGb250Q2hhcmFjdGVyU2V0KENGU3RyaW5nUmVmIGZvbnRO
YW1lKQogewogICAgIC8vIFRoZSBzaXplLCAxMCwgaXMgYXJiaXRyYXJ5LgpAQCAtNzIsNiArNzMs
NyBAQCBzdGF0aWMgQ0ZDaGFyYWN0ZXJTZXRSZWYgcGhvbmVGYWxsYmFja0NoYXJhY3RlclNldCgp
CiAgICAgc3RhdGljIENGQ2hhcmFjdGVyU2V0UmVmIGNoYXJhY3RlclNldCA9IGNvcHlGb250Q2hh
cmFjdGVyU2V0KENGU1RSKCIuUGhvbmVGYWxsYmFjayIpKTsKICAgICByZXR1cm4gY2hhcmFjdGVy
U2V0OwogfQorI2VuZGlmCiAKIFBhc3NSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpnZXRTeXN0ZW1G
b250RmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRp
b24sIGNvbnN0IEZvbnQqIG9yaWdpbmFsRm9udERhdGEsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJz
LCB1bnNpZ25lZCBsZW5ndGgpCiB7CkBAIC04MSw3ICs4Myw3IEBAIFBhc3NSZWZQdHI8Rm9udD4g
Rm9udENhY2hlOjpnZXRTeXN0ZW1Gb250RmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnRE
ZXNjcmlwCiAgICAgQ0ZJbmRleCBjb3ZlcmVkTGVuZ3RoID0gMDsKICAgICBSZXRhaW5QdHI8Q1RG
b250UmVmPiBzdWJzdGl0dXRlRm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlUGh5c2ljYWxGb250
Rm9yQ2hhcmFjdGVyc1dpdGhMYW5ndWFnZShjdEZvbnQsIChjb25zdCBVVEYxNkNoYXIqKWNoYXJh
Y3RlcnMsIChDRkluZGV4KWxlbmd0aCwgMCwgJmNvdmVyZWRMZW5ndGgpKTsKICAgICBpZiAoIXN1
YnN0aXR1dGVGb250KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyBvcmlnaW5hbFRyYWl0cyA9IENURm9udEdldFN5
bWJvbGljVHJhaXRzKGN0Rm9udCk7CiAgICAgQ1RGb250U3ltYm9saWNUcmFpdHMgYWN0dWFsVHJh
aXRzID0gMDsKQEAgLTk3LDYgKzk5LDcgQEAgUGFzc1JlZlB0cjxGb250PiBGb250Q2FjaGU6Omdl
dFN5c3RlbUZvbnRGYWxsYmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9udERlc2NyaXAKICAgICBy
ZXR1cm4gZm9udEZvclBsYXRmb3JtRGF0YShhbHRlcm5hdGVGb250KTsKIH0KIAorI2lmIF9fSVBI
T05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgOTAwMDAKIGVudW0gY2xhc3MgTGFuZ3VhZ2VT
cGVjaWZpY0ZvbnQgewogICAgIE5vbmUsCiAgICAgQ2hpbmVzZUphcGFuZXNlLApAQCAtMTkzLDYg
KzE5Niw3IEBAIHN0YXRpYyBMYW5ndWFnZVNwZWNpZmljRm9udCBsYW5ndWFnZVNwZWNpZmljRmFs
bGJhY2tGb250KFVDaGFyMzIgYykKICAgICAgICAgcmV0dXJuIExhbmd1YWdlU3BlY2lmaWNGb250
OjpDaGluZXNlSmFwYW5lc2U7CiAgICAgcmV0dXJuIExhbmd1YWdlU3BlY2lmaWNGb250OjpOb25l
OwogfQorI2VuZGlmCiAKIFJlZlB0cjxGb250PiBGb250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9y
Q2hhcmFjdGVycyhjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25zdCBGb250
KiBvcmlnaW5hbEZvbnREYXRhLCBib29sLCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWdu
ZWQgbGVuZ3RoKQogewpAQCAtMjE2LDEyICsyMjAsMTMgQEAgUmVmUHRyPEZvbnQ+IEZvbnRDYWNo
ZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVz
Y3IKICAgICAgICAgICAgIHJldHVybiBnZXRTeXN0ZW1Gb250RmFsbGJhY2tGb3JDaGFyYWN0ZXJz
KGRlc2NyaXB0aW9uLCBvcmlnaW5hbEZvbnREYXRhLCBjaGFyYWN0ZXJzLCBsZW5ndGgpOwogICAg
IH0KIAorICAgIFJlZlB0cjxGb250PiBmb250OworCisjaWYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPCA5MDAwMAogICAgIExhbmd1YWdlU3BlY2lmaWNGb250IGxhbmd1YWdlU3Bl
Y2lmaWNGb250ID0gTGFuZ3VhZ2VTcGVjaWZpY0ZvbnQ6Ok5vbmU7CiAgICAgaWYgKGxlbmd0aCkK
ICAgICAgICAgbGFuZ3VhZ2VTcGVjaWZpY0ZvbnQgPSBsYW5ndWFnZVNwZWNpZmljRmFsbGJhY2tG
b250KGMpOwogCi0gICAgUmVmUHRyPEZvbnQ+IGZvbnQ7Ci0KICAgICBzd2l0Y2ggKGxhbmd1YWdl
U3BlY2lmaWNGb250KSB7CiAgICAgY2FzZSBMYW5ndWFnZVNwZWNpZmljRm9udDo6Q2hpbmVzZUph
cGFuZXNlOiB7CiAgICAgICAgIC8vIEJ5IGRlZmF1bHQsIENoaW5lc2UgZm9udCBpcyBwcmVmZXJy
ZWQsIGZhbGwgYmFjayBvbiBKYXBhbmVzZS4KQEAgLTQzOSw2ICs0NDQsMTEgQEAgUmVmUHRyPEZv
bnQ+IEZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZGVzY3IKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIH0KKyNlbHNlCisgICAg
UmV0YWluUHRyPENURm9udERlc2NyaXB0b3JSZWY+IGZhbGxiYWNrRm9udERlc2NyaXB0b3IgPSBh
ZG9wdENGKENURm9udENyZWF0ZVBoeXNpY2FsRm9udERlc2NyaXB0b3JGb3JDaGFyYWN0ZXJzV2l0
aExhbmd1YWdlKG9yaWdpbmFsRm9udERhdGEtPmdldENURm9udCgpLCBjaGFyYWN0ZXJzLCBsZW5n
dGgsIG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICBpZiAoUmV0YWluUHRyPENGU3RyaW5nUmVmPiBm
b3VuZEZvbnROYW1lID0gYWRvcHRDRihzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ1RGb250RGVz
Y3JpcHRvckNvcHlBdHRyaWJ1dGUoZmFsbGJhY2tGb250RGVzY3JpcHRvci5nZXQoKSwga0NURm9u
dE5hbWVBdHRyaWJ1dGUpKSkpCisgICAgICAgIGZvbnQgPSBmb250Rm9yRmFtaWx5KGRlc2NyaXB0
aW9uLCBmb3VuZEZvbnROYW1lLmdldCgpLCBmYWxzZSk7CisjZW5kaWYKIAogICAgIGlmIChmb250
KQogICAgICAgICByZXR1cm4gZm9udC5yZWxlYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCmluZGV4IGE3NmMwZWVkZDY5MDg4NWM4ZjE5
NTM5ZjRkNmQzM2EzZjc2ZTI2OGYuLjU1MDNlMWYxN2UzYzMwNzA4YzJlNTA4MzQ2N2FmYWY1NWQz
NzhlYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3Jl
VGV4dFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4
dFNQSS5oCkBAIC0xMDgsNiArMTA4LDcgQEAgZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDVEZv
bnREZXNjcmlwdG9yVGV4dFN0eWxlRW1waGFzaXplZDsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1Jl
ZiBrQ1RVSUZvbnRUZXh0U3R5bGVUaXRsZTE7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NU
VUlGb250VGV4dFN0eWxlVGl0bGUyOwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDVFVJRm9u
dFRleHRTdHlsZVRpdGxlMzsKK0NURm9udERlc2NyaXB0b3JSZWYgQ1RGb250Q3JlYXRlUGh5c2lj
YWxGb250RGVzY3JpcHRvckZvckNoYXJhY3RlcnNXaXRoTGFuZ3VhZ2UoQ1RGb250UmVmIGN1cnJl
bnRGb250LCBjb25zdCBVVEYxNkNoYXIqIGNoYXJhY3RlcnMsIENGSW5kZXggbGVuZ3RoLCBDRlN0
cmluZ1JlZiBsYW5ndWFnZSwgQ0ZJbmRleCogY292ZXJlZExlbmd0aCk7CiAjZW5kaWYKIAogQ1RG
b250UmVmIENURm9udENyZWF0ZVBoeXNpY2FsRm9udEZvckNoYXJhY3RlcnNXaXRoTGFuZ3VhZ2Uo
Q1RGb250UmVmLCBjb25zdCBVVEYxNkNoYXIqIGNoYXJhY3RlcnMsIENGSW5kZXggbGVuZ3RoLCBD
RlN0cmluZ1JlZiBsYW5ndWFnZSwgQ0ZJbmRleCogY292ZXJlZExlbmd0aCk7Cg==
</data>
<flag name="review"
          id="275563"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>