<?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>133335</bug_id>
          
          <creation_ts>2014-05-27 21:01:23 -0700</creation_ts>
          <short_desc>REGRESSION (Margin tiles): Background gradient on dom.spec.whatwg.org is very slow to render</short_desc>
          <delta_ts>2014-05-27 21:50:47 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://dom.spec.whatwg.org</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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1012119</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-27 21:01:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/17011392&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012120</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-27 21:10:52 -0700</bug_when>
    <thetext>Here&apos;s the story:

1. Margin tiles mean that we use drawPattern() instead of draw() for the background gradient, because it gets tiled into the margin.

2. drawPattern() paints into an ImageBuffer and uses that to do the pattern tiling.

There was already code in Image::drawTiled to avoid proper ImageBuffer-backed patterned drawing and instead repeatedly call draw() in the case where the tile buffer would be very large, but it was only enabled on iOS. It seems like a pretty reasonable thing to do everywhere, so let&apos;s do that (but with a bigger limit than on iOS).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012121</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-27 21:13:32 -0700</bug_when>
    <thetext>3. The ImageBuffer is the size of the gradient. The gradient on this page is the size of the document. A bitmap the size of the document is nearly 2GB here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012125</commentid>
    <comment_count>3</comment_count>
      <attachid>232167</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-27 21:37:44 -0700</bug_when>
    <thetext>Created attachment 232167
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012130</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-27 21:50:47 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/169412</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232167</attachid>
            <date>2014-05-27 21:37:44 -0700</date>
            <delta_ts>2014-05-27 21:42:21 -0700</delta_ts>
            <desc>patch</desc>
            <filename>gradient.diff</filename>
            <type>text/plain</type>
            <size>4340</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzYWFkNTczLi5lOTA1MDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTQtMDUtMjcgIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgorCisgICAgICAgIFJFR1JFU1NJT04gKE1hcmdpbiB0aWxlcyk6IEJhY2tncm91bmQgZ3JhZGll
