<?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>35486</bug_id>
          
          <creation_ts>2010-02-27 14:04:09 -0800</creation_ts>
          <short_desc>canvas fillText with @font-face crashes</short_desc>
          <delta_ts>2010-06-28 10:00:54 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://philip.html5.org/tests/canvas/suite/tests/2d.text.draw.fontface.repeat.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Philip Taylor">excors</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>charles.wei</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jpetsovits</cc>
    
    <cc>levin</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>mitz</cc>
    
    <cc>robin.webkit</cc>
    
    <cc>staikos</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>194536</commentid>
    <comment_count>0</comment_count>
    <who name="Philip Taylor">excors</who>
    <bug_when>2010-02-27 14:04:09 -0800</bug_when>
    <thetext>The linked test case crashes randomly when loading (most of the time, but not always), in nightly WebKit on Windows and in Chromium on Linux.

It loads a font with @font-face, and doesn&apos;t use the font in the page itself, but tries drawing with it in onload onto the canvas (which won&apos;t work because it hasn&apos;t got around to downloading the font yet); and then it draws in the canvas again, after a time delay, at which point it usually crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238489</commentid>
    <comment_count>1</comment_count>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2010-06-15 11:56:23 -0700</bug_when>
    <thetext>The issue is that the SimpleFontData object is deleted by CSSFontFaceSource::fontLoaded() - called from CachedFont::checkNotify(), CachedFont::data(), and that one from Loader::Host::didFinishLoading().

When CanvasRenderingContext2D::drawTextInternal() accesses the font the second time, after loading has finished, the Font&apos;s cached SimpleFontData is a corrupt pointer and (mostly) crashes when trying to draw. Still trying to understand why the font has to be deleted...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242643</commentid>
    <comment_count>2</comment_count>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2010-06-24 13:40:02 -0700</bug_when>
    <thetext>Alright, so just to conclude my previous comment, or rephrase it in a better way...

When the font is first accessed, it hasn&apos;t been loaded yet; it does not yet exist in the font cache or anywhere. Instead, CSSFontFaceSource::getFontData() kicks off loading and, as an interim solution, creates a copy of a system font (likely the last-resort fallback font, but there might be a more suitable one). When the font is fully loaded, these interim objects will be deleted so that on next access, the actually desired font will be generated from the downloaded data when it&apos;s accessed by CSSFontFaceSource::getFontData() the next time.

By deleting the interim SimpleFontData objects though, CSSFontFaceSource::pruneTable() pulls the foundations from existing Font objects like the one in CanvasRenderingContext2D. Apparently the SimpleFontData objects are not expected to last that long in the RenderTree, which might well be the case, only the CanvasRenderingContext2D is not part of the RenderTree so I guess that doesn&apos;t apply here. Anyways, I can&apos;t see a straightforward fix right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242792</commentid>
    <comment_count>3</comment_count>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2010-06-24 20:09:45 -0700</bug_when>
    <thetext>This issue is a little tricky. Normally we get font objects from RenderStyle, and font objects get updated automatically after calling recalcStyle. But the font object in CanvasRenderingContext2D seems to be an exception, so it may become invalid at some point.

We can override recalcStyle() in HTMLCanvasElement, and update the font object from there if needed. The patch will look like this:

Index: WebCore/html/HTMLCanvasElement.h
===================================================================
+    virtual void recalcStyle(StyleChange);

Index: WebCore/html/HTMLCanvasElement.cpp
+void HTMLCanvasElement::recalcStyle(StyleChange change)
+{
+    HTMLElement::recalcStyle(change);
+
+    // Update font if needed.
+    if (change == Force &amp;&amp; m_context &amp;&amp; m_context-&gt;is2d()) {
+        CanvasRenderingContext2D* ctx = static_cast&lt;CanvasRenderingContext2D*&gt;(m_context.get());
+        ctx-&gt;setFont(ctx-&gt;font());
+    }
+}


Jakob, do you think this is a viable solution?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242884</commentid>
    <comment_count>4</comment_count>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2010-06-25 01:12:10 -0700</bug_when>
    <thetext>Awesome, I think that&apos;s the solution we&apos;re looking for, yes.
I can&apos;t currently look it up (posting only from my phone), but do other contexts have font properties too? In that case, we should update those as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242892</commentid>
    <comment_count>5</comment_count>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2010-06-25 01:54:51 -0700</bug_when>
    <thetext>Only CanvasRenderingContext2D has font properties.
I will upload a patch later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242952</commentid>
    <comment_count>6</comment_count>
      <attachid>59757</attachid>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2010-06-25 04:40:07 -0700</bug_when>
    <thetext>Created attachment 59757
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243016</commentid>
    <comment_count>7</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-06-25 08:11:19 -0700</bug_when>
    <thetext>Layout test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243026</commentid>
    <comment_count>8</comment_count>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2010-06-25 08:35:50 -0700</bug_when>
    <thetext>The Philip canvas tests are already in WebKit, this bug concerns canvas/philip/tests/2d.text.draw.fontface.repeat.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243465</commentid>
    <comment_count>9</comment_count>
      <attachid>59757</attachid>
    <who name="">mitz</who>
    <bug_when>2010-06-27 09:09:52 -0700</bug_when>
    <thetext>Comment on attachment 59757
