<?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>52868</bug_id>
          
          <creation_ts>2011-01-20 21:26:33 -0800</creation_ts>
          <short_desc>[chromium] Fix redundant video frame paint on CSS LayerChromium for &lt;video&gt;</short_desc>
          <delta_ts>2011-02-03 21:20:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>0</everconfirmed>
          <reporter name="Victoria Kirst">vrk</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>scherkus</cc>
    
    <cc>vangelis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>337860</commentid>
    <comment_count>0</comment_count>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2011-01-20 21:26:33 -0800</bug_when>
    <thetext>[chromium] Fix redundant video frame paint on CSS LayerChromium for &lt;video&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337863</commentid>
    <comment_count>1</comment_count>
      <attachid>79691</attachid>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2011-01-20 21:30:34 -0800</bug_when>
    <thetext>Created attachment 79691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339415</commentid>
    <comment_count>2</comment_count>
      <attachid>79691</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-01-24 17:51:40 -0800</bug_when>
    <thetext>Comment on attachment 79691
Patch

Do paints from a hardware-accelerated video into a 2d canvas still work with this patch (and do we have a test for this)?  I&apos;m not super familiar with that codepath for video.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339436</commentid>
    <comment_count>3</comment_count>
      <attachid>79691</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-01-24 18:33:19 -0800</bug_when>
    <thetext>Comment on attachment 79691
Patch

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

&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:402
&gt; +    // If we are using GPU to render video, ignore requests to paint frames into
&gt; +    // canvas because it will be taken care of by VideoLayerChromium.
&gt; +    if (acceleratedRenderingInUse())
&gt; +        return;

Yeah, I&apos;m pretty sure this will break painting from a h-w accelerated video into a 2d canvas.  Please check if we have a layout test to cover this case and if not please add one (create a &lt;video&gt; and a &lt;canvas&gt;, on the canvas&apos; 2d context do .drawImage(video, ...), assert that the pixels show up).  I think the philip suite may have such a test.

2d and webgl canvases have the same issue.  The basic problem is that you want the paint() call to actually render when painting into a 2d canvas but you don&apos;t want it to happen when doing &apos;normal&apos; rendering, so there&apos;s an explicit call in CanvasRenderingContext2D::drawImage() to differentiate the two: http://trac.webkit.org/browser/trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp#L1260.  makeRenderingResultsAvailable() ensures that the source canvas&apos; ImageBuffer contains the actual bits of the source canvas, which is then drawn into the destination canvas.  I think you need something a bit different here, but whatever the code is it would go somewhere around here: http://trac.webkit.org/browser/trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp#L1337.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339721</commentid>
    <comment_count>4</comment_count>
      <attachid>79691</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-01-25 10:20:33 -0800</bug_when>
    <thetext>Comment on attachment 79691
Patch

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

&gt;&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:402
&gt;&gt; +        return;
&gt; 
&gt; Yeah, I&apos;m pretty sure this will break painting from a h-w accelerated video into a 2d canvas.  Please check if we have a layout test to cover this case and if not please add one (create a &lt;video&gt; and a &lt;canvas&gt;, on the canvas&apos; 2d context do .drawImage(video, ...), assert that the pixels show up).  I think the philip suite may have such a test.
&gt; 
&gt; 2d and webgl canvases have the same issue.  The basic problem is that you want the paint() call to actually render when painting into a 2d canvas but you don&apos;t want it to happen when doing &apos;normal&apos; rendering, so there&apos;s an explicit call in CanvasRenderingContext2D::drawImage() to differentiate the two: http://trac.webkit.org/browser/trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp#L1260.  makeRenderingResultsAvailable() ensures that the source canvas&apos; ImageBuffer contains the actual bits of the source canvas, which is then drawn into the destination canvas.  I think you need something a bit different here, but whatever the code is it would go somewhere around here: http://trac.webkit.org/browser/trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp#L1337.

Good catch, James. 

Interestingly enough, MediaPlayerPrivateQuickTimeWin.cpp (used by Safari on windows), has a similar early out to what Victoria implemented on our side which likely means that video frames cannot be copied on canvas(?).  However, the mac version in MediaPlayerPrivateQTKit.mm does no such thing but it might be happening at some lower level within QT.

