<?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>47178</bug_id>
          
          <creation_ts>2010-10-05 07:52:39 -0700</creation_ts>
          <short_desc>[CHROMIUM] Layout Test fast/canvas/toDataURL-alpha.html failing with --accelerated-2d-canvas</short_desc>
          <delta_ts>2010-10-12 10:31:27 -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>Canvas</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></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="Stephen White">senorblanco</reporter>
          <assigned_to name="Stephen White">senorblanco</assigned_to>
          <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>mdelaney7</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>289603</commentid>
    <comment_count>0</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-10-05 07:52:39 -0700</bug_when>
    <thetext>run_webkit_tests --accelerated-2d-canvas fast/canvas/toDataURL-alpha.html

Expected two green squares.

Actual image contains artifacts in both squares.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289604</commentid>
    <comment_count>1</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-10-05 07:53:17 -0700</bug_when>
    <thetext>See also http://crbug.com/57434.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289623</commentid>
    <comment_count>2</comment_count>
      <attachid>69789</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-10-05 08:30:56 -0700</bug_when>
    <thetext>Created attachment 69789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289630</commentid>
    <comment_count>3</comment_count>
      <attachid>69789</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-10-05 08:37:33 -0700</bug_when>
    <thetext>Comment on attachment 69789
Patch

Found a problem; removing r?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291175</commentid>
    <comment_count>4</comment_count>
      <attachid>70127</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-10-07 12:06:03 -0700</bug_when>
    <thetext>Created attachment 70127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291176</commentid>
    <comment_count>5</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-10-07 12:12:02 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=70127) [details]
&gt; Patch

This patch pushes the responsibility for clearing out new textures down to WebGraphicsContext3DDefaultImpl.  This duplicates what the command buffer code was doing.  Since this behaviour is required by WebGL semantics (I think), and GraphicsContext3D is used to implement WebGL, all GraphicsContext3D implementations should do it.

Ideally, the command buffer clearing code should be refactored to a common place for both command buffers and WebKit, but I&apos;m not sure what the correct place would be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291326</commentid>
    <comment_count>6</comment_count>
      <attachid>70127</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-10-07 16:50:15 -0700</bug_when>
    <thetext>Comment on attachment 70127
Patch

How do we handle this in the command buffer case?  Seems really strange that we only see this in testing.

If the issue is just with the canvas 2d backbuffer then we should just do a glClear() after resizing with texImage2D.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291405</commentid>
    <comment_count>7</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-10-07 19:34:57 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 70127 [details])
&gt; How do we handle this in the command buffer case?  Seems really strange that we only see this in testing.

The command buffer equivalent to this code already clears out the pixels (see GLES2DecoderImpl::DoTexImage2D()).

&gt; If the issue is just with the canvas 2d backbuffer then we should just do a glClear() after resizing with texImage2D.

I tried that in my first patch, but for some reason it messed up the Amazon Shelf demo.

