<?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>111661</bug_id>
          
          <creation_ts>2013-03-06 18:49:42 -0800</creation_ts>
          <short_desc>[Chromium] Fix byte ordering bugs reading back WebGL canvases&apos; content on Android</short_desc>
          <delta_ts>2013-03-07 14:51:04 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>skyostil</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>849599</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-03-06 18:49:42 -0800</bug_when>
    <thetext>Chrome on Android is failing a few WebGL conformance tests (canvas/canvas-test.html, context/context-attributes-alpha-depth-stencil-antialias.html, context/premultiplyalpha-test.html, textures/gl-pixelstorei.html) because of incorrect swizzling of color channels. The basic problem is that the contract of WebGraphicsContext3D::readBackFrameBuffer is not well enough defined, causing problems when drawing a WebGL-rendered canvas into another, and when constructing an ImageData from a WebGL-rendered canvas.

One half of the fix can be done in WebKit, but the other half must be done in Chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849602</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-03-06 18:56:44 -0800</bug_when>
    <thetext>The associated Chromium bug is https://code.google.com/p/chromium/issues/detail?id=176029 and that patch will be landed separately. While the bug won&apos;t be completely fixed until both land, the intermediate state is no worse than the current one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849605</commentid>
    <comment_count>2</comment_count>
      <attachid>191888</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-03-06 18:59:33 -0800</bug_when>
    <thetext>Created attachment 191888
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849607</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 19:00:42 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849633</commentid>
    <comment_count>4</comment_count>
      <attachid>191888</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-06 19:26:15 -0800</bug_when>
    <thetext>Comment on attachment 191888
Patch

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

&gt; Source/WebCore/platform/chromium/support/GraphicsContext3DChromium.cpp:533
&gt; +#if (SK_R32_SHIFT == 16) &amp;&amp; !SK_B32_SHIFT

this is the same check as https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/WebKit/chromium/src/WebViewImpl.cpp&amp;q=WebViewImpl.cpp&amp;sq=package:chromium&amp;type=cs&amp;l=1885, although it&apos;s written the other way &apos;round.  Any chance of getting something clearer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849657</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-03-06 19:40:25 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 191888 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191888&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/support/GraphicsContext3DChromium.cpp:533
&gt; &gt; +#if (SK_R32_SHIFT == 16) &amp;&amp; !SK_B32_SHIFT
&gt; 
&gt; this is the same check as https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/WebKit/chromium/src/WebViewImpl.cpp&amp;q=WebViewImpl.cpp&amp;sq=package:chromium&amp;type=cs&amp;l=1885, although it&apos;s written the other way &apos;round.  Any chance of getting something clearer?

Argh, sorry, I would have used the same #if test at least.

I could define a macro like SKIA_USING_RGBA_BYTE_ORDERING in one of the headers in Source/Platform/chromium/public/ which would do this check. It would (currently) be used in WebViewImpl.cpp, webgraphicscontext3d_command_buffer_impl.cc, and GraphicsContext3DChromium.cpp. Where would you say would be a good place to put that macro and what would you suggest it be called? Note that the header file would have to include SkTypes.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849665</commentid>
    <comment_count>6</comment_count>
      <attachid>191888</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 19:48:35 -0800</bug_when>
    <thetext>Comment on attachment 191888
Patch

Clearing flags on attachment: 191888

Committed r145027: &lt;http://trac.webkit.org/changeset/145027&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849666</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 19:48:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849681</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-06 20:10:26 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 191888 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191888&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/chromium/support/GraphicsContext3DChromium.cpp:533
&gt; &gt; &gt; +#if (SK_R32_SHIFT == 16) &amp;&amp; !SK_B32_SHIFT
&gt; &gt; 
&gt; &gt; this is the same check as https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/WebKit/chromium/src/WebViewImpl.cpp&amp;q=WebViewImpl.cpp&amp;sq=package:chromium&amp;type=cs&amp;l=1885, although it&apos;s written the other way &apos;round.  Any chance of getting something clearer?
&gt; 
&gt; Argh, sorry, I would have used the same #if test at least.

