<?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>44091</bug_id>
          
          <creation_ts>2010-08-16 21:59:43 -0700</creation_ts>
          <short_desc>[Qt] Reduce the size of the shadow buffer to the clip region</short_desc>
          <delta_ts>2010-08-17 01:33:25 -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>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>HTML5, Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>34479</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ariya Hidayat">ariya.hidayat</reporter>
          <assigned_to name="Ariya Hidayat">ariya.hidayat</assigned_to>
          <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>krit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>265357</commentid>
    <comment_count>0</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-16 21:59:43 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65425 (from https://bugs.webkit.org/show_bug.cgi?id=44025) adds blur support to the shadow. The buffer image for the shadow is however slightly larger than the rectangle that casts the shadow. This becomes a problem if the rectangle is e.g. a very big &lt;div&gt; in a web page. Technically the shadow buffer needs to be as large as the viewport or the current clipping region only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265358</commentid>
    <comment_count>1</comment_count>
      <attachid>64551</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-16 22:12:07 -0700</bug_when>
    <thetext>Created attachment 64551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265361</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-08-16 22:24:36 -0700</bug_when>
    <thetext>I wounder if the clipping should be applied before adjusting the shadow rect. Doesn&apos;t your shadow have some blurring on the sides of the screen, if the shadowed rect is bigger than the current viewport?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265367</commentid>
    <comment_count>3</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-16 22:49:03 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I wounder if the clipping should be applied before adjusting the shadow rect. 

In that case, we might miss the case where the clip is adjacent to the shadow rect, and the shadow has a large blur radius.

But I see your point. I guess when the clip region can not fully contain the enlarged shadow rect (thus, they are intersecting or reverse contained), we need to expand the resulting rect once again.

I&apos;ll update the patch to reflect this situation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265388</commentid>
    <comment_count>4</comment_count>
      <attachid>64556</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-17 00:36:34 -0700</bug_when>
    <thetext>Created attachment 64556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265401</commentid>
    <comment_count>5</comment_count>
      <attachid>64556</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-17 01:04:01 -0700</bug_when>
    <thetext>Comment on attachment 64556
Patch

Is there any performance difference with this?WebCore/platform/graphics/qt/ContextShadow.cpp:212
 +  
why a new line here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265404</commentid>
    <comment_count>6</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-17 01:07:39 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 64556 [details])
&gt; Is there any performance difference with this?

Definitely. Some sites, e.g. http://sueddeutsche.de/ has superlarge div, several thousand pixels height, with drop shadow and blur. Without this patch, we keep using QImage as large as that while a much smaller one will do the job just fine.

&gt; WebCore/platform/graphics/qt/ContextShadow.cpp:212
&gt;  +  
&gt; why a new line here?

Not necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265412</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-17 01:11:10 -0700</bug_when>
    <thetext>Can this be slower in some cases as well? or is that neglectable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265414</commentid>
    <comment_count>8</comment_count>
      <attachid>64564</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-17 01:12:59 -0700</bug_when>
    <thetext>Created attachment 64564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265418</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-08-17 01:16:01 -0700</bug_when>
    <thetext>Not sure how this is called. But doesn&apos;t Qt store the current drawing of the page? So that the page doesn&apos;t need to draw on scrolling? That would mean, you just need to calculate the shadow once, and not over and over again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265421</commentid>
    <comment_count>10</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-17 01:18:51 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Can this be slower in some cases as well? or is that neglectable?

The shadow blur area is guaranteed to be the same or smaller with this patch, vs without this patch.

The only possible slowdown is the clipRegion().boundingRect() calculation. But this is really nothing (=negligible) compared to the blur operations itself (the most expensive part!), thus the extra cost is really worth the benefit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265422</commentid>
    <comment_count>11</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-17 01:20:35 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Not sure how this is called. But doesn&apos;t Qt store the current drawing of the page? So that the page doesn&apos;t need to draw on scrolling? That would mean, you just need to calculate the shadow once, and not over and over again?

Do you mean the tiled backing store? It&apos;s just an optimization to reduce the painting operations, but the shadow (as with other primitives) still needs be drawn once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265424</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-08-17 01:23:27 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Do you mean the tiled backing store? It&apos;s just an optimization to reduce the painting operations, but the shadow (as with other primitives) still needs be drawn once.