One possible solution (although not super clean) would be to add a flag to LayerRendererChromium that indicates whether it&apos;s updating layer contents.  WebMediaPlayerClientImpl can then check that via a call like: m_videoLayer-&gt;layerRenderer()-&gt;inLayerContentUpdate() to be able to differentiate between the two.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340686</commentid>
    <comment_count>5</comment_count>
      <attachid>80286</attachid>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2011-01-26 18:19:46 -0800</bug_when>
    <thetext>Created attachment 80286
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340693</commentid>
    <comment_count>6</comment_count>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2011-01-26 18:48:41 -0800</bug_when>
    <thetext>Huh, there seems to be an easy fix for this!

So, normal video paint calls (i.e. originating from &lt;video&gt; software rendering) use the &quot;paint()&quot; method to render frames in a canvas. It seems like Canvas/WebGL use paintCurrentFrameIntoContext(), which by default just calls paint(). But of course we could just override it to behave slightly differently.

This patch has paintCurrentFrameIntoContext() do a software-paint into the given context blindly, while paint() does a check first to make sure we&apos;re not re-doing the work of VideoLayerChromium. Seems to work but I need to run layout tests to be confident, will update with results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341029</commentid>
    <comment_count>7</comment_count>
      <attachid>80286</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-01-27 13:56:17 -0800</bug_when>
    <thetext>Comment on attachment 80286
Patch

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

Seems good.  Could you please confirm that this code change is hit by existing tests (at least some of the webgl ones) and that they still work with this patch applied?

&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:-486
&gt; -
&gt; -#if USE(ACCELERATED_COMPOSITING)
&gt; -    Frame* frame = static_cast&lt;HTMLMediaElement*&gt;(
&gt; -        client-&gt;m_mediaPlayer-&gt;mediaPlayerClient())-&gt;document()-&gt;frame();
&gt; -
&gt; -    // This does not actually check whether the hardware can support accelerated
&gt; -    // compositing, but only if the flag is set. However, this is checked lazily
&gt; -    // in WebViewImpl::setIsAcceleratedCompositingActive() and will fail there
&gt; -    // if necessary.
&gt; -    client-&gt;m_supportsAcceleratedCompositing =
&gt; -        frame-&gt;contentRenderer()-&gt;compositor()-&gt;hasAcceleratedCompositing();
&gt; -#endif

I don&apos;t understand this code move - is this part of the same patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341330</commentid>
    <comment_count>8</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-01-27 23:16:23 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Huh, there seems to be an easy fix for this!
&gt; 
&gt; So, normal video paint calls (i.e. originating from &lt;video&gt; software rendering) use the &quot;paint()&quot; method to render frames in a canvas. It seems like Canvas/WebGL use paintCurrentFrameIntoContext(), which by default just calls paint(). But of course we could just override it to behave slightly differently.
&gt; 
&gt; This patch has paintCurrentFrameIntoContext() do a software-paint into the given context blindly, while paint() does a check first to make sure we&apos;re not re-doing the work of VideoLayerChromium. Seems to work but I need to run layout tests to be confident, will update with results.


Great!  I think this will work.  Well done :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344851</commentid>
    <comment_count>9</comment_count>
      <attachid>81088</attachid>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2011-02-03 11:02:27 -0800</bug_when>
    <thetext>Created attachment 81088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344856</commentid>
    <comment_count>10</comment_count>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2011-02-03 11:07:57 -0800</bug_when>
    <thetext>&gt; I don&apos;t understand this code move - is this part of the same patch?

Yeah, that change should go in a different patch. Thanks! I uploaded the patch with that part omitted.

This patch is now ready to go, and the GPU layout tests and the canvas/webgl tests all pass, but from what I can tell the GPU tests don&apos;t seem to test the paths correctly (see email thread to chrome-gpu). Not quite sure what to do...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344866</commentid>
    <comment_count>11</comment_count>
      <attachid>81088</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-02-03 11:18:26 -0800</bug_when>
    <thetext>Comment on attachment 81088
Patch

R=me.  Let&apos;s investigate that test issue in parallel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344898</commentid>
    <comment_count>12</comment_count>
      <attachid>81088</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-03 12:03:20 -0800</bug_when>
    <thetext>Comment on attachment 81088
