<?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>40629</bug_id>
          
          <creation_ts>2010-06-15 10:02:50 -0700</creation_ts>
          <short_desc>GraphicsLayer: Allow more layers to be opaque when applicable</short_desc>
          <delta_ts>2011-12-01 12:09:28 -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>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>70634</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>38744</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>igor.oliveira</cc>
    
    <cc>jesus</cc>
    
    <cc>noam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>smagnuso</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>238432</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-15 10:02:50 -0700</bug_when>
    <thetext>This would include layers with a 100% solid background color.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238456</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-06-15 10:31:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/5698198&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243905</commentid>
    <comment_count>2</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-28 14:26:55 -0700</bug_when>
    <thetext>*** Bug 40380 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245113</commentid>
    <comment_count>3</comment_count>
      <attachid>60200</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-30 23:02:54 -0700</bug_when>
    <thetext>Created attachment 60200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245117</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-06-30 23:09:12 -0700</bug_when>
    <thetext>Attachment 60200 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3370100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245121</commentid>
    <comment_count>5</comment_count>
      <attachid>60201</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-30 23:15:59 -0700</bug_when>
    <thetext>Created attachment 60201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245359</commentid>
    <comment_count>6</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-07-01 08:39:01 -0700</bug_when>
    <thetext>The Qt-specific content LGTM!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245374</commentid>
    <comment_count>7</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-07-01 09:14:00 -0700</bug_when>
    <thetext>question - if we use contentsRect() for the texture instead of size(), can&apos;t we set the contents to opaque if the bgcolor is opaque, regardless of the layer size? 
I&apos;m not really sure how contentsRect is supposed to work, but if it corresponds to the element size, this should be feasible and would also save us some texture-memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246487</commentid>
    <comment_count>8</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-07-04 20:50:33 -0700</bug_when>
    <thetext>ignore my last comment; contentsRect is only for directly composited image/media.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247191</commentid>
    <comment_count>9</comment_count>
      <attachid>60201</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-06 13:08:30 -0700</bug_when>
    <thetext>Comment on attachment 60201
Patch

&gt; index d531bb5d0a0e29abdfe930ec7bf2166d3b55b422..fcee1962310652d679e6977f1b587b9581242dff 100644
&gt; +        No new tests: this is an optimization.        

You can and should add tests that dump the layer tree (layoutTestController.layerTreeAsText()). You should also add a test or two to make sure that you don&apos;t hit this optimization when you don&apos;t intend to.

