<?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>9749</bug_id>
          
          <creation_ts>2006-07-05 22:55:34 -0700</creation_ts>
          <short_desc>A nested content editable div causes unnecessary screen redraws.</short_desc>
          <delta_ts>2006-07-09 19:26:35 -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>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>48443</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2006-07-05 22:55:34 -0700</bug_when>
    <thetext>* STEPS TO REPRODUCE
1. Load the test case.
2. Use Quartz Debug and enable &quot;Flash screen updates.&quot;
3. Type into the content editable div.

* RESULTS
Each key stroke causes the whole outer div (which is most of the window) to redraw. This is a regression from shipping Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48444</commentid>
    <comment_count>1</comment_count>
      <attachid>9220</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2006-07-05 22:56:55 -0700</bug_when>
    <thetext>Created attachment 9220
Test case

We are repainting the outer div, and we used to not do that. It is being repainted from RenderBlock::layoutInlineChildren(). We call repaintViewRectangle() with the layer&apos;s repaint rect. I doubt that the repaint rect is wrong -- it seems more likely that we shouldn&apos;t be calling it in the first place, but I am not sure since I don&apos;t know enough about the repaint code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48445</commentid>
    <comment_count>2</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2006-07-05 22:58:12 -0700</bug_when>
    <thetext>Also the bug goes away if you take away the absolute positioning from either div.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48670</commentid>
    <comment_count>3</comment_count>
      <attachid>9243</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2006-07-06 20:14:41 -0700</bug_when>
    <thetext>Created attachment 9243
patch

I feel like this patch could not possibly be right. But it definitely hunts down the source of the problem. I remembered fixing a bug a while ago where the root cause was that a bunch of our old code held assumptions that positioned elements would always have line boxes, but it turns out that this isn&apos;t true. This assumption is also causing extra repaints because in layoutInlineChildren() we set fullLayout to true if we don&apos;t have any line boxes...meaning that positioned elements without line boxes always get a full layout. This is clearly overzealous. I imagine that the patch I attached is undezealous. (underzealous?? forgive me, for it has been a long day.) But I figure that attaching it is a good way to start a discussion about what the right fix is. Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48671</commentid>
    <comment_count>4</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2006-07-06 20:15:23 -0700</bug_when>
    <thetext>Oh by the way, all of the layout tests pass. But I am still not sure this is right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49006</commentid>
    <comment_count>5</comment_count>
      <attachid>9320</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2006-07-09 18:37:57 -0700</bug_when>
    <thetext>Created attachment 9320
New patch

So Maciej and I talked about this on IRC, and we couldn&apos;t figure out why the check for the firstLineBox was there at all. So this patch just removes that check entirey. It causes no layout test failures. We are assuming that its presense in determining if we need a full layout is antiquated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49007</commentid>
    <comment_count>6</comment_count>
      <attachid>9320</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-07-09 18:40:22 -0700</bug_when>
    <thetext>Comment on attachment 9320
New patch

r=me

May the lord have mercy on my soul if this was wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49009</commentid>
    <comment_count>7</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2006-07-09 19:26:35 -0700</bug_when>
    <thetext>I committed this with r15273</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>9220</attachid>
            <date>2006-07-05 22:56:55 -0700</date>
            <delta_ts>2006-07-05 22:56:55 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>note-editor.html</filename>
            <type>text/html</type>
            <size>694</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPiAKCTxo
ZWFkPiAKCQk8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRt
bDsgY2hhcnNldD1JU08tODg1OS0xJz4KCTwvaGVhZD4KCTxzdHlsZSB0eXBlPSd0ZXh0L2Nzcycg
bmFtZT0ibm90ZS1lZGl0b3IiPgoJCWRpdiNub3RlLWhlYWRlcgoJCXsKCQkJcG9zaXRpb246YWJz
b2x1dGU7CgkJCXRvcDoyMHB4OwoJCQlib3R0b206MHB4OwoJCQlyaWdodDowcHg7CgkJCWxlZnQ6
MHB4OwogICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZWQ7CgkJfQoK
CQlkaXYjbm90ZS1ib2R5CgkJewoJCQlwb3NpdGlvbjphYnNvbHV0ZTsKCQkJdG9wOjBweDsKCQkJ
bGVmdDowcHg7CgkJCXJpZ2h0OjBweDsKCQkJYmFja2dyb3VuZDpsaW1lOwogICAgICAgICAgICAg
ICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibHVlOwoJCX0KCgk8L3N0eWxlPgoJPGJvZHk+
CgkJPGRpdiBpZD0ibm90ZS1oZWFkZXIiPgoJCQk8ZGl2IGlkPSJub3RlLWJvZHkiPgoJCQkJPGRp
diBjb250ZW50ZWRpdGFibGU9InRydWUiPjwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9k
eT4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9243</attachid>
            <date>2006-07-06 20:14:41 -0700</date>
            <delta_ts>2006-07-09 18:37:57 -0700</delta_ts>
            <desc>patch</desc>
            <filename>repainty.txt</filename>
            <type>text/plain</type>
            <size>678</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IHJlbmRlcmluZy9iaWRpLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvYmlkaS5j
