<?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>92257</bug_id>
          
          <creation_ts>2012-07-25 08:25:01 -0700</creation_ts>
          <short_desc>2% of all samples running grid demo show up in StyleResolver::canShareStyleWithElement, 20% of those due to getAttribute instead of fastGetAttribute</short_desc>
          <delta_ts>2012-07-26 04:53:10 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>92258</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zherczeg</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>678075</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-07-25 08:25:01 -0700</bug_when>
    <thetext>2% of all samples running grid demo show up in StyleResolver::canShareStyleWithElement, 20% of those due to getAttribute instead of fastGetAttribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678077</commentid>
    <comment_count>1</comment_count>
      <attachid>154362</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-07-25 08:27:37 -0700</bug_when>
    <thetext>Created attachment 154362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678080</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-07-25 08:28:02 -0700</bug_when>
    <thetext>The last time this was touched was for kling&apos;s rollout in bug 80245.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678081</commentid>
    <comment_count>3</comment_count>
      <attachid>154363</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-07-25 08:28:29 -0700</bug_when>
    <thetext>Created attachment 154363
the grid demo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678670</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-07-25 17:41:55 -0700</bug_when>
    <thetext>Thoughts, Kling?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678919</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-07-25 23:38:18 -0700</bug_when>
    <thetext>This is actually higher than I had originally measured, because the getAttribute() call itself shows up as nearly 1%!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678982</commentid>
    <comment_count>6</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-07-26 01:04:54 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Thoughts, Kling?

This looks like a great low-hanging fruit to go after, though I&apos;m afraid that this won&apos;t properly serialize the typeAttr on an SVG element that&apos;s the target of a property animation.

We have this check earlier in the function:
if (element-&gt;isSVGElement() &amp;&amp; static_cast&lt;SVGElement*&gt;(element)-&gt;animatedSMILStyleProperties())
    return false;

But animatedSMILStyleProperties() is only concerned with animations on CSS properties.

CC&apos;ing some SVG folks who might know more about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679028</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-07-26 01:35:33 -0700</bug_when>
    <thetext>OK.  I suspect we can detect that case and only take the slow path when necessary.  WildFox? pdr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679031</commentid>
    <comment_count>8</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-07-26 01:39:48 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; &gt; Thoughts, Kling?
&gt; 
&gt; This looks like a great low-hanging fruit to go after, though I&apos;m afraid that this won&apos;t properly serialize the typeAttr on an SVG element that&apos;s the target of a property animation.
SVGs typeAttr is SVGNames::typeAttr, and shouldn&apos;t be affected by this at all.
We don&apos;t use HTMLNames::typeAttr in SVG except for &lt;script&gt;, which doesn&apos;t have a renderer and thus no style as well.

I think it&apos;s safe from the SVG side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679036</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-07-26 01:43:59 -0700</bug_when>
    <thetext>DEFINE_GLOBAL(QualifiedName, typeAttr, nullAtom, &quot;type&quot;, svgNamespaceURI)
vs.
DEFINE_GLOBAL(QualifiedName, typeAttr, nullAtom, &quot;type&quot;, xhtmlNamespaceURI)

So they only differ in namespace.

inline Attribute* findAttributeInVector(const Vector&lt;Attribute&gt;&amp; attributes, const QualifiedName&amp; name)
{
    for (unsigned i = 0; i &lt; attributes.size(); ++i) {
        if (attributes.at(i).name().matches(name))
            return &amp;const_cast&lt;Vector&lt;Attribute&gt;&amp; &gt;(attributes).at(i);
    }
    return 0;
}

uses 

    bool matches(const QualifiedName&amp; other) const { return m_impl == other.m_impl || (localName() == other.localName() &amp;&amp; namespaceURI() == other.namespaceURI()); }


Which does use namespace.

So it appears that HTMLNames::typeAttr and SVGNames::typeAttr function independently, as WildFox suggests.  Meaning this patch should have no affect on SVG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679046</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-07-26 01:49:47 -0700</bug_when>
    <thetext>Woh, wait a sec.  HTMLNames later initializes typeAttr to not include the namespace:

    new ((void*)&amp;typeAttr) QualifiedName(nullAtom, &quot;type&quot;, nullAtom);


Clearly makeNames needs to be fixed!