Proposed patch

The patch looks correct to me, but rather than calling setFont(), could you just reset the m_realizedFont member of the state? Alternatively, could you just call a method that calls Font::update() rather than involving the CSS parser and style selector?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243543</commentid>
    <comment_count>10</comment_count>
      <attachid>59870</attachid>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2010-06-27 20:20:14 -0700</bug_when>
    <thetext>Created attachment 59870
Updated patch

Update the patch according to mitz&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243544</commentid>
    <comment_count>11</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-06-27 20:27:00 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; The Philip canvas tests are already in WebKit, this bug concerns canvas/philip/tests/2d.text.draw.fontface.repeat.html.

I am not sure what this comment means. Does the test fail without this patch and pass with it? If so, new results need to be included in the patch. If not, the question from comment #7 stands: can you make a regression test for this bug?

The code change itself looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243558</commentid>
    <comment_count>12</comment_count>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2010-06-27 22:00:31 -0700</bug_when>
    <thetext>Yes, the test crashes without the patch. Didn&apos;t test out the fix yet; if it does solve the problem as I believe it does, the crash is avoided afterwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243564</commentid>
    <comment_count>13</comment_count>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2010-06-27 22:35:08 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Yes, the test crashes without the patch. Didn&apos;t test out the fix yet; if it does solve the problem as I believe it does, the crash is avoided afterwards.

The patch fixes the crash, i have verified that. The test result need not be updated, as the patch does not affect test output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243741</commentid>
    <comment_count>14</comment_count>
      <attachid>59870</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-28 10:00:49 -0700</bug_when>
    <thetext>Comment on attachment 59870
Updated patch

Clearing flags on attachment: 59870

Committed r62016: &lt;http://trac.webkit.org/changeset/62016&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243742</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-28 10:00:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59757</attachid>
            <date>2010-06-25 04:40:07 -0700</date>
            <delta_ts>2010-06-27 20:20:14 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug35486.patch</filename>
            <type>text/plain</type>
            <size>1985</size>
            <attacher name="Robin Cao">robin.webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTg0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDYtMjUgIFJvYmluIENhbyAgPHJvYmluLmNhb0B0b3JjaG1v
YmlsZS5jb20uY24+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgY2FudmFzIGZpbGxUZXh0IHdpdGggQGZvbnQtZmFjZSBjcmFzaGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTQ4NgorCisgICAgICAgIFRo
ZSBmb250IG9iamVjdCBpbiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgbWF5IGJlY29tZSBpbnZh
bGlkIGF0IHNvbWUgcG9pbnQuCisgICAgICAgIE92ZXJyaWRpbmcgcmVjYWxjU3R5bGUoKSBpbiBI
VE1MQ2FudmFzRWxlbWVudCwgYW5kIHVwZGF0ZSB0aGUgZm9udCBvYmplY3QgZnJvbSB0aGVyZSBp
ZiBuZWVkZWQuCisKKyAgICAgICAgQSB0ZXN0IGFscmVhZHkgZXhpc3RzOiBjYW52YXMvcGhpbGlw
L3Rlc3RzLzJkLnRleHQuZHJhdy5mb250ZmFjZS5yZXBlYXQuaHRtbAorCisgICAgICAgICogaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoK
KwogMjAxMC0wNi0yNSAgS3dhbmcgWXVsIFNlbyAgPHNreXVsQGNvbXBhbnkxMDAubmV0PgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHAJKHJldmlzaW9uIDYxODQwKQorKysgV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc4LDQgKzI3OCwxNSBAQCBib29sIEhUTUxDYW52
YXNFbGVtZW50OjppczNEKCkgY29uc3QKIH0KICNlbmRpZgogCit2b2lkIEhUTUxDYW52YXNFbGVt
ZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCit7CisgICAgSFRNTEVsZW1lbnQ6
OnJlY2FsY1N0eWxlKGNoYW5nZSk7CisKKyAgICAvLyBVcGRhdGUgZm9udCBpZiBuZWVkZWQuCisg
ICAgaWYgKGNoYW5nZSA9PSBGb3JjZSAmJiBtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pczJkKCkp
IHsKKyAgICAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBjdHggPSBzdGF0aWNfY2FzdDxD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihtX2NvbnRleHQuZ2V0KCkpOworICAgICAgICBjdHgt
PnNldEZvbnQoY3R4LT5mb250KCkpOworICAgIH0KK30KKwogfQpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmgJKHJldmlzaW9uIDYxODQwKQorKysgV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKICAgICB2aXJ0
dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHls
ZSopOwogCisgICAgdmlydHVhbCB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlKTsKKwogICAg
IHZvaWQgcmVzZXQoKTsKIAogICAgIGJvb2wgbV9yZW5kZXJlcklzQ2FudmFzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59870</attachid>
            <date>2010-06-27 20:20:14 -0700</date>
            <delta_ts>2010-06-28 10:00:49 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>updated.patch</filename>
            <type>text/plain</type>
            <size>4465</size>
            <attacher name="Robin Cao">robin.webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTk3NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDYtMjcgIFJvYmluIENhbyAgPHJvYmluLmNhb0B0b3JjaG1v