Yes I mean tiled backing store. But what do you mean with &quot;still needs be drawn once.&quot;, this wouldn&apos;t affect scrolling right? Means you just have a longer calculation of the effect once? (I&apos;m just curious)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265427</commentid>
    <comment_count>13</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-17 01:30:33 -0700</bug_when>
    <thetext>&gt; Yes I mean tiled backing store. But what do you mean with &quot;still needs be drawn once.&quot;, this wouldn&apos;t affect scrolling right? Means you just have a longer calculation of the effect once? (I&apos;m just curious)

It&apos;s just caching the page onto a set of pixmaps (=tiles) with the coverage slightly larger than the viewport. When you scroll a bit and the tiles still cover the new viewport entirely, only bitmap blit is necessary. When you scroll farther and the newly exposed area in the viewport are not covered by any of the tiles, then new tiles are generated (this is where the page is drawn, to the tiles).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265428</commentid>
    <comment_count>14</comment_count>
      <attachid>64564</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-17 01:33:10 -0700</bug_when>
    <thetext>Comment on attachment 64564
Patch

Clearing flags on attachment: 64564

Committed r65488: &lt;http://trac.webkit.org/changeset/65488&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265429</commentid>
    <comment_count>15</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-17 01:33:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64551</attachid>
            <date>2010-08-16 22:12:07 -0700</date>
            <delta_ts>2010-08-17 00:36:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44091-20100816221045.patch</filename>
            <type>text/plain</type>
            <size>2850</size>
            <attacher name="Ariya Hidayat">ariya.hidayat</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTE3MjE3NDU3YWE1OWE1OGJjYWI2NjBjYjI2ZWZkYWUyZDBlNTQ2OC4uNDhjMmFjODZhZWYwZWUy