Similarly SVGNames does:

    new ((void*)&amp;typeAttr) QualifiedName(nullAtom, &quot;type&quot;, nullAtom);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679095</commentid>
    <comment_count>11</comment_count>
      <attachid>154591</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-07-26 02:49:39 -0700</bug_when>
    <thetext>Created attachment 154591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679098</commentid>
    <comment_count>12</comment_count>
      <attachid>154591</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-07-26 02:50:57 -0700</bug_when>
    <thetext>Comment on attachment 154591
Patch

Fabulous! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679102</commentid>
    <comment_count>13</comment_count>
      <attachid>154593</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-07-26 02:59:16 -0700</bug_when>
    <thetext>Created attachment 154593
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679164</commentid>
    <comment_count>14</comment_count>
      <attachid>154593</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-26 04:53:04 -0700</bug_when>
    <thetext>Comment on attachment 154593
Patch for landing

Clearing flags on attachment: 154593

Committed r123730: &lt;http://trac.webkit.org/changeset/123730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679165</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-26 04:53:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154362</attachid>
            <date>2012-07-25 08:27:37 -0700</date>
            <delta_ts>2012-07-26 02:49:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92257-20120725082728.patch</filename>
            <type>text/plain</type>
            <size>2519</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE1NjYyNTUxZjIyNmVh
MWEzZWRmZjc2YTA2YThiZjdkZGIxMDNhYi4uYTE3ZmJkYTEwNTNlMjcwMzBmNGQ5MWJhNGMxMzg4
OTZmN2I1MWM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA3LTI1ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICAyJSBvZiBhbGwgc2FtcGxlcyBy
dW5uaW5nIGdyaWQgZGVtbyBzaG93IHVwIGluIFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVX
aXRoRWxlbWVudCwgMjAlIG9mIHRob3NlIGR1ZSB0byBnZXRBdHRyaWJ1dGUgaW5zdGVhZCBvZiBm
YXN0R2V0QXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MjI1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgaXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4gIEkgYmVsaWV2ZSB0aGlz
IHVzZWQgImdldEF0dHJpYnV0ZSIgaW5zdGVhZCBvZiBmYXN0R2V0QXR0cmlidXRlCisgICAgICAg
IGJlY2F1c2UgInR5cGUiIGlzIGFuIGFuaW1hdGVhYmxlIGF0dHJpYnV0ZSB3aGVuIHVzZWQgb24g
U1ZHIGVsZW1lbnRzLgorICAgICAgICBIb3dldmVyLCBlYXJsaWVyIGluIHRoaXMgZnVuY3Rpb24g
d2UgZWFybHktcmV0dXJuIGluIHRoZSBjYXNlIG9mIGFuIFNWRyBlbGVtZW50IHdpdGggYW5pbWF0
ZWQgYXR0cmlidXRlcywKKyAgICAgICAgc28gZ2V0QXR0cmlidXRlIHNob3VsZCBuZXZlciBiZSBu
ZWVkZWQuICAoQmVzaWRlcywgdGhpcyBpcyBIVE1MTmFtZXM6OnR5cGVBdHRyLCBub3QgU1ZHTmFt
ZXM6OnR5cGVBdHRyLAorICAgICAgICBzbyBTVkdFbGVtZW50Ojppc0FuaW1hdGFibGVBdHRyaWJ1
dGUgd2lsbCByZXR1cm4gZmFsc2UgaGVyZS4pCisKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdS
dWxlc0Zvckxpc3QpOgorCiAyMDEyLTA2LTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIE1lZGlhQ29udHJvbGxlci5jdXJyZW50VGltZSBzaG91bGQgYmUga2Vw
dCBzdGFibGUgZHVyaW5nIHNjcmlwdCBleGVjdXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAKaW5kZXggNGVlNDY0YTRjZDc2NmNiYmU5OGI1ZTNhMTA3NDE5ZDI5N2ZmYTA2MC4u
MzZjZDJiMDQxN2IxNmI1Y2E0YjUwOTI3MGZkZDc4NDY0YmNmZTIxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTM1Niw4ICsxMzU2LDkgQEAgc3RhdGljIGlubGluZSBi
b29sIGF0dHJpYnV0ZVN0eWxlc0VxdWFsKFN0eWxlUHJvcGVydHlTZXQqIGEsIFN0eWxlUHJvcGVy
dHlTZXQqIGIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotaW5saW5lIGJvb2wgZWxlbWVudEhhc0Rp
cmVjdGlvbkF1dG8oRWxlbWVudCogZWxlbWVudCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBlbGVtZW50
SGFzRGlyZWN0aW9uQXV0byhFbGVtZW50KiBlbGVtZW50KQogeworICAgIC8vIEZJWE1FOiBUaGlz
IGxpbmUgaXMgc3VycHJpc2luZ2x5IGhvdCwgd2UgbWF5IHdpc2ggdG8gaW5saW5lIGhhc0RpcmVj
dGlvbkF1dG8gaW50byBTdHlsZVJlc29sdmVyLgogICAgIHJldHVybiBlbGVtZW50LT5pc0hUTUxF
bGVtZW50KCkgJiYgdG9IVE1MRWxlbWVudChlbGVtZW50KS0+aGFzRGlyZWN0aW9uQXV0bygpOwog
fQogCkBAIC0xNDAxLDcgKzE0MDIsNyBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5
bGVXaXRoRWxlbWVudChTdHlsZWRFbGVtZW50KiBlbGVtZW50KSBjb25zdAogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKG1fZWxlbWVudCA9PSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNz
c1RhcmdldCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGVsZW1lbnQtPmdldEF0
dHJpYnV0ZSh0eXBlQXR0cikgIT0gbV9lbGVtZW50LT5nZXRBdHRyaWJ1dGUodHlwZUF0dHIpKQor
ICAgIGlmIChlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKHR5cGVBdHRyKSAhPSBtX2VsZW1lbnQt
PmZhc3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
aWYgKGVsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OmxhbmdBdHRyKSAhPSBtX2Vs
ZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OmxhbmdBdHRyKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>154363</attachid>
            <date>2012-07-25 08:28:29 -0700</date>
            <delta_ts>2012-07-25 08:28:29 -0700</delta_ts>
            <desc>the grid demo</desc>
            <filename>grid.html</filename>
            <type>text/html</type>
            <size>2928</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">PHN0eWxlPgojY29udGFpbmVyIHsKICBib3JkZXI6IDFweCBzb2xpZCBncmF5OwogIHdpZHRoOiAx
