<?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>41298</bug_id>
          
          <creation_ts>2010-06-28 13:10:19 -0700</creation_ts>
          <short_desc>[Qt] Use HTML5-conformant gradient interpolation mode</short_desc>
          <delta_ts>2010-06-28 14:24:57 -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>Layout and Rendering</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>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="QtWebKit Unassigned">webkit-qt-unassigned</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>243843</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-06-28 13:10:19 -0700</bug_when>
    <thetext>The default behavior of QLinearGradient conflicts with the HTML5 specification.
We should be doing per-component interpolation in linear rather than premultiplied space.

Tthere&apos;s an internal method, QGradient::setInterpolationMode() for exactly this purpose.

Quoth the spec: The color of the gradient at each stop is the color specified for that stop. Between each such stop, the colors and the alpha component must be linearly interpolated over the RGBA space without premultiplying the alpha value to find the color to use at that offset.

This fixes one in-tree test for Qt:
* canvas/philip/tests/2d.gradient.interpolate.colouralpha.html

Spec link:
http://www.whatwg.org/specs/web-apps/current-work/#colors-and-styles</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243849</commentid>
    <comment_count>1</comment_count>
      <attachid>59927</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-06-28 13:14:44 -0700</bug_when>
    <thetext>Created attachment 59927
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243902</commentid>
    <comment_count>2</comment_count>
      <attachid>59927</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-28 14:24:53 -0700</bug_when>
    <thetext>Comment on attachment 59927
Proposed patch

Clearing flags on attachment: 59927

Committed r62037: &lt;http://trac.webkit.org/changeset/62037&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243903</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-28 14:24:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59927</attachid>
            <date>2010-06-28 13:14:44 -0700</date>
            <delta_ts>2010-06-28 14:24:53 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-41298.diff</filename>
            <type>text/plain</type>
            <size>2601</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZWU5NTUxLi4xYjU2NDJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDYt
MjggIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFVzZSBIVE1MNS1jb25m
b3JtYW50IGdyYWRpZW50IGludGVycG9sYXRpb24gbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDEyOTgKKworICAgICAgICBVbnNraXAgbm93IHdv
cmtpbmcgdGVzdDoKKyAgICAgICAgLSBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50Lmlu
dGVycG9sYXRlLmNvbG91cmFscGhhLmh0bWwKKworICAgICAgICBTcGVjIGxpbms6CisgICAgICAg
IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2NvbG9y
cy1hbmQtc3R5bGVzCisKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorCiAyMDEwLTA2
LTI4ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByNjIwMjEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA2Yzc2
ZDU5Li5lOWIxOWQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVk
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTUyNTMsNyArNTI1Myw2
IEBAIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZmlsbFN0eWxlLnBhcnNlLnJnYi1jbGFtcC0zLmh0
bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZmlsbFN0eWxlLnBhcnNlLnJnYi1jbGFtcC00Lmh0
bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZmlsbFN0eWxlLnBhcnNlLnJnYi1jbGFtcC01Lmh0
bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZmlsbFN0eWxlLnBhcnNlLnN5c3RlbS5odG1sCi1j
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LmludGVycG9sYXRlLmNvbG91cmFscGhhLmh0
bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFsLmNvbmUuYmVoaW5kLmh0
bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFsLmNvbmUuYmVzaWRlLmh0
bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFsLmNvbmUuYm90dG9tLmh0
bWwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggYWE5ZTgxMS4uZjE4YjMzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNi0yOCAgQW5kcmVhcyBL
bGluZyAgPGFuZHJlYXMua2xpbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gVXNlIEhUTUw1LWNvbmZvcm1hbnQgZ3JhZGll
bnQgaW50ZXJwb2xhdGlvbiBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MTI5OAorCisgICAgICAgIENoYW5nZSB0aGUgUXQgR3JhZGllbnQgaW1w
bGVtZW50YXRpb24gdG8gdXNlIENvbXBvbmVudEludGVycG9sYXRpb24gbW9kZS4KKworICAgICAg
ICBTcGVjIGxpbms6CisgICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBw
cy9jdXJyZW50LXdvcmsvI2NvbG9ycy1hbmQtc3R5bGVzCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9xdC9HcmFkaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYWRpZW50Ojpw
bGF0Zm9ybUdyYWRpZW50KToKKwogMjAxMC0wNi0yOCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxp
YS5jb20+CiAKICAgICAgICAgRml4IGRpc3RjaGVjay4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvR3JhZGllbnRRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0dyYWRpZW50UXQuY3BwCmluZGV4IDhiOWUyZDcuLjE4MjAzZGQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhZGllbnRRdC5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFkaWVudFF0LmNwcApAQCAtNTEsNiArNTEsOCBAQCBR
R3JhZGllbnQqIEdyYWRpZW50OjpwbGF0Zm9ybUdyYWRpZW50KCkKICAgICBlbHNlCiAgICAgICAg
IG1fZ3JhZGllbnQgPSBuZXcgUUxpbmVhckdyYWRpZW50KG1fcDAueCgpLCBtX3AwLnkoKSwgbV9w
MS54KCksIG1fcDEueSgpKTsKIAorICAgIG1fZ3JhZGllbnQtPnNldEludGVycG9sYXRpb25Nb2Rl
KFFHcmFkaWVudDo6Q29tcG9uZW50SW50ZXJwb2xhdGlvbik7CisKICAgICBzb3J0U3RvcHNJZk5l
Y2Vzc2FyeSgpOwogCiAgICAgUUNvbG9yIHN0b3BDb2xvcjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>