<?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>15070</bug_id>
          
          <creation_ts>2007-08-24 08:57:28 -0700</creation_ts>
          <short_desc>[GTK] Backing store support for faster scrolling</short_desc>
          <delta_ts>2009-03-01 13:54:00 -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>New Bugs</component>
          <version>523.x (Safari 3)</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>Gtk, Performance</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Holger Freyther">zecke</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
    
    <cc>gwright</cc>
    
    <cc>marco.barisione</cc>
    
    <cc>withsmilo</cc>
    
    <cc>zaheer.mot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1536</commentid>
    <comment_count>0</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-08-24 08:57:28 -0700</bug_when>
    <thetext>In order to implement multiple frame support the windows design was adopted. For the non static background we currently draw too much and too often.

On each scroll we are likely to redraw the whole viewport. ScrollView calls into the ChromeClient to update the backingstore and scroll the backing store which in the Gtk case are currently no-op&apos;s.
To change that the expose handler of WebKitGtkPage should just paint the backing store, ChromeClient should hold the backing store and to accelerate scrolling we should make sure to reuse as much as possible, and finally ScrollView should not invalidate the whole GdkWindow of the containingWindow() when the page is scrolled. To get/see/learn more details one should take a look at the windows port.

The interesting part is to decide how, where and what to buffer. E.g. disable double buffering on the GdkWindow, keeping a cairo surface in ChromeClient...

Another interesting observation is ScrollView::updateScrollbars which is creating and destroying PlatformScrollbars frequently on resizes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63935</commentid>
    <comment_count>1</comment_count>
      <attachid>17848</attachid>
    <who name="George Wright">gwright</who>
    <bug_when>2007-12-11 08:58:42 -0800</bug_when>
    <thetext>Created attachment 17848
Initial implementation of a backbuffer

This is an initial patch that doesn&apos;t work too well; scrolling vertically seems to be fine except for a few artifacts to do with text. However, scrolling horizontally seems to be a total failure.

Relevant code is in ChromeClient::scrollBackingStore() for those who wish to look at it. The cases for dy being &lt;0 or &gt;0 are fine; the analogous cases for dx do not work, and I&apos;m not entirely sure why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83447</commentid>
    <comment_count>2</comment_count>
    <who name="zaheer">zaheer.mot</who>
    <bug_when>2008-06-16 04:56:01 -0700</bug_when>
    <thetext>i think the problem is that frame-&gt;view()-&gt;paint is overwriting the other areas apart from the clip region. adding this clip to the cairo context as well seems to fix the problem..

ctx.setGdkBackingStore(GDK_DRAWABLE(pageData-&gt;backingStore));
+ ctx.clip(clip);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83962</commentid>
    <comment_count>3</comment_count>
    <who name="Marco Barisione">marco.barisione</who>
    <bug_when>2008-06-20 03:41:24 -0700</bug_when>
    <thetext>Alp: on IRC you said that you have a semi-working patch for this. Any news? Do you want any help testing the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111738</commentid>
    <comment_count>4</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-01 13:54:00 -0800</bug_when>
    <thetext>I believe this is obsolete now since bug #21314 is in. Closing as.. FIXED (?).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17848</attachid>
            <date>2007-12-11 08:58:42 -0800</date>
            <delta_ts>2007-12-11 08:58:42 -0800</delta_ts>
            <desc>Initial implementation of a backbuffer</desc>
            <filename>backbuffer-20071211.patch</filename>
            <type>text/plain</type>
            <size>8007</size>
            <attacher name="George Wright">gwright</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IGJmMjE3