Patch

Rejecting attachment 81088 from commit-queue.

vrk@chromium.org does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344925</commentid>
    <comment_count>13</comment_count>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2011-02-03 12:36:11 -0800</bug_when>
    <thetext>Aww haha I don&apos;t have commit queue privileges. Can someone cq+ for me? Thanks! :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345323</commentid>
    <comment_count>14</comment_count>
      <attachid>81088</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-03 21:20:16 -0800</bug_when>
    <thetext>Comment on attachment 81088
Patch

Clearing flags on attachment: 81088

Committed r77599: &lt;http://trac.webkit.org/changeset/77599&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345324</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-03 21:20:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79691</attachid>
            <date>2011-01-20 21:30:34 -0800</date>
            <delta_ts>2011-01-26 18:19:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52868-20110120213033.patch</filename>
            <type>text/plain</type>
            <size>5213</size>
            <attacher name="Victoria Kirst">vrk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNGY2NDVmYzc0OGM5MDI0NTE4MTg3ODZjMDI5
YmY5MmMyOTFjMTM1YS4uMDZhYTM0NTBhNzJjZGI2OTRkMjdhODA2ZDcyNmZhZDJjYjNlMWFiNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0wMS0yMCAg
VmljdG9yaWEgS2lyc3QgIDx2cmtAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEZpeCByZWR1bmRhbnQgdmlkZW8g
ZnJhbWUgcGFpbnQgb24gQ1NTIExheWVyQ2hyb21pdW0gZm9yIDx2aWRlbz4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyODY4CisKKyAgICAgICAgQWRk
cyBhIGNoZWNrIHRvIHNraXAgc29mdHdhcmUgdmlkZW8gcGFpbnQgaWYgR1BVIGFjY2VsZXJhdGlv
biBpcworICAgICAgICBlbmFibGVkIHNvIHRoYXQgQ1NTIG9uIDx2aWRlbz4gZG9lcyBub3QgcmVk
dW5kYW50bHkgcmVuZGVyIGZyYW1lcy4KKworICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6
OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudElt
cGw6OnBhaW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpz
dXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsOjphY2NlbGVyYXRlZFJlbmRlcmluZ0luVXNlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCk6Cisg
ICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oOgorCiAyMDEwLTEyLTE0ICBZ
dXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAppbmRleCA2NWYwZmRlNzVmNmIyYjRiZGVlMDIz
YjlhMmM3OGE4M2JlM2I4ZTEzLi4wYjUyYzFjNmEwNTQwZjYxZjZlZDg4YzM2ZjQ4OTVkMDkzNzBj
ZTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXll
ckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTIwOCw3ICsyMDgsNiBAQCB2b2lkIFdlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbDo6Y2FuY2VsTG9hZCgpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogUGxhdGZvcm1MYXllciogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF0Zm9ybUxh
eWVyKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9zdXBwb3J0c0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmcpOwogICAgIHJldHVybiBtX3ZpZGVvTGF5ZXIuZ2V0KCk7CiB9CiAjZW5kaWYKQEAgLTM5Nyw2
ICszOTYsMTEgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnNldFNpemUoY29uc3Qg
SW50U2l6ZSYgc2l6ZSkKIAogdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBhaW50KEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKKyAgICAvLyBJ
ZiB3ZSBhcmUgdXNpbmcgR1BVIHRvIHJlbmRlciB2aWRlbywgaWdub3JlIHJlcXVlc3RzIHRvIHBh
aW50IGZyYW1lcyBpbnRvCisgICAgLy8gY2FudmFzIGJlY2F1c2UgaXQgd2lsbCBiZSB0YWtlbiBj
YXJlIG9mIGJ5IFZpZGVvTGF5ZXJDaHJvbWl1bS4KKyAgICBpZiAoYWNjZWxlcmF0ZWRSZW5kZXJp
bmdJblVzZSgpKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBOb3JtYWxseSBHcmFwaGljc0Nv
bnRleHQgb3BlcmF0aW9ucyBkbyBub3RoaW5nIHdoZW4gcGFpbnRpbmcgaXMgZGlzYWJsZWQuCiAg
ICAgLy8gU2luY2Ugd2UncmUgYWNjZXNzaW5nIHBsYXRmb3JtQ29udGV4dCgpIGRpcmVjdGx5IHdl
IGhhdmUgdG8gbWFudWFsbHkKICAgICAvLyBjaGVjay4KQEAgLTQ0Miw3ICs0NDYsMTkgQEAgTWVk
aWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjptb3ZpZUxv
YWRUeXBlKCkgY29uc3QKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIFdl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fc3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOworICAg
IEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPigKKyAgICAgICAg
bV9tZWRpYVBsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKSktPmRvY3VtZW50KCktPmZyYW1lKCk7
CisKKyAgICAvLyBUaGlzIGRvZXMgbm90IGFjdHVhbGx5IGNoZWNrIHdoZXRoZXIgdGhlIGhhcmR3
YXJlIGNhbiBzdXBwb3J0IGFjY2VsZXJhdGVkCisgICAgLy8gY29tcG9zaXRpbmcsIGJ1dCBvbmx5
IGlmIHRoZSBmbGFnIGlzIHNldC4gSG93ZXZlciwgdGhpcyBpcyBjaGVja2VkIGxhemlseQorICAg
IC8vIGluIFdlYlZpZXdJbXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSBh
bmQgd2lsbCBmYWlsIHRoZXJlCisgICAgLy8gaWYgbmVjZXNzYXJ5LgorICAgIHJldHVybiBmcmFt
ZS0+Y29udGVudFJlbmRlcmVyKCktPmNvbXBvc2l0b3IoKS0+aGFzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZygpOworfQorCitib29sIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6YWNjZWxlcmF0ZWRS
ZW5kZXJpbmdJblVzZSgpCit7CisgICAgcmV0dXJuIG1fdmlkZW9MYXllci5nZXQoKSAmJiBtX3Zp
ZGVvTGF5ZXItPmxheWVyUmVuZGVyZXIoKTsKIH0KIAogVmlkZW9GcmFtZUNocm9taXVtKiBXZWJN
ZWRpYVBsYXllckNsaWVudEltcGw6OmdldEN1cnJlbnRGcmFtZSgpCkBAIC00NzIsMTkgKzQ4OCw2
IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllCiB7CiAgICAgV2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsKiBjbGllbnQgPSBuZXcgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKCk7CiAgICAgY2xpZW50
LT5tX21lZGlhUGxheWVyID0gcGxheWVyOwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPigK
LSAgICAgICAgY2xpZW50LT5tX21lZGlhUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpKS0+ZG9j
dW1lbnQoKS0+ZnJhbWUoKTsKLQotICAgIC8vIFRoaXMgZG9lcyBub3QgYWN0dWFsbHkgY2hlY2sg
d2hldGhlciB0aGUgaGFyZHdhcmUgY2FuIHN1cHBvcnQgYWNjZWxlcmF0ZWQKLSAgICAvLyBjb21w
b3NpdGluZywgYnV0IG9ubHkgaWYgdGhlIGZsYWcgaXMgc2V0LiBIb3dldmVyLCB0aGlzIGlzIGNo
ZWNrZWQgbGF6aWx5Ci0gICAgLy8gaW4gV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0FjdGl2ZSgpIGFuZCB3aWxsIGZhaWwgdGhlcmUKLSAgICAvLyBpZiBuZWNlc3Nhcnku
Ci0gICAgY2xpZW50LT5tX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9Ci0gICAgICAg
IGZyYW1lLT5jb250ZW50UmVuZGVyZXIoKS0+Y29tcG9zaXRvcigpLT5oYXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nKCk7Ci0jZW5kaWYKLQogICAgIHJldHVybiBjbGllbnQ7CiB9CiAKQEAgLTUxNyw3
ICs1MjAsNiBAQCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OldlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbCgpCiAgICAgOiBtX21lZGlhUGxheWVyKDApCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgICwgbV92aWRlb0xheWVyKDApCi0gICAgLCBtX3N1cHBvcnRzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZyhmYWxzZSkKICNlbmRpZgogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAppbmRleCBjYTdjNDNj
MTg3ZDkzZTQzNjkwNjYyMDMzODZkYmNlN2YzNDFlMTQ5Li5hZmNjZTdjNDI5NDI2ZWI5YjEwNjE3
M2Y4OWI3NWNkMWIyODkzOWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtMTI4LDEyICsxMjgsMTQgQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhXVEY6Okhhc2hTZXQ8V1RG
OjpTdHJpbmc+Jik7CiAgICAgc3RhdGljIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpTdXBwb3J0c1R5
cGUgc3VwcG9ydHNUeXBlKAogICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgdHlwZSwgY29uc3Qg
V1RGOjpTdHJpbmcmIGNvZGVjcyk7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
ICAgIGJvb2wgYWNjZWxlcmF0ZWRSZW5kZXJpbmdJblVzZSgpOworI2VuZGlmCiAKICAgICBXZWJD
b3JlOjpNZWRpYVBsYXllciogbV9tZWRpYVBsYXllcjsKICAgICBPd25QdHI8V2ViTWVkaWFQbGF5
ZXI+IG1fd2ViTWVkaWFQbGF5ZXI7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0xheWVyQ2hyb21pdW0+IG1fdmlkZW9MYXllcjsKLSAg
ICBib29sIG1fc3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOwogI2VuZGlmCiAgICAgc3Rh
dGljIGJvb2wgbV9pc0VuYWJsZWQ7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80286</attachid>
            <date>2011-01-26 18:19:46 -0800</date>
            <delta_ts>2011-02-03 11:02:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52868-20110126181944.patch</filename>
            <type>text/plain</type>
            <size>6062</size>
            <attacher name="Victoria Kirst">vrk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNmZjMTNmYzZlYjlhY2E0YThjMWMyNjdlZmE3