NDAwcHg7CiAgaGVpZ2h0OiA3NTBweDsKICAvKm92ZXJmbG93OiBoaWRkZW47Ki8KfQouY2VsbCB7
CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTsK
ICB3aWR0aDogNjhweDsKICBoZWlnaHQ6IDIzcHg7CiAgcGFkZGluZzogMHB4OwogIG1hcmdpbjog
MHB4OwogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgLypvdmVyZmxvdzogaGlkZGVuOyovCn0K
Lm1ldGVyIHsKICBmb250LWZhbWlseTogbW9ub3NwYWNlOwp9IAouYmx1ZSB7CiAgYmFja2dyb3Vu
ZC1jb2xvcjogIzY2NjZhYTsKfQoucmVkIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWE2NjY2Owp9
Ci53aGl0ZSB7CiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Cn0KPC9zdHlsZT4KPHNjcmlwdD4K
dmFyIG51bVJvd3M7CnZhciBudW1Db2xzOwp2YXIgdGV4dDsKZnVuY3Rpb24gZ2V0UmFuZG9tQ29s
b3JDbGFzcygpIHsKICByZXR1cm4gWyJibHVlIiwgInJlZCIsICJ3aGl0ZSJdWygyICogTWF0aC5y
YW5kb20oKSkudG9GaXhlZCgpXTsKfQpmdW5jdGlvbiBkcmF3R3JpZChjb250YWluZXIpIHsKLyoK
ICBjb25zb2xlLnRpbWUoImZyYWciKTsKICB2YXIgZnJhZyA9IGRvY3VtZW50LmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKTsKICBmb3IgKHZhciByID0gMDsgciA8IG51bVJvd3M7ICsrcikgewogICAg
dmFyIHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgZm9yICh2YXIgYyA9
IDA7IGMgPCBudW1Db2xzOyArK2MpIHsKICAgICAgdmFyIGNlbGwgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJESVYiKTsKICAgICAgY2VsbC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImNlbGwgIiAr
IGdldFJhbmRvbUNvbG9yQ2xhc3MoKSk7CiAgICAgIC8vY2VsbC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiYWFhYWFhYWEiKSk7CiAgICAgIGNlbGwuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpOwogICAgICByb3cuYXBwZW5kQ2hpbGQoY2VsbCk7
CiAgICB9CiAgICBmcmFnLmFwcGVuZENoaWxkKHJvdyk7CiAgfQogIGNvbnNvbGUudGltZUVuZCgi
ZnJhZyIpOwoKICBjb25zb2xlLnRpbWUoImNsZWFyIik7CiAgY29udGFpbmVyLmlubmVySFRNTCA9
ICIiOwogIGNvbnNvbGUudGltZUVuZCgiY2xlYXIiKTsKCiAgY29uc29sZS50aW1lKCJhcHBlbmQi
KTsKICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZnJhZy5jbG9uZU5vZGUodHJ1ZSkpOwogIGNvbnNv
bGUudGltZUVuZCgiYXBwZW5kIik7CiovCiAgCiAgdmFyIGh0bWwgPSBbXTsKICBmb3IgKHZhciBy
ID0gMDsgciA8IG51bVJvd3M7ICsrcikgewogICAgdmFyIHJvd0h0bWwgPSBbXTsKICAgIHJvd0h0
bWxbMF0gPSAnPGRpdj4nOwogICAgZm9yICh2YXIgYyA9IDE7IGMgPD0gbnVtQ29sczsgKytjKSB7
CiAgICAgIHJvd0h0bWxbY10gPSBbJzxkaXYgY2xhc3M9ImNlbGwgJywgZ2V0UmFuZG9tQ29sb3JD
bGFzcygpLCAnIj4nLCB0ZXh0LCAnPC9kaXY+J10uam9pbigiIik7CiAgICB9CiAgICByb3dIdG1s
LnB1c2goJzwvZGl2PicpOwogICAgaHRtbFtyXSA9IHJvd0h0bWwuam9pbigiIik7CiAgfQogIGNv
bnRhaW5lci5pbm5lckhUTUwgPSBodG1sLmpvaW4oIiIpOwp9CnZhciBjb250YWluZXI7CnZhciBy
dW5uaW5nID0gZmFsc2U7Ci8vdmFyIHRfbGFzdDsKZnVuY3Rpb24gdGltZU5vdygpIHsKICByZXR1
cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7Cn0KZnVuY3Rpb24gcmVuZGVyKCkgewogIGlmICghcnVu
bmluZykKICAgIHJldHVybjsKICBkcmF3R3JpZChjb250YWluZXIpOwogIHdlYmtpdFJlcXVlc3RB
bmltYXRpb25GcmFtZShyZW5kZXIpOwoKICAvKgogIHZhciB0X25vdyA9IHRpbWVOb3coKTsKICBp
ZiAodF9sYXN0KSB7CiAgICB2YXIgdF9kZWx0YSA9IHRfbm93IC0gdF9sYXN0OwogICAgdmFyIGZw
cyA9IDEwMDAgLyB0X2RlbHRhOwogICAgZG9jdW1lbnQudGl0bGUgPSAiRlBTOiAiICsgZnBzLnRv
Rml4ZWQoMCkgKyAiIFsiICsgdF9kZWx0YSArICIgbXNlY10iOwogIH0KICB0X2xhc3QgPSB0X25v
dzsKICAqLwp9CmZ1bmN0aW9uIHN0YXJ0KCkgewogIHZhciByb3dzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJvd3MiKTsKICBpZiAocm93cy52YWx1ZSkgewogICAgbnVtUm93cyA9IHJvd3Mu
dmFsdWU7CiAgfSBlbHNlIHsKICAgIG51bVJvd3MgPSAzMDsKICB9CgogIHZhciBjb2xzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbHMiKTsKICBpZiAoY29scy52YWx1ZSkgewogICAgbnVt
Q29scyA9IGNvbHMudmFsdWU7CiAgfSBlbHNlIHsKICAgIG51bUNvbHMgPSAyMDsKICB9CgogIGNv
bnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKICB0ZXh0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHQiKS52YWx1ZTsKCiAgaWYgKCFydW5uaW5nKSB7
CiAgICBydW5uaW5nID0gdHJ1ZTsKICAgIHdlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShyZW5k
ZXIpOwogIH0KfQpmdW5jdGlvbiBzdG9wKCkgewogIHJ1bm5pbmcgPSBmYWxzZTsKfQo8L3Njcmlw
dD4KPGJvZHk+CjxidXR0b24gb25jbGljaz0ic3RhcnQoKSI+U3RhcnQ8L2J1dHRvbj4KPGJ1dHRv
biBvbmNsaWNrPSJzdG9wKCkiPlN0b3A8L2J1dHRvbj4KPGlucHV0IGlkPSJyb3dzIiB2YWx1ZT0i
IiBwbGFjZWhvbGRlcj0iMzAiIHNpemU9IjUiPjwvaW5wdXQ+CjxpbnB1dCBpZD0iY29scyIgdmFs
dWU9IiIgcGxhY2Vob2xkZXI9IjIwIiBzaXplPSI1Ij48L2lucHV0Pgo8aW5wdXQgaWQ9InRleHQi
IHZhbHVlPSIiIHBsYWNlaG9sZGVyPSJ0ZXh0Ij48L2lucHV0Pgo8YnI+CjxkaXYgaWQ9ImNvbnRh
aW5lciI+PC9kaXY+CjwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154591</attachid>
            <date>2012-07-26 02:49:39 -0700</date>
            <delta_ts>2012-07-26 02:59:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92257-20120726024928.patch</filename>
            <type>text/plain</type>
            <size>3128</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVhOGNkNWMxZjYxMzJk
OGFhNjYyZTNlMzI3M2ExZTRmNmZhMGZlYi4uYTA4ZWYyNDUwNDEzNDNiM2QzZDM3ZjE1MDQ2ZTM0
Mzc0M2M3YTg4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA3LTI2ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICAyJSBvZiBhbGwgc2FtcGxlcyBy
dW5uaW5nIGdyaWQgZGVtbyBzaG93IHVwIGluIFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVX
aXRoRWxlbWVudCwgMjAlIG9mIHRob3NlIGR1ZSB0byBnZXRBdHRyaWJ1dGUgaW5zdGVhZCBvZiBm
YXN0R2V0QXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MjI1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgY2hlY2sgd2FzIGFkZGVkIDcgeWVhcnMgYWdvIGJ5IGh5YXR0IGluOgorICAg
ICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMDk4NAorICAgICAgICBBbmQg
dGhlbiBsYXRlciBtYWRlIHNsb3cgYWZ0ZXIgdHJpZ2dlcmluZyBhbiBBU1NFUlQgYWRkZWQ6Cisg
ICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzk3NjcwCisKKyAgICAgICAg
U1ZHIHVzZXMgYSAidHlwZSIgYXR0cmlidXRlIChhbmQgaXQgaXMgYW5pbWF0YWJsZSksIGJ1dCBv
bmx5IHdoZW4KKyAgICAgICAgdXNlZCBvbiBmaWx0ZXIgZWxlbWVudHM6CisgICAgICAgIGh0dHA6
Ly93d3cudzMub3JnL1RSL1NWRy9hdHRpbmRleC5odG1sCisgICAgICAgIEluIGFueSBjYXNlLCB0
aGlzIGRvZXMgbm90IGFwcGx5IGhlcmUsIGFuZCBpcyBjZXJ0YWlubHkgbm90IHdoYXQKKyAgICAg
ICAgdGhpcyBjaGVjayB3YXMgb3JpZ2luYWxseSBpbnRlbmRlZCBmb3IuCisKKyAgICAgICAgSSd2
ZSBtb3ZlZCB0aGUgY2hlY2sgdG8gY2FuU2hhcmVTdHlsZVdpdGhDb250cm9sCisgICAgICAgIGFz
IGl0IGlzIG9ubHkgbmVlZGVkIHdoZW4gdGhlIGVsZW1lbnRzIGluIHF1ZXN0aW9uIGFyZSBib3Ro
IGlucHV0IGVsZW1lbnRzLgorCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0
KToKKwogMjAxMi0wNy0yNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMzcxNS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBlNTVlNDBjNTg1YjNjZTE5MzBlNTNmNjUxYzhk
M2ZmNmNlNjM4NTk2Li5iOGY0YTZlYzc5OGU2MDA2NGM5YzViZWFmOTVkM2E2YzNmYTIyM2M4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xMjk2LDYgKzEyOTYsOSBAQCBi
b29sIFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoQ29udHJvbChTdHlsZWRFbGVtZW50
KiBlbGVtZW50KSBjb25zdAogICAgIGlmICghdGhpc0lucHV0RWxlbWVudCB8fCAhb3RoZXJJbnB1
dEVsZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChlbGVtZW50LT5mYXN0
R2V0QXR0cmlidXRlKHR5cGVBdHRyKSAhPSBtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUodHlw
ZUF0dHIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAodGhpc0lucHV0RWxlbWVu
dC0+aXNBdXRvZmlsbGVkKCkgIT0gb3RoZXJJbnB1dEVsZW1lbnQtPmlzQXV0b2ZpbGxlZCgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHRoaXNJbnB1dEVsZW1lbnQtPnNob3VsZEFw
cGVhckNoZWNrZWQoKSAhPSBvdGhlcklucHV0RWxlbWVudC0+c2hvdWxkQXBwZWFyQ2hlY2tlZCgp
KQpAQCAtMTM1Niw4ICsxMzU5LDkgQEAgc3RhdGljIGlubGluZSBib29sIGF0dHJpYnV0ZVN0eWxl
c0VxdWFsKFN0eWxlUHJvcGVydHlTZXQqIGEsIFN0eWxlUHJvcGVydHlTZXQqIGIKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotaW5saW5lIGJvb2wgZWxlbWVudEhhc0RpcmVjdGlvbkF1dG8oRWxlbWVu
dCogZWxlbWVudCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBlbGVtZW50SGFzRGlyZWN0aW9uQXV0byhF
bGVtZW50KiBlbGVtZW50KQogeworICAgIC8vIEZJWE1FOiBUaGlzIGxpbmUgaXMgc3VycHJpc2lu
Z2x5IGhvdCwgd2UgbWF5IHdpc2ggdG8gaW5saW5lIGhhc0RpcmVjdGlvbkF1dG8gaW50byBTdHls
ZVJlc29sdmVyLgogICAgIHJldHVybiBlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkgJiYgdG9IVE1M
RWxlbWVudChlbGVtZW50KS0+aGFzRGlyZWN0aW9uQXV0bygpOwogfQogCkBAIC0xNDAxLDggKzE0
MDUsNiBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudChTdHls
ZWRFbGVtZW50KiBlbGVtZW50KSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KG1fZWxlbWVudCA9PSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNzc1RhcmdldCgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGVsZW1lbnQtPmdldEF0dHJpYnV0ZSh0eXBlQXR0cikg
IT0gbV9lbGVtZW50LT5nZXRBdHRyaWJ1dGUodHlwZUF0dHIpKQotICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKGVsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OmxhbmdBdHRy
KSAhPSBtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OmxhbmdBdHRyKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGxh
bmdBdHRyKSAhPSBtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUobGFuZ0F0dHIpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154593</attachid>
            <date>2012-07-26 02:59:16 -0700</date>
            <delta_ts>2012-07-26 04:53:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-92257-20120726025906.patch</filename>
            <type>text/plain</type>
            <size>3144</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVhOGNkNWMxZjYxMzJk
OGFhNjYyZTNlMzI3M2ExZTRmNmZhMGZlYi4uMDQwZjY1ZWQzMWYwNmUxNDE1NTFjODg1NWY3YWU2
NTBjZDZjYTcyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA3LTI2ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICAyJSBvZiBhbGwgc2FtcGxlcyBy
dW5uaW5nIGdyaWQgZGVtbyBzaG93IHVwIGluIFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVX
aXRoRWxlbWVudCwgMjAlIG9mIHRob3NlIGR1ZSB0byBnZXRBdHRyaWJ1dGUgaW5zdGVhZCBvZiBm
YXN0R2V0QXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MjI1NworCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCisKKyAg
ICAgICAgVGhpcyBjaGVjayB3YXMgYWRkZWQgNyB5ZWFycyBhZ28gYnkgaHlhdHQgaW46CisgICAg
ICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEwOTg0CisgICAgICAgIEFuZCB0
aGVuIGxhdGVyIG1hZGUgc2xvdyBhZnRlciB0cmlnZ2VyaW5nIGFuIEFTU0VSVCBhZGRlZDoKKyAg
ICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvOTc2NzAKKworICAgICAgICBT
VkcgdXNlcyBhICJ0eXBlIiBhdHRyaWJ1dGUgKGFuZCBpdCBpcyBhbmltYXRhYmxlKSwgYnV0IG9u
bHkgd2hlbgorICAgICAgICB1c2VkIG9uIGZpbHRlciBlbGVtZW50czoKKyAgICAgICAgaHR0cDov
L3d3dy53My5vcmcvVFIvU1ZHL2F0dGluZGV4Lmh0bWwKKyAgICAgICAgSW4gYW55IGNhc2UsIHRo
aXMgZG9lcyBub3QgYXBwbHkgaGVyZSwgYW5kIGlzIGNlcnRhaW5seSBub3Qgd2hhdAorICAgICAg
ICB0aGlzIGNoZWNrIHdhcyBvcmlnaW5hbGx5IGludGVuZGVkIGZvci4KKworICAgICAgICBJJ3Zl
IG1vdmVkIHRoZSBjaGVjayB0byBjYW5TaGFyZVN0eWxlV2l0aENvbnRyb2wKKyAgICAgICAgYXMg
aXQgaXMgb25seSBuZWVkZWQgd2hlbiB0aGUgZWxlbWVudHMgaW4gcXVlc3Rpb24gYXJlIGJvdGgg
aW5wdXQgZWxlbWVudHMuCisKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3Qp
OgorCiAyMDEyLTA3LTI2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIzNzE1LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGU1NWU0MGM1ODViM2NlMTkzMGU1M2Y2NTFjOGQz
ZmY2Y2U2Mzg1OTYuLjc2MjcyMTY0YjAzMjY4YWI4ZjY2NDg0NTYzMTYzYWI3ZjAyZmU2YjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTEyOTYsNiArMTI5Niw5IEBAIGJv
b2wgU3R5bGVSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhDb250cm9sKFN0eWxlZEVsZW1lbnQq
IGVsZW1lbnQpIGNvbnN0CiAgICAgaWYgKCF0aGlzSW5wdXRFbGVtZW50IHx8ICFvdGhlcklucHV0
RWxlbWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKHRoaXNJbnB1dEVsZW1l
bnQtPmZhc3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpICE9IG90aGVySW5wdXRFbGVtZW50LT5mYXN0
R2V0QXR0cmlidXRlKHR5cGVBdHRyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYg
KHRoaXNJbnB1dEVsZW1lbnQtPmlzQXV0b2ZpbGxlZCgpICE9IG90aGVySW5wdXRFbGVtZW50LT5p
c0F1dG9maWxsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICh0aGlzSW5wdXRF
bGVtZW50LT5zaG91bGRBcHBlYXJDaGVja2VkKCkgIT0gb3RoZXJJbnB1dEVsZW1lbnQtPnNob3Vs
ZEFwcGVhckNoZWNrZWQoKSkKQEAgLTEzNTYsOCArMTM1OSw5IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBhdHRyaWJ1dGVTdHlsZXNFcXVhbChTdHlsZVByb3BlcnR5U2V0KiBhLCBTdHlsZVByb3BlcnR5
U2V0KiBiCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWlubGluZSBib29sIGVsZW1lbnRIYXNEaXJl
Y3Rpb25BdXRvKEVsZW1lbnQqIGVsZW1lbnQpCitzdGF0aWMgaW5saW5lIGJvb2wgZWxlbWVudEhh
c0RpcmVjdGlvbkF1dG8oRWxlbWVudCogZWxlbWVudCkKIHsKKyAgICAvLyBGSVhNRTogVGhpcyBs
aW5lIGlzIHN1cnByaXNpbmdseSBob3QsIHdlIG1heSB3aXNoIHRvIGlubGluZSBoYXNEaXJlY3Rp
b25BdXRvIGludG8gU3R5bGVSZXNvbHZlci4KICAgICByZXR1cm4gZWxlbWVudC0+aXNIVE1MRWxl
bWVudCgpICYmIHRvSFRNTEVsZW1lbnQoZWxlbWVudCktPmhhc0RpcmVjdGlvbkF1dG8oKTsKIH0K
IApAQCAtMTQwMSw4ICsxNDA1LDYgQEAgYm9vbCBTdHlsZVJlc29sdmVyOjpjYW5TaGFyZVN0eWxl
V2l0aEVsZW1lbnQoU3R5bGVkRWxlbWVudCogZWxlbWVudCkgY29uc3QKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGlmIChtX2VsZW1lbnQgPT0gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5jc3NU
YXJnZXQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChlbGVtZW50LT5nZXRBdHRy
aWJ1dGUodHlwZUF0dHIpICE9IG1fZWxlbWVudC0+Z2V0QXR0cmlidXRlKHR5cGVBdHRyKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKFhN
TE5hbWVzOjpsYW5nQXR0cikgIT0gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKFhNTE5hbWVz
OjpsYW5nQXR0cikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoZWxlbWVudC0+ZmFz
dEdldEF0dHJpYnV0ZShsYW5nQXR0cikgIT0gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGxh
bmdBdHRyKSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>