&gt;  void GraphicsLayerQtImpl::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
&gt;  {
&gt; -    if (m_currentContent.backgroundColor.isValid())
&gt; -        painter-&gt;fillRect(option-&gt;rect, QColor(m_currentContent.backgroundColor));
&gt; +//     if (m_currentContent.backgroundColor.isValid())
&gt; +//         painter-&gt;fillRect(option-&gt;rect, QColor(m_currentContent.backgroundColor));

Don&apos;t check in commented-out code.

&gt; diff --git a/WebCore/rendering/RenderLayerBacking.cpp b/WebCore/rendering/RenderLayerBacking.cpp

&gt; +    bool contentsOpaque = false;
&gt; +    if (rendererHasBackground()) {
&gt; +        const Color &amp;bgColor = rendererBackgroundColor();

Color is sizeof(int), so no point in using a reference there.

&gt; +        if (bgColor.alpha() == 255) {

Use !bgColor.hasAlpha().

&gt; +            const IntRect elementBounds = m_owningLayer-&gt;localBoundingBox(),
&gt; +                            layerBounds = compositedBounds();

We don&apos;t use multiple declarations like this. Also no need for the IntRects to be &apos;const&apos;. Also elementBounds is a bad name; that&apos;s really layer bounds. So use layerBounds and compositedBounds or something.

&gt; +            if (elementBounds.width() &gt;= layerBounds.width() &amp;&amp; elementBounds.height() &gt;= layerBounds.height())
&gt; +                contentsOpaque = true;

You should just test for rect equality. The composited bounds will never be smaller than m_owningLayer-&gt;localBoundingBox().

You should file a follow-up bug for other obvious enhancements (e.g. non-alpha background image).

r- for lack of tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264684</commentid>
    <comment_count>10</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-08-14 08:13:25 -0700</bug_when>
    <thetext>This one is still applicable even though it&apos;s with GraphicsLayerQt, though it doesn&apos;t give us a huge performance benefit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512977</commentid>
    <comment_count>11</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-12-01 12:08:28 -0800</bug_when>
    <thetext>Noam, Igor, is this a duplicate of https://bugs.webkit.org/show_bug.cgi?id=70634 ?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512978</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-12-01 12:09:28 -0800</bug_when>
    <thetext>Yep.

*** This bug has been marked as a duplicate of bug 70634 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60200</attachid>
            <date>2010-06-30 23:02:54 -0700</date>
            <delta_ts>2010-06-30 23:15:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40629-20100630230242.patch</filename>
            <type>text/plain</type>
            <size>6278</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDUzMWJiNWQwYTBlMjlhYmRmZTkzMGVjN2JmMjE2NmQzYjU1YjQyMi4uZmNlZTE5NjIzMTA2NTJk
Njc5ZTY5NzdmMWI1ODdiOTU4MTI0MmRmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNi0zMCAgU2Ft
IE1hZ251c29uICA8c21hZ251c29uQG5ldGZsaXguY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdyYXBoaWNzTGF5ZXI6IEFsbG93IG1vcmUgbGF5
ZXJzIHRvIGJlIG9wYXF1ZSB3aGVuIGFwcGxpY2FibGUKKyAgICAgICAgVGhpcyBwYXRjaCBkZXRl
Y3RzIGEgbGF5ZXIgd2l0aCBhbiBvcGFxdWUgYmFja2dyb3VuZCBjb2xvciBpdCBhbHNvCisgICAg
ICAgIGhhcyB0byBkZXRlcm1pbmUgdGhhdCB0aGUgbGF5ZXIgYW5kIHRoZSBlbGVtZW50IGl0IGlz
IGJhY2tpbmcgaGFzCisgICAgICAgIHRoZSBzYW1lIGJvdW5kcyAoYW5kIHRodXMgdGhlIGJhY2tn
cm91bmQgZmlsbHMgdGhlIGVudGlyZSBsYXllcikuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDYyOQorCisgICAgICAgIE5vIG5ldyB0ZXN0czogdGhp
cyBpcyBhbiBvcHRpbWl6YXRpb24uICAgICAgICAKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUXRJbXBsOjpyZWNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJRdElt
cGw6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXll
ckdlb21ldHJ5KToKKwogMjAxMC0wNi0yNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKaW5kZXggM2JiNjQyMWMyZjA5
MDU4NTVmMDNiMzJjNjE2ZTg4Mzc5MzFjYTVhNC4uMTFmNTM4MGJmMmQ0ZTUwOGExMzYyNDM4YmRm
ODAwMWE0ZDE5M2VhYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9H
cmFwaGljc0xheWVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3Jh
cGhpY3NMYXllclF0LmNwcApAQCAtMzU4LDcgKzM1OCw3IEBAIFFQaXhtYXAgR3JhcGhpY3NMYXll
clF0SW1wbDo6cmVjYWNoZShjb25zdCBRUmVnaW9uJiByZWdpb25Ub1VwZGF0ZSkKICAgICB9CiAK
ICAgICB7Ci0gICAgICAgIGJvb2wgZXJhc2VkID0gZmFsc2U7CisgICAgICAgIGJvb2wgZXJhc2Ug
PSAhbV9zdGF0ZS5jb250ZW50c09wYXF1ZTsKIAogICAgICAgICAvLyBJZiB0aGUgcGl4bWFwIGlz
IG5vdCBpbiB0aGUgY2FjaGUgb3IgdGhlIHZpZXcgaGFzIGdyb3duIHNpbmNlIGxhc3QgY2FjaGVk
LgogICAgICAgICBpZiAocGl4bWFwLmlzTnVsbCgpIHx8IG1fc2l6ZSAhPSBtX2JhY2tpbmdTdG9y
ZS5zaXplKSB7CkBAIC0zNjYsNyArMzY2LDcgQEAgUVBpeG1hcCBHcmFwaGljc0xheWVyUXRJbXBs
OjpyZWNhY2hlKGNvbnN0IFFSZWdpb24mIHJlZ2lvblRvVXBkYXRlKQogICAgICAgICAgICAgaWYg
KHBpeG1hcC5pc051bGwoKSkKICAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAiQ2FjaGVNaXNz
IiA8PCB0aGlzIDw8IG1fc2l6ZTsKICNlbmRpZgotICAgICAgICAgICAgYm9vbCBmaWxsID0gdHJ1
ZTsKKyAgICAgICAgICAgIGJvb2wgZmlsbFBpeG1hcCA9IHRydWU7CiAgICAgICAgICAgICBRUmVn
aW9uIG5ld1JlZ2lvbjsKICAgICAgICAgICAgIFFQaXhtYXAgb2xkUGl4bWFwID0gcGl4bWFwOwog
CkBAIC0zNzYsNyArMzc2LDEyIEBAIFFQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNo
ZShjb25zdCBRUmVnaW9uJiByZWdpb25Ub1VwZGF0ZSkKICAgICAgICAgICAgICAgICBxRGVidWco
KSA8PCAiQ2FjaGVHcm93IiA8PCB0aGlzIDw8IG1fc2l6ZTsKICNlbmRpZgogICAgICAgICAgICAg
ICAgIHBpeG1hcCA9IFFQaXhtYXAobV9zaXplLnRvU2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBw
aXhtYXAuZmlsbChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICAgICAgICAgIGlmIChmaWxsUGl4
bWFwKSB7CisjaWYgUVRfREVCVUdfUkVDQUNIRQorICAgICAgICAgICAgICAgICAgICBxRGVidWco
KSA8PCAiQ2FjaGVFcmFzZSIgPDwgdGhpczsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBw
aXhtYXAuZmlsbChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICBuZXdSZWdpb24gPSBRUmVnaW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUu
aGVpZ2h0KCkpOwogICAgICAgICAgICAgfQogCkBAIC0zOTQsMTcgKzM5OSwxNyBAQCBRUGl4bWFw
IEdyYXBoaWNzTGF5ZXJRdEltcGw6OnJlY2FjaGUoY29uc3QgUVJlZ2lvbiYgcmVnaW9uVG9VcGRh
dGUpCiAgICAgICAgICAgICAgICAgICAgIHBhaW50ZXIuc2V0Q29tcG9zaXRpb25Nb2RlKFFQYWlu
dGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlKTsKICAgICAgICAgICAgICAgICAgICAgcGFpbnRl
ci5kcmF3UGl4bWFwKGNsZWFuQm91bmRzLnRvcExlZnQoKSwgb2xkUGl4bWFwLCBjbGVhbkJvdW5k
cyk7CiAgICAgICAgICAgICAgICAgICAgIG5ld1JlZ2lvbiAtPSBjbGVhblJlZ2lvbjsKLSAgICAg
ICAgICAgICAgICAgICAgZmlsbCA9IGZhbHNlOyAvLyBXZSBjYW5ub3QganVzdCBmaWxsIHRoZSBw
aXhtYXAuCisgICAgICAgICAgICAgICAgICAgIGZpbGxQaXhtYXAgPSBmYWxzZTsgLy8gV2UgY2Fu
bm90IGp1c3QgZmlsbCB0aGUgcGl4bWFwLgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICBvbGRQaXhtYXAgPSBRUGl4bWFwKCk7CiAgICAgICAgICAgICB9CiAjZW5kaWYKICAgICAg
ICAgICAgIHJlZ2lvbiArPSBuZXdSZWdpb247Ci0gICAgICAgICAgICBpZiAoZmlsbCAmJiAhcmVn
aW9uLmlzRW1wdHkoKSkgeyAvLyBDbGVhciB0aGUgZW50aXJlIHBpeG1hcCB3aXRoIHRoZSBiYWNr
Z3JvdW5kLgorICAgICAgICAgICAgaWYgKGZpbGxQaXhtYXAgJiYgIXJlZ2lvbi5pc0VtcHR5KCkp
IHsgLy8gQ2xlYXIgdGhlIGVudGlyZSBwaXhtYXAgd2l0aCB0aGUgYmFja2dyb3VuZC4KICNpZiBR
VF9ERUJVR19SRUNBQ0hFCi0gICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIkNhY2hlRXJhc2Ui
IDw8IHRoaXMgPDwgbV9zaXplIDw8IGJhY2tncm91bmQ7CisgICAgICAgICAgICAgICAgcURlYnVn
KCkgPDwgIkNhY2hlRXJhc2UiIDw8IHRoaXM7CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBlcmFz
ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGVyYXNlID0gZmFsc2U7CiAgICAgICAgICAgICAg
ICAgcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQpAQCAtNDI0LDEyICs0MjksMTIgQEAgUVBpeG1hcCBHcmFwaGljc0xheWVyUXRJbXBsOjpyZWNh
Y2hlKGNvbnN0IFFSZWdpb24mIHJlZ2lvblRvVXBkYXRlKQogCiAgICAgICAgICAgICBwYWludGVy
LnNldENsaXBSZWdpb24ocmVnaW9uKTsKIAotICAgICAgICAgICAgaWYgKCFlcmFzZWQpIHsgLy8g
RXJhc2UgdGhlIGFyZWEgaW4gY2FjaGUgdGhhdCB3ZSdyZSBkcmF3aW5nIGludG8uCisgICAgICAg
ICAgICBpZiAoZXJhc2UpIHsgLy8gRXJhc2UgdGhlIGFyZWEgaW4gY2FjaGUgdGhhdCB3ZSdyZSBk
cmF3aW5nIGludG8uCiAgICAgICAgICAgICAgICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUo
UVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9DbGVhcik7CiAgICAgICAgICAgICAgICAgcGFpbnRl
ci5maWxsUmVjdChyZWdpb24uYm91bmRpbmdSZWN0KCksIFF0Ojp0cmFuc3BhcmVudCk7CiAKICNp
ZiBRVF9ERUJVR19DQUNIRURVTVAKLSAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAiKioqKiBD
QUNIRURVTVAiIDw8IHJlY2FjaGVDb3VudCA8PCB0aGlzIDw8IG1fbGF5ZXIgPDwgcmVnaW9uIDw8
IG1fc2l6ZTsKKyAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAiKioqKiBDQUNIRURVTVAoZXJh
c2UpIiA8PCByZWNhY2hlQ291bnQgPDwgdGhpcyA8PCBtX2xheWVyIDw8IHJlZ2lvbiA8PCBtX3Np
emU7CiAgICAgICAgICAgICAgICAgcGl4bWFwLnNhdmUoUVN0cmluZygpLnNwcmludGYoIi90bXAv
JTA1ZF9CLnBuZyIsIHJlY2FjaGVDb3VudCksICJQTkciKTsKICNlbmRpZgogICAgICAgICAgICAg
fQpAQCAtNTU5LDggKzU2NCw4IEBAIFFSZWN0RiBHcmFwaGljc0xheWVyUXRJbXBsOjpib3VuZGlu
Z1JlY3QoKSBjb25zdAogCiB2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50KFFQYWludGVy
KiBwYWludGVyLCBjb25zdCBRU3R5bGVPcHRpb25HcmFwaGljc0l0ZW0qIG9wdGlvbiwgUVdpZGdl
dCogd2lkZ2V0KQogewotICAgIGlmIChtX2N1cnJlbnRDb250ZW50LmJhY2tncm91bmRDb2xvci5p
c1ZhbGlkKCkpCi0gICAgICAgIHBhaW50ZXItPmZpbGxSZWN0KG9wdGlvbi0+cmVjdCwgUUNvbG9y
KG1fY3VycmVudENvbnRlbnQuYmFja2dyb3VuZENvbG9yKSk7CisvLyAgICAgaWYgKG1fY3VycmVu
dENvbnRlbnQuYmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKKy8vICAgICAgICAgcGFpbnRlci0+
ZmlsbFJlY3Qob3B0aW9uLT5yZWN0LCBRQ29sb3IobV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5k
Q29sb3IpKTsKIAogICAgIHN3aXRjaCAobV9jdXJyZW50Q29udGVudC5jb250ZW50VHlwZSkgewog
ICAgIGNhc2UgSFRNTENvbnRlbnRUeXBlOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKaW5kZXggNzk0YjU1YTNkZWJmMDE1YzNhNjQ0ZmU1ZGY0ZWRmZDE5YTVmMDE0Yy4u
Y2JlMGNhYTAzZmQxYzZmOWNjMzMxYjAxNTI0OWQ3YzI3YmNlYzliYyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0zOTYsNiArMzk2LDE5IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkoKQogICAgICAgICBp
ZiAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBpbm5lckNvbXBvc2l0b3IgPSBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmlmcmFtZUNvbnRlbnRzQ29tcG9zaXRvcih0b1JlbmRlcklGcmFtZShyZW5kZXJl
cigpKSkpCiAgICAgICAgICAgICBpbm5lckNvbXBvc2l0b3ItPnVwZGF0ZUNvbnRlbnRMYXllck9m
ZnNldChjb250ZW50c0JveCgpLmxvY2F0aW9uKCkpOwogICAgIH0KKworICAgIGJvb2wgY29udGVu
dHNPcGFxdWUgPSBmYWxzZTsKKyAgICBpZiAocmVuZGVyZXJIYXNCYWNrZ3JvdW5kKCkpIHsKKyAg
ICAgICAgY29uc3QgQ29sb3IgJmJnQ29sb3IgPSByZW5kZXJlckJhY2tncm91bmRDb2xvcigpOwor
ICAgICAgICBpZiAoYmdDb2xvci5hbHBoYSgpID09IDI1NSkgeworICAgICAgICAgICAgY29uc3Qg
SW50UmVjdCBlbGVtZW50Qm91bmRzID0gbV9vd25pbmdMYXllci0+bG9jYWxCb3VuZGluZ0JveCgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyQm91bmRzID0gY29tcG9zaXRlZEJv
dW5kcygpOworICAgICAgICAgICAgICAgICAgICAgbGF5ZXJCb3VuZHMud2lkdGgoKSwgbGF5ZXJC
b3VuZHMuaGVpZ2h0KCksIGVsZW1lbnRCb3VuZHMud2lkdGgoKSwgZWxlbWVudEJvdW5kcy5oZWln
aHQoKSApOworICAgICAgICAgICAgaWYgKGVsZW1lbnRCb3VuZHMud2lkdGgoKSA+PSBsYXllckJv
dW5kcy53aWR0aCgpICYmIGVsZW1lbnRCb3VuZHMuaGVpZ2h0KCkgPj0gbGF5ZXJCb3VuZHMuaGVp
Z2h0KCkpCisgICAgICAgICAgICAgICAgY29udGVudHNPcGFxdWUgPSB0cnVlOworICAgICAgICB9
CisgICAgfQorICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNPcGFxdWUoY29udGVudHNP
cGFxdWUpOwogfQogCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlSW50ZXJuYWxIaWVy
YXJjaHkoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60201</attachid>
            <date>2010-06-30 23:15:59 -0700</date>
            <delta_ts>2010-07-06 13:08:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40629-20100630231558.patch</filename>
            <type>text/plain</type>
            <size>6164</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDUzMWJiNWQwYTBlMjlhYmRmZTkzMGVjN2JmMjE2NmQzYjU1YjQyMi4uZmNlZTE5NjIzMTA2NTJk
Njc5ZTY5NzdmMWI1ODdiOTU4MTI0MmRmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNi0zMCAgU2Ft
IE1hZ251c29uICA8c21hZ251c29uQG5ldGZsaXguY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdyYXBoaWNzTGF5ZXI6IEFsbG93IG1vcmUgbGF5
ZXJzIHRvIGJlIG9wYXF1ZSB3aGVuIGFwcGxpY2FibGUKKyAgICAgICAgVGhpcyBwYXRjaCBkZXRl
Y3RzIGEgbGF5ZXIgd2l0aCBhbiBvcGFxdWUgYmFja2dyb3VuZCBjb2xvciBpdCBhbHNvCisgICAg
ICAgIGhhcyB0byBkZXRlcm1pbmUgdGhhdCB0aGUgbGF5ZXIgYW5kIHRoZSBlbGVtZW50IGl0IGlz
IGJhY2tpbmcgaGFzCisgICAgICAgIHRoZSBzYW1lIGJvdW5kcyAoYW5kIHRodXMgdGhlIGJhY2tn
cm91bmQgZmlsbHMgdGhlIGVudGlyZSBsYXllcikuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDYyOQorCisgICAgICAgIE5vIG5ldyB0ZXN0czogdGhp
cyBpcyBhbiBvcHRpbWl6YXRpb24uICAgICAgICAKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUXRJbXBsOjpyZWNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJRdElt
cGw6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXll
ckdlb21ldHJ5KToKKwogMjAxMC0wNi0yNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKaW5kZXggM2JiNjQyMWMyZjA5
MDU4NTVmMDNiMzJjNjE2ZTg4Mzc5MzFjYTVhNC4uMTFmNTM4MGJmMmQ0ZTUwOGExMzYyNDM4YmRm
ODAwMWE0ZDE5M2VhYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9H
cmFwaGljc0xheWVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3Jh
cGhpY3NMYXllclF0LmNwcApAQCAtMzU4LDcgKzM1OCw3IEBAIFFQaXhtYXAgR3JhcGhpY3NMYXll
clF0SW1wbDo6cmVjYWNoZShjb25zdCBRUmVnaW9uJiByZWdpb25Ub1VwZGF0ZSkKICAgICB9CiAK
ICAgICB7Ci0gICAgICAgIGJvb2wgZXJhc2VkID0gZmFsc2U7CisgICAgICAgIGJvb2wgZXJhc2Ug
PSAhbV9zdGF0ZS5jb250ZW50c09wYXF1ZTsKIAogICAgICAgICAvLyBJZiB0aGUgcGl4bWFwIGlz
IG5vdCBpbiB0aGUgY2FjaGUgb3IgdGhlIHZpZXcgaGFzIGdyb3duIHNpbmNlIGxhc3QgY2FjaGVk
LgogICAgICAgICBpZiAocGl4bWFwLmlzTnVsbCgpIHx8IG1fc2l6ZSAhPSBtX2JhY2tpbmdTdG9y
ZS5zaXplKSB7CkBAIC0zNjYsNyArMzY2LDcgQEAgUVBpeG1hcCBHcmFwaGljc0xheWVyUXRJbXBs
OjpyZWNhY2hlKGNvbnN0IFFSZWdpb24mIHJlZ2lvblRvVXBkYXRlKQogICAgICAgICAgICAgaWYg
KHBpeG1hcC5pc051bGwoKSkKICAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAiQ2FjaGVNaXNz
IiA8PCB0aGlzIDw8IG1fc2l6ZTsKICNlbmRpZgotICAgICAgICAgICAgYm9vbCBmaWxsID0gdHJ1
ZTsKKyAgICAgICAgICAgIGJvb2wgZmlsbFBpeG1hcCA9IHRydWU7CiAgICAgICAgICAgICBRUmVn
aW9uIG5ld1JlZ2lvbjsKICAgICAgICAgICAgIFFQaXhtYXAgb2xkUGl4bWFwID0gcGl4bWFwOwog
CkBAIC0zNzYsNyArMzc2LDEyIEBAIFFQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNo
ZShjb25zdCBRUmVnaW9uJiByZWdpb25Ub1VwZGF0ZSkKICAgICAgICAgICAgICAgICBxRGVidWco
KSA8PCAiQ2FjaGVHcm93IiA8PCB0aGlzIDw8IG1fc2l6ZTsKICNlbmRpZgogICAgICAgICAgICAg
ICAgIHBpeG1hcCA9IFFQaXhtYXAobV9zaXplLnRvU2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBw
aXhtYXAuZmlsbChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICAgICAgICAgIGlmIChmaWxsUGl4
bWFwKSB7CisjaWYgUVRfREVCVUdfUkVDQUNIRQorICAgICAgICAgICAgICAgICAgICBxRGVidWco
KSA8PCAiQ2FjaGVFcmFzZSIgPDwgdGhpczsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBw
aXhtYXAuZmlsbChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICBuZXdSZWdpb24gPSBRUmVnaW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUu
aGVpZ2h0KCkpOwogICAgICAgICAgICAgfQogCkBAIC0zOTQsMTcgKzM5OSwxNyBAQCBRUGl4bWFw
IEdyYXBoaWNzTGF5ZXJRdEltcGw6OnJlY2FjaGUoY29uc3QgUVJlZ2lvbiYgcmVnaW9uVG9VcGRh
dGUpCiAgICAgICAgICAgICAgICAgICAgIHBhaW50ZXIuc2V0Q29tcG9zaXRpb25Nb2RlKFFQYWlu
dGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlKTsKICAgICAgICAgICAgICAgICAgICAgcGFpbnRl
ci5kcmF3UGl4bWFwKGNsZWFuQm91bmRzLnRvcExlZnQoKSwgb2xkUGl4bWFwLCBjbGVhbkJvdW5k
cyk7CiAgICAgICAgICAgICAgICAgICAgIG5ld1JlZ2lvbiAtPSBjbGVhblJlZ2lvbjsKLSAgICAg
ICAgICAgICAgICAgICAgZmlsbCA9IGZhbHNlOyAvLyBXZSBjYW5ub3QganVzdCBmaWxsIHRoZSBw
aXhtYXAuCisgICAgICAgICAgICAgICAgICAgIGZpbGxQaXhtYXAgPSBmYWxzZTsgLy8gV2UgY2Fu
bm90IGp1c3QgZmlsbCB0aGUgcGl4bWFwLgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICBvbGRQaXhtYXAgPSBRUGl4bWFwKCk7CiAgICAgICAgICAgICB9CiAjZW5kaWYKICAgICAg
ICAgICAgIHJlZ2lvbiArPSBuZXdSZWdpb247Ci0gICAgICAgICAgICBpZiAoZmlsbCAmJiAhcmVn
aW9uLmlzRW1wdHkoKSkgeyAvLyBDbGVhciB0aGUgZW50aXJlIHBpeG1hcCB3aXRoIHRoZSBiYWNr
Z3JvdW5kLgorICAgICAgICAgICAgaWYgKGZpbGxQaXhtYXAgJiYgIXJlZ2lvbi5pc0VtcHR5KCkp
IHsgLy8gQ2xlYXIgdGhlIGVudGlyZSBwaXhtYXAgd2l0aCB0aGUgYmFja2dyb3VuZC4KICNpZiBR
VF9ERUJVR19SRUNBQ0hFCi0gICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIkNhY2hlRXJhc2Ui
IDw8IHRoaXMgPDwgbV9zaXplIDw8IGJhY2tncm91bmQ7CisgICAgICAgICAgICAgICAgcURlYnVn
KCkgPDwgIkNhY2hlRXJhc2UiIDw8IHRoaXM7CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBlcmFz
ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGVyYXNlID0gZmFsc2U7CiAgICAgICAgICAgICAg
ICAgcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQpAQCAtNDI0LDEyICs0MjksMTIgQEAgUVBpeG1hcCBHcmFwaGljc0xheWVyUXRJbXBsOjpyZWNh
Y2hlKGNvbnN0IFFSZWdpb24mIHJlZ2lvblRvVXBkYXRlKQogCiAgICAgICAgICAgICBwYWludGVy
LnNldENsaXBSZWdpb24ocmVnaW9uKTsKIAotICAgICAgICAgICAgaWYgKCFlcmFzZWQpIHsgLy8g
RXJhc2UgdGhlIGFyZWEgaW4gY2FjaGUgdGhhdCB3ZSdyZSBkcmF3aW5nIGludG8uCisgICAgICAg
ICAgICBpZiAoZXJhc2UpIHsgLy8gRXJhc2UgdGhlIGFyZWEgaW4gY2FjaGUgdGhhdCB3ZSdyZSBk
cmF3aW5nIGludG8uCiAgICAgICAgICAgICAgICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUo
UVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9DbGVhcik7CiAgICAgICAgICAgICAgICAgcGFpbnRl
ci5maWxsUmVjdChyZWdpb24uYm91bmRpbmdSZWN0KCksIFF0Ojp0cmFuc3BhcmVudCk7CiAKICNp
ZiBRVF9ERUJVR19DQUNIRURVTVAKLSAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAiKioqKiBD
QUNIRURVTVAiIDw8IHJlY2FjaGVDb3VudCA8PCB0aGlzIDw8IG1fbGF5ZXIgPDwgcmVnaW9uIDw8
IG1fc2l6ZTsKKyAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAiKioqKiBDQUNIRURVTVAoZXJh
c2UpIiA8PCByZWNhY2hlQ291bnQgPDwgdGhpcyA8PCBtX2xheWVyIDw8IHJlZ2lvbiA8PCBtX3Np
emU7CiAgICAgICAgICAgICAgICAgcGl4bWFwLnNhdmUoUVN0cmluZygpLnNwcmludGYoIi90bXAv
JTA1ZF9CLnBuZyIsIHJlY2FjaGVDb3VudCksICJQTkciKTsKICNlbmRpZgogICAgICAgICAgICAg
fQpAQCAtNTU5LDggKzU2NCw4IEBAIFFSZWN0RiBHcmFwaGljc0xheWVyUXRJbXBsOjpib3VuZGlu
Z1JlY3QoKSBjb25zdAogCiB2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50KFFQYWludGVy
KiBwYWludGVyLCBjb25zdCBRU3R5bGVPcHRpb25HcmFwaGljc0l0ZW0qIG9wdGlvbiwgUVdpZGdl
dCogd2lkZ2V0KQogewotICAgIGlmIChtX2N1cnJlbnRDb250ZW50LmJhY2tncm91bmRDb2xvci5p
c1ZhbGlkKCkpCi0gICAgICAgIHBhaW50ZXItPmZpbGxSZWN0KG9wdGlvbi0+cmVjdCwgUUNvbG9y
KG1fY3VycmVudENvbnRlbnQuYmFja2dyb3VuZENvbG9yKSk7CisvLyAgICAgaWYgKG1fY3VycmVu
dENvbnRlbnQuYmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKKy8vICAgICAgICAgcGFpbnRlci0+
ZmlsbFJlY3Qob3B0aW9uLT5yZWN0LCBRQ29sb3IobV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5k
Q29sb3IpKTsKIAogICAgIHN3aXRjaCAobV9jdXJyZW50Q29udGVudC5jb250ZW50VHlwZSkgewog
ICAgIGNhc2UgSFRNTENvbnRlbnRUeXBlOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKaW5kZXggNzk0YjU1YTNkZWJmMDE1YzNhNjQ0ZmU1ZGY0ZWRmZDE5YTVmMDE0Yy4u
NWJmNDZiMGJhYjYwY2MzM2Q0ZTFkMTE5NjUzNDVjNWY0ODQzNTFhZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0zOTYsNiArMzk2LDE4IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkoKQogICAgICAgICBp
ZiAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBpbm5lckNvbXBvc2l0b3IgPSBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmlmcmFtZUNvbnRlbnRzQ29tcG9zaXRvcih0b1JlbmRlcklGcmFtZShyZW5kZXJl
cigpKSkpCiAgICAgICAgICAgICBpbm5lckNvbXBvc2l0b3ItPnVwZGF0ZUNvbnRlbnRMYXllck9m
ZnNldChjb250ZW50c0JveCgpLmxvY2F0aW9uKCkpOwogICAgIH0KKworICAgIGJvb2wgY29udGVu
dHNPcGFxdWUgPSBmYWxzZTsKKyAgICBpZiAocmVuZGVyZXJIYXNCYWNrZ3JvdW5kKCkpIHsKKyAg
ICAgICAgY29uc3QgQ29sb3IgJmJnQ29sb3IgPSByZW5kZXJlckJhY2tncm91bmRDb2xvcigpOwor
ICAgICAgICBpZiAoYmdDb2xvci5hbHBoYSgpID09IDI1NSkgeworICAgICAgICAgICAgY29uc3Qg
SW50UmVjdCBlbGVtZW50Qm91bmRzID0gbV9vd25pbmdMYXllci0+bG9jYWxCb3VuZGluZ0JveCgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyQm91bmRzID0gY29tcG9zaXRlZEJv
dW5kcygpOworICAgICAgICAgICAgaWYgKGVsZW1lbnRCb3VuZHMud2lkdGgoKSA+PSBsYXllckJv
dW5kcy53aWR0aCgpICYmIGVsZW1lbnRCb3VuZHMuaGVpZ2h0KCkgPj0gbGF5ZXJCb3VuZHMuaGVp
Z2h0KCkpCisgICAgICAgICAgICAgICAgY29udGVudHNPcGFxdWUgPSB0cnVlOworICAgICAgICB9
CisgICAgfQorICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNPcGFxdWUoY29udGVudHNP
cGFxdWUpOwogfQogCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlSW50ZXJuYWxIaWVy
YXJjaHkoKQo=
</data>
<flag name="review"
          id="47551"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>