ZGZlNTkwYTMzN2FkMC4uMDA4NGYyYmVhNmVkYjhhYzQwNzZkMjg5OGI5YjZjZWE1ZmZjMmEzYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMS0wMS0yNiAg
VmljdG9yaWEgS2lyc3QgIDx2cmtAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEZpeCByZWR1bmRhbnQgdmlkZW8g
ZnJhbWUgcGFpbnQgb24gQ1NTIExheWVyQ2hyb21pdW0gZm9yIDx2aWRlbz4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyODY4CisgICAgICAgIEFkZHMg
YSBjaGVjayB0byBza2lwIHNvZnR3YXJlIHZpZGVvIHBhaW50IGlmIEdQVSBhY2NlbGVyYXRpb24g
aXMKKyAgICAgICAgZW5hYmxlZCBzbyB0aGF0IENTUyBvbiA8dmlkZW8+IGRvZXMgbm90IHJlZHVu
ZGFudGx5IHJlbmRlciBmcmFtZXMuCisgICAgICAgIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0
KCkgZG9lcyBub3QgZG8gdGhpcyBjaGVjayBzbyB2aWRlbyBpcworICAgICAgICBzdGlsbCBwYWlu
dGVkIGludG8gYW4gYWNjZWxlcmF0ZWQgY2FudmFzLgorCisgICAgICAgICogc3JjL1dlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6cGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbDo6cGFpbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVu
dEltcGw6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjphY2NlbGVyYXRlZFJlbmRl
cmluZ0luVXNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OldlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbCk6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oOgorCiAyMDExLTAxLTI0ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAppbmRleCA2
NWYwZmRlNzVmNmIyYjRiZGVlMDIzYjlhMmM3OGE4M2JlM2I4ZTEzLi4xMDZmZTAyMDY5MGMxNDli
MDIzNDg3M2FlYjljZGZmZDRjM2U1ZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTIwOCw3ICsyMDgs
NiBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Y2FuY2VsTG9hZCgpCiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogUGxhdGZvcm1MYXllciogV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9zdXBwb3J0
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpOwogICAgIHJldHVybiBtX3ZpZGVvTGF5ZXIuZ2V0KCk7
CiB9CiAjZW5kaWYKQEAgLTM5Nyw2ICszOTYsMTcgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVu
dEltcGw6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIAogdm9pZCBXZWJNZWRpYVBsYXll
ckNsaWVudEltcGw6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVj
dCYgcmVjdCkKIHsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgLy8gSWYg
d2UgYXJlIHVzaW5nIEdQVSB0byByZW5kZXIgdmlkZW8sIGlnbm9yZSByZXF1ZXN0cyB0byBwYWlu
dCBmcmFtZXMgaW50bworICAgIC8vIGNhbnZhcyBiZWNhdXNlIGl0IHdpbGwgYmUgdGFrZW4gY2Fy
ZSBvZiBieSBWaWRlb0xheWVyQ2hyb21pdW0uCisgICAgaWYgKGFjY2VsZXJhdGVkUmVuZGVyaW5n
SW5Vc2UoKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCisgICAgcGFpbnRDdXJyZW50RnJhbWVJ
bkNvbnRleHQoY29udGV4dCwgcmVjdCk7Cit9CisKK3ZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IEludFJlY3QmIHJlY3QpCit7CiAgICAgLy8gTm9ybWFsbHkgR3JhcGhpY3NDb250ZXh0
IG9wZXJhdGlvbnMgZG8gbm90aGluZyB3aGVuIHBhaW50aW5nIGlzIGRpc2FibGVkLgogICAgIC8v
IFNpbmNlIHdlJ3JlIGFjY2Vzc2luZyBwbGF0Zm9ybUNvbnRleHQoKSBkaXJlY3RseSB3ZSBoYXZl
IHRvIG1hbnVhbGx5CiAgICAgLy8gY2hlY2suCkBAIC00NDIsNyArNDUyLDE5IEBAIE1lZGlhUGxh
eWVyOjpNb3ZpZUxvYWRUeXBlIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bW92aWVMb2FkVHlw
ZSgpIGNvbnN0CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBXZWJNZWRp
YVBsYXllckNsaWVudEltcGw6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAog
ewotICAgIHJldHVybiBtX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsKKyAgICBGcmFt
ZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4oCisgICAgICAgIG1fbWVk
aWFQbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCkpLT5kb2N1bWVudCgpLT5mcmFtZSgpOworCisg
ICAgLy8gVGhpcyBkb2VzIG5vdCBhY3R1YWxseSBjaGVjayB3aGV0aGVyIHRoZSBoYXJkd2FyZSBj
YW4gc3VwcG9ydCBhY2NlbGVyYXRlZAorICAgIC8vIGNvbXBvc2l0aW5nLCBidXQgb25seSBpZiB0
aGUgZmxhZyBpcyBzZXQuIEhvd2V2ZXIsIHRoaXMgaXMgY2hlY2tlZCBsYXppbHkKKyAgICAvLyBp
biBXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkgYW5kIHdp
bGwgZmFpbCB0aGVyZQorICAgIC8vIGlmIG5lY2Vzc2FyeS4KKyAgICByZXR1cm4gZnJhbWUtPmNv
bnRlbnRSZW5kZXJlcigpLT5jb21wb3NpdG9yKCktPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmco
KTsKK30KKworYm9vbCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmFjY2VsZXJhdGVkUmVuZGVy
aW5nSW5Vc2UoKQoreworICAgIHJldHVybiBtX3ZpZGVvTGF5ZXIuZ2V0KCkgJiYgbV92aWRlb0xh
eWVyLT5sYXllclJlbmRlcmVyKCk7CiB9CiAKIFZpZGVvRnJhbWVDaHJvbWl1bSogV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsOjpnZXRDdXJyZW50RnJhbWUoKQpAQCAtNDcyLDE5ICs0OTQsNiBAQCBN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UqIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Y3Jl
YXRlKE1lZGlhUGxheWVyKiBwbGF5ZQogewogICAgIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCog
Y2xpZW50ID0gbmV3IFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCgpOwogICAgIGNsaWVudC0+bV9t
ZWRpYVBsYXllciA9IHBsYXllcjsKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
LSAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4oCi0gICAg
ICAgIGNsaWVudC0+bV9tZWRpYVBsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKSktPmRvY3VtZW50
KCktPmZyYW1lKCk7Ci0KLSAgICAvLyBUaGlzIGRvZXMgbm90IGFjdHVhbGx5IGNoZWNrIHdoZXRo
ZXIgdGhlIGhhcmR3YXJlIGNhbiBzdXBwb3J0IGFjY2VsZXJhdGVkCi0gICAgLy8gY29tcG9zaXRp
bmcsIGJ1dCBvbmx5IGlmIHRoZSBmbGFnIGlzIHNldC4gSG93ZXZlciwgdGhpcyBpcyBjaGVja2Vk
IGxhemlseQotICAgIC8vIGluIFdlYlZpZXdJbXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdBY3RpdmUoKSBhbmQgd2lsbCBmYWlsIHRoZXJlCi0gICAgLy8gaWYgbmVjZXNzYXJ5LgotICAg
IGNsaWVudC0+bV9zdXBwb3J0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPQotICAgICAgICBmcmFt
ZS0+Y29udGVudFJlbmRlcmVyKCktPmNvbXBvc2l0b3IoKS0+aGFzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZygpOwotI2VuZGlmCi0KICAgICByZXR1cm4gY2xpZW50OwogfQogCkBAIC01MTcsNyArNTI2
LDYgQEAgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpXZWJNZWRpYVBsYXllckNsaWVudEltcGwo
KQogICAgIDogbV9tZWRpYVBsYXllcigwKQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICAsIG1fdmlkZW9MYXllcigwKQotICAgICwgbV9zdXBwb3J0c0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmcoZmFsc2UpCiAjZW5kaWYKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKaW5kZXggY2E3YzQzYzE4N2Q5
M2U0MzY5MDY2MjAzMzg2ZGJjZTdmMzQxZTE0OS4uYzJiNDcyMTM2NzJkN2JmMWJiMWFkZDFkMzY5
ZjVlYjA4NzJlNmJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFp
bnQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwor
ICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCBib29s
IGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Q7CiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpAQCAtMTI4LDEyICsxMjksMTQgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhXVEY6Okhhc2hTZXQ8V1RGOjpTdHJp
bmc+Jik7CiAgICAgc3RhdGljIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3Vw
cG9ydHNUeXBlKAogICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgdHlwZSwgY29uc3QgV1RGOjpT
dHJpbmcmIGNvZGVjcyk7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGJv
b2wgYWNjZWxlcmF0ZWRSZW5kZXJpbmdJblVzZSgpOworI2VuZGlmCiAKICAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllciogbV9tZWRpYVBsYXllcjsKICAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXI+IG1f
d2ViTWVkaWFQbGF5ZXI7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFJl
ZlB0cjxXZWJDb3JlOjpWaWRlb0xheWVyQ2hyb21pdW0+IG1fdmlkZW9MYXllcjsKLSAgICBib29s
IG1fc3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOwogI2VuZGlmCiAgICAgc3RhdGljIGJv
b2wgbV9pc0VuYWJsZWQ7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81088</attachid>
            <date>2011-02-03 11:02:27 -0800</date>
            <delta_ts>2011-02-03 21:20:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52868-20110203110225.patch</filename>
            <type>text/plain</type>
            <size>3589</size>
            <attacher name="Victoria Kirst">vrk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZDViYTdiMGExMDY0OGQzN2UwMGM5OWExZDRk
