<?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>89888</bug_id>
          
          <creation_ts>2012-06-25 09:04:00 -0700</creation_ts>
          <short_desc>use scale() instead of getCTM/normalizeTransform/setCTM for svg text decorations</short_desc>
          <delta_ts>2012-06-28 12:49:36 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike Reed">reed</reporter>
          <assigned_to name="Mike Reed">reed</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>pdr</cc>
    
    <cc>reveman</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>656606</commentid>
    <comment_count>0</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-06-25 09:04:00 -0700</bug_when>
    <thetext>use scale() instead of getCTM/normalizeTransform/setCTM for svg text decorations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656610</commentid>
    <comment_count>1</comment_count>
      <attachid>149302</attachid>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-06-25 09:09:55 -0700</bug_when>
    <thetext>Created attachment 149302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656626</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-06-25 09:26:55 -0700</bug_when>
    <thetext>Why wouldn&apos;t all platforms want this path?  Why does Skia?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656630</commentid>
    <comment_count>3</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-06-25 09:34:24 -0700</bug_when>
    <thetext>Why:

Skia-specific:
The current code does not play well if we try to record/playback the drawing commands, since the getCTM() is done once, and may not be the same matrix that is present during subsequent playback.

General:
The old code introduces a fair amount of complexity and heuristics (e.g. why do we normalize only around identity, and not other integral scale factors or integral translates?)

If other platforms want to opt-in to this change, I presume they will either remove the check, or add their platform to the list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656632</commentid>
    <comment_count>4</comment_count>
      <attachid>149302</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-06-25 09:35:37 -0700</bug_when>
    <thetext>Comment on attachment 149302
Patch

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

&gt; Source/WebCore/rendering/svg/SVGInlineTextBox.cpp:652
&gt; +            context-&gt;save();

if we consider save/restore() lightweight, I&apos;d prefer the save/restore pair outside the conditional so that only one &quot;scalingFactor != 1&quot; check is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656635</commentid>
    <comment_count>5</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-06-25 09:37:12 -0700</bug_when>
    <thetext>I can make that change. My original CL attempted to keep the existing flow as much as possible.

I do think save/restore are very efficient in skia, so it should not be a perf issue there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656636</commentid>
    <comment_count>6</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-06-25 09:38:04 -0700</bug_when>
    <thetext>always calling save/restore might be another reason to make this Skia specific, unless the other platforms feel the same way about their relative perf cost...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656641</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-06-25 09:48:37 -0700</bug_when>
    <thetext>I don&apos;t know what the current view on the cost of GraphicsContext::save/restore is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656642</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-06-25 09:50:12 -0700</bug_when>
    <thetext>I&apos;d prefer if we just removed the &quot;old&quot; code and used scale instead, if that&apos;s perceived as the better way.  We can re-visit adding the &quot;old&quot; code back for other platforms if scale is too slow.  The perf bots will answer these questions (but I doubt it matters).

So my suggestion would be to just change the code instead of adding yet another if-def.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656682</commentid>
    <comment_count>9</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-06-25 10:24:47 -0700</bug_when>
    <thetext>I&apos;ll give it a try, and hope there are rebaselines on other platforms...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656690</commentid>
    <comment_count>10</comment_count>
      <attachid>149319</attachid>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-06-25 10:35:14 -0700</bug_when>
    <thetext>Created attachment 149319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656691</commentid>
    <comment_count>11</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-06-25 10:36:44 -0700</bug_when>
    <thetext>patch #2 removes #ifdefs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656751</commentid>
    <comment_count>12</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-06-25 11:35:48 -0700</bug_when>
    <thetext>PTAL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656805</commentid>
    <comment_count>13</comment_count>
      <attachid>149319</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-06-25 13:08:46 -0700</bug_when>
    <thetext>Comment on attachment 149319
Patch

