<?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>67729</bug_id>
          
          <creation_ts>2011-09-07 13:04:51 -0700</creation_ts>
          <short_desc>GeneratorGeneratedImage::drawPattern does not factor in its destination context&apos;s scale when generating its image tiles</short_desc>
          <delta_ts>2012-02-08 17:30:59 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>data:text/html,%3Cdiv%20style=%22height:300px;width:300px;background-image:-webkit-repeating-linear-gradient(top%20left,%20red%2010%25,%20blue%2030%25);border:1px%20solid%22%3E</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Matthew Delaney">mdelaney7</assigned_to>
          <cc>bdakin</cc>
    
    <cc>hyatt</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>463594</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-09-07 13:04:51 -0700</bug_when>
    <thetext>To reproduce:

0. Have a display with a &gt;1.0 scale factor
1. Go to data:text/html,%3Cdiv%20style=%22height:300px;width:300px;background-image:-webkit-repeating-linear-gradient(top%20left,%20red%2010%25,%20blue%2030%25);border:1px%20solid%22%3E

Note that the diagonal lines in the gradient look chunky. They should look nice and smooth instead! In fact, they *do* look smooth if you remove the border.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463595</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-09-07 13:05:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/10087050&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463597</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-07 13:07:25 -0700</bug_when>
    <thetext>We need to audit all the places where we make ImageBuffers in the code to see if we need to use a scale factor. Or maybe we have ImageBuffer do this automatically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552544</commentid>
    <comment_count>3</comment_count>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2012-02-08 15:28:14 -0800</bug_when>
    <thetext>The difference in rendering quality seen here when there&apos;s a border is due to how we render generated images as backgrounds.