NDBhYzE5OTUxZmYzYTI1NzRmNGZmYTY4MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOC0xNiAgQXJp
eWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBSZWR1Y2UgdGhlIHNpemUgb2YgdGhlIHNoYWRv
dyBidWZmZXIgdG8gdGhlIGNsaXAgcmVnaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NDA5MQorCisgICAgICAgIEluc3RlYWQgb2YgYWxsb2NhdGlu
ZyB0aGUgYnVmZmVyIGltYWdlIChmb3IgdGhlIGJsdXIgc3VwcG9ydCkgYXMgYmlnCisgICAgICAg
IGFzIHRoZSByZWN0YW5nbGUgd2hpY2ggY2FzdHMgdGhlIHNoYWRvdywgd2UgbGltaXQgdGhlIHNp
emUgdG8gdGhlCisgICAgICAgIGN1cnJlbnQgY2xpcCByZWdpb24uCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRTaGFkb3c6OmRyYXdTaGFkb3dSZWN0KToKKwogMjAxMC0wOC0xNiAgSmFtZXMgUm9iaW5z
b24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENvbXBpbGUgZml4LiBSZW1vdmUg
QU5HTEVXZWJLaXRCcmlkZ2UgY2xhc3NlcyBmcm9tIENocm9taXVtIGJ1aWxkLiAgVGhleSBhcmUg
dW51c2VkLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0
U2hhZG93LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvdy5j
cHAKaW5kZXggNmVmZjI3ODAzM2M4N2Y4ZmE5YTk3NWU2NjlmMmZjYWU2N2MwOThkMi4uZTg0Mjky
ZDE3NTE3YzYzMWQzYmJlNDljODk3ZjQ0YjMxNjNmOTBiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0NvbnRleHRTaGFkb3cuY3BwCkBAIC0yMDksMjEgKzIwOSwzNiBAQCB2
b2lkIENvbnRleHRTaGFkb3c6OmRyYXdTaGFkb3dSZWN0KFFQYWludGVyKiBwLCBjb25zdCBRUmVj
dEYmIHJlY3QpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICh0eXBlID09IEJsdXJTaGFkb3cp
IHsKKworICAgICAgICBRUmVjdEYgc2hhZG93UmVjdCA9IHJlY3QudHJhbnNsYXRlZChvZmZzZXQp
OworCiAgICAgICAgIC8vIFdlIGV4cGFuZCB0aGUgYXJlYSBieSB0aGUgYmx1ciByYWRpdXMgKiAy
IHRvIGdpdmUgZXh0cmEgc3BhY2UKICAgICAgICAgLy8gZm9yIHRoZSBibHVyIHRyYW5zaXRpb24u
CiAgICAgICAgIGludCBleHRyYSA9IGJsdXJSYWRpdXMgKiAyOwotICAgICAgICBRUmVjdCBpbWFn
ZVJlY3QgPSByZWN0LnRvQWxpZ25lZFJlY3QoKS5hZGp1c3RlZCgtZXh0cmEsIC1leHRyYSwgZXh0
cmEsIGV4dHJhKTsKKyAgICAgICAgUVJlY3RGIGJ1ZmZlclJlY3QgPSBzaGFkb3dSZWN0LmFkanVz
dGVkKC1leHRyYSwgLWV4dHJhLCBleHRyYSwgZXh0cmEpOworICAgICAgICBRUmVjdCBhbGlnbmVk
QnVmZmVyUmVjdCA9IGJ1ZmZlclJlY3QudG9BbGlnbmVkUmVjdCgpOworCisgICAgICAgIFFSZWN0
IGNsaXBSZWN0OworICAgICAgICBpZiAocC0+aGFzQ2xpcHBpbmcoKSkKKyAgICAgICAgICAgIGNs
aXBSZWN0ID0gcC0+Y2xpcFJlZ2lvbigpLmJvdW5kaW5nUmVjdCgpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBjbGlwUmVjdCA9ICBwLT50cmFuc2Zvcm0oKS5pbnZlcnRlZCgpLm1hcFJlY3Qo
cC0+d2luZG93KCkpOwogCi0gICAgICAgIFFJbWFnZSBzaGFkb3dJbWFnZShpbWFnZVJlY3Quc2l6
ZSgpLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzJfUHJlbXVsdGlwbGllZCk7CisgICAgICAgIGFsaWdu
ZWRCdWZmZXJSZWN0ID0gYWxpZ25lZEJ1ZmZlclJlY3QuaW50ZXJzZWN0ZWQoY2xpcFJlY3QpOwor
CisgICAgICAgIGlmIChhbGlnbmVkQnVmZmVyUmVjdC5pc0VtcHR5KCkpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgUUltYWdlIHNoYWRvd0ltYWdlKGFsaWduZWRCdWZmZXJSZWN0LnNp
emUoKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyX1ByZW11bHRpcGxpZWQpOwogICAgICAgICBzaGFk
b3dJbWFnZS5maWxsKFF0Ojp0cmFuc3BhcmVudCk7CiAgICAgICAgIFFQYWludGVyIHNoYWRvd1Bh
aW50ZXIoJnNoYWRvd0ltYWdlKTsKLSAgICAgICAgc2hhZG93UGFpbnRlci5maWxsUmVjdChyZWN0
LngoKSAtIGltYWdlUmVjdC54KCksIHJlY3QueSgpIC0gaW1hZ2VSZWN0LnkoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCksIGNvbG9y
KTsKKworICAgICAgICBzaGFkb3dQYWludGVyLmZpbGxSZWN0KHNoYWRvd1JlY3QudHJhbnNsYXRl
ZCgtYWxpZ25lZEJ1ZmZlclJlY3QudG9wTGVmdCgpKSwgY29sb3IpOwogICAgICAgICBzaGFkb3dQ
YWludGVyLmVuZCgpOwogCiAgICAgICAgIHNoYWRvd0JsdXIoc2hhZG93SW1hZ2UsIGJsdXJSYWRp
dXMsIGNvbG9yKTsKIAotICAgICAgICBwLT5kcmF3SW1hZ2UoaW1hZ2VSZWN0LnRvcExlZnQoKSAr
IG9mZnNldCwgc2hhZG93SW1hZ2UpOworICAgICAgICBwLT5kcmF3SW1hZ2UoYWxpZ25lZEJ1ZmZl
clJlY3QudG9wTGVmdCgpLCBzaGFkb3dJbWFnZSk7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64556</attachid>
            <date>2010-08-17 00:36:34 -0700</date>
            <delta_ts>2010-08-17 01:12:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44091-20100817003512.patch</filename>
            <type>text/plain</type>
            <size>3209</size>
            <attacher name="Ariya Hidayat">ariya.hidayat</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTE3MjE3NDU3YWE1OWE1OGJjYWI2NjBjYjI2ZWZkYWUyZDBlNTQ2OC4uMjk3NjE3ODNlOThmYzJm