Am I reading correctly that this patch basically undoes this change: http://trac.webkit.org/changeset/78704/trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp?  Do you anticipate that this will cause rendering differences between 64 and 32 bit machines (for skia or otherwise)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656808</commentid>
    <comment_count>14</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-06-25 13:19:42 -0700</bug_when>
    <thetext>I would think it would, though zimmermann might comment on that. This is why I thought my change should be per-platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656814</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-06-25 13:25:34 -0700</bug_when>
    <thetext>I see.  I can understand your desire for this to be per-platform then.  I&apos;d like to give Niko a day to comment.  He&apos;s working from Germany last I knew.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657188</commentid>
    <comment_count>16</comment_count>
      <attachid>149319</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-06-25 19:31:24 -0700</bug_when>
    <thetext>Comment on attachment 149319
Patch

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

In general I like to do this, instead of the &quot;normalizeTransform&quot; logic. I reviewed the original patch and thought that it might be worth at that time. But changed my mind. Even if we see rounding differences. I still think it is a good idea if Niko looks over the patch as well.

r- because of the issues listed below. I am fine if someone else reviews a new patch, since I won&apos;t be available for the next weeks.

&gt; Source/WebCore/ChangeLog:8
&gt; +
&gt; +        use scale() instead of getCTM/normalizeTransform/setCTM for svg text decorations.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=89888
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        No new tests. Current layouttests exercise this code path.

A detailed comment is missing what you are doing and why you are doing it.

&gt; Source/WebCore/rendering/svg/SVGInlineTextBox.cpp:618
&gt; +        context-&gt;save();

We have GraphicsContextStateSaver for save/restore. Can&apos;t this be used here? Also, why are you using save and restore here? I can remember that for some platforms it was quite an expensive operation. Can&apos;t you just unscale?

&gt; Source/WebCore/rendering/svg/SVGInlineTextBox.cpp:623
&gt; +        context-&gt;restore();

Some lines later there is a condition and another restore  is called. This seems dangerous, since no save was called before here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657534</commentid>
    <comment_count>17</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-06-26 05:37:41 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 149319 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149319&amp;action=review
&gt; 
&gt; In general I like to do this, instead of the &quot;normalizeTransform&quot; logic. I reviewed the original patch and thought that it might be worth at that time. But changed my mind. Even if we see rounding differences. I still think it is a good idea if Niko looks over the patch as well.
&gt; 
&gt; r- because of the issues listed below. I am fine if someone else reviews a new patch, since I won&apos;t be available for the next weeks.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +
&gt; &gt; +        use scale() instead of getCTM/normalizeTransform/setCTM for svg text decorations.
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=89888
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; &gt; +        No new tests. Current layouttests exercise this code path.
&gt; 
&gt; A detailed comment is missing what you are doing and why you are doing it.
&gt; 
&gt; &gt; Source/WebCore/rendering/svg/SVGInlineTextBox.cpp:618
&gt; &gt; +        context-&gt;save();
&gt; 
&gt; We have GraphicsContextStateSaver for save/restore. Can&apos;t this be used here? Also, why are you using save and restore here? I can remember that for some platforms it was quite an expensive operation. Can&apos;t you just unscale?

Too numerically unstable. That is why we have save/restore.

&gt; 
&gt; &gt; Source/WebCore/rendering/svg/SVGInlineTextBox.cpp:623
&gt; &gt; +        context-&gt;restore();
&gt; 
&gt; Some lines later there is a condition and another restore  is called. This seems dangerous, since no save was called before here.

This is from code that has always been here. The restore is balance a hidden save inside applyShadowToGraphicsContext().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657537</commentid>
    <comment_count>18</comment_count>
      <attachid>149516</attachid>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-06-26 05:41:57 -0700</bug_when>
    <thetext>Created attachment 149516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657539</commentid>
    <comment_count>19</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-06-26 05:43:35 -0700</bug_when>
    <thetext>Updated comment, and replied to Dirk&apos;s comments.

PTAL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657605</commentid>
    <comment_count>20</comment_count>
      <attachid>149516</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-06-26 07:50:20 -0700</bug_when>
    <thetext>Comment on attachment 149516
Patch

If there are no regressions, r=me. Reverting the mess is just right, it didn&apos;t fix anything after all, and was my rude attempt to get consistent results between 32bit/64bit mac machines, but as it effectively breaks things for Chromium, it should just go away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658605</commentid>
    <comment_count>21</comment_count>
      <attachid>149516</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-27 08:06:41 -0700</bug_when>
    <thetext>Comment on attachment 149516
