<?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>36366</bug_id>
          
          <creation_ts>2010-03-19 07:26:23 -0700</creation_ts>
          <short_desc>Repaint loop when painting using scaled CTMs with different translations</short_desc>
          <delta_ts>2010-03-19 08:34:39 -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>PC</rep_platform>
          <op_sys>OS X 10.5</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>manyoso</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>201845</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-03-19 07:26:23 -0700</bug_when>
    <thetext>The code in RenderBoxModelScaleObserver::shouldPaintBackgroundAtLowQuality tests if the scaling has changed from the previous value by comparing the transformations:

    // We are scaled, but we painted already at this size, so just keep using whatever mode we last painted with.
    if ((!contextIsScaled || data-&gt;transform() == currentTransform) &amp;&amp; data-&gt;size() == size)
        return data-&gt;useLowQualityScale();

This test fails if the scale is the same but the translation changes. This can lead to infinite repaint loop, if the document is painted in pieces using different translations (for example for tiling).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201850</commentid>
    <comment_count>1</comment_count>
      <attachid>51154</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-03-19 07:56:01 -0700</bug_when>
    <thetext>Created attachment 51154
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201862</commentid>
    <comment_count>2</comment_count>
      <attachid>51154</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-03-19 08:26:46 -0700</bug_when>
    <thetext>Comment on attachment 51154
patch

Landing manually</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201863</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-03-19 08:28:29 -0700</bug_when>
    <thetext>Committed r56239: &lt;http://trac.webkit.org/changeset/56239&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51154</attachid>
            <date>2010-03-19 07:56:01 -0700</date>
            <delta_ts>2010-03-19 08:26:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>low-quality-background-transform.patch</filename>
            <type>text/plain</type>
            <size>2068</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjIzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDMtMTkgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtp
LmZpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjM2NgorICAgICAgICBSZXBh
aW50IGxvb3Agd2hlbiBwYWludGluZyB1c2luZyBzY2FsZWQgQ1RNcyB3aXRoIGRpZmZlcmVudCB0
cmFuc2xhdGlvbnMKKyAgICAgICAgCisgICAgICAgIFRoZSBjb2RlIGluIFJlbmRlckJveE1vZGVs
U2NhbGVPYnNlcnZlcjo6c2hvdWxkUGFpbnRCYWNrZ3JvdW5kQXRMb3dRdWFsaXR5CisgICAgICAg
IHRlc3RzIGlmIHRoZSBzY2FsaW5nIGhhcyBjaGFuZ2VkIGZyb20gdGhlIHByZXZpb3VzIHZhbHVl
IGJ5IGNvbXBhcmluZyB0aGUKKyAgICAgICAgdHJhbnNmb3JtYXRpb25zLiBUaGUgdGVzdCBmYWls
cyBpZiB0aGUgc2NhbGUgaXMgdGhlIHNhbWUgYnV0IHRoZSB0cmFuc2xhdGlvbiAKKyAgICAgICAg
Y2hhbmdlcy4gVGhpcyBjYW4gbGVhZCB0byBpbmZpbml0ZSByZXBhaW50IGxvb3AgaWYgdGhlIGRv
Y3VtZW50IGlzIHBhaW50ZWQgCisgICAgICAgIGluIHBpZWNlcyB1c2luZyBkaWZmZXJlbnQgdHJh
bnNsYXRpb25zIChmb3IgZXhhbXBsZSBmb3IgdGlsaW5nKS4KKworICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hN
b2RlbFNjYWxlT2JzZXJ2ZXI6OnNob3VsZFBhaW50QmFja2dyb3VuZEF0TG93UXVhbGl0eSk6CisK
IDIwMTAtMDMtMTkgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAkocmV2aXNpb24gNTYyMzUpCisrKyBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1
OCw4ICsxNTgsMTAgQEAgYm9vbCBSZW5kZXJCb3hNb2RlbFNjYWxlT2JzZXJ2ZXI6OnNob3VsZAog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCisgICAgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiB0ciA9IGRhdGEtPnRyYW5zZm9ybSgpOworICAgIGJvb2wgc2NhbGVVbmNoYW5nZWQgPSB0ci5h
KCkgPT0gY3VycmVudFRyYW5zZm9ybS5hKCkgJiYgdHIuYigpID09IGN1cnJlbnRUcmFuc2Zvcm0u
YigpICYmIHRyLmMoKSA9PSBjdXJyZW50VHJhbnNmb3JtLmMoKSAmJiB0ci5kKCkgPT0gY3VycmVu
dFRyYW5zZm9ybS5kKCk7CiAgICAgLy8gV2UgYXJlIHNjYWxlZCwgYnV0IHdlIHBhaW50ZWQgYWxy
ZWFkeSBhdCB0aGlzIHNpemUsIHNvIGp1c3Qga2VlcCB1c2luZyB3aGF0ZXZlciBtb2RlIHdlIGxh
c3QgcGFpbnRlZCB3aXRoLgotICAgIGlmICgoIWNvbnRleHRJc1NjYWxlZCB8fCBkYXRhLT50cmFu
c2Zvcm0oKSA9PSBjdXJyZW50VHJhbnNmb3JtKSAmJiBkYXRhLT5zaXplKCkgPT0gc2l6ZSkKKyAg
ICBpZiAoKCFjb250ZXh0SXNTY2FsZWQgfHwgc2NhbGVVbmNoYW5nZWQpICYmIGRhdGEtPnNpemUo
KSA9PSBzaXplKQogICAgICAgICByZXR1cm4gZGF0YS0+dXNlTG93UXVhbGl0eVNjYWxlKCk7CiAK
ICAgICAvLyBXZSBoYXZlIGRhdGEgYW5kIG91ciBzaXplIGp1c3QgY2hhbmdlZC4gIElmIHRoaXMg
Y2hhbmdlIGhhcHBlbmVkIHF1aWNrbHksIGdvIGludG8gbG93IHF1YWxpdHkgbW9kZSBhbmQgdGhl
biBzZXQgYSByZXBhaW50Cg==
</data>
<flag name="review"
          id="34368"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>