NmY2YjJlODE0ZjA1ZjNkMDJlMGRmOWFmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOC0xNyAgQXJp
eWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBSZWR1Y2UgdGhlIHNpemUgb2YgdGhlIHNoYWRv
dyBidWZmZXIgdG8gdGhlIGNsaXAgcmVnaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NDA5MQorCisgICAgICAgIEluc3RlYWQgb2YgYWxsb2NhdGlu
ZyB0aGUgYnVmZmVyIGltYWdlIChmb3IgdGhlIGJsdXIgc3VwcG9ydCkgYXMgYmlnCisgICAgICAg
IGFzIHRoZSByZWN0YW5nbGUgd2hpY2ggY2FzdHMgdGhlIHNoYWRvdywgd2UgbGltaXQgdGhlIHNp
emUgdG8gdGhlCisgICAgICAgIGN1cnJlbnQgY2xpcCByZWdpb24uCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRTaGFkb3c6OmRyYXdTaGFkb3dSZWN0KToKKwogMjAxMC0wOC0xNiAgSmFtZXMgUm9iaW5z
b24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENvbXBpbGUgZml4LiBSZW1vdmUg
QU5HTEVXZWJLaXRCcmlkZ2UgY2xhc3NlcyBmcm9tIENocm9taXVtIGJ1aWxkLiAgVGhleSBhcmUg
dW51c2VkLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0
U2hhZG93LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvdy5j
cHAKaW5kZXggNmVmZjI3ODAzM2M4N2Y4ZmE5YTk3NWU2NjlmMmZjYWU2N2MwOThkMi4uNjg2ZWY4
N2Q1OTRhOGRkMTEzMGNkOTU5YzE5YTQyY2QyYzM1OTJiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0NvbnRleHRTaGFkb3cuY3BwCkBAIC0yMDksMjEgKzIwOSw0MyBAQCB2
b2lkIENvbnRleHRTaGFkb3c6OmRyYXdTaGFkb3dSZWN0KFFQYWludGVyKiBwLCBjb25zdCBRUmVj
dEYmIHJlY3QpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICh0eXBlID09IEJsdXJTaGFkb3cp
IHsKKworICAgICAgICBRUmVjdEYgc2hhZG93UmVjdCA9IHJlY3QudHJhbnNsYXRlZChvZmZzZXQp
OworCiAgICAgICAgIC8vIFdlIGV4cGFuZCB0aGUgYXJlYSBieSB0aGUgYmx1ciByYWRpdXMgKiAy
IHRvIGdpdmUgZXh0cmEgc3BhY2UKICAgICAgICAgLy8gZm9yIHRoZSBibHVyIHRyYW5zaXRpb24u
CiAgICAgICAgIGludCBleHRyYSA9IGJsdXJSYWRpdXMgKiAyOwotICAgICAgICBRUmVjdCBpbWFn
ZVJlY3QgPSByZWN0LnRvQWxpZ25lZFJlY3QoKS5hZGp1c3RlZCgtZXh0cmEsIC1leHRyYSwgZXh0
cmEsIGV4dHJhKTsKKyAgICAgICAgUVJlY3RGIGJ1ZmZlclJlY3QgPSBzaGFkb3dSZWN0LmFkanVz
dGVkKC1leHRyYSwgLWV4dHJhLCBleHRyYSwgZXh0cmEpOworICAgICAgICBRUmVjdCBhbGlnbmVk
QnVmZmVyUmVjdCA9IGJ1ZmZlclJlY3QudG9BbGlnbmVkUmVjdCgpOworCisgICAgICAgIFFSZWN0
IGNsaXBSZWN0OworICAgICAgICBpZiAocC0+aGFzQ2xpcHBpbmcoKSkKKyAgICAgICAgICAgIGNs
aXBSZWN0ID0gcC0+Y2xpcFJlZ2lvbigpLmJvdW5kaW5nUmVjdCgpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBjbGlwUmVjdCA9IHAtPnRyYW5zZm9ybSgpLmludmVydGVkKCkubWFwUmVjdChw
LT53aW5kb3coKSk7CisKKyAgICAgICAgaWYgKCFjbGlwUmVjdC5jb250YWlucyhhbGlnbmVkQnVm
ZmVyUmVjdCkpIHsKIAotICAgICAgICBRSW1hZ2Ugc2hhZG93SW1hZ2UoaW1hZ2VSZWN0LnNpemUo
KSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyX1ByZW11bHRpcGxpZWQpOworICAgICAgICAgICAgLy8g
Tm8gbmVlZCB0byBoYXZlIHRoZSBidWZmZXIgbGFyZ2VyIHRoYXQgdGhlIGNsaXAuCisgICAgICAg
ICAgICBhbGlnbmVkQnVmZmVyUmVjdCA9IGFsaWduZWRCdWZmZXJSZWN0LmludGVyc2VjdGVkKGNs
aXBSZWN0KTsKKyAgICAgICAgICAgIGlmIChhbGlnbmVkQnVmZmVyUmVjdC5pc0VtcHR5KCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAvLyBXZSBhZGp1c3QgYWdhaW4g
YmVjYXVzZSB0aGUgcGl4ZWxzIGF0IHRoZSBib3JkZXJzIGFyZSBzdGlsbAorICAgICAgICAgICAg
Ly8gcG90ZW50aWFsbHkgYWZmZWN0ZWQgYnkgdGhlIHBpeGVscyBvdXRzaWRlIHRoZSBidWZmZXIu
CisgICAgICAgICAgICBhbGlnbmVkQnVmZmVyUmVjdC5hZGp1c3QoLWV4dHJhLCAtZXh0cmEsIGV4
dHJhLCBleHRyYSk7CisgICAgICAgIH0KKworICAgICAgICBRSW1hZ2Ugc2hhZG93SW1hZ2UoYWxp
Z25lZEJ1ZmZlclJlY3Quc2l6ZSgpLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzJfUHJlbXVsdGlwbGll
ZCk7CiAgICAgICAgIHNoYWRvd0ltYWdlLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsKICAgICAgICAg
UVBhaW50ZXIgc2hhZG93UGFpbnRlcigmc2hhZG93SW1hZ2UpOwotICAgICAgICBzaGFkb3dQYWlu
dGVyLmZpbGxSZWN0KHJlY3QueCgpIC0gaW1hZ2VSZWN0LngoKSwgcmVjdC55KCkgLSBpbWFnZVJl
Y3QueSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3Qud2lkdGgoKSwgcmVj
dC5oZWlnaHQoKSwgY29sb3IpOworCisgICAgICAgIHNoYWRvd1BhaW50ZXIuZmlsbFJlY3Qoc2hh
ZG93UmVjdC50cmFuc2xhdGVkKC1hbGlnbmVkQnVmZmVyUmVjdC50b3BMZWZ0KCkpLCBjb2xvcik7
CiAgICAgICAgIHNoYWRvd1BhaW50ZXIuZW5kKCk7CiAKICAgICAgICAgc2hhZG93Qmx1cihzaGFk
b3dJbWFnZSwgYmx1clJhZGl1cywgY29sb3IpOwogCi0gICAgICAgIHAtPmRyYXdJbWFnZShpbWFn
ZVJlY3QudG9wTGVmdCgpICsgb2Zmc2V0LCBzaGFkb3dJbWFnZSk7CisgICAgICAgIHAtPmRyYXdJ
bWFnZShhbGlnbmVkQnVmZmVyUmVjdC50b3BMZWZ0KCksIHNoYWRvd0ltYWdlKTsKIAogICAgICAg
ICByZXR1cm47CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64564</attachid>
            <date>2010-08-17 01:12:59 -0700</date>
            <delta_ts>2010-08-17 01:33:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44091-20100817011137.patch</filename>
            <type>text/plain</type>
            <size>3207</size>
            <attacher name="Ariya Hidayat">ariya.hidayat</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTE3MjE3NDU3YWE1OWE1OGJjYWI2NjBjYjI2ZWZkYWUyZDBlNTQ2OC4uMjk3NjE3ODNlOThmYzJm