Patch

Clearing flags on attachment: 149516

Committed r121343: &lt;http://trac.webkit.org/changeset/121343&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658606</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-27 08:06:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659713</commentid>
    <comment_count>23</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-06-28 12:49:36 -0700</bug_when>
    <thetext>*** Bug 89506 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149302</attachid>
            <date>2012-06-25 09:09:55 -0700</date>
            <delta_ts>2012-06-25 10:35:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89888-20120625120955.patch</filename>
            <type>text/plain</type>
            <size>2670</size>
            <attacher name="Mike Reed">reed</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA2LTI1ICBNaWtlIFJl
ZWQgIDxyZWVkQGdvb2dsZS5jb20+CisKKyAgICAgICAgdXNlIHNjYWxlKCkgaW5zdGVhZCBvZiBn
ZXRDVE0vbm9ybWFsaXplVHJhbnNmb3JtL3NldENUTSBmb3Igc3ZnIHRleHQgZGVjb3JhdGlvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTg4OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gQ3VycmVudCBsYXlvdXR0ZXN0cyBleGVyY2lzZSB0aGlzIGNvZGUgcGF0aC4KKworICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb25XaXRoU3R5bGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0V2l0aFNoYWRvd3MpOgorCiAy
MDEyLTA2LTI1ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCiAg
ICAgICAgIEFkZCBzdGF0aWMgcXVhbGlmaWVyIHRvIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0
SW1hZ2VEYXRhLgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVU
ZXh0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiAxMjExNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OTgs
MTEgKzU5OCwxNSBAQCB2b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbldpCiAg
ICAgICAgIHdpZHRoICo9IHNjYWxpbmdGYWN0b3I7CiAgICAgICAgIGRlY29yYXRpb25PcmlnaW4u
c2NhbGUoc2NhbGluZ0ZhY3Rvciwgc2NhbGluZ0ZhY3Rvcik7CiAKKyNpZiBVU0UoU0tJQSkKKyAg
ICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKDEgLyBzY2FsaW5nRmFjdG9yLCAxIC8gc2Nh
bGluZ0ZhY3RvcikpOworI2Vsc2UKICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG5ld1RyYW5zZm9y
bSA9IGNvbnRleHQtPmdldENUTSgpOwogICAgICAgICBuZXdUcmFuc2Zvcm0uc2NhbGUoMSAvIHNj
YWxpbmdGYWN0b3IpOwogICAgICAgICBub3JtYWxpemVUcmFuc2Zvcm0obmV3VHJhbnNmb3JtKTsK
IAogICAgICAgICBjb250ZXh0LT5zZXRDVE0obmV3VHJhbnNmb3JtKTsKKyNlbmRpZgogICAgIH0K
IAogICAgIGRlY29yYXRpb25PcmlnaW4ubW92ZSgwLCAtc2NhbGVkRm9udE1ldHJpY3MuZmxvYXRB
c2NlbnQoKSArIHBvc2l0aW9uT2Zmc2V0Rm9yRGVjb3JhdGlvbihkZWNvcmF0aW9uLCBzY2FsZWRG
b250TWV0cmljcywgdGhpY2tuZXNzKSk7CkBAIC02NDMsNiArNjQ3LDEyIEBAIHZvaWQgU1ZHSW5s
aW5lVGV4dEJveDo6cGFpbnRUZXh0V2l0aFNoYWQKICAgICAgICAgaWYgKHNoYWRvdykKICAgICAg
ICAgICAgIGV4dHJhT2Zmc2V0ID0gYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dChjb250ZXh0
LCBzaGFkb3csIHNoYWRvd1JlY3QsIGZhbHNlIC8qIHN0cm9rZWQgKi8sIHRydWUgLyogb3BhcXVl
ICovLCB0cnVlIC8qIGhvcml6b250YWwgKi8pOwogCisjaWYgVVNFKFNLSUEpCisgICAgICAgIGlm
IChzY2FsaW5nRmFjdG9yICE9IDEpIHsKKyAgICAgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKKyAg
ICAgICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZSgxIC8gc2NhbGluZ0ZhY3RvciwgMSAv
IHNjYWxpbmdGYWN0b3IpKTsKKyAgICAgICAgfQorI2Vsc2UKICAgICAgICAgQWZmaW5lVHJhbnNm
b3JtIG9yaWdpbmFsVHJhbnNmb3JtOwogICAgICAgICBpZiAoc2NhbGluZ0ZhY3RvciAhPSAxKSB7
CiAgICAgICAgICAgICBvcmlnaW5hbFRyYW5zZm9ybSA9IGNvbnRleHQtPmdldENUTSgpOwpAQCAt
NjUzLDExICs2NjMsMTYgQEAgdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludFRleHRXaXRoU2hh
ZAogCiAgICAgICAgICAgICBjb250ZXh0LT5zZXRDVE0obmV3VHJhbnNmb3JtKTsKICAgICAgICAg
fQorI2VuZGlmCiAKICAgICAgICAgc2NhbGVkRm9udC5kcmF3VGV4dChjb250ZXh0LCB0ZXh0UnVu
LCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsIHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTsK
IAogICAgICAgICBpZiAoc2NhbGluZ0ZhY3RvciAhPSAxKQorI2lmIFVTRShTS0lBKQorICAgICAg
ICAgICAgY29udGV4dC0+cmVzdG9yZSgpOworI2Vsc2UKICAgICAgICAgICAgIGNvbnRleHQtPnNl
dENUTShvcmlnaW5hbFRyYW5zZm9ybSk7CisjZW5kaWYKIAogICAgICAgICByZXN0b3JlR3JhcGhp
Y3NDb250ZXh0QWZ0ZXJUZXh0UGFpbnRpbmcoY29udGV4dCwgdGV4dFJ1bik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149319</attachid>
            <date>2012-06-25 10:35:14 -0700</date>
            <delta_ts>2012-06-26 05:41:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89888-20120625133513.patch</filename>
            <type>text/plain</type>
            <size>3738</size>
            <attacher name="Mike Reed">reed</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA2LTI1ICBNaWtlIFJl