I&apos;m pretty sure this would also affect any WebGL or compositing/CSS3D tests that assume that textures are cleared to black, so we should preserve WebGL semantics for the in-process OSMesa implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291826</commentid>
    <comment_count>8</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-10-08 13:11:14 -0700</bug_when>
    <thetext>BTW, this change reduces the number of fails on canvas/philip/* from 39 to 3, so it&apos;d be nice to get it in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291848</commentid>
    <comment_count>9</comment_count>
      <attachid>70127</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-10-08 14:03:47 -0700</bug_when>
    <thetext>Comment on attachment 70127
Patch

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

&gt; WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp:1241
&gt; +// N.B.:  This code does not protect against integer overflow, so it should
&gt; +// not be considered robust enough for production use.  Since the default impl
&gt; +// is only used for testing, this should be ok for now.
&gt; +int imageSizeInBytes(int width, int height, int format, int type)

Since this is calculating a value in bytes it should return a size_t.  Is the N.B. supposed to be a FIXME? How would it be fixed?

width/height etc are unsigned in the callers, they should be unsigned here as well.

&gt; WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp:1246
&gt; +void WebGraphicsContext3DDefaultImpl::texImage2D(unsigned target, unsigned level, unsigned internalFormat, unsigned width, unsigned height, unsigned border, unsigned format, unsigned type, const void*pixels)

nit: void*pixels needs a space</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292955</commentid>
    <comment_count>10</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-10-12 08:38:12 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 70127 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=70127&amp;action=review
&gt; 
&gt; &gt; WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp:1241
&gt; &gt; +// N.B.:  This code does not protect against integer overflow, so it should
&gt; &gt; +// not be considered robust enough for production use.  Since the default impl
&gt; &gt; +// is only used for testing, this should be ok for now.
&gt; &gt; +int imageSizeInBytes(int width, int height, int format, int type)
&gt; 
&gt; Since this is calculating a value in bytes it should return a size_t.

Fixed.

&gt; Is the N.B. supposed to be a FIXME?

The comment means &quot;this is ok since this implementation is only used for layout tests.  If you were crazy enough to use it for the browser (and you shouldn&apos;t, since it&apos;s inside the renderer process), it should be made more robust.&quot;  I cleaned up the wording a bit to reflect that.

&gt; How would it be fixed?

It could be fixed the same way is is done on the command-buffer side:  all multiplies are done using a function which checks the args for overflow.  This seems like overkill for layout tests.

&gt; width/height etc are unsigned in the callers, they should be unsigned here as well.
&gt; 
&gt; &gt; WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp:1246
&gt; &gt; +void WebGraphicsContext3DDefaultImpl::texImage2D(unsigned target, unsigned level, unsigned internalFormat, unsigned width, unsigned height, unsigned border, unsigned format, unsigned type, const void*pixels)
&gt; 
&gt; nit: void*pixels needs a space

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292956</commentid>
    <comment_count>11</comment_count>
      <attachid>70531</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-10-12 08:38:43 -0700</bug_when>
    <thetext>Created attachment 70531
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292965</commentid>
    <comment_count>12</comment_count>
      <attachid>70531</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-10-12 09:30:07 -0700</bug_when>
    <thetext>Comment on attachment 70531
Patch

Makes sense</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292989</commentid>
    <comment_count>13</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-10-12 10:31:27 -0700</bug_when>
    <thetext>Committed r69588: &lt;http://trac.webkit.org/changeset/69588&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69789</attachid>
            <date>2010-10-05 08:30:56 -0700</date>
            <delta_ts>2010-10-07 12:05:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47178-20101005113054.patch</filename>
            <type>text/plain</type>
            <size>1515</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTEwNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMTAtMDUgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAg
ICAgIAorICAgICAgICBbQ0hST01JVU1dIEZpeCBsYXlvdXQgdGVzdCBmYXN0L2NhbnZhcy90b0Rh
dGFVUkwtYWxwaGEuaHRtbCBmYWlsaW5nIHdpdGggLS1hY2NlbGVyYXRlZC0yZC1jYW52YXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MTc4CisKKyAg
ICAgICAgQ292ZXJlZCBieSBmYXN0L2NhbnZhcy90b0RhdGFVUkwtYWxwaGEuaHRtbC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dMRVMyQ2FudmFzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdMRVMyQ2FudmFzOjpHTEVTMkNhbnZhcyk6CisgICAgICAgIENsZWFyIHRo
ZSBjYW52YXMgb24gaW5pdGlhbGl6YXRpb24uICBUaGlzIHdhcyBvbmx5IHByZXZpb3VzbHkgd29y
a2luZworICAgICAgICBpbiB0aGUgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgcGF0aCBzaW5jZSB0
aGUgdGV4dHVyZXMgdXNlZCBmb3IgRkJPJ3MKKyAgICAgICAgYXJlIGNsZWFyZWQgb24gY3JlYXRp
b24uICBEb2luZyBpdCB0aGlzIHdheSBpcyBzYWZlciBmb3IgYm90aCBwYXRocywKKyAgICAgICAg
YW5kIGhhcyBubyBlZmZlY3Qgb24gYmVuY2htYXJrcy4KKwogMjAxMC0xMC0wNSAgQWRhbSBSb2Jl
biAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2luZG93cyBsaW5rZXIgd2FybmluZyBm
aXgKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR0xFUzJDYW52YXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR0xF
UzJDYW52YXMuY3BwCShyZXZpc2lvbiA2OTEwNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR0xFUzJDYW52YXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCw2ICs3NCw5
IEBAIEdMRVMyQ2FudmFzOjpHTEVTMkNhbnZhcyhTaGFyZWRHcmFwaGljc0MKIAogICAgIG1fc3Rh
dGVTdGFjay5hcHBlbmQoU3RhdGUoKSk7CiAgICAgbV9zdGF0ZSA9ICZtX3N0YXRlU3RhY2subGFz
dCgpOworCisgICAgbV9jb250ZXh0LT5jbGVhckNvbG9yKENvbG9yKFJHQkEzMigwKSkpOworICAg
IG1fY29udGV4dC0+Y2xlYXIoR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0JVRkZFUl9CSVQpOwog
fQogCiBHTEVTMkNhbnZhczo6fkdMRVMyQ2FudmFzKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70127</attachid>
            <date>2010-10-07 12:06:03 -0700</date>
            <delta_ts>2010-10-12 08:38:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47178-20101007150601.patch</filename>
            <type>text/plain</type>
            <size>3896</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjkzMjYpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMTAtMDcgIFN0ZXBo
ZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBaZXJvLW91dCBhbGwgdGV4
dHVyZXMgY3JlYXRlZCB2aWEgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbDo6dGV4SW1h
Z2UyRCgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDcxNzgKKyAgICAgICAgCisgICAgICAgIENvdmVyZWQgYnkgZmFzdC9jYW52YXMvdG9EYXRhVVJM
LWFscGhhLmh0bWwsIHdoZW4gcnVuIHdpdGggLS1hY2NlbGVyYXRlZC0yZC1jYW52YXMuCisKKyAg
ICAgICAgKiBzcmMvV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OmJ5dGVzUGVyQ29tcG9uZW50KToKKyAgICAgICAgKFdlYktpdDo6Y29tcG9uZW50
c1BlclBpeGVsKToKKyAgICAgICAgKFdlYktpdDo6aW1hZ2VTaXplSW5CeXRlcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGw6OnRleEltYWdlMkQpOgor
CiAyMDEwLTEwLTA3ICBEYXZlIE1vb3JlICA8ZGF2ZW1vb3JlQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsLmNwcAkocmV2aXNp
b24gNjkzMjUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdyYXBoaWNzQ29udGV4dDNERGVm
YXVsdEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAi
YXBwL2dmeC9nbC9nbF9jb250ZXh0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNp
bmNsdWRlICJXZWJWaWV3LmgiCisjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAg
LTExOTAsNiArMTE5MSw3MCBAQCBERUxFR0FURV9UT19HTF8yKHNhbXBsZUNvdmVyYWdlLCBTYW1w
bGVDCiAKIERFTEVHQVRFX1RPX0dMXzQoc2Npc3NvciwgU2Npc3NvciwgbG9uZywgbG9uZywgdW5z
aWduZWQgbG9uZywgdW5zaWduZWQgbG9uZykKIAoraW50IGJ5dGVzUGVyQ29tcG9uZW50KGludCB0
eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgR0xfQllURToKKyAgICBjYXNl
IEdMX1VOU0lHTkVEX0JZVEU6CisgICAgICAgIHJldHVybiAxOworICAgIGNhc2UgR0xfU0hPUlQ6
CisgICAgY2FzZSBHTF9VTlNJR05FRF9TSE9SVDoKKyAgICBjYXNlIEdMX1VOU0lHTkVEX1NIT1JU
XzVfNl81OgorICAgIGNhc2UgR0xfVU5TSUdORURfU0hPUlRfNF80XzRfNDoKKyAgICBjYXNlIEdM
X1VOU0lHTkVEX1NIT1JUXzVfNV81XzE6CisgICAgICAgIHJldHVybiAyOworICAgIGNhc2UgR0xf
RkxPQVQ6CisgICAgICAgIHJldHVybiA0OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiA0
OworICAgIH0KK30KKworaW50IGNvbXBvbmVudHNQZXJQaXhlbChpbnQgZm9ybWF0LCBpbnQgdHlw
ZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEdMX1VOU0lHTkVEX1NIT1JUXzVf
Nl81OgorICAgIGNhc2UgR0xfVU5TSUdORURfU0hPUlRfNF80XzRfNDoKKyAgICBjYXNlIEdMX1VO
U0lHTkVEX1NIT1JUXzVfNV81XzE6CisgICAgICAgIHJldHVybiAxOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGZvcm1hdCkgeworICAgIGNhc2UgR0xf
TFVNSU5BTkNFOgorICAgICAgICByZXR1cm4gMTsKKyAgICBjYXNlIEdMX0xVTUlOQU5DRV9BTFBI
QToKKyAgICAgICAgcmV0dXJuIDI7CisgICAgY2FzZSBHTF9SR0I6CisgICAgICAgIHJldHVybiAz
OworICAgIGNhc2UgR0xfUkdCQToKKyAgICBjYXNlIEdMX0JHUkFfRVhUOgorICAgICAgICByZXR1
cm4gNDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gNDsKKyAgICB9Cit9CisKKy8vIE4u
Qi46ICBUaGlzIGNvZGUgZG9lcyBub3QgcHJvdGVjdCBhZ2FpbnN0IGludGVnZXIgb3ZlcmZsb3cs
IHNvIGl0IHNob3VsZAorLy8gbm90IGJlIGNvbnNpZGVyZWQgcm9idXN0IGVub3VnaCBmb3IgcHJv
ZHVjdGlvbiB1c2UuICBTaW5jZSB0aGUgZGVmYXVsdCBpbXBsCisvLyBpcyBvbmx5IHVzZWQgZm9y
IHRlc3RpbmcsIHRoaXMgc2hvdWxkIGJlIG9rIGZvciBub3cuCitpbnQgaW1hZ2VTaXplSW5CeXRl
cyhpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBmb3JtYXQsIGludCB0eXBlKQoreworICAgIHJl
dHVybiB3aWR0aCAqIGhlaWdodCAqIGJ5dGVzUGVyQ29tcG9uZW50KHR5cGUpICogY29tcG9uZW50
c1BlclBpeGVsKGZvcm1hdCwgdHlwZSk7Cit9CisKK3ZvaWQgV2ViR3JhcGhpY3NDb250ZXh0M0RE
ZWZhdWx0SW1wbDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1
bnNpZ25lZCBpbnRlcm5hbEZvcm1hdCwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwg
dW5zaWduZWQgYm9yZGVyLCB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIGNvbnN0IHZv
aWQqcGl4ZWxzKQoreworICAgIE93bkFycmF5UHRyPHVpbnQ4PiB6ZXJvOworICAgIGlmICghcGl4
ZWxzKSB7CisgICAgICAgIGludCBzaXplID0gaW1hZ2VTaXplSW5CeXRlcyh3aWR0aCwgaGVpZ2h0
LCBmb3JtYXQsIHR5cGUpOworICAgICAgICB6ZXJvLnNldChuZXcgdWludDhbc2l6ZV0pOworICAg
ICAgICBtZW1zZXQoemVyby5nZXQoKSwgMCwgc2l6ZSk7CisgICAgICAgIHBpeGVscyA9IHplcm8u
Z2V0KCk7CisgICAgfQorICAgIGdsVGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbEZv
cm1hdCwgd2lkdGgsIGhlaWdodCwgYm9yZGVyLCBmb3JtYXQsIHR5cGUsIHBpeGVscyk7Cit9CisK
IHZvaWQgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbDo6c2hhZGVyU291cmNlKFdlYkdM
SWQgc2hhZGVyLCBjb25zdCBjaGFyKiBzdHJpbmcpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50
KCk7CkBAIC0xMjIxLDggKzEyODYsNiBAQCBERUxFR0FURV9UT19HTF8zKHN0ZW5jaWxPcCwgU3Rl
bmNpbE9wLCB1CiAKIERFTEVHQVRFX1RPX0dMXzQoc3RlbmNpbE9wU2VwYXJhdGUsIFN0ZW5jaWxP
cFNlcGFyYXRlLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1
bnNpZ25lZCBsb25nKQogCi1ERUxFR0FURV9UT19HTF85KHRleEltYWdlMkQsIFRleEltYWdlMkQs
IHVuc2lnbmVkLCB1bnNpZ25lZCwgdW5zaWduZWQsIHVuc2lnbmVkLCB1bnNpZ25lZCwgdW5zaWdu
ZWQsIHVuc2lnbmVkLCB1bnNpZ25lZCwgY29uc3Qgdm9pZCopCi0KIERFTEVHQVRFX1RPX0dMXzMo
dGV4UGFyYW1ldGVyZiwgVGV4UGFyYW1ldGVyZiwgdW5zaWduZWQsIHVuc2lnbmVkLCBmbG9hdCk7
CiAKIERFTEVHQVRFX1RPX0dMXzModGV4UGFyYW1ldGVyaSwgVGV4UGFyYW1ldGVyaSwgdW5zaWdu
ZWQsIHVuc2lnbmVkLCBpbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70531</attachid>
            <date>2010-10-12 08:38:43 -0700</date>
            <delta_ts>2010-10-12 09:30:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47178-20101012113841.patch</filename>
            <type>text/plain</type>
            <size>4006</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjk1ODMpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMTAtMDcgIFN0ZXBo
ZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBaZXJvLW91dCBhbGwgdGV4
dHVyZXMgY3JlYXRlZCB2aWEgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbDo6dGV4SW1h
Z2UyRCgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDcxNzgKKyAgICAgICAgCisgICAgICAgIENvdmVyZWQgYnkgZmFzdC9jYW52YXMvdG9EYXRhVVJM
LWFscGhhLmh0bWwsIHdoZW4gcnVuIHdpdGggLS1hY2NlbGVyYXRlZC0yZC1jYW52YXMuCisKKyAg
ICAgICAgKiBzcmMvV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OmJ5dGVzUGVyQ29tcG9uZW50KToKKyAgICAgICAgKFdlYktpdDo6Y29tcG9uZW50
c1BlclBpeGVsKToKKyAgICAgICAgKFdlYktpdDo6aW1hZ2VTaXplSW5CeXRlcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGw6OnRleEltYWdlMkQpOgor
CiAyMDEwLTEwLTExICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbC5jcHAJKHJldmlzaW9u
IDY5NTgzKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHcmFwaGljc0NvbnRleHQzRERlZmF1
bHRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImFw
cC9nZngvZ2wvZ2xfY29udGV4dC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5j
bHVkZSAiV2ViVmlldy5oIgorI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0x
MTkwLDYgKzExOTEsNzEgQEAgREVMRUdBVEVfVE9fR0xfMihzYW1wbGVDb3ZlcmFnZSwgU2FtcGxl
QwogCiBERUxFR0FURV9UT19HTF80KHNjaXNzb3IsIFNjaXNzb3IsIGxvbmcsIGxvbmcsIHVuc2ln
bmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpCiAKK3Vuc2lnbmVkIGJ5dGVzUGVyQ29tcG9uZW50KHVu
c2lnbmVkIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBHTF9CWVRFOgor
ICAgIGNhc2UgR0xfVU5TSUdORURfQllURToKKyAgICAgICAgcmV0dXJuIDE7CisgICAgY2FzZSBH
TF9TSE9SVDoKKyAgICBjYXNlIEdMX1VOU0lHTkVEX1NIT1JUOgorICAgIGNhc2UgR0xfVU5TSUdO
RURfU0hPUlRfNV82XzU6CisgICAgY2FzZSBHTF9VTlNJR05FRF9TSE9SVF80XzRfNF80OgorICAg
IGNhc2UgR0xfVU5TSUdORURfU0hPUlRfNV81XzVfMToKKyAgICAgICAgcmV0dXJuIDI7CisgICAg
Y2FzZSBHTF9GTE9BVDoKKyAgICAgICAgcmV0dXJuIDQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
cmV0dXJuIDQ7CisgICAgfQorfQorCit1bnNpZ25lZCBjb21wb25lbnRzUGVyUGl4ZWwodW5zaWdu
ZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNh
c2UgR0xfVU5TSUdORURfU0hPUlRfNV82XzU6CisgICAgY2FzZSBHTF9VTlNJR05FRF9TSE9SVF80
XzRfNF80OgorICAgIGNhc2UgR0xfVU5TSUdORURfU0hPUlRfNV81XzVfMToKKyAgICAgICAgcmV0
dXJuIDE7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAo
Zm9ybWF0KSB7CisgICAgY2FzZSBHTF9MVU1JTkFOQ0U6CisgICAgICAgIHJldHVybiAxOworICAg
IGNhc2UgR0xfTFVNSU5BTkNFX0FMUEhBOgorICAgICAgICByZXR1cm4gMjsKKyAgICBjYXNlIEdM
X1JHQjoKKyAgICAgICAgcmV0dXJuIDM7CisgICAgY2FzZSBHTF9SR0JBOgorICAgIGNhc2UgR0xf
QkdSQV9FWFQ6CisgICAgICAgIHJldHVybiA0OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVy
biA0OworICAgIH0KK30KKworLy8gTi5CLjogIFRoaXMgY29kZSBkb2VzIG5vdCBwcm90ZWN0IGFn
YWluc3QgaW50ZWdlciBvdmVyZmxvdyAoYXMgdGhlIGNvbW1hbmQKKy8vIGJ1ZmZlciBpbXBsZW1l
bnRhdGlvbiBkb2VzKSwgc28gaXQgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHJvYnVzdCBlbm91
Z2gKKy8vIGZvciB1c2UgaW4gdGhlIGJyb3dzZXIuICBTaW5jZSB0aGlzIGltcGxlbWVudGF0aW9u
IGlzIG9ubHkgdXNlZCBmb3IgbGF5b3V0CisvLyB0ZXN0cywgdGhpcyBzaG91bGQgYmUgb2sgZm9y
IG5vdy4KK3NpemVfdCBpbWFnZVNpemVJbkJ5dGVzKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBo
ZWlnaHQsIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSkKK3sKKyAgICByZXR1cm4gd2lk
dGggKiBoZWlnaHQgKiBieXRlc1BlckNvbXBvbmVudCh0eXBlKSAqIGNvbXBvbmVudHNQZXJQaXhl
bChmb3JtYXQsIHR5cGUpOworfQorCit2b2lkIFdlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdElt
cGw6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQg
aW50ZXJuYWxGb3JtYXQsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsIHVuc2lnbmVk
IGJvcmRlciwgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBjb25zdCB2b2lkKiBwaXhl
bHMpCit7CisgICAgT3duQXJyYXlQdHI8dWludDg+IHplcm87CisgICAgaWYgKCFwaXhlbHMpIHsK
KyAgICAgICAgc2l6ZV90IHNpemUgPSBpbWFnZVNpemVJbkJ5dGVzKHdpZHRoLCBoZWlnaHQsIGZv
cm1hdCwgdHlwZSk7CisgICAgICAgIHplcm8uc2V0KG5ldyB1aW50OFtzaXplXSk7CisgICAgICAg
IG1lbXNldCh6ZXJvLmdldCgpLCAwLCBzaXplKTsKKyAgICAgICAgcGl4ZWxzID0gemVyby5nZXQo
KTsKKyAgICB9CisgICAgZ2xUZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0
LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIsIGZvcm1hdCwgdHlwZSwgcGl4ZWxzKTsKK30KKwogdm9p
ZCBXZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjpzaGFkZXJTb3VyY2UoV2ViR0xJZCBz
aGFkZXIsIGNvbnN0IGNoYXIqIHN0cmluZykKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsK
QEAgLTEyMjEsOCArMTI4Nyw2IEBAIERFTEVHQVRFX1RPX0dMXzMoc3RlbmNpbE9wLCBTdGVuY2ls
T3AsIHUKIAogREVMRUdBVEVfVE9fR0xfNChzdGVuY2lsT3BTZXBhcmF0ZSwgU3RlbmNpbE9wU2Vw
YXJhdGUsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2ln
bmVkIGxvbmcpCiAKLURFTEVHQVRFX1RPX0dMXzkodGV4SW1hZ2UyRCwgVGV4SW1hZ2UyRCwgdW5z
aWduZWQsIHVuc2lnbmVkLCB1bnNpZ25lZCwgdW5zaWduZWQsIHVuc2lnbmVkLCB1bnNpZ25lZCwg
dW5zaWduZWQsIHVuc2lnbmVkLCBjb25zdCB2b2lkKikKLQogREVMRUdBVEVfVE9fR0xfMyh0ZXhQ
YXJhbWV0ZXJmLCBUZXhQYXJhbWV0ZXJmLCB1bnNpZ25lZCwgdW5zaWduZWQsIGZsb2F0KTsKIAog
REVMRUdBVEVfVE9fR0xfMyh0ZXhQYXJhbWV0ZXJpLCBUZXhQYXJhbWV0ZXJpLCB1bnNpZ25lZCwg
dW5zaWduZWQsIGludCk7Cg==
</data>
<flag name="review"
          id="60390"
          type_id="1"
          status="+"
          setter="jamesr"
    />
          </attachment>
      

    </bug>

</bugzilla>