<?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>49842</bug_id>
          
          <creation_ts>2010-11-19 16:49:49 -0800</creation_ts>
          <short_desc>[chromium] Accumulated scroll damage rect should be in the content space</short_desc>
          <delta_ts>2010-11-23 12:33:23 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Grace Kloba">klobag</reporter>
          <assigned_to name="Grace Kloba">klobag</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>enne</cc>
    
    <cc>kbr</cc>
    
    <cc>nduca</cc>
    
    <cc>thakis</cc>
    
    <cc>vangelis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>311755</commentid>
    <comment_count>0</comment_count>
    <who name="Grace Kloba">klobag</who>
    <bug_when>2010-11-19 16:49:49 -0800</bug_when>
    <thetext>The accumulated scroll damage rect in WebViewImpl::scrollRootLayerRect() should be in the content space. Otherwise when scrollRootLayerRect() is called more frequent than the scroll damage rect is consumed in doComposite(), we will have garbage in the final result. e.g. if scrollRootLayerRect() is called twice with (10, 0) before doComposite() is called, the accumulated screen rect will have width of 10 while the expected width should be 20.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311758</commentid>
    <comment_count>1</comment_count>
      <attachid>74443</attachid>
    <who name="Grace Kloba">klobag</who>
    <bug_when>2010-11-19 16:54:53 -0800</bug_when>
    <thetext>Created attachment 74443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311771</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-19 17:31:48 -0800</bug_when>
    <thetext>Vangelis should look at this. It basically looks fine to me but I don&apos;t really know the compositor&apos;s math.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311789</commentid>
    <comment_count>3</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-11-19 17:56:48 -0800</bug_when>
    <thetext>I think I agree with you but I&apos;m cc-ing nduca as well who I know spent a bunch of time getting this working just in case he feels otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312415</commentid>
    <comment_count>4</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-11-22 10:59:51 -0800</bug_when>
    <thetext>I&apos;m a bit confused, actually. This is basically the undo of 46864... can you take a peek at that bug and let me know what you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312540</commentid>
    <comment_count>5</comment_count>
    <who name="Grace Kloba">klobag</who>
    <bug_when>2010-11-22 14:53:19 -0800</bug_when>
    <thetext>I don&apos;t think this is a fully undo of 46864 (cute bug number :)).

My understanding of 46864 is to fix the scrollbar redraw issue. Scroll bar likes fixed position object. Its invalidation rect is set through WebViewImpl::invalidateRootLayerRect() and it is in the screen coordinate. And we want to keep it that way. That is what the CL for 46864 needs to do.

But the scroll damage rect should be in the content space. e.g. if we scroll (0, 10) twice, their screen rect will be same while the content rect will be different. So I think scroll damage rect should stay in the content space to get the correct invalidation rect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312543</commentid>
    <comment_count>6</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-11-22 14:58:34 -0800</bug_when>
    <thetext>What about a simpler fix:
    m_rootLayerScrollDamage.move(scrollDelta.width(), scrollDelta.height());
    m_rootLayerScrollDamage.unite(damagedContentsRect);

Doesn&apos;t this do the same thing?

(In reply to comment #5)
&gt; I don&apos;t think this is a fully undo of 46864 (cute bug number :)).
&gt; 
&gt; My understanding of 46864 is to fix the scrollbar redraw issue. Scroll bar likes fixed position object. Its invalidation rect is set through WebViewImpl::invalidateRootLayerRect() and it is in the screen coordinate. And we want to keep it that way. That is what the CL for 46864 needs to do.
&gt; 
&gt; But the scroll damage rect should be in the content space. e.g. if we scroll (0, 10) twice, their screen rect will be same while the content rect will be different. So I think scroll damage rect should stay in the content space to get the correct invalidation rect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312548</commentid>
    <comment_count>7</comment_count>
    <who name="Grace Kloba">klobag</who>
    <bug_when>2010-11-22 15:06:00 -0800</bug_when>
    <thetext>I think your proposal will work. But it seems not as clean as the other way.

One proposal, m_rootLayerScrollDamage accumulated in the content space.

Another proposal, m_rootLayerScrollDamage is mapped to the screen space. When it needs to be accumulated, the previous one will be first shifted to compensate the new scroll offset, and then do union.

I prefer one, but I am ok to do two if it is what preferred.