It&apos;s no biggie.

&gt; 
&gt; I could define a macro like SKIA_USING_RGBA_BYTE_ORDERING in one of the headers in Source/Platform/chromium/public/ which would do this check. It would (currently) be used in WebViewImpl.cpp, webgraphicscontext3d_command_buffer_impl.cc, and GraphicsContext3DChromium.cpp. Where would you say would be a good place to put that macro and what would you suggest it be called? Note that the header file would have to include SkTypes.h.

Could we get a nicer-named macro in skia, perhaps?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850503</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-03-07 14:51:04 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Could we get a nicer-named macro in skia, perhaps?

I&apos;ll ask the Skia team about this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191888</attachid>
            <date>2013-03-06 18:59:33 -0800</date>
            <delta_ts>2013-03-06 19:48:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111661-20130306185538.patch</filename>
            <type>text/plain</type>
            <size>3849</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA5NDUyNjZiYmJjOGQ4
ZTQ0MzczZTY5MmJkYjQ0YTI2ZWIxNTc1NmY2Li41MDMxZDJjYTU1NWE1YWQxZWNmOTYwNDE4NWEx
MWFlMmIxZTNkNmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMy0wNiAg
S2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBG
aXggYnl0ZSBvcmRlcmluZyBidWdzIHJlYWRpbmcgYmFjayBXZWJHTCBjYW52YXNlcycgY29udGVu
dCBvbiBBbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTE2NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAgICAo
V2ViR3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAgICAgQmV0dGVyIGRvY3VtZW50ZWQgY29u
dHJhY3Qgb2YgcmVhZEJhY2tGcmFtZUJ1ZmZlci4KKwogMjAxMy0wMy0wNiAgRGFuYSBKYW5zZW5z
ICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSBXZWJT
aGFyZWRHcmFwaGljc0NvbnRleHQzRCBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZjOGMyMTc3MzgwNDJl
NWVmMzY5MWY3NjcxMDE4MTAyNGUwMzY2MjYuLjQxMDBjNGNiMDg5YmVmNDEwZGM4Y2Q4ZmFlYTJh
ODg0Njc4MWM4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0wMy0wNiAgS2Vu
bmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBGaXgg
Ynl0ZSBvcmRlcmluZyBidWdzIHJlYWRpbmcgYmFjayBXZWJHTCBjYW52YXNlcycgY29udGVudCBv
biBBbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTE2NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHM7IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuIFJhbiBXZWJHTCBjb25m
b3JtYW5jZQorICAgICAgICB0ZXN0cyBvbiBBbmRyb2lkIGFuZCBkZXNrdG9wIExpbnV4IHRvIHZl
cmlmeSBmaXguCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNz
Q29udGV4dDNEQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKToKKyAgICAgICAgICAgIEF2b2lk
IGluY29ycmVjdCBieXRlIHN3YXAgb24gQW5kcm9pZCBhbmQgb3RoZXIgT1NzIHdoaWNoIGRvbid0
CisgICAgICAgICAgICBzd2l6emxlIFIgYW5kIEIgY2hhbm5lbHMuCisKIDIwMTMtMDMtMDYgIEFh
cm9uIENvbHdlbGwgIDxhY29sd2VsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIFdl
YkNvcmU6Ok5vZGU6OmlzQWN0aXZlTm9kZSgpIHNpbmNlIGl0IGlzbid0IGNhbGxlZCBhbnl3aGVy
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhp
Y3NDb250ZXh0M0QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhp
Y3NDb250ZXh0M0QuaAppbmRleCBjOWM5ZjM5OGI2YjU4MTg2ZmZkN2QxNjAzNWFkYWJlNmJlMzA2
YjRjLi5mNTE1YzI3NjJkMTc4OTczNjg2ODVlY2M1MWE1ZDk2NDIzZDBiMzE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgK
KysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQz
RC5oCkBAIC0xODUsNyArMTg1LDggQEAgcHVibGljOgogICAgIC8vIEhlbHBlciBmb3Igc29mdHdh
cmUgY29tcG9zaXRpbmcgcGF0aC4gUmVhZHMgYmFjayB0aGUgZnJhbWUgYnVmZmVyIGludG8KICAg
ICAvLyB0aGUgbWVtb3J5IHJlZ2lvbiBwb2ludGVkIHRvIGJ5ICJwaXhlbHMiIHdpdGggc2l6ZSAi
YnVmZmVyU2l6ZSIuIEl0IGlzCiAgICAgLy8gZXhwZWN0ZWQgdGhhdCB0aGUgc3RvcmFnZSBmb3Ig
InBpeGVscyIgY292ZXJzICg0ICogd2lkdGggKiBoZWlnaHQpIGJ5dGVzLgotICAgIC8vIFJldHVy
bnMgdHJ1ZSBvbiBzdWNjZXNzLgorICAgIC8vIFRoZSBSR0JBIGNoYW5uZWxzIGFyZSBwYWNrZWQg
aW50byAicGl4ZWxzIiB1c2luZyBTa0JpdG1hcCdzIGJ5dGUKKyAgICAvLyBvcmRlcmluZy4gUmV0
dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCiAgICAgdmlydHVhbCBib29sIHJlYWRCYWNrRnJhbWVidWZm
ZXIodW5zaWduZWQgY2hhciogcGl4ZWxzLCBzaXplX3QgYnVmZmVyU2l6ZSwgV2ViR0xJZCBmcmFt
ZWJ1ZmZlciwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSA9IDA7CiAKICAgICAvLyBSZXR1cm5zIHRo
ZSBpZCBvZiB0aGUgdGV4dHVyZSB3aGljaCBpcyB1c2VkIGZvciBzdG9yaW5nIHRoZSBjb250ZW50
cyBvZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAKaW5kZXggOTc2
YTgzNDM1NzgyMTI1MDRiMDhiN2VmM2I3MzBiMWQxMWUxNzdjZi4uNmI4ZTFjOGM4MjE4YmYxODRk
MzA4NzYwYjhhZTY0OWQ3YjkwMGM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNE
Q2hyb21pdW0uY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbWFnZURh
dGEuaCIKKyNpbmNsdWRlICJTa1R5cGVzLmgiCiAjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+
CiAjaW5jbHVkZSA8cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgpAQCAtNTI5LDggKzUzMCwxMSBAQCBQYXNzUmVmUHRyPEltYWdlRGF0
YT4gR3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKERy
YXdpbgogCiAgICAgbV9wcml2YXRlLT53ZWJDb250ZXh0KCktPnJlYWRCYWNrRnJhbWVidWZmZXIo
cGl4ZWxzLCBidWZmZXJTaXplLCBmcmFtZWJ1ZmZlcklkLCB3aWR0aCwgaGVpZ2h0KTsKIAorI2lm
IChTS19SMzJfU0hJRlQgPT0gMTYpICYmICFTS19CMzJfU0hJRlQKKyAgICAvLyBJZiB0aGUgaW1w
bGVtZW50YXRpb24gc3dhcHBlZCB0aGUgcmVkIGFuZCBibHVlIGNoYW5uZWxzLCB1bi1zd2FwIHRo
ZW0uCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBidWZmZXJTaXplOyBpICs9IDQpCiAgICAg
ICAgIHN0ZDo6c3dhcChwaXhlbHNbaV0sIHBpeGVsc1tpICsgMl0pOworI2VuZGlmCiAKICAgICBy
ZXR1cm4gaW1hZ2VEYXRhLnJlbGVhc2UoKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>