YmlsZS5jb20uY24+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgY2FudmFzIGZpbGxUZXh0IHdpdGggQGZvbnQtZmFjZSBjcmFzaGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTQ4NgorCisgICAgICAgIFRo
ZSBmb250IG9iamVjdCBpbiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgbWF5IGJlY29tZSBpbnZh
bGlkIGF0IHNvbWUgcG9pbnQuCisgICAgICAgIE92ZXJyaWRlIHJlY2FsY1N0eWxlKCkgaW4gSFRN
TENhbnZhc0VsZW1lbnQsIGFuZCB1cGRhdGUgdGhlIGZvbnQgb2JqZWN0IGZyb20gdGhlcmUgaWYg
bmVlZGVkLgorCisgICAgICAgIEEgdGVzdCBhbHJlYWR5IGV4aXN0czogY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC50ZXh0LmRyYXcuZm9udGZhY2UucmVwZWF0Lmh0bWwKKworICAgICAgICAqIGh0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6dXBkYXRlRm9udCk6CisgICAg
ICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmg6CisKIDIwMTAtMDYt
MjUgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFNoaW5pY2hpcm8gSGFtYWppLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
CShyZXZpc2lvbiA2MTg0MCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAy
MDEwIFRvcmNoIE1vYmlsZSAoQmVpamluZykgQ28uIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjc4LDQgKzI3OSwxNSBAQCBib29s
IEhUTUxDYW52YXNFbGVtZW50OjppczNEKCkgY29uc3QKIH0KICNlbmRpZgogCit2b2lkIEhUTUxD
YW52YXNFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCit7CisgICAgSFRN
TEVsZW1lbnQ6OnJlY2FsY1N0eWxlKGNoYW5nZSk7CisKKyAgICAvLyBVcGRhdGUgZm9udCBpZiBu
ZWVkZWQuCisgICAgaWYgKGNoYW5nZSA9PSBGb3JjZSAmJiBtX2NvbnRleHQgJiYgbV9jb250ZXh0
LT5pczJkKCkpIHsKKyAgICAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBjdHggPSBzdGF0
aWNfY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihtX2NvbnRleHQuZ2V0KCkpOworICAg
ICAgICBjdHgtPnVwZGF0ZUZvbnQoKTsKKyAgICB9Cit9CisKIH0KSW5kZXg6IFdlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5oCShyZXZpc2lvbiA2MTg0MCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNiwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAq
IENvcHlyaWdodCAoQykgMjAxMCBUb3JjaCBNb2JpbGUgKEJlaWppbmcpIENvLiBMdGQuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwMSw2
ICsxMDIsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0
ZShBdHRyaWJ1dGUqKTsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIo
UmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogCisgICAgdmlydHVhbCB2b2lkIHJlY2FsY1N0
eWxlKFN0eWxlQ2hhbmdlKTsKKwogICAgIHZvaWQgcmVzZXQoKTsKIAogICAgIGJvb2wgbV9yZW5k
ZXJlcklzQ2FudmFzOwpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcAkocmV2aXNpb24gNjE4NDApCisrKyBXZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQsNiAr
NCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICog
Q29weXJpZ2h0IChDKSAyMDA4IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIFRvcmNoIE1vYmlsZSAoQmVpamluZykgQ28uIEx0ZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ4OSw3ICsx
NDkwLDE2IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGb250KGMKICAgICBz
dGF0ZSgpLm1fZm9udC51cGRhdGUoc3R5bGVTZWxlY3Rvci0+Zm9udFNlbGVjdG9yKCkpOwogICAg
IHN0YXRlKCkubV9yZWFsaXplZEZvbnQgPSB0cnVlOwogfQotICAgICAgICAKKwordm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnVwZGF0ZUZvbnQoKQoreworICAgIGlmICghc3RhdGUoKS5t
X3JlYWxpemVkRm9udCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgRm9udCYgZm9udCA9
IHN0YXRlKCkubV9mb250OworICAgIGZvbnQudXBkYXRlKGZvbnQuZm9udFNlbGVjdG9yKCkpOwor
fQorCiBTdHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjp0ZXh0QWxpZ24oKSBjb25zdAog
ewogICAgIHJldHVybiB0ZXh0QWxpZ25OYW1lKHN0YXRlKCkubV90ZXh0QWxpZ24pOwpJbmRleDog
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCShyZXZp
c2lvbiA2MTg0MCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgJKHdvcmtpbmcgY29weSkKQEAgLTE5Miw2ICsxOTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAgICAgU3RyaW5nIGZvbnQoKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRGb250
KGNvbnN0IFN0cmluZyYpOworICAgICAgICB2b2lkIHVwZGF0ZUZvbnQoKTsKICAgICAgICAgCiAg
ICAgICAgIFN0cmluZyB0ZXh0QWxpZ24oKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRUZXh0QWxp
Z24oY29uc3QgU3RyaW5nJik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>