cHAJKHJldmlzaW9uIDE1MTk2KQorKysgcmVuZGVyaW5nL2JpZGkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDkxLDcgKzE0OTEsOCBAQAogICAgIC8vIEZpZ3VyZSBvdXQgaWYgd2Ugc2hvdWxkIGNs
ZWFyIG91dCBvdXIgbGluZSBib3hlcy4KICAgICAvLyBGSVhNRTogSGFuZGxlIHJlc2l6ZSBldmVu
dHVhbGx5IQogICAgIC8vIEZJWE1FOiBEbyBzb21ldGhpbmcgYmV0dGVyIHdoZW4gZmxvYXRzIGFy
ZSBwcmVzZW50LgotICAgIGJvb2wgZnVsbExheW91dCA9ICFmaXJzdExpbmVCb3goKSB8fCAhZmly
c3RDaGlsZCgpIHx8IHNlbGZOZWVkc0xheW91dCgpIHx8IHJlbGF5b3V0Q2hpbGRyZW4gfHwgY29u
dGFpbnNGbG9hdHMoKTsKKyAgICBib29sIGZ1bGxMYXlvdXQgPSAoIWZpcnN0TGluZUJveCgpICYm
ICFpc1Bvc2l0aW9uZWQoKSkKKyAgICAgICAgfHwgIWZpcnN0Q2hpbGQoKSB8fCBzZWxmTmVlZHNM
YXlvdXQoKSB8fCByZWxheW91dENoaWxkcmVuIHx8IGNvbnRhaW5zRmxvYXRzKCk7CiAgICAgaWYg
KGZ1bGxMYXlvdXQpCiAgICAgICAgIGRlbGV0ZUxpbmVCb3hlcygpOwogICAgICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9320</attachid>
            <date>2006-07-09 18:37:57 -0700</date>
            <delta_ts>2006-07-09 18:40:22 -0700</delta_ts>
            <desc>New patch</desc>
            <filename>newRepainty.txt</filename>
            <type>text/plain</type>
            <size>629</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IHJlbmRlcmluZy9iaWRpLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvYmlkaS5j
cHAJKHJldmlzaW9uIDE1MjI0KQorKysgcmVuZGVyaW5nL2JpZGkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDkxLDcgKzE0OTEsNyBAQAogICAgIC8vIEZpZ3VyZSBvdXQgaWYgd2Ugc2hvdWxkIGNs
ZWFyIG91dCBvdXIgbGluZSBib3hlcy4KICAgICAvLyBGSVhNRTogSGFuZGxlIHJlc2l6ZSBldmVu
dHVhbGx5IQogICAgIC8vIEZJWE1FOiBEbyBzb21ldGhpbmcgYmV0dGVyIHdoZW4gZmxvYXRzIGFy
ZSBwcmVzZW50LgotICAgIGJvb2wgZnVsbExheW91dCA9ICFmaXJzdExpbmVCb3goKSB8fCAhZmly
c3RDaGlsZCgpIHx8IHNlbGZOZWVkc0xheW91dCgpIHx8IHJlbGF5b3V0Q2hpbGRyZW4gfHwgY29u
dGFpbnNGbG9hdHMoKTsKKyAgICBib29sIGZ1bGxMYXlvdXQgPSAhZmlyc3RDaGlsZCgpIHx8IHNl
bGZOZWVkc0xheW91dCgpIHx8IHJlbGF5b3V0Q2hpbGRyZW4gfHwgY29udGFpbnNGbG9hdHMoKTsK
ICAgICBpZiAoZnVsbExheW91dCkKICAgICAgICAgZGVsZXRlTGluZUJveGVzKCk7CiAgICAgICAg
IAo=
</data>
<flag name="review"
          id="2813"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>