M2MzZjIyOWU1MjE5My4uZGU2MTQ2MzUzMjU5NDk5MGVhM2VhNjMwNTdhODRjYTdkODRlZTlmOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wMi0wMyAg
VmljdG9yaWEgS2lyc3QgIDx2cmtAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBK
YW1lcyBSb2JpbnNvbi4KKworICAgICAgICBbY2hyb21pdW1dIEZpeCByZWR1bmRhbnQgdmlkZW8g
ZnJhbWUgcGFpbnQgb24gQ1NTIExheWVyQ2hyb21pdW0gZm9yIDx2aWRlbz4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyODY4CisKKyAgICAgICAgKiBz
cmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsOjpwYWludCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbDo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmFjY2VsZXJhdGVkUmVuZGVyaW5nSW5Vc2Up
OgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaDoKKwogMjAxMS0wMi0w
MSAgTWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkIHJvbGwgb2YgQ2hyb21pdW0gZGVwcyB0byByNzMzMDYuIFRoaXMgcGlja3MgdXAgYSBm
aXggdG8gZ2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRp
YVBsYXllckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsLmNwcAppbmRleCA2NmFkYjQ4NTM1YTNhYWYzMTlkMGE1YzVjYThl
MDBkZTU0ZDUwMDk4Li44NTNjYmNmN2Q4NTExNzRmYWRhZTE4MGMxODhiOWI5YTJiOGU2ODNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbC5jcHAKQEAgLTM5Nyw2ICszOTcsMTcgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNs
aWVudEltcGw6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIAogdm9pZCBXZWJNZWRpYVBs
YXllckNsaWVudEltcGw6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50
UmVjdCYgcmVjdCkKIHsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgLy8g
SWYgd2UgYXJlIHVzaW5nIEdQVSB0byByZW5kZXIgdmlkZW8sIGlnbm9yZSByZXF1ZXN0cyB0byBw
YWludCBmcmFtZXMgaW50bworICAgIC8vIGNhbnZhcyBiZWNhdXNlIGl0IHdpbGwgYmUgdGFrZW4g
Y2FyZSBvZiBieSBWaWRlb0xheWVyQ2hyb21pdW0uCisgICAgaWYgKGFjY2VsZXJhdGVkUmVuZGVy
aW5nSW5Vc2UoKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCisgICAgcGFpbnRDdXJyZW50RnJh
bWVJbkNvbnRleHQoY29udGV4dCwgcmVjdCk7Cit9CisKK3ZvaWQgV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CiAgICAgLy8gTm9ybWFsbHkgR3JhcGhpY3NDb250
ZXh0IG9wZXJhdGlvbnMgZG8gbm90aGluZyB3aGVuIHBhaW50aW5nIGlzIGRpc2FibGVkLgogICAg
IC8vIFNpbmNlIHdlJ3JlIGFjY2Vzc2luZyBwbGF0Zm9ybUNvbnRleHQoKSBkaXJlY3RseSB3ZSBo
YXZlIHRvIG1hbnVhbGx5CiAgICAgLy8gY2hlY2suCkBAIC00NDUsNiArNDU2LDExIEBAIGJvb2wg
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkg
Y29uc3QKICAgICByZXR1cm4gbV9zdXBwb3J0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7CiB9CiAK
K2Jvb2wgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjphY2NlbGVyYXRlZFJlbmRlcmluZ0luVXNl
KCkKK3sKKyAgICByZXR1cm4gbV92aWRlb0xheWVyLmdldCgpICYmIG1fdmlkZW9MYXllci0+bGF5
ZXJSZW5kZXJlcigpOworfQorCiBWaWRlb0ZyYW1lQ2hyb21pdW0qIFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6Z2V0Q3VycmVudEZyYW1lKCkKIHsKICAgICBWaWRlb0ZyYW1lQ2hyb21pdW0qIHZp
ZGVvRnJhbWUgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJN
ZWRpYVBsYXllckNsaWVudEltcGwuaAppbmRleCBjYTdjNDNjMTg3ZDkzZTQzNjkwNjYyMDMzODZk
YmNlN2YzNDFlMTQ5Li5mY2RiMjE5YTEzMGZlMzQyYzBjNTQ2YWZhZmJjZWVhODRhNWQ4NDc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNs
aWVudEltcGwuaApAQCAtMTExLDYgKzExMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHVuc2ln
bmVkIGJ5dGVzTG9hZGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lk
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU2luZ2xlU2VjdXJp
dHlPcmlnaW4oKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpNb3Zp
ZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUoKSBjb25zdDsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCkBAIC0xMjgsNiArMTI5LDkgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBn
ZXRTdXBwb3J0ZWRUeXBlcyhXVEY6Okhhc2hTZXQ8V1RGOjpTdHJpbmc+Jik7CiAgICAgc3RhdGlj
IFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKAogICAgICAg
ICBjb25zdCBXVEY6OlN0cmluZyYgdHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmIGNvZGVjcyk7Cisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGJvb2wgYWNjZWxlcmF0ZWRSZW5k
ZXJpbmdJblVzZSgpOworI2VuZGlmCiAKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllciogbV9tZWRp
YVBsYXllcjsKICAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXI+IG1fd2ViTWVkaWFQbGF5ZXI7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>