<?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>71846</bug_id>
          
          <creation_ts>2011-11-08 12:19:40 -0800</creation_ts>
          <short_desc>[chromium] Separate image encoding from dataURL construction</short_desc>
          <delta_ts>2011-11-09 14:53:26 -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>Canvas</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="noel gordon">noel.gordon</reporter>
          <assigned_to name="noel gordon">noel.gordon</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jbauman</cc>
    
    <cc>kbr</cc>
    
    <cc>levin</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>498333</commentid>
    <comment_count>0</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-11-08 12:19:40 -0800</bug_when>
    <thetext>Remove the implicit assumption that a dataURL is the only desired output format of the image encoding phase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498354</commentid>
    <comment_count>1</comment_count>
      <attachid>114135</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-11-08 12:36:31 -0800</bug_when>
    <thetext>Created attachment 114135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498375</commentid>
    <comment_count>2</comment_count>
      <attachid>114135</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-08 12:53:11 -0800</bug_when>
    <thetext>Comment on attachment 114135
Patch

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

&gt; Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp:366
&gt; +    Vector&lt;unsigned char&gt;* encodedImage = static_cast&lt;Vector&lt;unsigned char&gt;*&gt;(output);

Crazy!  We can&apos;t be consistent about the type?

&gt; Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp:-390
&gt; -    base64Encode(*reinterpret_cast&lt;Vector&lt;char&gt;*&gt;(&amp;encodedImage), base64Data);

I see.  Frowns.

&gt; Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp:401
&gt; +    return &quot;data:&quot; + mimeType + &quot;;base64,&quot; + base64Data;

Should we CRASH or ASSERT or something that mimeType doesn&apos;t have a ; or a , character?

&gt; Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp:408
&gt; +    Vector&lt;char&gt; encodedImage, base64Data;

WebKit doesn&apos;t usually use compound declarations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498462</commentid>
    <comment_count>3</comment_count>
      <attachid>114135</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-08 15:14:30 -0800</bug_when>
    <thetext>Comment on attachment 114135
Patch

Attachment 114135 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10376193</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498551</commentid>
    <comment_count>4</comment_count>
      <attachid>114181</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-11-08 17:25:50 -0800</bug_when>
    <thetext>Created attachment 114181
Patch: linux EWS build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498556</commentid>
    <comment_count>5</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-11-08 17:33:04 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 114135 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=114135&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp:366
&gt; &gt; +    Vector&lt;unsigned char&gt;* encodedImage = static_cast&lt;Vector&lt;unsigned char&gt;*&gt;(output);
&gt; 
&gt; Crazy!  We can&apos;t be consistent about the type?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp:-390
&gt; &gt; -    base64Encode(*reinterpret_cast&lt;Vector&lt;char&gt;*&gt;(&amp;encodedImage), base64Data);
&gt; 
&gt; I see.  Frowns.

The image encoders want unsigned char, the base64 encoder wants char, and we need to marry
the two.  Those reinterpret_cast gymnastics made me frown too.  Hoped that the static_cast
would be a little more sane, but the Linux EWS demands a reinterpret_cast *sigh*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498562</commentid>
    <comment_count>6</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-11-08 17:42:44 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp:401
&gt; &gt; +    return &quot;data:&quot; + mimeType + &quot;;base64,&quot; + base64Data;
&gt; 
&gt; Should we CRASH or ASSERT or something that mimeType doesn&apos;t have a ; or a , character?

Good question, but no.  The ASSERT guards at the entry to these routines state:

   ASSERT(MIMETypeRegistry::isSupportedImageMIMETypeForEncoding(mimeType));

the expectation being that the mimeType is already canonical.  Caller must do the work to
make it so.

Only current caller is &lt;canvas&gt;.toDataURL(), it converts the mimeType to canonical &amp; maps
bogus user input to &quot;image/png&quot; as required by the standard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498567</commentid>
    <comment_count>7</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-11-08 17:50:34 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp:408
&gt; &gt; +    Vector&lt;char&gt; encodedImage, base64Data;
&gt; 
&gt; WebKit doesn&apos;t usually use compound declarations.