(In reply to comment #6)
&gt; What about a simpler fix:
&gt;     m_rootLayerScrollDamage.move(scrollDelta.width(), scrollDelta.height());
&gt;     m_rootLayerScrollDamage.unite(damagedContentsRect);
&gt; 
&gt; Doesn&apos;t this do the same thing?
&gt; 
&gt; (In reply to comment #5)
&gt; &gt; I don&apos;t think this is a fully undo of 46864 (cute bug number :)).
&gt; &gt; 
&gt; &gt; My understanding of 46864 is to fix the scrollbar redraw issue. Scroll bar likes fixed position object. Its invalidation rect is set through WebViewImpl::invalidateRootLayerRect() and it is in the screen coordinate. And we want to keep it that way. That is what the CL for 46864 needs to do.
&gt; &gt; 
&gt; &gt; But the scroll damage rect should be in the content space. e.g. if we scroll (0, 10) twice, their screen rect will be same while the content rect will be different. So I think scroll damage rect should stay in the content space to get the correct invalidation rect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312557</commentid>
    <comment_count>8</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-11-22 15:23:52 -0800</bug_when>
    <thetext>I totally agree that the two are equivalent. :)

From my perspective, its up to you to make the call, I don&apos;t feel very strongly.

A few thoughts to help with your decision making...
1) I think we should be consistent about trakcing all types of damage --- etiher all in screenspace or all in content space.

2) The tiling work is going to rip this code to shreds since it needs to track in content space. I&apos;m not sure how far along Enne is on that work, but if you do make the switch, it would be good to coordinate with them.


- N