ZWQgIDxyZWVkQGdvb2dsZS5jb20+CisKKyAgICAgICAgdXNlIHNjYWxlKCkgaW5zdGVhZCBvZiBn
ZXRDVE0vbm9ybWFsaXplVHJhbnNmb3JtL3NldENUTSBmb3Igc3ZnIHRleHQgZGVjb3JhdGlvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTg4OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gQ3VycmVudCBsYXlvdXR0ZXN0cyBleGVyY2lzZSB0aGlzIGNvZGUgcGF0aC4KKworICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb25XaXRoU3R5bGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0V2l0aFNoYWRvd3MpOgorCiAy
MDEyLTA2LTI1ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCiAg
ICAgICAgIEFkZCBzdGF0aWMgcXVhbGlmaWVyIHRvIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0
SW1hZ2VEYXRhLgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVU
ZXh0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiAxMjExNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDcs
MjkgKzU0Nyw2IEBAIHZvaWQgU1ZHSW5saW5lVGV4dEJveDo6cGFpbnREZWNvcmF0aW9uKEcKICAg
ICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBub3JtYWxpemVUcmFuc2Zvcm0oQWZmaW5lVHJh
bnNmb3JtJiB0cmFuc2Zvcm0pCi17Ci0gICAgLy8gT2J0YWluIGNvbnNpc3RlbnQgbnVtZXJpY2Fs
IHJlc3VsdHMgZm9yIHRoZSBBZmZpbmVUcmFuc2Zvcm0gb24gYm90aCAzMi82NGJpdCBwbGF0Zm9y
bXMuCi0gICAgLy8gVGVzdGVkIHdpdGggU25vd0xlb3BhcmQgb24gQ29yZSBEdW8gdnMuIENvcmUg
MiBEdW8uCi0gICAgc3RhdGljIGNvbnN0IGZsb2F0IHNfZmxvYXRFcHNpbG9uID0gc3RkOjpudW1l
cmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsKLQotICAgIGlmIChmYWJzKHRyYW5zZm9ybS5h
KCkgLSAxKSA8PSBzX2Zsb2F0RXBzaWxvbikKLSAgICAgICAgdHJhbnNmb3JtLnNldEEoMSk7Ci0g
ICAgZWxzZSBpZiAoZmFicyh0cmFuc2Zvcm0uYSgpICsgMSkgPD0gc19mbG9hdEVwc2lsb24pCi0g
ICAgICAgIHRyYW5zZm9ybS5zZXRBKC0xKTsKLQotICAgIGlmIChmYWJzKHRyYW5zZm9ybS5kKCkg
LSAxKSA8PSBzX2Zsb2F0RXBzaWxvbikKLSAgICAgICAgdHJhbnNmb3JtLnNldEQoMSk7Ci0gICAg
ZWxzZSBpZiAoZmFicyh0cmFuc2Zvcm0uZCgpICsgMSkgPD0gc19mbG9hdEVwc2lsb24pCi0gICAg
ICAgIHRyYW5zZm9ybS5zZXREKC0xKTsKLQotICAgIGlmIChmYWJzKHRyYW5zZm9ybS5lKCkpIDw9
IHNfZmxvYXRFcHNpbG9uKQotICAgICAgICB0cmFuc2Zvcm0uc2V0RSgwKTsKLQotICAgIGlmIChm
YWJzKHRyYW5zZm9ybS5mKCkpIDw9IHNfZmxvYXRFcHNpbG9uKQotICAgICAgICB0cmFuc2Zvcm0u
c2V0RigwKTsKLX0KLQogdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb25XaXRo
U3R5bGUoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBFVGV4dERlY29yYXRpb24gZGVjb3JhdGlv
biwgY29uc3QgU1ZHVGV4dEZyYWdtZW50JiBmcmFnbWVudCwgUmVuZGVyT2JqZWN0KiBkZWNvcmF0
aW9uUmVuZGVyZXIpCiB7CiAgICAgQVNTRVJUKCFtX3BhaW50aW5nUmVzb3VyY2UpOwpAQCAtNTk3
LDEyICs1NzQsNyBAQCB2b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbldpCiAg
ICAgaWYgKHNjYWxpbmdGYWN0b3IgIT0gMSkgewogICAgICAgICB3aWR0aCAqPSBzY2FsaW5nRmFj
dG9yOwogICAgICAgICBkZWNvcmF0aW9uT3JpZ2luLnNjYWxlKHNjYWxpbmdGYWN0b3IsIHNjYWxp
bmdGYWN0b3IpOwotCi0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBuZXdUcmFuc2Zvcm0gPSBjb250
ZXh0LT5nZXRDVE0oKTsKLSAgICAgICAgbmV3VHJhbnNmb3JtLnNjYWxlKDEgLyBzY2FsaW5nRmFj
dG9yKTsKLSAgICAgICAgbm9ybWFsaXplVHJhbnNmb3JtKG5ld1RyYW5zZm9ybSk7Ci0KLSAgICAg
ICAgY29udGV4dC0+c2V0Q1RNKG5ld1RyYW5zZm9ybSk7CisgICAgICAgIGNvbnRleHQtPnNjYWxl
KEZsb2F0U2l6ZSgxIC8gc2NhbGluZ0ZhY3RvciwgMSAvIHNjYWxpbmdGYWN0b3IpKTsKICAgICB9
CiAKICAgICBkZWNvcmF0aW9uT3JpZ2luLm1vdmUoMCwgLXNjYWxlZEZvbnRNZXRyaWNzLmZsb2F0
QXNjZW50KCkgKyBwb3NpdGlvbk9mZnNldEZvckRlY29yYXRpb24oZGVjb3JhdGlvbiwgc2NhbGVk
Rm9udE1ldHJpY3MsIHRoaWNrbmVzcykpOwpAQCAtNjQzLDIxICs2MTUsMTIgQEAgdm9pZCBTVkdJ
bmxpbmVUZXh0Qm94OjpwYWludFRleHRXaXRoU2hhZAogICAgICAgICBpZiAoc2hhZG93KQogICAg
ICAgICAgICAgZXh0cmFPZmZzZXQgPSBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KGNvbnRl
eHQsIHNoYWRvdywgc2hhZG93UmVjdCwgZmFsc2UgLyogc3Ryb2tlZCAqLywgdHJ1ZSAvKiBvcGFx
dWUgKi8sIHRydWUgLyogaG9yaXpvbnRhbCAqLyk7CiAKLSAgICAgICAgQWZmaW5lVHJhbnNmb3Jt
IG9yaWdpbmFsVHJhbnNmb3JtOwotICAgICAgICBpZiAoc2NhbGluZ0ZhY3RvciAhPSAxKSB7Ci0g
ICAgICAgICAgICBvcmlnaW5hbFRyYW5zZm9ybSA9IGNvbnRleHQtPmdldENUTSgpOwotCi0gICAg
ICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gbmV3VHJhbnNmb3JtID0gb3JpZ2luYWxUcmFuc2Zvcm07
Ci0gICAgICAgICAgICBuZXdUcmFuc2Zvcm0uc2NhbGUoMSAvIHNjYWxpbmdGYWN0b3IpOwotICAg
ICAgICAgICAgbm9ybWFsaXplVHJhbnNmb3JtKG5ld1RyYW5zZm9ybSk7Ci0KLSAgICAgICAgICAg
IGNvbnRleHQtPnNldENUTShuZXdUcmFuc2Zvcm0pOwotICAgICAgICB9CisgICAgICAgIGNvbnRl
eHQtPnNhdmUoKTsKKyAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKDEgLyBzY2FsaW5n
RmFjdG9yLCAxIC8gc2NhbGluZ0ZhY3RvcikpOwogCiAgICAgICAgIHNjYWxlZEZvbnQuZHJhd1Rl
eHQoY29udGV4dCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydFBvc2l0
aW9uLCBlbmRQb3NpdGlvbik7CiAKLSAgICAgICAgaWYgKHNjYWxpbmdGYWN0b3IgIT0gMSkKLSAg
ICAgICAgICAgIGNvbnRleHQtPnNldENUTShvcmlnaW5hbFRyYW5zZm9ybSk7CisgICAgICAgIGNv
bnRleHQtPnJlc3RvcmUoKTsKIAogICAgICAgICByZXN0b3JlR3JhcGhpY3NDb250ZXh0QWZ0ZXJU
ZXh0UGFpbnRpbmcoY29udGV4dCwgdGV4dFJ1bik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149516</attachid>
            <date>2012-06-26 05:41:57 -0700</date>
            <delta_ts>2012-06-27 08:06:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89888-20120626084156.patch</filename>
            <type>text/plain</type>
            <size>3992</size>
            <attacher name="Mike Reed">reed</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA2LTI1ICBNaWtlIFJl