Not something I&apos;d usually do either, maybe ok here since there&apos;s no pointer confusion but
what I&apos;d really like to write is

    return &quot;data:&quot; + mimeType + &quot;;base64,&quot; + base64Encode(encodedImage);

and ditch the temporary variable.  Might be a reasonable subject for another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498582</commentid>
    <comment_count>8</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-11-08 18:19:32 -0800</bug_when>
    <thetext>&gt; Only current caller is &lt;canvas&gt;.toDataURL(), it converts the mimeType to canonical &amp; maps
&gt; bogus user input to &quot;image/png&quot; as required by the standard.

I used &quot;bogus&quot; here in a technical sense

http://trac.webkit.org/browser/trunk/LayoutTests/canvas/philip/tests/toDataURL.bogustype.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499377</commentid>
    <comment_count>9</comment_count>
      <attachid>114181</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 14:53:20 -0800</bug_when>
    <thetext>Comment on attachment 114181
Patch: linux EWS build fix.

Clearing flags on attachment: 114181

Committed r99763: &lt;http://trac.webkit.org/changeset/99763&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499378</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 14:53:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114135</attachid>
            <date>2011-11-08 12:36:31 -0800</date>
            <delta_ts>2011-11-08 17:25:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71846-20111109073629.patch</filename>
            <type>text/plain</type>
            <size>4750</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkzNzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhYWEwOTEzOGRkMzYwZWQ0