(In reply to comment #7)
&gt; I think your proposal will work. But it seems not as clean as the other way.
&gt; 
&gt; One proposal, m_rootLayerScrollDamage accumulated in the content space.
&gt; 
&gt; Another proposal, m_rootLayerScrollDamage is mapped to the screen space. When it needs to be accumulated, the previous one will be first shifted to compensate the new scroll offset, and then do union.
&gt; 
&gt; I prefer one, but I am ok to do two if it is what preferred.
&gt; 
&gt; (In reply to comment #6)
&gt; &gt; What about a simpler fix:
&gt; &gt;     m_rootLayerScrollDamage.move(scrollDelta.width(), scrollDelta.height());
&gt; &gt;     m_rootLayerScrollDamage.unite(damagedContentsRect);
&gt; &gt; 
&gt; &gt; Doesn&apos;t this do the same thing?
&gt; &gt; 
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; I don&apos;t think this is a fully undo of 46864 (cute bug number :)).
&gt; &gt; &gt; 
&gt; &gt; &gt; My understanding of 46864 is to fix the scrollbar redraw issue. Scroll bar likes fixed position object. Its invalidation rect is set through WebViewImpl::invalidateRootLayerRect() and it is in the screen coordinate. And we want to keep it that way. That is what the CL for 46864 needs to do.
&gt; &gt; &gt; 
&gt; &gt; &gt; But the scroll damage rect should be in the content space. e.g. if we scroll (0, 10) twice, their screen rect will be same while the content rect will be different. So I think scroll damage rect should stay in the content space to get the correct invalidation rect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312568</commentid>
    <comment_count>9</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2010-11-22 15:52:09 -0800</bug_when>
    <thetext>To address Nat&apos;s comments, I don&apos;t know if we can be consistent.  The content is in screen space, but the scrollbars are always in content space.  I suspect that higher-level API refactoring might be needed to have this be more sane.

Also, my tiling patch should refactor this function quite a bit and no longer does invalidations based on scrolling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312575</commentid>
    <comment_count>10</comment_count>
    <who name="Grace Kloba">klobag</who>
    <bug_when>2010-11-22 16:00:28 -0800</bug_when>
    <thetext>It sounds like this will be changed when tiling is landed.

Can I check this is as it is?

(In reply to comment #9)
&gt; To address Nat&apos;s comments, I don&apos;t know if we can be consistent.  The content is in screen space, but the scrollbars are always in content space.  I suspect that higher-level API refactoring might be needed to have this be more sane.
&gt; 
&gt; Also, my tiling patch should refactor this function quite a bit and no longer does invalidations based on scrolling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312579</commentid>
    <comment_count>11</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-11-22 16:04:20 -0800</bug_when>
    <thetext>I suggest using the reduced patch. It feels lower risk to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312583</commentid>
    <comment_count>12</comment_count>
    <who name="Grace Kloba">klobag</who>
    <bug_when>2010-11-22 16:11:55 -0800</bug_when>
    <thetext>Sure. I will update the new patch.

(In reply to comment #11)
&gt; I suggest using the reduced patch. It feels lower risk to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312608</commentid>
    <comment_count>13</comment_count>
      <attachid>74615</attachid>
    <who name="Grace Kloba">klobag</who>
    <bug_when>2010-11-22 16:51:20 -0800</bug_when>
    <thetext>Created attachment 74615
new patch

Per discussion, use the alternative fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312864</commentid>
    <comment_count>14</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-11-23 08:34:13 -0800</bug_when>
    <thetext>Does this work as exptected?

=&gt; Rect r(0,0,0,0)
=&gt; r.move(0,-10)
=&gt; rNew = r.union(Rect(10,10,10,10))
=&gt; Assert(rNew == Rect(10,10,10,10))

Otherwise, lgtm. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312884</commentid>
    <comment_count>15</comment_count>
    <who name="Grace Kloba">klobag</who>
    <bug_when>2010-11-23 09:07:43 -0800</bug_when>
    <thetext>It should. In IntRect.unite(), it has the special code to handle empty case.

    // Handle empty special cases first.
    if (other.isEmpty())
        return;
    if (isEmpty()) {
        *this = other;
        return;
    }

(In reply to comment #14)
&gt; Does this work as exptected?
&gt; 
&gt; =&gt; Rect r(0,0,0,0)
&gt; =&gt; r.move(0,-10)
&gt; =&gt; rNew = r.union(Rect(10,10,10,10))
&gt; =&gt; Assert(rNew == Rect(10,10,10,10))
&gt; 
&gt; Otherwise, lgtm. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312918</commentid>
    <comment_count>16</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-23 10:43:20 -0800</bug_when>
    <thetext>I&apos;m assuming that the new patch above is complete. Is that correct? If so, I&apos;m happy to r+ it; should I also submit it to the commit queue (you should usually request cq?)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312924</commentid>
    <comment_count>17</comment_count>
    <who name="Grace Kloba">klobag</who>
    <bug_when>2010-11-23 10:49:57 -0800</bug_when>
    <thetext>Yes. It is ready to do now. Thanks for submitting it.

(In reply to comment #16)
&gt; I&apos;m assuming that the new patch above is complete. Is that correct? If so, I&apos;m happy to r+ it; should I also submit it to the commit queue (you should usually request cq?)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312939</commentid>
    <comment_count>18</comment_count>
      <attachid>74615</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-23 11:21:04 -0800</bug_when>
    <thetext>Comment on attachment 74615
new patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312967</commentid>
    <comment_count>19</comment_count>
      <attachid>74615</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-23 12:33:18 -0800</bug_when>
    <thetext>Comment on attachment 74615
new patch

Clearing flags on attachment: 74615

Committed r72620: &lt;http://trac.webkit.org/changeset/72620&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312968</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-23 12:33:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74443</attachid>
            <date>2010-11-19 16:54:53 -0800</date>
            <delta_ts>2010-11-23 10:42:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>scroll.txt</filename>
            <type>text/plain</type>
            <size>3451</size>
            <attacher name="Grace Kloba">klobag</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzI0NTMpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMTEtMTkgIEdyYWNl
IEtsb2JhICA8a2xvYmFnQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEFjY3VtdWxhdGVkIHNjcm9sbCBkYW1h
Z2UgcmVjdCBzaG91bGQgYmUgaW4gdGhlIGNvbnRlbnQgc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5ODQyCisKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2Nyb2xsUm9vdExh
eWVyUmVjdCk6VXNlIGNvbnRlbnQgcmVjdCB0byBjYWxjdWxhdGUgbV9yb290TGF5ZXJTY3JvbGxE
YW1hZ2UKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvQ29tcG9zaXRlKTogQ29udmVy
dCBtX3Jvb3RMYXllclNjcm9sbERhbWFnZSB0byBzY3JlZW4gc3BhY2UuCisKIDIwMTAtMTEtMTkg
IElseWEgU2hlcm1hbiAgPGlzaGVybWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAko
cmV2aXNpb24gNzI0NDIpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjI4MiwxMCArMjI4MiwxMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpz
Y3JvbGxSb290TGF5ZXJSZWN0KGNvCiAgICAgICAgIHJldHVybjsKIAogICAgIEludFJlY3QgY29u
dGVudFJlY3QgPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoZmFsc2UpOwotICAgIEludFJlY3Qg
c2NyZWVuUmVjdCA9IHZpZXctPmNvbnRlbnRzVG9XaW5kb3coY29udGVudFJlY3QpOwogCiAgICAg
Ly8gV2Ugc3VwcG9ydCBmYXN0IHNjcm9sbGluZyBpbiBvbmUgZGlyZWN0aW9uIGF0IGEgdGltZS4K
ICAgICBpZiAoc2Nyb2xsRGVsdGEud2lkdGgoKSAmJiBzY3JvbGxEZWx0YS5oZWlnaHQoKSkgewor
ICAgICAgICBJbnRSZWN0IHNjcmVlblJlY3QgPSB2aWV3LT5jb250ZW50c1RvV2luZG93KGNvbnRl
bnRSZWN0KTsKICAgICAgICAgaW52YWxpZGF0ZVJvb3RMYXllclJlY3QoV2ViUmVjdChzY3JlZW5S
ZWN0KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMjk2LDI0ICsyMjk2LDI0IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnNjcm9sbFJvb3RMYXllclJlY3QoY28KICAgICBJbnRSZWN0IGRhbWFn
ZWRDb250ZW50c1JlY3Q7CiAgICAgaWYgKHNjcm9sbERlbHRhLndpZHRoKCkpIHsKICAgICAgICAg
aW50IGR4ID0gc2Nyb2xsRGVsdGEud2lkdGgoKTsKLSAgICAgICAgZGFtYWdlZENvbnRlbnRzUmVj
dC5zZXRZKHNjcmVlblJlY3QueSgpKTsKLSAgICAgICAgZGFtYWdlZENvbnRlbnRzUmVjdC5zZXRI
ZWlnaHQoc2NyZWVuUmVjdC5oZWlnaHQoKSk7CisgICAgICAgIGRhbWFnZWRDb250ZW50c1JlY3Qu
c2V0WShjb250ZW50UmVjdC55KCkpOworICAgICAgICBkYW1hZ2VkQ29udGVudHNSZWN0LnNldEhl
aWdodChjb250ZW50UmVjdC5oZWlnaHQoKSk7CiAgICAgICAgIGlmIChkeCA+IDApIHsKLSAgICAg
ICAgICAgIGRhbWFnZWRDb250ZW50c1JlY3Quc2V0WChzY3JlZW5SZWN0LngoKSk7CisgICAgICAg
ICAgICBkYW1hZ2VkQ29udGVudHNSZWN0LnNldFgoY29udGVudFJlY3QueCgpKTsKICAgICAgICAg
ICAgIGRhbWFnZWRDb250ZW50c1JlY3Quc2V0V2lkdGgoZHgpOwogICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgZGFtYWdlZENvbnRlbnRzUmVjdC5zZXRYKHNjcmVlblJlY3QucmlnaHQoKSAr
IGR4KTsKKyAgICAgICAgICAgIGRhbWFnZWRDb250ZW50c1JlY3Quc2V0WChjb250ZW50UmVjdC5y
aWdodCgpICsgZHgpOwogICAgICAgICAgICAgZGFtYWdlZENvbnRlbnRzUmVjdC5zZXRXaWR0aCgt
ZHgpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgaW50IGR5ID0gc2Nyb2xsRGVs
dGEuaGVpZ2h0KCk7Ci0gICAgICAgIGRhbWFnZWRDb250ZW50c1JlY3Quc2V0WChzY3JlZW5SZWN0
LngoKSk7Ci0gICAgICAgIGRhbWFnZWRDb250ZW50c1JlY3Quc2V0V2lkdGgoc2NyZWVuUmVjdC53
aWR0aCgpKTsKKyAgICAgICAgZGFtYWdlZENvbnRlbnRzUmVjdC5zZXRYKGNvbnRlbnRSZWN0Lngo
KSk7CisgICAgICAgIGRhbWFnZWRDb250ZW50c1JlY3Quc2V0V2lkdGgoY29udGVudFJlY3Qud2lk
dGgoKSk7CiAgICAgICAgIGlmIChkeSA+IDApIHsKLSAgICAgICAgICAgIGRhbWFnZWRDb250ZW50
c1JlY3Quc2V0WShzY3JlZW5SZWN0LnkoKSk7CisgICAgICAgICAgICBkYW1hZ2VkQ29udGVudHNS
ZWN0LnNldFkoY29udGVudFJlY3QueSgpKTsKICAgICAgICAgICAgIGRhbWFnZWRDb250ZW50c1Jl
Y3Quc2V0SGVpZ2h0KGR5KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRhbWFnZWRD
b250ZW50c1JlY3Quc2V0WShzY3JlZW5SZWN0LmJvdHRvbSgpICsgZHkpOworICAgICAgICAgICAg
ZGFtYWdlZENvbnRlbnRzUmVjdC5zZXRZKGNvbnRlbnRSZWN0LmJvdHRvbSgpICsgZHkpOwogICAg
ICAgICAgICAgZGFtYWdlZENvbnRlbnRzUmVjdC5zZXRIZWlnaHQoLWR5KTsKICAgICAgICAgfQog
ICAgIH0KQEAgLTI0NjAsNyArMjQ2MCw5IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRvQ29tcG9zaXRl
KCkKIAogICAgIC8vIERyYXcgdGhlIGNvbnRlbnRzIG9mIHRoZSByb290IGxheWVyLgogICAgIFZl
Y3RvcjxJbnRSZWN0PiBkYW1hZ2VSZWN0czsKLSAgICBkYW1hZ2VSZWN0cy5hcHBlbmQobV9yb290
TGF5ZXJTY3JvbGxEYW1hZ2UpOworICAgIC8vIGRhbWFnZVJlY3RzIHNob3VsZCBiZSBpbiB0aGUg
c2NyZWVuIHNwYWNlLCB3aGlsZSB0aGUgYWNjdW11bGF0ZWQgbV9yb290TGF5ZXJTY3JvbGxEYW1h
Z2UKKyAgICAvLyBpcyBpbiB0aGUgY29udGVudCBzcGFjZS4KKyAgICBkYW1hZ2VSZWN0cy5hcHBl
bmQodmlldy0+Y29udGVudHNUb1dpbmRvdyhtX3Jvb3RMYXllclNjcm9sbERhbWFnZSkpOwogICAg
IGRhbWFnZVJlY3RzLmFwcGVuZChtX3Jvb3RMYXllckRpcnR5UmVjdCk7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBkYW1hZ2VSZWN0cy5zaXplKCk7ICsraSkgewogICAgICAgICBJbnRSZWN0
IGRhbWFnZWRSZWN0ID0gZGFtYWdlUmVjdHNbaV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74615</attachid>
            <date>2010-11-22 16:51:20 -0800</date>
            <delta_ts>2010-11-23 12:33:17 -0800</delta_ts>
            <desc>new patch</desc>
            <filename>scroll2.txt</filename>
            <type>text/plain</type>
            <size>1303</size>
            <attacher name="Grace Kloba">klobag</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzI1NzMpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMTEtMjIgIEdyYWNl
IEtsb2JhICA8a2xvYmFnQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEFjY3VtdWxhdGVkIHNjcm9sbCBkYW1h
Z2UgcmVjdCBzaG91bGQgYmUgaW4gdGhlIGNvbnRlbnQgc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5ODQyCisKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2Nyb2xsUm9vdExh
eWVyUmVjdCk6IEFkanVzdCB0aGUgcHJldmlvdXMgc2Nyb2xsIGRhbWFnZSB3aXRoIHRoZSBzY3Jv
bGwgZGVsdGEgYmVmb3JlIHVuaW9uIGl0IHdpdGggdGhlIG5ldyBkYW1hZ2UgcmVjdC4KKwogMjAx
MC0xMS0yMiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGwgQ2hyb21pdW0gREVQUyB0byByNjcwMDQuCkluZGV4OiBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gNzI1NzEpCisrKyBXZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMxOCw2ICsyMzE4LDkgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6c2Nyb2xsUm9vdExheWVyUmVjdChjbwogICAgICAgICB9CiAgICAgfQog
CisgICAgLy8gTW92ZSB0aGUgcHJldmlvdXMgZGFtYWdlCisgICAgbV9yb290TGF5ZXJTY3JvbGxE
YW1hZ2UubW92ZShzY3JvbGxEZWx0YS53aWR0aCgpLCBzY3JvbGxEZWx0YS5oZWlnaHQoKSk7Cisg
ICAgLy8gVW5pb24gd2l0aCB0aGUgbmV3IGRhbWFnZSByZWN0LgogICAgIG1fcm9vdExheWVyU2Ny
b2xsRGFtYWdlLnVuaXRlKGRhbWFnZWRDb250ZW50c1JlY3QpOwogCiAgICAgLy8gU2Nyb2xsIGFu
eSBleGlzdGluZyBkYW1hZ2UgdGhhdCBpbnRlcnNlY3RzIHdpdGggY2xpcCByZWN0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>