First, regardless of what type the background image is (in this case, a Gradient as GeneratorGeneratedImage) adding a border results in the background image being drawn as a pattern with more than one tile. If there were no border, we just draw the background image as one tile and hit the normal path. However, when there&apos;s a border, we pattern draw the background image so that it shows up behind the border as well with a padding-box-sized tile as is defined in the CSS spec (whether or not the border is opaque https://bugs.webkit.org/show_bug.cgi?id=78162)

In this pattern draw case, we end up hitting GeneratorGeneratedImage&apos;s drawPattern instead of draw. Since &apos;draw&apos; renders directly into the destination context - where as drawPattern renders a tile first in an ImageBuffer to then use - the generated image has the benefit of being at the resolution of the context. In the drawPattern case, the ImageBuffer that is created hasn&apos;t factored in the scale of the destination context. Thus, my patch teaches drawPattern about the scale to make tiles at a resolution that will match that of the destination context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552549</commentid>
    <comment_count>4</comment_count>
      <attachid>126165</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2012-02-08 15:30:37 -0800</bug_when>
    <thetext>Created attachment 126165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552675</commentid>
    <comment_count>5</comment_count>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2012-02-08 17:30:59 -0800</bug_when>
    <thetext>Committed r107157: &lt;http://trac.webkit.org/changeset/107157&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126165</attachid>
            <date>2012-02-08 15:30:37 -0800</date>
            <delta_ts>2012-02-08 17:28:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67729-20120208153036.patch</filename>
            <type>text/plain</type>
            <size>5781</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzEzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTA4ICBNYXR0aGV3
IERlbGFuZXkgIDxtZGVsYW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgR2VuZXJhdG9yR2VuZXJh
dGVkSW1hZ2U6OmRyYXdQYXR0ZXJuIGRvZXMgbm90IGZhY3RvciBpbiBpdHMgZGVzdGluYXRpb24g
Y29udGV4dCdzIHNjYWxlIHdoZW4gZ2VuZXJhdGluZyBpdHMgaW1hZ2UgdGlsZXMKKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3MjkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzEwMDg3MDUwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY3VycmVudCBwaXhlbCB0ZXN0cyB3aWxs
IGNvdmVyIHRoaXMuIFRob3VnaCBzb21lIHBpeGVsIHJlc3VsdHMgbWlnaHQgaW1wcm92ZSB0byBi
ZWNvbWUgbGVzcyBwaXhlbC15LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJh
dG9yR2VuZXJhdGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJh
dGVkSW1hZ2U6OmRyYXcpOiBVcGRhdGVkIGNvbnRleHQgdG8gZGVzdENvbnRleHQgZm9yIGNvbnNp
c3RlbmN5LgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXdQ
YXR0ZXJuKTogVGF1Z2h0IGRyYXdQYXR0ZXJuIGFib3V0IHRoZSBkZXN0aW5hdGlvbgorICAgICAg
ICBzY2FsZSBmYWN0b3IgdG8gYXZvaWQgaGF2aW5nIGxvdy1yZXMgZ2VuZXJhdGVkIGltYWdlcyBz
dWNoIGFzIGdyYWRpZW50cyBpbiBjZXJ0YWluIGNhc2VzLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIpOiBIYXZlIHRoZSBpbWFnZSBidWZmZXIgbWF0
Y2ggdGhlCisgICAgICAgIGNvbnRleHQgYWNjZWxlcmF0aW9uIHNldHRpbmcgYXMgd2VsbC4KKwog
MjAxMi0wMi0wOCAgWmFsYW4gQnVqdGFzICA8emJ1anRhc0BnbWFpbC5jb20+CiAKICAgICAgICAg
RGlzcGF0Y2ggdXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKSwgd2hlbiBEb2N1bWVudCBpcyBmaW5p
c2hlZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcAkocmV2aXNpb24gMTA3MTMyKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxOSArMzMsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi12b2lkIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKQordm9pZCBH
ZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGRlc3RDb250ZXh0
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKQogewotICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCk7Ci0gICAgY29udGV4dC0+c2V0
Q29tcG9zaXRlT3BlcmF0aW9uKGNvbXBvc2l0ZU9wKTsKLSAgICBjb250ZXh0LT5jbGlwKGRzdFJl
Y3QpOwotICAgIGNvbnRleHQtPnRyYW5zbGF0ZShkc3RSZWN0LngoKSwgZHN0UmVjdC55KCkpOwot
ICAgIGlmIChkc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNpemUoKSkKLSAgICAgICAgY29udGV4
dC0+c2NhbGUoRmxvYXRTaXplKGRzdFJlY3Qud2lkdGgoKSAvIHNyY1JlY3Qud2lkdGgoKSwgZHN0
UmVjdC5oZWlnaHQoKSAvIHNyY1JlY3QuaGVpZ2h0KCkpKTsKLSAgICBjb250ZXh0LT50cmFuc2xh
dGUoLXNyY1JlY3QueCgpLCAtc3JjUmVjdC55KCkpOwotICAgIGNvbnRleHQtPmZpbGxSZWN0KEZs
b2F0UmVjdChGbG9hdFBvaW50KCksIG1fc2l6ZSksICptX2dlbmVyYXRvci5nZXQoKSk7CisgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpkZXN0Q29udGV4dCk7CisgICAg
ZGVzdENvbnRleHQtPnNldENvbXBvc2l0ZU9wZXJhdGlvbihjb21wb3NpdGVPcCk7CisgICAgZGVz
dENvbnRleHQtPmNsaXAoZGVzdFJlY3QpOworICAgIGRlc3RDb250ZXh0LT50cmFuc2xhdGUoZGVz
dFJlY3QueCgpLCBkZXN0UmVjdC55KCkpOworICAgIGlmIChkZXN0UmVjdC5zaXplKCkgIT0gc3Jj
UmVjdC5zaXplKCkpCisgICAgICAgIGRlc3RDb250ZXh0LT5zY2FsZShGbG9hdFNpemUoZGVzdFJl
Y3Qud2lkdGgoKSAvIHNyY1JlY3Qud2lkdGgoKSwgZGVzdFJlY3QuaGVpZ2h0KCkgLyBzcmNSZWN0
LmhlaWdodCgpKSk7CisgICAgZGVzdENvbnRleHQtPnRyYW5zbGF0ZSgtc3JjUmVjdC54KCksIC1z
cmNSZWN0LnkoKSk7CisgICAgZGVzdENvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBv
aW50KCksIG1fc2l6ZSksICptX2dlbmVyYXRvci5nZXQoKSk7CiB9CiAKLXZvaWQgR2VuZXJhdG9y
R2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sCit2b2lkIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGlj
c0NvbnRleHQqIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QpCiB7CiAgICAgLy8gQWxsb3cgdGhlIGdlbmVyYXRvciB0byBwcm92aWRlIHZpc3VhbGx5
LWVxdWl2YWxlbnQgdGlsaW5nIHBhcmFtZXRlcnMgZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KQEAg
LTUzLDggKzUzLDE2IEBAIHZvaWQgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXIK
ICAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKICAgICBtX2dlbmVyYXRv
ci0+YWRqdXN0UGFyYW1ldGVyc0ZvclRpbGVkRHJhd2luZyhhZGp1c3RlZFNpemUsIGFkanVzdGVk
U3JjUmVjdCk7CiAKKyAgICAvLyBGYWN0b3IgaW4gdGhlIGRlc3RpbmF0aW9uIGNvbnRleHQncyBz
Y2FsZSB0byBnZW5lcmF0ZSBhdCB0aGUgYmVzdCByZXNvbHV0aW9uCisgICAgQWZmaW5lVHJhbnNm
b3JtIGRlc3RDb250ZXh0Q1RNID0gZGVzdENvbnRleHQtPmdldENUTSgpOworICAgIGRvdWJsZSB4
U2NhbGUgPSBmYWJzKGRlc3RDb250ZXh0Q1RNLnhTY2FsZSgpKTsKKyAgICBkb3VibGUgeVNjYWxl
ID0gZmFicyhkZXN0Q29udGV4dENUTS55U2NhbGUoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIGFk
anVzdGVkUGF0dGVybkNUTSA9IHBhdHRlcm5UcmFuc2Zvcm07CisgICAgYWRqdXN0ZWRQYXR0ZXJu
Q1RNLnNjYWxlKDEuMCAvIHhTY2FsZSwgMS4wIC8geVNjYWxlKTsKKyAgICBhZGp1c3RlZFNyY1Jl
Y3Quc2NhbGUoeFNjYWxlLCB5U2NhbGUpOworCiAgICAgLy8gQ3JlYXRlIGEgQml0bWFwSW1hZ2Ug
YW5kIGNhbGwgZHJhd1BhdHRlcm4gb24gaXQuCi0gICAgT3duUHRyPEltYWdlQnVmZmVyPiBpbWFn
ZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoYWRqdXN0ZWRTaXplLCBDb2xvclNwYWNlRGV2
aWNlUkdCLCBjb250ZXh0LT5pc0FjY2VsZXJhdGVkQ29udGV4dCgpID8gQWNjZWxlcmF0ZWQgOiBV
bmFjY2VsZXJhdGVkKTsKKyAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gZGVz
dENvbnRleHQtPmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoYWRqdXN0ZWRTaXplKTsKICAgICBpZiAo
IWltYWdlQnVmZmVyKQogICAgICAgICByZXR1cm47CiAKQEAgLTYzLDcgKzcxLDcgQEAgdm9pZCBH
ZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcgogICAgIGdyYXBoaWNzQ29udGV4dC0+
ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgYWRqdXN0ZWRTaXplKSwgKm1fZ2VuZXJh
dG9yLmdldCgpKTsKIAogICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250
ZXh0LgotICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBhZGp1c3RlZFNyY1Jl
Y3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzdHlsZUNvbG9yU3BhY2UsIGNvbXBvc2l0ZU9w
LCBkZXN0UmVjdCk7CisgICAgaW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBh
ZGp1c3RlZFNyY1JlY3QsIGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2UsIHN0eWxlQ29sb3JTcGFj
ZSwgY29tcG9zaXRlT3AsIGRlc3RSZWN0KTsKIH0KIAogdm9pZCBHZW5lcmF0ZWRJbWFnZTo6Y29t
cHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBp
bnRyaW5zaWNIZWlnaHQsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAJ
KHJldmlzaW9uIDEwNzEzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1NCw3ICs3NTQsNyBAQCBQYXNz
T3duUHRyPEltYWdlQnVmZmVyPiBHcmFwaGljc0NvbnRleHQ6CiAgICAgQWZmaW5lVHJhbnNmb3Jt
IHRyYW5zZm9ybSA9IGdldENUTSgpOwogICAgIEludFNpemUgc2NhbGVkU2l6ZShzdGF0aWNfY2Fz
dDxpbnQ+KGNlaWwoc2l6ZS53aWR0aCgpICogdHJhbnNmb3JtLnhTY2FsZSgpKSksIHN0YXRpY19j
YXN0PGludD4oY2VpbChzaXplLmhlaWdodCgpICogdHJhbnNmb3JtLnlTY2FsZSgpKSkpOwogCi0g
ICAgT3duUHRyPEltYWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNjYWxl
ZFNpemUpOworICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShzY2FsZWRTaXplLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBpc0FjY2VsZXJhdGVkQ29udGV4
dCgpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVkKTsKICAgICBpZiAoIWJ1ZmZlcikKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
</data>
<flag name="review"
          id="127900"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>