OGFmYzMyMGU2ZDkzNTk2YzhhMGY5YzJhLi5hYTg3ZDZmZDc3NDI5ZjgzOTdjNWFhZDBlN2QwOTUx
ZDczNmQ2N2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTEtMDggIE5vZWwg
R29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gU2Vw
YXJhdGUgaW1hZ2UgZW5jb2RpbmcgZnJvbSBkYXRhVVJMIGNvbnN0cnVjdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE4NDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhlIGltcGxpY2l0
IGFzc3VtcHRpb24gdGhhdCBhIGRhdGFVUkwgaXMgdGhlIG9ubHkgZGVzaXJlZCBvdXRwdXQgZm9y
bWF0IG9mIHRoZQorICAgICAgICB0aGUgaW1hZ2UgZW5jb2RpbmcgcGhhc2UuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCByZWZhY3RvcmluZyBvbmx5LCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIGNhbnZh
cyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJT
a2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuY29kZUltYWdlKTogIE91dHB1dCB0aGUgZW5j
b2RlZCBpbWFnZSB0byBhIFZlY3Rvci4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjp0
b0RhdGFVUkwpOiAgRm9ybWF0IHRoZSBkYXRhVVJMIGVuY29kaW5nIG9mIHRoZSBtaW1lVHlwZSBl
bmNvZGVkCisgICAgICAgIGltYWdlIFZlY3RvciBoZXJlLiAgTW92ZSB0aGUgbWltZVR5cGUgZW5j
b2RpbmcgZGVidWcgY2hlY2sgaGVyZSB0byBiZXR0ZXIgYWxpZ24gdGhpcworICAgICAgICBjb2Rl
IHdpdGggdGhlIENHIChDb3JlR3JhcGhpY3MpIEltYWdlQnVmZmVyLmNwcCBpbXBsZW1lbnRhdGlv
bi4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGF0YVRvRGF0YVVSTCk6IGRpdHRvLgorCiAyMDEx
LTExLTA2ICBOaWtpdGEgVmFzaWx5ZXYgIDxtZUBlbHYxcy5ydT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBVbmluZGVudCBlZGl0ZWQgdGV4dCBieSBwcmVzc2luZyBTaGlmdCArIFRhYgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZl
clNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1
ZmZlclNraWEuY3BwCmluZGV4IDU3MWNmMWMyMjA2MDliMWNjOWNmNDEzNjU0M2NhYTlhNGVkZjUw
NTAuLjFkMDA4ODcyNTdkZjU2ZjJjMWJhNzhhODAyYjg2NmJmODBiYmQ2NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVy
U2tpYS5jcHAKQEAgLTM2MSw0NiArMzYxLDU2IEBAIHZvaWQgSW1hZ2VCdWZmZXI6OnB1dFByZW11
bHRpcGxpZWRJbWFnZURhdGEoQnl0ZUFycmF5KiBzb3VyY2UsIGNvbnN0IEludFNpemUmIHNvCiB9
CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RhdGljIFN0cmluZyBJbWFnZVRvRGF0YVVSTChU
JiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IGRvdWJsZSogcXVhbGl0eSkK
K3N0YXRpYyBib29sIGVuY29kZUltYWdlKFQmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgY29uc3QgZG91YmxlKiBxdWFsaXR5LCBWZWN0b3I8Y2hhcj4qIG91dHB1dCkKIHsKLSAgICBB
U1NFUlQoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlRm9yRW5jb2Rp
bmcobWltZVR5cGUpKTsKKyAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4qIGVuY29kZWRJbWFnZSA9
IHN0YXRpY19jYXN0PFZlY3Rvcjx1bnNpZ25lZCBjaGFyPio+KG91dHB1dCk7CiAKLSAgICBWZWN0
b3I8dW5zaWduZWQgY2hhcj4gZW5jb2RlZEltYWdlOwogICAgIGlmIChtaW1lVHlwZSA9PSAiaW1h
Z2UvanBlZyIpIHsKICAgICAgICAgaW50IGNvbXByZXNzaW9uUXVhbGl0eSA9IEpQRUdJbWFnZUVu
Y29kZXI6OkRlZmF1bHRDb21wcmVzc2lvblF1YWxpdHk7CiAgICAgICAgIGlmIChxdWFsaXR5ICYm
ICpxdWFsaXR5ID49IDAuMCAmJiAqcXVhbGl0eSA8PSAxLjApCiAgICAgICAgICAgICBjb21wcmVz
c2lvblF1YWxpdHkgPSBzdGF0aWNfY2FzdDxpbnQ+KCpxdWFsaXR5ICogMTAwICsgMC41KTsKLSAg
ICAgICAgaWYgKCFKUEVHSW1hZ2VFbmNvZGVyOjplbmNvZGUoc291cmNlLCBjb21wcmVzc2lvblF1
YWxpdHksICZlbmNvZGVkSW1hZ2UpKQotICAgICAgICAgICAgcmV0dXJuICJkYXRhOiwiOworICAg
ICAgICBpZiAoIUpQRUdJbWFnZUVuY29kZXI6OmVuY29kZShzb3VyY2UsIGNvbXByZXNzaW9uUXVh
bGl0eSwgZW5jb2RlZEltYWdlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBVU0Uo
V0VCUCkKICAgICB9IGVsc2UgaWYgKG1pbWVUeXBlID09ICJpbWFnZS93ZWJwIikgewogICAgICAg
ICBpbnQgY29tcHJlc3Npb25RdWFsaXR5ID0gV0VCUEltYWdlRW5jb2Rlcjo6RGVmYXVsdENvbXBy
ZXNzaW9uUXVhbGl0eTsKICAgICAgICAgaWYgKHF1YWxpdHkgJiYgKnF1YWxpdHkgPj0gMC4wICYm
ICpxdWFsaXR5IDw9IDEuMCkKICAgICAgICAgICAgIGNvbXByZXNzaW9uUXVhbGl0eSA9IHN0YXRp
Y19jYXN0PGludD4oKnF1YWxpdHkgKiAxMDAgKyAwLjUpOwotICAgICAgICBpZiAoIVdFQlBJbWFn
ZUVuY29kZXI6OmVuY29kZShzb3VyY2UsIGNvbXByZXNzaW9uUXVhbGl0eSwgJmVuY29kZWRJbWFn
ZSkpCi0gICAgICAgICAgICByZXR1cm4gImRhdGE6LCI7CisgICAgICAgIGlmICghV0VCUEltYWdl
RW5jb2Rlcjo6ZW5jb2RlKHNvdXJjZSwgY29tcHJlc3Npb25RdWFsaXR5LCBlbmNvZGVkSW1hZ2Up
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAgICAgfSBlbHNlIHsKLSAgICAg
ICAgaWYgKCFQTkdJbWFnZUVuY29kZXI6OmVuY29kZShzb3VyY2UsICZlbmNvZGVkSW1hZ2UpKQot
ICAgICAgICAgICAgcmV0dXJuICJkYXRhOiwiOworICAgICAgICBpZiAoIVBOR0ltYWdlRW5jb2Rl
cjo6ZW5jb2RlKHNvdXJjZSwgZW5jb2RlZEltYWdlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgQVNTRVJUKG1pbWVUeXBlID09ICJpbWFnZS9wbmciKTsKICAgICB9CiAKLSAg
ICBWZWN0b3I8Y2hhcj4gYmFzZTY0RGF0YTsKLSAgICBiYXNlNjRFbmNvZGUoKnJlaW50ZXJwcmV0
X2Nhc3Q8VmVjdG9yPGNoYXI+Kj4oJmVuY29kZWRJbWFnZSksIGJhc2U2NERhdGEpOwotCi0gICAg
cmV0dXJuICJkYXRhOiIgKyBtaW1lVHlwZSArICI7YmFzZTY0LCIgKyBiYXNlNjREYXRhOworICAg
IHJldHVybiB0cnVlOwogfQogCiBTdHJpbmcgSW1hZ2VCdWZmZXI6OnRvRGF0YVVSTChjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUqIHF1YWxpdHkpIGNvbnN0CiB7CisgICAgQVNT
RVJUKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZUZvckVuY29kaW5n
KG1pbWVUeXBlKSk7CisKKyAgICBWZWN0b3I8Y2hhcj4gZW5jb2RlZEltYWdlLCBiYXNlNjREYXRh
OwogICAgIFNrRGV2aWNlKiBkZXZpY2UgPSBjb250ZXh0KCktPnBsYXRmb3JtQ29udGV4dCgpLT5j
YW52YXMoKS0+Z2V0RGV2aWNlKCk7Ci0gICAgcmV0dXJuIEltYWdlVG9EYXRhVVJMKGRldmljZS0+
YWNjZXNzQml0bWFwKGZhbHNlKSwgbWltZVR5cGUsIHF1YWxpdHkpOworICAgIGlmICghZW5jb2Rl
SW1hZ2UoZGV2aWNlLT5hY2Nlc3NCaXRtYXAoZmFsc2UpLCBtaW1lVHlwZSwgcXVhbGl0eSwgJmVu
Y29kZWRJbWFnZSkpCisgICAgICAgIHJldHVybiAiZGF0YTosIjsKKworICAgIGJhc2U2NEVuY29k
ZShlbmNvZGVkSW1hZ2UsIGJhc2U2NERhdGEpOworICAgIHJldHVybiAiZGF0YToiICsgbWltZVR5
cGUgKyAiO2Jhc2U2NCwiICsgYmFzZTY0RGF0YTsKIH0KIAotU3RyaW5nIEltYWdlRGF0YVRvRGF0
YVVSTChjb25zdCBJbWFnZURhdGEmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29u
c3QgZG91YmxlKiBxdWFsaXR5KQorU3RyaW5nIEltYWdlRGF0YVRvRGF0YVVSTChjb25zdCBJbWFn
ZURhdGEmIGltYWdlRGF0YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgZG91YmxlKiBx
dWFsaXR5KQogewotICAgIHJldHVybiBJbWFnZVRvRGF0YVVSTChzb3VyY2UsIG1pbWVUeXBlLCBx
dWFsaXR5KTsKKyAgICBBU1NFUlQoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRJbWFnZU1J
TUVUeXBlRm9yRW5jb2RpbmcobWltZVR5cGUpKTsKKworICAgIFZlY3RvcjxjaGFyPiBlbmNvZGVk
SW1hZ2UsIGJhc2U2NERhdGE7CisgICAgaWYgKCFlbmNvZGVJbWFnZShpbWFnZURhdGEsIG1pbWVU
eXBlLCBxdWFsaXR5LCAmZW5jb2RlZEltYWdlKSkKKyAgICAgICAgcmV0dXJuICJkYXRhOiwiOwor
CisgICAgYmFzZTY0RW5jb2RlKGVuY29kZWRJbWFnZSwgYmFzZTY0RGF0YSk7CisgICAgcmV0dXJu
ICJkYXRhOiIgKyBtaW1lVHlwZSArICI7YmFzZTY0LCIgKyBiYXNlNjREYXRhOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114181</attachid>
            <date>2011-11-08 17:25:50 -0800</date>
            <delta_ts>2011-11-09 14:53:20 -0800</delta_ts>
            <desc>Patch: linux EWS build fix.</desc>
            <filename>bug-71846-20111109122548.patch</filename>
            <type>text/plain</type>
            <size>4762</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk2MjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNWNlYThjOTE1NmFhYWM3