ZTAuLmIwZDU3ODMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaApAQCAtMjMyLDYgKzIzMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIFBMQVRG
T1JNKEdUSykKICAgICAgICAgdm9pZCBzZXRHZGtFeHBvc2VFdmVudChHZGtFdmVudEV4cG9zZSop
OworICAgICAgICB2b2lkIHNldEdka0JhY2tpbmdTdG9yZShHZGtEcmF3YWJsZSopOwogICAgICAg
ICBHZGtEcmF3YWJsZSogZ2RrRHJhd2FibGUoKSBjb25zdDsKICAgICAgICAgR2RrRXZlbnRFeHBv
c2UqIGdka0V4cG9zZUV2ZW50KCkgY29uc3Q7CiAgICAgICAgIEludFBvaW50IHRyYW5zbGF0ZVBv
aW50KGNvbnN0IEludFBvaW50JikgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IGJhZTcxZjku
LmY1MzQxNTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoKIAog
I2lmIFBMQVRGT1JNKEdUSykKICAgICBHZGtFdmVudEV4cG9zZSogZXhwb3NlOworICAgIEdka0Ry
YXdhYmxlKiBiYWNraW5nU3RvcmU7CiAjZW5kaWYKIH07CiAKQEAgLTkwLDYgKzkxLDcgQEAgR3Jh
cGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZh
dGUoKQogICAgIDogIGNyKDApCiAjaWYgUExBVEZPUk0oR1RLKQogICAgICwgZXhwb3NlKDApCisg
ICAgLCBiYWNraW5nU3RvcmUoMCkKICNlbmRpZgogewogfQpAQCAtODU4LDcgKzg2MCwxNSBAQCBH
ZGtEcmF3YWJsZSogR3JhcGhpY3NDb250ZXh0OjpnZGtEcmF3YWJsZSgpIGNvbnN0CiAgICAgaWYg
KCFtX2RhdGEtPmV4cG9zZSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gR0RLX0RS
QVdBQkxFKG1fZGF0YS0+ZXhwb3NlLT53aW5kb3cpOworICAgIGlmIChtX2RhdGEtPmJhY2tpbmdT
dG9yZSkKKyAgICAgICAgcmV0dXJuIG1fZGF0YS0+YmFja2luZ1N0b3JlOworICAgIGVsc2UKKyAg
ICAgICAgcmV0dXJuIEdES19EUkFXQUJMRShtX2RhdGEtPmV4cG9zZS0+d2luZG93KTsKK30KKwor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEdka0JhY2tpbmdTdG9yZShHZGtEcmF3YWJsZSogZHJh
d2FibGUpCit7CisgICAgbV9kYXRhLT5iYWNraW5nU3RvcmUgPSBkcmF3YWJsZTsKIH0KIAogSW50
UG9pbnQgR3JhcGhpY3NDb250ZXh0Ojp0cmFuc2xhdGVQb2ludChjb25zdCBJbnRQb2ludCYgcG9p
bnQpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3Rr
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCmluZGV4IDk2YTdm
NTIuLmI0MjExMmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdH
dGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCkBAIC0z
MTgsOCArMzE4LDkgQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGUoKQogewogICAgIEFTU0VSVChj
b250YWluaW5nV2luZG93KCkpOwogCi0gICAgR2RrUmVjdGFuZ2xlIHJlY3QgPSBmcmFtZUdlb21l
dHJ5KCk7Ci0gICAgZ2RrX3dpbmRvd19pbnZhbGlkYXRlX3JlY3QoR1RLX1dJREdFVChjb250YWlu
aW5nV2luZG93KCkpLT53aW5kb3csICZyZWN0LCB0cnVlKTsKKyAgICAvL0dka1JlY3RhbmdsZSBy
ZWN0ID0gZnJhbWVHZW9tZXRyeSgpOworICAgIC8vYWRkVG9EaXJ0eVJlZ2lvbihJbnRSZWN0KHJl
Y3QueCwgcmVjdC55LCByZWN0LndpZHRoLCByZWN0LmhlaWdodCkpOworICAgIC8vdXBkYXRlQmFj
a2luZ1N0b3JlKCk7CiB9CiAKIGludCBTY3JvbGxWaWV3Ojp2aXNpYmxlV2lkdGgoKSBjb25zdApk
aWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
IGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmluZGV4IDhl
YzkxYjguLjhiYzEyYWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHAKQEAgLTI1MCwxOSArMjUwLDU4IEBAIEludFJlY3QgQ2hyb21lQ2xpZW50Ojp3
aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0KIAotdm9p
ZCBDaHJvbWVDbGllbnQ6OmFkZFRvRGlydHlSZWdpb24oY29uc3QgSW50UmVjdCYpCit2b2lkIENo
cm9tZUNsaWVudDo6YWRkVG9EaXJ0eVJlZ2lvbihjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgaWYgKEdUS19XSURHRVQobV93ZWJWaWV3KS0+d2luZG93
KSB7CisgICAgICAgIEdka1JlY3RhbmdsZSBnZGtSZWN0ID0geyByZWN0LngoKSwgcmVjdC55KCks
IHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSB9OworICAgICAgICBnZGtfd2luZG93X2ludmFs
aWRhdGVfcmVjdChHVEtfV0lER0VUKG1fd2ViVmlldyktPndpbmRvdywgJmdka1JlY3QsIHRydWUp
OworICAgIH0KIH0KIAogdm9pZCBDaHJvbWVDbGllbnQ6OnNjcm9sbEJhY2tpbmdTdG9yZShpbnQg
ZHgsIGludCBkeSwgY29uc3QgSW50UmVjdCYgc2Nyb2xsVmlld1JlY3QsIGNvbnN0IEludFJlY3Qm
IGNsaXBSZWN0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgV2ViS2l0V2ViVmlld1By
aXZhdGUqIHBhZ2VEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFKFdFQktJVF9XRUJf
VklFVyhtX3dlYlZpZXcpKTsKKyAgICBHZGtHQyogZ2MgPSBnZGtfZ2NfbmV3KHBhZ2VEYXRhLT5i
YWNraW5nU3RvcmUpOworCisgICAgR2RrUmVjdGFuZ2xlIGdka0NsaXBSZWN0ID0geyBjbGlwUmVj
dC54KCksIGNsaXBSZWN0LnkoKSwgY2xpcFJlY3Qud2lkdGgoKSwgY2xpcFJlY3QuaGVpZ2h0KCkg
fTsKKyAgICBnZGtfZ2Nfc2V0X2NsaXBfcmVjdGFuZ2xlKGdjLCAmZ2RrQ2xpcFJlY3QpOworCisg
ICAgR2RrUGl4bWFwKiBzY3JvbGxlZFN0b3JlID0gZ2RrX3BpeG1hcF9uZXcocGFnZURhdGEtPmJh
Y2tpbmdTdG9yZSwgc2Nyb2xsVmlld1JlY3Qud2lkdGgoKSwgc2Nyb2xsVmlld1JlY3QuaGVpZ2h0
KCksIC0xKTs7CisKKyAgICBnZGtfZHJhd19kcmF3YWJsZShzY3JvbGxlZFN0b3JlLAorICAgICAg
ICAgICAgZ2MsCisgICAgICAgICAgICBwYWdlRGF0YS0+YmFja2luZ1N0b3JlLAorICAgICAgICAg
ICAgMCwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBzY3JvbGxWaWV3UmVjdC54KCkgKyBk
eCwKKyAgICAgICAgICAgIHNjcm9sbFZpZXdSZWN0LnkoKSArIGR5LAorICAgICAgICAgICAgc2Ny
b2xsVmlld1JlY3Qud2lkdGgoKSAtIGR4LAorICAgICAgICAgICAgc2Nyb2xsVmlld1JlY3QuaGVp
Z2h0KCkgLSBkeSk7CisKKyAgICBnX29iamVjdF91bnJlZihwYWdlRGF0YS0+YmFja2luZ1N0b3Jl
KTsKKworICAgIHBhZ2VEYXRhLT5iYWNraW5nU3RvcmUgPSBzY3JvbGxlZFN0b3JlOworCisgICAg
aWYgKGR5ID4gMCkKKyAgICAgICAgYWRkVG9EaXJ0eVJlZ2lvbihJbnRSZWN0KHNjcm9sbFZpZXdS
ZWN0LngoKSwgc2Nyb2xsVmlld1JlY3QueSgpLCBzY3JvbGxWaWV3UmVjdC53aWR0aCgpLCBkeSkp
OworICAgIGVsc2UgaWYgKGR5IDwgMCkKKyAgICAgICAgYWRkVG9EaXJ0eVJlZ2lvbihJbnRSZWN0
KHNjcm9sbFZpZXdSZWN0LngoKSwgc2Nyb2xsVmlld1JlY3QuaGVpZ2h0KCkgKyBkeSwgc2Nyb2xs
Vmlld1JlY3Qud2lkdGgoKSwgLWR5KSk7CisKKyAgICBpZiAoZHggPiAwKQorICAgICAgICBhZGRU
b0RpcnR5UmVnaW9uKEludFJlY3Qoc2Nyb2xsVmlld1JlY3QueCgpLCBzY3JvbGxWaWV3UmVjdC55
KCksIGR4LCBzY3JvbGxWaWV3UmVjdC5oZWlnaHQoKSkpOworICAgIGVsc2UgaWYgKGR4IDwgMCkK
KyAgICAgICAgYWRkVG9EaXJ0eVJlZ2lvbihJbnRSZWN0KHNjcm9sbFZpZXdSZWN0LndpZHRoKCkg
KyBkeCwgc2Nyb2xsVmlld1JlY3QueSgpLCAtZHgsIHNjcm9sbFZpZXdSZWN0LmhlaWdodCgpKSk7
CisKKyAgICB1cGRhdGVCYWNraW5nU3RvcmUoKTsKKworICAgIGdka19kcmF3X2RyYXdhYmxlKEdU
S19XSURHRVQobV93ZWJWaWV3KS0+d2luZG93LCBnYywgcGFnZURhdGEtPmJhY2tpbmdTdG9yZSwK
KyAgICAgICAgICAgIDAsIDAsIDAsIDAsIHNjcm9sbFZpZXdSZWN0LndpZHRoKCksIHNjcm9sbFZp
ZXdSZWN0LmhlaWdodCgpKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnQ6OnVwZGF0ZUJhY2tpbmdT
dG9yZSgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoR1RLX1dJREdFVChtX3dl
YlZpZXcpLT53aW5kb3cpCisgICAgICAgIGdka193aW5kb3dfcHJvY2Vzc191cGRhdGVzKEdUS19X
SURHRVQobV93ZWJWaWV3KS0+d2luZG93LCB0cnVlKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnQ6
Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdCwgdW5zaWdu
ZWQgbW9kaWZpZXJGbGFncykKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViVmlldy93ZWJraXRw
cml2YXRlLmggYi9XZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0cHJpdmF0ZS5oCmluZGV4IDhhZGZm
ZjMuLmE1NTRlZjcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViVmlldy93ZWJraXRwcml2YXRl
LmgKKysrIGIvV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHByaXZhdGUuaApAQCAtNjMsNiArNjMs
OCBAQCBleHRlcm4gIkMiIHsKICAgICAgICAgYm9vbCBlZGl0YWJsZTsKIAogICAgICAgICBHdGtJ
TUNvbnRleHQqIGltQ29udGV4dDsKKworICAgICAgICBHZGtQaXhtYXAqIGJhY2tpbmdTdG9yZTsK
ICAgICB9OwogCiAgICAgI2RlZmluZSBXRUJLSVRfV0VCX0ZSQU1FX0dFVF9QUklWQVRFKG9iaikg
ICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX0ZS
QU1FLCBXZWJLaXRXZWJGcmFtZVByaXZhdGUpKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJW
aWV3L3dlYmtpdHdlYnZpZXcuY3BwIGIvV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcu
Y3BwCmluZGV4IDlmOWYzZGMuLmZiN2IyOWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViVmll
dy93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmll
dy5jcHAKQEAgLTkwLDE4ICs5MCwyOSBAQCBHX0RFRklORV9UWVBFKFdlYktpdFdlYlZpZXcsIHdl
YmtpdF93ZWJfdmlldywgR1RLX1RZUEVfQ09OVEFJTkVSKQogCiBzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0X3dlYl92aWV3X2V4cG9zZV9ldmVudChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZlbnRFeHBv
c2UqIGV2ZW50KQogeworICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwYWdlRGF0YSA9IFdFQktJ
VF9XRUJfVklFV19HRVRfUFJJVkFURShXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KSk7CisKICAgICBG
cmFtZSogZnJhbWUgPSBjb3JlKHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZShXRUJLSVRf
V0VCX1ZJRVcod2lkZ2V0KSkpOwogICAgIEdka1JlY3RhbmdsZSBjbGlwOwogICAgIGdka19yZWdp
b25fZ2V0X2NsaXBib3goZXZlbnQtPnJlZ2lvbiwgJmNsaXApOwotICAgIGNhaXJvX3QqIGNyID0g
Z2RrX2NhaXJvX2NyZWF0ZShldmVudC0+d2luZG93KTsKKworICAgIEdka0dDKiBnYyA9IGdka19n
Y19uZXcocGFnZURhdGEtPmJhY2tpbmdTdG9yZSk7CisgICAgY2Fpcm9fdCogY3IgPSBnZGtfY2Fp
cm9fY3JlYXRlKHBhZ2VEYXRhLT5iYWNraW5nU3RvcmUpOworCiAgICAgR3JhcGhpY3NDb250ZXh0
IGN0eChjcik7CisgICAgY3R4LnNldEdka0JhY2tpbmdTdG9yZShHREtfRFJBV0FCTEUocGFnZURh
dGEtPmJhY2tpbmdTdG9yZSkpOwogICAgIGN0eC5zZXRHZGtFeHBvc2VFdmVudChldmVudCk7CisK
ICAgICBpZiAoZnJhbWUtPnJlbmRlcmVyKCkpIHsKICAgICAgICAgZnJhbWUtPnZpZXcoKS0+bGF5
b3V0SWZOZWVkZWRSZWN1cnNpdmUoKTsKICAgICAgICAgZnJhbWUtPnZpZXcoKS0+cGFpbnQoJmN0
eCwgY2xpcCk7CiAgICAgfQorCiAgICAgY2Fpcm9fZGVzdHJveShjcik7CiAKKyAgICBnZGtfZHJh
d19kcmF3YWJsZShldmVudC0+d2luZG93LCBnYywgcGFnZURhdGEtPmJhY2tpbmdTdG9yZSwKKyAg
ICAgICAgICAgIGNsaXAueCwgY2xpcC55LCBjbGlwLngsIGNsaXAueSwgY2xpcC53aWR0aCwgY2xp
cC5oZWlnaHQpOworCiAgICAgcmV0dXJuIEZBTFNFOwogfQogCkBAIC0yMDgsNiArMjE5LDE0IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zaXplX2FsbG9jYXRlKEd0a1dpZGdldCogd2lk
Z2V0LCBHdGtBbGxvY2F0aW9uKiBhbGxvCiB7CiAgICAgR1RLX1dJREdFVF9DTEFTUyh3ZWJraXRf
d2ViX3ZpZXdfcGFyZW50X2NsYXNzKS0+c2l6ZV9hbGxvY2F0ZSh3aWRnZXQsYWxsb2NhdGlvbik7
CiAKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcGFnZURhdGEgPSBXRUJLSVRfV0VCX1ZJRVdf
R0VUX1BSSVZBVEUoV0VCS0lUX1dFQl9WSUVXKHdpZGdldCkpOworCisgICAgaWYgKHBhZ2VEYXRh
LT5iYWNraW5nU3RvcmUpIHsKKyAgICAgICAgR2RrUGl4bWFwKiBvbGQgPSBwYWdlRGF0YS0+YmFj
a2luZ1N0b3JlOworICAgICAgICBwYWdlRGF0YS0+YmFja2luZ1N0b3JlID0gZ2RrX3BpeG1hcF9u
ZXcocGFnZURhdGEtPmJhY2tpbmdTdG9yZSwgYWxsb2NhdGlvbi0+d2lkdGgsIGFsbG9jYXRpb24t
PmhlaWdodCwgLTEpOworICAgICAgICBnX29iamVjdF91bnJlZihvbGQpOworICAgIH0KKwogICAg
IEZyYW1lKiBmcmFtZSA9IGNvcmUod2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKFdFQktJ
VF9XRUJfVklFVyh3aWRnZXQpKSk7CiAgICAgZnJhbWUtPnZpZXcoKS0+cmVzaXplKGFsbG9jYXRp
b24tPndpZHRoLCBhbGxvY2F0aW9uLT5oZWlnaHQpOwogICAgIGZyYW1lLT5mb3JjZUxheW91dCgp
OwpAQCAtMjQyLDYgKzI2MSwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6
ZShHdGtXaWRnZXQqIHdpZGdldCkKICAgICBnaW50IGF0dHJpYnV0ZXNfbWFzayA9IEdES19XQV9Y
IHwgR0RLX1dBX1kgfCBHREtfV0FfVklTVUFMIHwgR0RLX1dBX0NPTE9STUFQOwogICAgIHdpZGdl
dC0+d2luZG93ID0gZ2RrX3dpbmRvd19uZXcoZ3RrX3dpZGdldF9nZXRfcGFyZW50X3dpbmRvdyAo
d2lkZ2V0KSwgJmF0dHJpYnV0ZXMsIGF0dHJpYnV0ZXNfbWFzayk7CiAgICAgZ2RrX3dpbmRvd19z
ZXRfdXNlcl9kYXRhKHdpZGdldC0+d2luZG93LCB3aWRnZXQpOworCisgICAgV2ViS2l0V2ViVmll
d1ByaXZhdGUqIHBhZ2VEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFKFdFQktJVF9X
RUJfVklFVyh3aWRnZXQpKTsKKworICAgIGdpbnQgd2lkdGgsIGhlaWdodDsKKyAgICBnZGtfZHJh
d2FibGVfZ2V0X3NpemUod2lkZ2V0LT53aW5kb3csICZ3aWR0aCwgJmhlaWdodCk7CisKKyAgICBw
YWdlRGF0YS0+YmFja2luZ1N0b3JlID0gZ2RrX3BpeG1hcF9uZXcod2lkZ2V0LT53aW5kb3csIHdp
ZHRoLCBoZWlnaHQsIC0xKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9z
Y3JvbGxfYWRqdXN0bWVudHMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrQWRqdXN0bWVudCog
aGFkaiwgR3RrQWRqdXN0bWVudCogdmFkaikK
</data>

          </attachment>
      

    </bug>

</bugzilla>