NmY2YjJlODE0ZjA1ZjNkMDJlMGRmOWFmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOC0xNyAgQXJp
eWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBSZWR1Y2UgdGhlIHNpemUgb2YgdGhlIHNoYWRv
dyBidWZmZXIgdG8gdGhlIGNsaXAgcmVnaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NDA5MQorCisgICAgICAgIEluc3RlYWQgb2YgYWxsb2NhdGlu
ZyB0aGUgYnVmZmVyIGltYWdlIChmb3IgdGhlIGJsdXIgc3VwcG9ydCkgYXMgYmlnCisgICAgICAg
IGFzIHRoZSByZWN0YW5nbGUgd2hpY2ggY2FzdHMgdGhlIHNoYWRvdywgd2UgbGltaXQgdGhlIHNp
emUgdG8gdGhlCisgICAgICAgIGN1cnJlbnQgY2xpcCByZWdpb24uCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRTaGFkb3c6OmRyYXdTaGFkb3dSZWN0KToKKwogMjAxMC0wOC0xNiAgSmFtZXMgUm9iaW5z
b24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENvbXBpbGUgZml4LiBSZW1vdmUg
QU5HTEVXZWJLaXRCcmlkZ2UgY2xhc3NlcyBmcm9tIENocm9taXVtIGJ1aWxkLiAgVGhleSBhcmUg
dW51c2VkLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0
U2hhZG93LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvdy5j
cHAKaW5kZXggNmVmZjI3ODAzM2M4N2Y4ZmE5YTk3NWU2NjlmMmZjYWU2N2MwOThkMi4uMDUxMTIx
ODIwODg4Nzg1NzBhMDExMzMwMWY4N2E1MjM5Y2JjYjg4YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0NvbnRleHRTaGFkb3cuY3BwCkBAIC0yMDksMjEgKzIwOSw0MiBAQCB2
b2lkIENvbnRleHRTaGFkb3c6OmRyYXdTaGFkb3dSZWN0KFFQYWludGVyKiBwLCBjb25zdCBRUmVj
dEYmIHJlY3QpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICh0eXBlID09IEJsdXJTaGFkb3cp
IHsKKyAgICAgICAgUVJlY3RGIHNoYWRvd1JlY3QgPSByZWN0LnRyYW5zbGF0ZWQob2Zmc2V0KTsK
KwogICAgICAgICAvLyBXZSBleHBhbmQgdGhlIGFyZWEgYnkgdGhlIGJsdXIgcmFkaXVzICogMiB0
byBnaXZlIGV4dHJhIHNwYWNlCiAgICAgICAgIC8vIGZvciB0aGUgYmx1ciB0cmFuc2l0aW9uLgog
ICAgICAgICBpbnQgZXh0cmEgPSBibHVyUmFkaXVzICogMjsKLSAgICAgICAgUVJlY3QgaW1hZ2VS
ZWN0ID0gcmVjdC50b0FsaWduZWRSZWN0KCkuYWRqdXN0ZWQoLWV4dHJhLCAtZXh0cmEsIGV4dHJh
LCBleHRyYSk7CisgICAgICAgIFFSZWN0RiBidWZmZXJSZWN0ID0gc2hhZG93UmVjdC5hZGp1c3Rl
ZCgtZXh0cmEsIC1leHRyYSwgZXh0cmEsIGV4dHJhKTsKKyAgICAgICAgUVJlY3QgYWxpZ25lZEJ1
ZmZlclJlY3QgPSBidWZmZXJSZWN0LnRvQWxpZ25lZFJlY3QoKTsKKworICAgICAgICBRUmVjdCBj
bGlwUmVjdDsKKyAgICAgICAgaWYgKHAtPmhhc0NsaXBwaW5nKCkpCisgICAgICAgICAgICBjbGlw
UmVjdCA9IHAtPmNsaXBSZWdpb24oKS5ib3VuZGluZ1JlY3QoKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgY2xpcFJlY3QgPSBwLT50cmFuc2Zvcm0oKS5pbnZlcnRlZCgpLm1hcFJlY3QocC0+
d2luZG93KCkpOworCisgICAgICAgIGlmICghY2xpcFJlY3QuY29udGFpbnMoYWxpZ25lZEJ1ZmZl
clJlY3QpKSB7CiAKLSAgICAgICAgUUltYWdlIHNoYWRvd0ltYWdlKGltYWdlUmVjdC5zaXplKCks
IFFJbWFnZTo6Rm9ybWF0X0FSR0IzMl9QcmVtdWx0aXBsaWVkKTsKKyAgICAgICAgICAgIC8vIE5v
IG5lZWQgdG8gaGF2ZSB0aGUgYnVmZmVyIGxhcmdlciB0aGF0IHRoZSBjbGlwLgorICAgICAgICAg
ICAgYWxpZ25lZEJ1ZmZlclJlY3QgPSBhbGlnbmVkQnVmZmVyUmVjdC5pbnRlcnNlY3RlZChjbGlw
UmVjdCk7CisgICAgICAgICAgICBpZiAoYWxpZ25lZEJ1ZmZlclJlY3QuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgLy8gV2UgYWRqdXN0IGFnYWluIGJl
Y2F1c2UgdGhlIHBpeGVscyBhdCB0aGUgYm9yZGVycyBhcmUgc3RpbGwKKyAgICAgICAgICAgIC8v
IHBvdGVudGlhbGx5IGFmZmVjdGVkIGJ5IHRoZSBwaXhlbHMgb3V0c2lkZSB0aGUgYnVmZmVyLgor
ICAgICAgICAgICAgYWxpZ25lZEJ1ZmZlclJlY3QuYWRqdXN0KC1leHRyYSwgLWV4dHJhLCBleHRy
YSwgZXh0cmEpOworICAgICAgICB9CisKKyAgICAgICAgUUltYWdlIHNoYWRvd0ltYWdlKGFsaWdu
ZWRCdWZmZXJSZWN0LnNpemUoKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyX1ByZW11bHRpcGxpZWQp
OwogICAgICAgICBzaGFkb3dJbWFnZS5maWxsKFF0Ojp0cmFuc3BhcmVudCk7CiAgICAgICAgIFFQ
YWludGVyIHNoYWRvd1BhaW50ZXIoJnNoYWRvd0ltYWdlKTsKLSAgICAgICAgc2hhZG93UGFpbnRl
ci5maWxsUmVjdChyZWN0LngoKSAtIGltYWdlUmVjdC54KCksIHJlY3QueSgpIC0gaW1hZ2VSZWN0
LnkoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LndpZHRoKCksIHJlY3Qu
aGVpZ2h0KCksIGNvbG9yKTsKKworICAgICAgICBzaGFkb3dQYWludGVyLmZpbGxSZWN0KHNoYWRv
d1JlY3QudHJhbnNsYXRlZCgtYWxpZ25lZEJ1ZmZlclJlY3QudG9wTGVmdCgpKSwgY29sb3IpOwog
ICAgICAgICBzaGFkb3dQYWludGVyLmVuZCgpOwogCiAgICAgICAgIHNoYWRvd0JsdXIoc2hhZG93
SW1hZ2UsIGJsdXJSYWRpdXMsIGNvbG9yKTsKIAotICAgICAgICBwLT5kcmF3SW1hZ2UoaW1hZ2VS
ZWN0LnRvcExlZnQoKSArIG9mZnNldCwgc2hhZG93SW1hZ2UpOworICAgICAgICBwLT5kcmF3SW1h
Z2UoYWxpZ25lZEJ1ZmZlclJlY3QudG9wTGVmdCgpLCBzaGFkb3dJbWFnZSk7CiAKICAgICAgICAg
cmV0dXJuOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>