MjkzMDAxODMxZTNjMjUyMGUyNzBlMTU0Li44ODY1ZmYyNWE4NzMwZGU1NzVlMDMwN2M5ODM1NjAw
ZmExNWVjZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTEtMDggIE5vZWwg
R29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gU2Vw
YXJhdGUgaW1hZ2UgZW5jb2RpbmcgZnJvbSBkYXRhVVJMIGNvbnN0cnVjdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE4NDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIFJlbW92ZSB0aGUgaW1wbGljaXQgYXNz
dW1wdGlvbiB0aGF0IGEgZGF0YVVSTCBpcyB0aGUgb25seSBkZXNpcmVkIG91dHB1dCBmb3JtYXQg
b2YgdGhlCisgICAgICAgIHRoZSBpbWFnZSBlbmNvZGluZyBwaGFzZS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIHJlZmFjdG9yaW5nIG9ubHksIGNvdmVyZWQgYnkgZXhpc3RpbmcgY2FudmFzIHRl
c3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5jb2RlSW1hZ2UpOiAgT3V0cHV0IHRoZSBlbmNvZGVk
IGltYWdlIHRvIGEgVmVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OnRvRGF0
YVVSTCk6ICBGb3JtYXQgdGhlIGRhdGFVUkwgZW5jb2Rpbmcgb2YgdGhlIG1pbWVUeXBlIGVuY29k
ZWQKKyAgICAgICAgaW1hZ2UgVmVjdG9yIGhlcmUuICBNb3ZlIHRoZSBtaW1lVHlwZSBlbmNvZGlu
ZyBkZWJ1ZyBjaGVjayBoZXJlIHRvIGJldHRlciBhbGlnbiB0aGlzCisgICAgICAgIGNvZGUgd2l0
aCB0aGUgQ0cgKENvcmVHcmFwaGljcykgSW1hZ2VCdWZmZXIuY3BwIGltcGxlbWVudGF0aW9uLgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEYXRhVG9EYXRhVVJMKTogZGl0dG8uCisKIDIwMTEtMTEt
MDggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgVG93YXJk
cyA4IEJpdCBTdHJpbmdzOiBUZW1wbGF0aXplIEpTQzo6UGFyc2VyIGNsYXNzIGJ5IExleGVyIHR5
cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1h
Z2VCdWZmZXJTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
SW1hZ2VCdWZmZXJTa2lhLmNwcAppbmRleCA1NzFjZjFjMjIwNjA5YjFjYzljZjQxMzY1NDNjYWE5
YTRlZGY1MDUwLi5mZGI1MWM4MTJjNzJkNTI2YTU1OTM4MWE5ZGE2MTg3MDUyMjlhZTg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVy
U2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFn
ZUJ1ZmZlclNraWEuY3BwCkBAIC0zNjEsNDYgKzM2MSw1NiBAQCB2b2lkIEltYWdlQnVmZmVyOjpw
dXRQcmVtdWx0aXBsaWVkSW1hZ2VEYXRhKEJ5dGVBcnJheSogc291cmNlLCBjb25zdCBJbnRTaXpl
JiBzbwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0YXRpYyBTdHJpbmcgSW1hZ2VUb0Rh
dGFVUkwoVCYgc291cmNlLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUqIHF1
YWxpdHkpCitzdGF0aWMgYm9vbCBlbmNvZGVJbWFnZShUJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIGNvbnN0IGRvdWJsZSogcXVhbGl0eSwgVmVjdG9yPGNoYXI+KiBvdXRwdXQpCiB7
Ci0gICAgQVNTRVJUKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZUZv
ckVuY29kaW5nKG1pbWVUeXBlKSk7CisgICAgVmVjdG9yPHVuc2lnbmVkIGNoYXI+KiBlbmNvZGVk
SW1hZ2UgPSByZWludGVycHJldF9jYXN0PFZlY3Rvcjx1bnNpZ25lZCBjaGFyPio+KG91dHB1dCk7
CiAKLSAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4gZW5jb2RlZEltYWdlOwogICAgIGlmIChtaW1l
VHlwZSA9PSAiaW1hZ2UvanBlZyIpIHsKICAgICAgICAgaW50IGNvbXByZXNzaW9uUXVhbGl0eSA9
IEpQRUdJbWFnZUVuY29kZXI6OkRlZmF1bHRDb21wcmVzc2lvblF1YWxpdHk7CiAgICAgICAgIGlm
IChxdWFsaXR5ICYmICpxdWFsaXR5ID49IDAuMCAmJiAqcXVhbGl0eSA8PSAxLjApCiAgICAgICAg
ICAgICBjb21wcmVzc2lvblF1YWxpdHkgPSBzdGF0aWNfY2FzdDxpbnQ+KCpxdWFsaXR5ICogMTAw
ICsgMC41KTsKLSAgICAgICAgaWYgKCFKUEVHSW1hZ2VFbmNvZGVyOjplbmNvZGUoc291cmNlLCBj
b21wcmVzc2lvblF1YWxpdHksICZlbmNvZGVkSW1hZ2UpKQotICAgICAgICAgICAgcmV0dXJuICJk
YXRhOiwiOworICAgICAgICBpZiAoIUpQRUdJbWFnZUVuY29kZXI6OmVuY29kZShzb3VyY2UsIGNv
bXByZXNzaW9uUXVhbGl0eSwgZW5jb2RlZEltYWdlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICNpZiBVU0UoV0VCUCkKICAgICB9IGVsc2UgaWYgKG1pbWVUeXBlID09ICJpbWFnZS93ZWJw
IikgewogICAgICAgICBpbnQgY29tcHJlc3Npb25RdWFsaXR5ID0gV0VCUEltYWdlRW5jb2Rlcjo6
RGVmYXVsdENvbXByZXNzaW9uUXVhbGl0eTsKICAgICAgICAgaWYgKHF1YWxpdHkgJiYgKnF1YWxp
dHkgPj0gMC4wICYmICpxdWFsaXR5IDw9IDEuMCkKICAgICAgICAgICAgIGNvbXByZXNzaW9uUXVh
bGl0eSA9IHN0YXRpY19jYXN0PGludD4oKnF1YWxpdHkgKiAxMDAgKyAwLjUpOwotICAgICAgICBp
ZiAoIVdFQlBJbWFnZUVuY29kZXI6OmVuY29kZShzb3VyY2UsIGNvbXByZXNzaW9uUXVhbGl0eSwg
JmVuY29kZWRJbWFnZSkpCi0gICAgICAgICAgICByZXR1cm4gImRhdGE6LCI7CisgICAgICAgIGlm
ICghV0VCUEltYWdlRW5jb2Rlcjo6ZW5jb2RlKHNvdXJjZSwgY29tcHJlc3Npb25RdWFsaXR5LCBl
bmNvZGVkSW1hZ2UpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAgICAgfSBl
bHNlIHsKLSAgICAgICAgaWYgKCFQTkdJbWFnZUVuY29kZXI6OmVuY29kZShzb3VyY2UsICZlbmNv
ZGVkSW1hZ2UpKQotICAgICAgICAgICAgcmV0dXJuICJkYXRhOiwiOworICAgICAgICBpZiAoIVBO
R0ltYWdlRW5jb2Rlcjo6ZW5jb2RlKHNvdXJjZSwgZW5jb2RlZEltYWdlKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgQVNTRVJUKG1pbWVUeXBlID09ICJpbWFnZS9wbmciKTsK
ICAgICB9CiAKLSAgICBWZWN0b3I8Y2hhcj4gYmFzZTY0RGF0YTsKLSAgICBiYXNlNjRFbmNvZGUo
KnJlaW50ZXJwcmV0X2Nhc3Q8VmVjdG9yPGNoYXI+Kj4oJmVuY29kZWRJbWFnZSksIGJhc2U2NERh
dGEpOwotCi0gICAgcmV0dXJuICJkYXRhOiIgKyBtaW1lVHlwZSArICI7YmFzZTY0LCIgKyBiYXNl
NjREYXRhOworICAgIHJldHVybiB0cnVlOwogfQogCiBTdHJpbmcgSW1hZ2VCdWZmZXI6OnRvRGF0
YVVSTChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUqIHF1YWxpdHkpIGNvbnN0
CiB7CisgICAgQVNTRVJUKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlw
ZUZvckVuY29kaW5nKG1pbWVUeXBlKSk7CisKKyAgICBWZWN0b3I8Y2hhcj4gZW5jb2RlZEltYWdl
LCBiYXNlNjREYXRhOwogICAgIFNrRGV2aWNlKiBkZXZpY2UgPSBjb250ZXh0KCktPnBsYXRmb3Jt
Q29udGV4dCgpLT5jYW52YXMoKS0+Z2V0RGV2aWNlKCk7Ci0gICAgcmV0dXJuIEltYWdlVG9EYXRh
VVJMKGRldmljZS0+YWNjZXNzQml0bWFwKGZhbHNlKSwgbWltZVR5cGUsIHF1YWxpdHkpOworICAg
IGlmICghZW5jb2RlSW1hZ2UoZGV2aWNlLT5hY2Nlc3NCaXRtYXAoZmFsc2UpLCBtaW1lVHlwZSwg
cXVhbGl0eSwgJmVuY29kZWRJbWFnZSkpCisgICAgICAgIHJldHVybiAiZGF0YTosIjsKKworICAg
IGJhc2U2NEVuY29kZShlbmNvZGVkSW1hZ2UsIGJhc2U2NERhdGEpOworICAgIHJldHVybiAiZGF0
YToiICsgbWltZVR5cGUgKyAiO2Jhc2U2NCwiICsgYmFzZTY0RGF0YTsKIH0KIAotU3RyaW5nIElt
YWdlRGF0YVRvRGF0YVVSTChjb25zdCBJbWFnZURhdGEmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgY29uc3QgZG91YmxlKiBxdWFsaXR5KQorU3RyaW5nIEltYWdlRGF0YVRvRGF0YVVS
TChjb25zdCBJbWFnZURhdGEmIGltYWdlRGF0YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29u
c3QgZG91YmxlKiBxdWFsaXR5KQogewotICAgIHJldHVybiBJbWFnZVRvRGF0YVVSTChzb3VyY2Us
IG1pbWVUeXBlLCBxdWFsaXR5KTsKKyAgICBBU1NFUlQoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBw
b3J0ZWRJbWFnZU1JTUVUeXBlRm9yRW5jb2RpbmcobWltZVR5cGUpKTsKKworICAgIFZlY3Rvcjxj
aGFyPiBlbmNvZGVkSW1hZ2UsIGJhc2U2NERhdGE7CisgICAgaWYgKCFlbmNvZGVJbWFnZShpbWFn
ZURhdGEsIG1pbWVUeXBlLCBxdWFsaXR5LCAmZW5jb2RlZEltYWdlKSkKKyAgICAgICAgcmV0dXJu
ICJkYXRhOiwiOworCisgICAgYmFzZTY0RW5jb2RlKGVuY29kZWRJbWFnZSwgYmFzZTY0RGF0YSk7
CisgICAgcmV0dXJuICJkYXRhOiIgKyBtaW1lVHlwZSArICI7YmFzZTY0LCIgKyBiYXNlNjREYXRh
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>