ZWQgIDxyZWVkQGdvb2dsZS5jb20+CisKKyAgICAgICAgQ2xlYW51cCBzY2FsaW5nIGNvZGUgaW4g
dGV4dC1kZWNvcmF0aW9ucyBmb3IgU1ZHIElubGluZVRleHQuIFVzZSBzY2FsZSgpIGluc3RlYWQg
b2YgZ2V0Q1RNL25vcm1hbGl6ZVRyYW5zZm9ybS9zZXRDVE0KKyAgICAgICAgdG8gdXNlIG1vcmUg
c3RhbmRhcmQgcGF0dGVybiBmb3Igc2NhbGluZywgYW5kIHRvIGFsbG93IGZvciB0aGVzZSBvcGVy
YXRpb25zIHRvIGJlIHJlY29yZGVkIGFuZCBwbGF5ZWQgYmFjayBsYXRlcgorICAgICAgICAocG90
ZW50aWFsbHkgd2l0aCBhIGRpZmZlcmVudCBzdGFydGluZyBtYXRyaXgpLiBUaGlzIGVmZmVjdGl2
ZWx5IHJldmVydHMgY2hhbmdlIyA3ODcwNC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg5ODg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDdXJyZW50IGxheW91dHRlc3RzIGV4ZXJj
aXNlIHRoaXMgY29kZSBwYXRoLgorCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVU
ZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lubGluZVRleHRCb3g6OnBhaW50RGVj
b3JhdGlvbldpdGhTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94Ojpw
YWludFRleHRXaXRoU2hhZG93cyk6CisKIDIwMTItMDYtMjUgIEh1YW5nIERvbmdzdW5nICA8bHV4
dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgQWRkIHN0YXRpYyBxdWFsaWZpZXIgdG8g
R3JhcGhpY3NDb250ZXh0M0Q6OmV4dHJhY3RJbWFnZURhdGEuCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAJKHJldmlzaW9uIDEy
MTE1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU0NywyOSArNTQ3LDYgQEAgdm9pZCBTVkdJbmxpbmVUZXh0
Qm94OjpwYWludERlY29yYXRpb24oRwogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSB2b2lkIG5v
cm1hbGl6ZVRyYW5zZm9ybShBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKLXsKLSAgICAvLyBP
YnRhaW4gY29uc2lzdGVudCBudW1lcmljYWwgcmVzdWx0cyBmb3IgdGhlIEFmZmluZVRyYW5zZm9y
bSBvbiBib3RoIDMyLzY0Yml0IHBsYXRmb3Jtcy4KLSAgICAvLyBUZXN0ZWQgd2l0aCBTbm93TGVv
cGFyZCBvbiBDb3JlIER1byB2cy4gQ29yZSAyIER1by4KLSAgICBzdGF0aWMgY29uc3QgZmxvYXQg
c19mbG9hdEVwc2lsb24gPSBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpOwot
Ci0gICAgaWYgKGZhYnModHJhbnNmb3JtLmEoKSAtIDEpIDw9IHNfZmxvYXRFcHNpbG9uKQotICAg
ICAgICB0cmFuc2Zvcm0uc2V0QSgxKTsKLSAgICBlbHNlIGlmIChmYWJzKHRyYW5zZm9ybS5hKCkg
KyAxKSA8PSBzX2Zsb2F0RXBzaWxvbikKLSAgICAgICAgdHJhbnNmb3JtLnNldEEoLTEpOwotCi0g
ICAgaWYgKGZhYnModHJhbnNmb3JtLmQoKSAtIDEpIDw9IHNfZmxvYXRFcHNpbG9uKQotICAgICAg
ICB0cmFuc2Zvcm0uc2V0RCgxKTsKLSAgICBlbHNlIGlmIChmYWJzKHRyYW5zZm9ybS5kKCkgKyAx
KSA8PSBzX2Zsb2F0RXBzaWxvbikKLSAgICAgICAgdHJhbnNmb3JtLnNldEQoLTEpOwotCi0gICAg
aWYgKGZhYnModHJhbnNmb3JtLmUoKSkgPD0gc19mbG9hdEVwc2lsb24pCi0gICAgICAgIHRyYW5z
Zm9ybS5zZXRFKDApOwotCi0gICAgaWYgKGZhYnModHJhbnNmb3JtLmYoKSkgPD0gc19mbG9hdEVw
c2lsb24pCi0gICAgICAgIHRyYW5zZm9ybS5zZXRGKDApOwotfQotCiB2b2lkIFNWR0lubGluZVRl
eHRCb3g6OnBhaW50RGVjb3JhdGlvbldpdGhTdHlsZShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IEVUZXh0RGVjb3JhdGlvbiBkZWNvcmF0aW9uLCBjb25zdCBTVkdUZXh0RnJhZ21lbnQmIGZyYWdt
ZW50LCBSZW5kZXJPYmplY3QqIGRlY29yYXRpb25SZW5kZXJlcikKIHsKICAgICBBU1NFUlQoIW1f
cGFpbnRpbmdSZXNvdXJjZSk7CkBAIC01OTcsMTIgKzU3NCw3IEBAIHZvaWQgU1ZHSW5saW5lVGV4
dEJveDo6cGFpbnREZWNvcmF0aW9uV2kKICAgICBpZiAoc2NhbGluZ0ZhY3RvciAhPSAxKSB7CiAg
ICAgICAgIHdpZHRoICo9IHNjYWxpbmdGYWN0b3I7CiAgICAgICAgIGRlY29yYXRpb25PcmlnaW4u
c2NhbGUoc2NhbGluZ0ZhY3Rvciwgc2NhbGluZ0ZhY3Rvcik7Ci0KLSAgICAgICAgQWZmaW5lVHJh
bnNmb3JtIG5ld1RyYW5zZm9ybSA9IGNvbnRleHQtPmdldENUTSgpOwotICAgICAgICBuZXdUcmFu
c2Zvcm0uc2NhbGUoMSAvIHNjYWxpbmdGYWN0b3IpOwotICAgICAgICBub3JtYWxpemVUcmFuc2Zv
cm0obmV3VHJhbnNmb3JtKTsKLQotICAgICAgICBjb250ZXh0LT5zZXRDVE0obmV3VHJhbnNmb3Jt
KTsKKyAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKDEgLyBzY2FsaW5nRmFjdG9yLCAx
IC8gc2NhbGluZ0ZhY3RvcikpOwogICAgIH0KIAogICAgIGRlY29yYXRpb25PcmlnaW4ubW92ZSgw
LCAtc2NhbGVkRm9udE1ldHJpY3MuZmxvYXRBc2NlbnQoKSArIHBvc2l0aW9uT2Zmc2V0Rm9yRGVj
b3JhdGlvbihkZWNvcmF0aW9uLCBzY2FsZWRGb250TWV0cmljcywgdGhpY2tuZXNzKSk7CkBAIC02
NDMsMjEgKzYxNSwxMiBAQCB2b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50VGV4dFdpdGhTaGFk
CiAgICAgICAgIGlmIChzaGFkb3cpCiAgICAgICAgICAgICBleHRyYU9mZnNldCA9IGFwcGx5U2hh
ZG93VG9HcmFwaGljc0NvbnRleHQoY29udGV4dCwgc2hhZG93LCBzaGFkb3dSZWN0LCBmYWxzZSAv
KiBzdHJva2VkICovLCB0cnVlIC8qIG9wYXF1ZSAqLywgdHJ1ZSAvKiBob3Jpem9udGFsICovKTsK
IAotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gb3JpZ2luYWxUcmFuc2Zvcm07Ci0gICAgICAgIGlm
IChzY2FsaW5nRmFjdG9yICE9IDEpIHsKLSAgICAgICAgICAgIG9yaWdpbmFsVHJhbnNmb3JtID0g
Y29udGV4dC0+Z2V0Q1RNKCk7Ci0KLSAgICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBuZXdUcmFu
c2Zvcm0gPSBvcmlnaW5hbFRyYW5zZm9ybTsKLSAgICAgICAgICAgIG5ld1RyYW5zZm9ybS5zY2Fs
ZSgxIC8gc2NhbGluZ0ZhY3Rvcik7Ci0gICAgICAgICAgICBub3JtYWxpemVUcmFuc2Zvcm0obmV3
VHJhbnNmb3JtKTsKLQotICAgICAgICAgICAgY29udGV4dC0+c2V0Q1RNKG5ld1RyYW5zZm9ybSk7
Ci0gICAgICAgIH0KKyAgICAgICAgY29udGV4dC0+c2F2ZSgpOworICAgICAgICBjb250ZXh0LT5z
Y2FsZShGbG9hdFNpemUoMSAvIHNjYWxpbmdGYWN0b3IsIDEgLyBzY2FsaW5nRmFjdG9yKSk7CiAK
ICAgICAgICAgc2NhbGVkRm9udC5kcmF3VGV4dChjb250ZXh0LCB0ZXh0UnVuLCB0ZXh0T3JpZ2lu
ICsgZXh0cmFPZmZzZXQsIHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTsKIAotICAgICAgICBp
ZiAoc2NhbGluZ0ZhY3RvciAhPSAxKQotICAgICAgICAgICAgY29udGV4dC0+c2V0Q1RNKG9yaWdp
bmFsVHJhbnNmb3JtKTsKKyAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOwogCiAgICAgICAgIHJl
c3RvcmVHcmFwaGljc0NvbnRleHRBZnRlclRleHRQYWludGluZyhjb250ZXh0LCB0ZXh0UnVuKTsK
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>