bnQgb24gZG9tLnNwZWMud2hhdHdnLm9yZyBpcyB2ZXJ5IHNsb3cgdG8gcmVuZGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMzMzUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzE3MDExMzkyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2U6OmRyYXdUaWxlZCk6CisgICAgICAgIE1ha2UgY3Jvc3MtcGxhdGZv
cm0gYW5kIHVzZSBzb21lIGlPUyBjb2RlIHdoaWNoIGF2b2lkcyBwYXR0ZXJuZWQgZHJhd2luZyB3
aGVuIHRoZSBwYXR0ZXJuIGJ1ZmZlcgorICAgICAgICB3b3VsZCBiZSB2ZXJ5IGxhcmdlLiBJbnN0
ZWFkLCBpdCBjYWxscyBkcmF3KCkgcmVwZWF0ZWRseSBvdmVyIHRoZSBwYXR0ZXJuIHNwYWNlLCBh
dm9pZGluZyB0aGUgYWxsb2NhdGlvbgorICAgICAgICBvZiBhIGh1Z2UgKGluIHRoZSBjYXNlIG9m
IGJ1ZyAxMzMzMzUsIG5lYXJseSAyR0IpIGJ1ZmZlci4KKwogMjAxNC0wNS0yNyAgQmVtIEpvbmVz
LUJleSAgPGJqb25lc2JlQGFkb2JlLmNvbT4KIAogICAgICAgICB2dy92aCB1bml0cyB1c2VkIGFz
IGZvbnQvbGluZS1oZWlnaHQgdmFsdWVzIGRvbid0IHNjYWxlIHdpdGggdGhlIHZpZXdwb3J0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKaW5kZXggMWVjM2JhYi4u
ZjE4NGI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcApA
QCAtMTE4LDcgKzExOCw3IEBAIHZvaWQgSW1hZ2U6OmRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQq
IGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsCiAgICAgb25lVGlsZVJl
Y3Quc2V0WShkZXN0UmVjdC55KCkgKyBmbW9kZihmbW9kZigtc3JjUG9pbnQueSgpLCBhY3R1YWxU
aWxlU2l6ZS5oZWlnaHQoKSkgLSBhY3R1YWxUaWxlU2l6ZS5oZWlnaHQoKSwgYWN0dWFsVGlsZVNp
emUuaGVpZ2h0KCkpKTsKICAgICBvbmVUaWxlUmVjdC5zZXRTaXplKHNjYWxlZFRpbGVTaXplKTsK
ICAgICAKLSAgICAvLyBDaGVjayBhbmQgc2VlIGlmIGEgc2luZ2xlIGRyYXcgb2YgdGhlIGltYWdl
IGNhbiBjb3ZlciB0aGUgZW50aXJlIGFyZWEgd2UgYXJlIHN1cHBvc2VkIHRvIHRpbGUuICAgIAor
ICAgIC8vIENoZWNrIGFuZCBzZWUgaWYgYSBzaW5nbGUgZHJhdyBvZiB0aGUgaW1hZ2UgY2FuIGNv
dmVyIHRoZSBlbnRpcmUgYXJlYSB3ZSBhcmUgc3VwcG9zZWQgdG8gdGlsZS4KICAgICBpZiAob25l
VGlsZVJlY3QuY29udGFpbnMoZGVzdFJlY3QpICYmICFjdHh0LT5kcmF3THVtaW5hbmNlTWFzaygp
KSB7CiAgICAgICAgIEZsb2F0UmVjdCB2aXNpYmxlU3JjUmVjdDsKICAgICAgICAgdmlzaWJsZVNy
Y1JlY3Quc2V0WCgoZGVzdFJlY3QueCgpIC0gb25lVGlsZVJlY3QueCgpKSAvIHNjYWxlLndpZHRo
KCkpOwpAQCAtMTUzLDIyICsxNTMsMjcgQEAgdm9pZCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNz
Q29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmwKICAgICB9
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICAvLyBDR1BhdHRlcm4gdXNlcyBsb3Rz
IG9mIG1lbW9yeSBnb3QgY2FjaGluZyB3aGVuIHRoZSB0aWxlIHNpemUgaXMgbGFyZ2UgKDxyZGFy
Oi8vcHJvYmxlbS80NjkxODU5PiwKLSAgICAvLyA8cmRhcjovL3Byb2JsZW0vNjIzOTUwNT4pLiBN
ZW1vcnkgY29uc3VtcHRpb24gZGVwZW5kcyBvbiB0aGUgdHJhbnNmb3JtZWQgdGlsZSBzaXplIHdo
aWNoIGNhbiBnZXQKKworICAgIC8vIFBhdHRlcm5lZCBpbWFnZXMgYW5kIGdyYWRpZW50cyBjYW4g
dXNlIGxvdHMgb2YgbWVtb3J5IGZvciBjYWNoaW5nIHdoZW4gdGhlCisgICAgLy8gdGlsZSBzaXpl
IGlzIGxhcmdlICg8cmRhcjovL3Byb2JsZW0vNDY5MTg1OT4sIDxyZGFyOi8vcHJvYmxlbS82MjM5
NTA1PikuCisgICAgLy8gTWVtb3J5IGNvbnN1bXB0aW9uIGRlcGVuZHMgb24gdGhlIHRyYW5zZm9y
bWVkIHRpbGUgc2l6ZSB3aGljaCBjYW4gZ2V0CiAgICAgLy8gbGFyZ2VyIHRoYW4gdGhlIG9yaWdp
bmFsIHRpbGUgaWYgdXNlciB6b29tcyBpbiBlbm91Z2guCisjaWYgUExBVEZPUk0oSU9TKQogICAg
IGNvbnN0IGZsb2F0IG1heFBhdHRlcm5UaWxlUGl4ZWxzID0gNTEyICogNTEyOworI2Vsc2UKKyAg
ICBjb25zdCBmbG9hdCBtYXhQYXR0ZXJuVGlsZVBpeGVscyA9IDIwNDggKiAyMDQ4OworI2VuZGlm
CiAgICAgRmxvYXRSZWN0IHRyYW5zZm9ybWVkVGlsZVNpemUgPSBjdHh0LT5nZXRDVE0oKS5tYXBS
ZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNjYWxlZFRpbGVTaXplKSk7CiAgICAgZmxvYXQg
dHJhbnNmb3JtZWRUaWxlU2l6ZVBpeGVscyA9IHRyYW5zZm9ybWVkVGlsZVNpemUud2lkdGgoKSAq
IHRyYW5zZm9ybWVkVGlsZVNpemUuaGVpZ2h0KCk7CiAgICAgaWYgKHRyYW5zZm9ybWVkVGlsZVNp
emVQaXhlbHMgPiBtYXhQYXR0ZXJuVGlsZVBpeGVscykgewogICAgICAgICBmbG9hdCBmcm9tWSA9
IChkZXN0UmVjdC55KCkgLSBvbmVUaWxlUmVjdC55KCkpIC8gc2NhbGUuaGVpZ2h0KCk7CiAgICAg
ICAgIGZsb2F0IHRvWSA9IG9uZVRpbGVSZWN0LnkoKTsKLSAgICAgICAgd2hpbGUgKHRvWSA8IENH
UmVjdEdldE1heFkoZGVzdFJlY3QpKSB7CisgICAgICAgIHdoaWxlICh0b1kgPCBkZXN0UmVjdC5t
YXhZKCkpIHsKICAgICAgICAgICAgIGZsb2F0IGZyb21YID0gKGRlc3RSZWN0LngoKSAtIG9uZVRp
bGVSZWN0LngoKSkgLyBzY2FsZS53aWR0aCgpOwogICAgICAgICAgICAgZmxvYXQgdG9YID0gb25l
VGlsZVJlY3QueCgpOwotICAgICAgICAgICAgd2hpbGUgKHRvWCA8IENHUmVjdEdldE1heFgoZGVz
dFJlY3QpKSB7Ci0gICAgICAgICAgICAgICAgQ0dSZWN0IHRvUmVjdCA9IENHUmVjdEludGVyc2Vj
dGlvbihkZXN0UmVjdCwgQ0dSZWN0TWFrZSh0b1gsIHRvWSwgb25lVGlsZVJlY3Qud2lkdGgoKSwg
b25lVGlsZVJlY3QuaGVpZ2h0KCkpKTsKLSAgICAgICAgICAgICAgICBDR1JlY3QgZnJvbVJlY3Qg
PSBDR1JlY3RNYWtlKGZyb21YLCBmcm9tWSwgdG9SZWN0LnNpemUud2lkdGggLyBzY2FsZS53aWR0
aCgpLCB0b1JlY3Quc2l6ZS5oZWlnaHQgLyBzY2FsZS5oZWlnaHQoKSk7CisgICAgICAgICAgICB3
aGlsZSAodG9YIDwgZGVzdFJlY3QubWF4WCgpKSB7CisgICAgICAgICAgICAgICAgRmxvYXRSZWN0
IHRvUmVjdCh0b1gsIHRvWSwgb25lVGlsZVJlY3Qud2lkdGgoKSwgb25lVGlsZVJlY3QuaGVpZ2h0
KCkpOworICAgICAgICAgICAgICAgIEZsb2F0UmVjdCBmcm9tUmVjdChmcm9tWCwgZnJvbVksIG9u
ZVRpbGVSZWN0LndpZHRoKCkgLyBzY2FsZS53aWR0aCgpLCBvbmVUaWxlUmVjdC5oZWlnaHQoKSAv
IHNjYWxlLmhlaWdodCgpKTsKICAgICAgICAgICAgICAgICBkcmF3KGN0eHQsIHRvUmVjdCwgZnJv
bVJlY3QsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIEJsZW5kTW9kZU5vcm1hbCwgSW1hZ2VPcmllbnRh
dGlvbkRlc2NyaXB0aW9uKCkpOwogICAgICAgICAgICAgICAgIHRvWCArPSBvbmVUaWxlUmVjdC53
aWR0aCgpOwogICAgICAgICAgICAgICAgIGZyb21YID0gMDsKQEAgLTE3OCw3ICsxODMsNiBAQCB2
b2lkIEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbAogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0jZW5kaWYgICAgCiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gcGF0dGVyblRyYW5zZm9ybSA9IEFm
ZmluZVRyYW5zZm9ybSgpLnNjYWxlTm9uVW5pZm9ybShzY2FsZS53aWR0aCgpLCBzY2FsZS5oZWln
aHQoKSk7CiAgICAgRmxvYXRSZWN0IHRpbGVSZWN0KEZsb2F0UG9pbnQoKSwgaW50cmluc2ljVGls
ZVNpemUpOwo=
</data>
<flag name="review"
          id="256652"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>