<?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>138529</bug_id>
          
          <creation_ts>2014-11-07 17:31:29 -0800</creation_ts>
          <short_desc>Call faster HTMLElement::hasTagName() in HTMLCollection</short_desc>
          <delta_ts>2014-11-08 21:59:59 -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>DOM</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1047255</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-07 17:31:29 -0800</bug_when>
    <thetext>Call faster HTMLElement::hasTagName() in HTMLCollection instead of slower Node::hasTagName().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047286</commentid>
    <comment_count>1</comment_count>
      <attachid>241230</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-08 10:05:51 -0800</bug_when>
    <thetext>Created attachment 241230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047310</commentid>
    <comment_count>2</comment_count>
      <attachid>241230</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-11-08 13:49:18 -0800</bug_when>
    <thetext>Comment on attachment 241230
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=241230&amp;action=review

&gt; Source/WebCore/html/HTMLCollection.cpp:172
&gt; +inline bool isMatchingHTMLElement(const HTMLCollection&amp; htmlCollection, HTMLElement&amp; element)

I would suggest renaming the argument &quot;collection&quot; instead of &quot;htmlCollection&quot;.

&gt; Source/WebCore/html/HTMLCollection.cpp:209
&gt;          return static_cast&lt;const DocumentNameCollection&amp;&gt;(htmlCollection).elementMatches(element);

Seems like we want checked casts for these some day.

&gt; Source/WebCore/html/HTMLCollection.cpp:221
&gt; +inline bool isMatchingElement(const HTMLCollection&amp; htmlCollection, Element&amp; element)

I would suggest renaming the argument &quot;collection&quot; instead of &quot;htmlCollection&quot;.

&gt; Source/WebCore/html/HTMLCollection.cpp:229
&gt; +        return static_cast&lt;const WindowNameCollection&amp;&gt;(htmlCollection).elementMatches(element);

Seems like we want checked casts for these some day.

&gt; Source/WebCore/html/HTMLCollection.cpp:235
&gt; +    // Collection types that only deal with HTMLElements.
&gt; +    return is&lt;HTMLElement&gt;(element) &amp;&amp; isMatchingHTMLElement(htmlCollection, downcast&lt;HTMLElement&gt;(element));

Why not put this code inside the default rather than using &quot;default: break&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047338</commentid>
    <comment_count>3</comment_count>
      <attachid>241230</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-08 17:19:06 -0800</bug_when>
    <thetext>Comment on attachment 241230
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=241230&amp;action=review

&gt;&gt; Source/WebCore/html/HTMLCollection.cpp:209
&gt;&gt;          return static_cast&lt;const DocumentNameCollection&amp;&gt;(htmlCollection).elementMatches(element);
&gt; 
&gt; Seems like we want checked casts for these some day.

Definitely, this is already on my todo list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047359</commentid>
    <comment_count>4</comment_count>
      <attachid>241246</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-08 20:52:28 -0800</bug_when>
    <thetext>Created attachment 241246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047365</commentid>
    <comment_count>5</comment_count>
      <attachid>241248</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-08 21:13:25 -0800</bug_when>
    <thetext>Created attachment 241248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047370</commentid>
    <comment_count>6</comment_count>
      <attachid>241248</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-08 21:59:55 -0800</bug_when>
    <thetext>Comment on attachment 241248
Patch

Clearing flags on attachment: 241248

Committed r175788: &lt;http://trac.webkit.org/changeset/175788&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047371</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-08 21:59:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241230</attachid>
            <date>2014-11-08 10:05:51 -0800</date>
            <delta_ts>2014-11-08 20:52:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138529-20141108100551.patch</filename>
            <type>text/plain</type>
            <size>3607</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1NzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhmMGE1NGI1MDgwN2U5
YTkyN2ZmMjRiMTM2OTVhOGQzZjM0M2ZlNS4uYzhhYzU4ZTVhNjAwMDg0OTMyYTRiYjRlZDhiZmU0
NGFkMTY0MTkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTExLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FsbCBmYXN0ZXIgSFRNTEVs
ZW1lbnQ6Omhhc1RhZ05hbWUoKSBpbiBIVE1MQ29sbGVjdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NTI5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FsbCBmYXN0ZXIgSFRNTEVsZW1lbnQ6Omhh
c1RhZ05hbWUoKSBpbiBIVE1MQ29sbGVjdGlvbiBpbnN0ZWFkIG9mCisgICAgICAgIHNsb3dlciBO
b2RlOjpoYXNUYWdOYW1lKCkgYnkgcmVzdHJ1Y3R1cmluZyB0aGUgY29kZSBhIGJpdCB0bworICAg
ICAgICBkaXN0aW5ndWlzaCBjb2xsZWN0aW9uIHRoYXQgZGVhbCBvbmx5IHdpdGggSFRNTEVsZW1l
bnRzIGZyb20gb3RoZXJzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hh
bmdlLgorCisgICAgICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppc01hdGNoaW5nSFRNTEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNNYXRjaGlu
Z0VsZW1lbnQpOgorCiAyMDE0LTExLTA3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUu
Y29tPgogCiAgICAgICAgIENTUCBpcyBlbmZvcmNlZCBmb3IgZXZhbCBpbiByZXBvcnQtb25seSBt
b2RlIG9uIGZpcnN0IHBhZ2UgbG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNw
cAppbmRleCAxN2EwY2ZiZTEwZGNkYmMyYjU3NTJlYTcxYmZlNWQxMGM4ZWQ2MmVlLi5lM2RmYmNj
YjkwMDY1NGY2N2UxMGU4Mzg3Zjk2ZjdmNjYwZjQ0YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDb2xsZWN0aW9uLmNwcApAQCAtMTY5LDEzICsxNjksOSBAQCBDb250YWluZXJOb2RlJiBIVE1M
Q29sbGVjdGlvbjo6cm9vdE5vZGUoKSBjb25zdAogICAgIHJldHVybiBvd25lck5vZGUoKTsKIH0K
IAotaW5saW5lIGJvb2wgaXNNYXRjaGluZ0VsZW1lbnQoY29uc3QgSFRNTENvbGxlY3Rpb24mIGh0
bWxDb2xsZWN0aW9uLCBFbGVtZW50JiBlbGVtZW50KQoraW5saW5lIGJvb2wgaXNNYXRjaGluZ0hU
TUxFbGVtZW50KGNvbnN0IEhUTUxDb2xsZWN0aW9uJiBodG1sQ29sbGVjdGlvbiwgSFRNTEVsZW1l
bnQmIGVsZW1lbnQpCiB7Ci0gICAgQ29sbGVjdGlvblR5cGUgdHlwZSA9IGh0bWxDb2xsZWN0aW9u
LnR5cGUoKTsKLSAgICBpZiAoIWVsZW1lbnQuaXNIVE1MRWxlbWVudCgpICYmICEodHlwZSA9PSBE
b2NBbGwgfHwgdHlwZSA9PSBOb2RlQ2hpbGRyZW4gfHwgdHlwZSA9PSBXaW5kb3dOYW1lZEl0ZW1z
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgc3dpdGNoICh0eXBlKSB7CisgICAgc3dp
dGNoIChodG1sQ29sbGVjdGlvbi50eXBlKCkpIHsKICAgICBjYXNlIERvY0ltYWdlczoKICAgICAg
ICAgcmV0dXJuIGVsZW1lbnQuaGFzVGFnTmFtZShpbWdUYWcpOwogICAgIGNhc2UgRG9jU2NyaXB0
czoKQEAgLTIwOSwxMyArMjA1LDExIEBAIGlubGluZSBib29sIGlzTWF0Y2hpbmdFbGVtZW50KGNv
bnN0IEhUTUxDb2xsZWN0aW9uJiBodG1sQ29sbGVjdGlvbiwgRWxlbWVudCYgZWxlCiAgICAgICAg
IHJldHVybiAoZWxlbWVudC5oYXNUYWdOYW1lKGFUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShh
cmVhVGFnKSkgJiYgZWxlbWVudC5mYXN0SGFzQXR0cmlidXRlKGhyZWZBdHRyKTsKICAgICBjYXNl
IERvY0FuY2hvcnM6CiAgICAgICAgIHJldHVybiBlbGVtZW50Lmhhc1RhZ05hbWUoYVRhZykgJiYg
ZWxlbWVudC5mYXN0SGFzQXR0cmlidXRlKG5hbWVBdHRyKTsKLSAgICBjYXNlIERvY0FsbDoKLSAg
ICBjYXNlIE5vZGVDaGlsZHJlbjoKLSAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBEb2N1
bWVudE5hbWVkSXRlbXM6CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBEb2N1bWVu
dE5hbWVDb2xsZWN0aW9uJj4oaHRtbENvbGxlY3Rpb24pLmVsZW1lbnRNYXRjaGVzKGVsZW1lbnQp
OworICAgIGNhc2UgRG9jQWxsOgorICAgIGNhc2UgTm9kZUNoaWxkcmVuOgogICAgIGNhc2UgV2lu
ZG93TmFtZWRJdGVtczoKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdpbmRvd05h
bWVDb2xsZWN0aW9uJj4oaHRtbENvbGxlY3Rpb24pLmVsZW1lbnRNYXRjaGVzKGVsZW1lbnQpOwog
ICAgIGNhc2UgRm9ybUNvbnRyb2xzOgogICAgIGNhc2UgVGFibGVSb3dzOgogICAgICAgICBicmVh
azsKQEAgLTIyNCw2ICsyMTgsMjMgQEAgaW5saW5lIGJvb2wgaXNNYXRjaGluZ0VsZW1lbnQoY29u
c3QgSFRNTENvbGxlY3Rpb24mIGh0bWxDb2xsZWN0aW9uLCBFbGVtZW50JiBlbGUKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKK2lubGluZSBib29sIGlzTWF0Y2hpbmdFbGVtZW50KGNvbnN0IEhUTUxD
b2xsZWN0aW9uJiBodG1sQ29sbGVjdGlvbiwgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICAvLyBD
b2xsZWN0aW9uIHR5cGVzIHRoYXQgZGVhbCB3aXRoIGFueSB0eXBlIG9mIEVsZW1lbnRzLCBub3Qg
anVzdCBIVE1MRWxlbWVudHMuCisgICAgc3dpdGNoIChodG1sQ29sbGVjdGlvbi50eXBlKCkpIHsK
KyAgICBjYXNlIERvY0FsbDoKKyAgICBjYXNlIE5vZGVDaGlsZHJlbjoKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgY2FzZSBXaW5kb3dOYW1lZEl0ZW1zOgorICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Y29uc3QgV2luZG93TmFtZUNvbGxlY3Rpb24mPihodG1sQ29sbGVjdGlvbikuZWxlbWVu
dE1hdGNoZXMoZWxlbWVudCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQor
CisgICAgLy8gQ29sbGVjdGlvbiB0eXBlcyB0aGF0IG9ubHkgZGVhbCB3aXRoIEhUTUxFbGVtZW50
cy4KKyAgICByZXR1cm4gaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpICYmIGlzTWF0Y2hpbmdIVE1M
RWxlbWVudChodG1sQ29sbGVjdGlvbiwgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpKTsK
K30KKwogc3RhdGljIEVsZW1lbnQqIHByZXZpb3VzRWxlbWVudChDb250YWluZXJOb2RlJiBiYXNl
LCBFbGVtZW50KiBwcmV2aW91cywgYm9vbCBvbmx5SW5jbHVkZURpcmVjdENoaWxkcmVuKQogewog
ICAgIHJldHVybiBvbmx5SW5jbHVkZURpcmVjdENoaWxkcmVuID8gRWxlbWVudFRyYXZlcnNhbDo6
cHJldmlvdXNTaWJsaW5nKHByZXZpb3VzKSA6IEVsZW1lbnRUcmF2ZXJzYWw6OnByZXZpb3VzKHBy
ZXZpb3VzLCAmYmFzZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241246</attachid>
            <date>2014-11-08 20:52:28 -0800</date>
            <delta_ts>2014-11-08 21:13:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138529-20141108205228.patch</filename>
            <type>text/plain</type>
            <size>3474</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1Nzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWNiNWJhMWQ1YmYyN2Q3
ZjIyNGU1ZTFiNjRkODNlZWM2NWY2MzBlYy4uYjc5NDU5OGU3N2U3YmU5MTAyNTNjYmM4YjE1Mzkx
NTUzODVjNDQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTExLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FsbCBmYXN0ZXIgSFRNTEVs
ZW1lbnQ6Omhhc1RhZ05hbWUoKSBpbiBIVE1MQ29sbGVjdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NTI5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQ2FsbCBmYXN0ZXIgSFRNTEVsZW1lbnQ6Omhhc1Rh
Z05hbWUoKSBpbiBIVE1MQ29sbGVjdGlvbiBpbnN0ZWFkIG9mCisgICAgICAgIHNsb3dlciBOb2Rl
OjpoYXNUYWdOYW1lKCkgYnkgcmVzdHJ1Y3R1cmluZyB0aGUgY29kZSBhIGJpdCB0bworICAgICAg
ICBkaXN0aW5ndWlzaCBjb2xsZWN0aW9uIHRoYXQgZGVhbCBvbmx5IHdpdGggSFRNTEVsZW1lbnRz
IGZyb20gb3RoZXJzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojppc01hdGNoaW5nSFRNTEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNNYXRjaGluZ0Vs
ZW1lbnQpOgorCiAyMDE0LTExLTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgU3BlZWQgdXAgSFRNTElucHV0RWxlbWVudDo6aXNFbXB0eVZhbHVlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAKaW5kZXggMTdhMGNmYmUxMGRjZGJjMmI1NzUy
ZWE3MWJmZTVkMTBjOGVkNjJlZS4uYmU4ZWU5YzMxNmQxMTY2OGUzZDEyZDYwOWQzYjRkMGZjMTA3
ODE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAKQEAgLTE2OSwxMyAr
MTY5LDkgQEAgQ29udGFpbmVyTm9kZSYgSFRNTENvbGxlY3Rpb246OnJvb3ROb2RlKCkgY29uc3QK
ICAgICByZXR1cm4gb3duZXJOb2RlKCk7CiB9CiAKLWlubGluZSBib29sIGlzTWF0Y2hpbmdFbGVt
ZW50KGNvbnN0IEhUTUxDb2xsZWN0aW9uJiBodG1sQ29sbGVjdGlvbiwgRWxlbWVudCYgZWxlbWVu
dCkKK2lubGluZSBib29sIGlzTWF0Y2hpbmdIVE1MRWxlbWVudChjb25zdCBIVE1MQ29sbGVjdGlv
biYgY29sbGVjdGlvbiwgSFRNTEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgQ29sbGVjdGlvblR5
cGUgdHlwZSA9IGh0bWxDb2xsZWN0aW9uLnR5cGUoKTsKLSAgICBpZiAoIWVsZW1lbnQuaXNIVE1M
RWxlbWVudCgpICYmICEodHlwZSA9PSBEb2NBbGwgfHwgdHlwZSA9PSBOb2RlQ2hpbGRyZW4gfHwg
dHlwZSA9PSBXaW5kb3dOYW1lZEl0ZW1zKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
c3dpdGNoICh0eXBlKSB7CisgICAgc3dpdGNoIChjb2xsZWN0aW9uLnR5cGUoKSkgewogICAgIGNh
c2UgRG9jSW1hZ2VzOgogICAgICAgICByZXR1cm4gZWxlbWVudC5oYXNUYWdOYW1lKGltZ1RhZyk7
CiAgICAgY2FzZSBEb2NTY3JpcHRzOgpAQCAtMjA5LDE5ICsyMDUsMzMgQEAgaW5saW5lIGJvb2wg
aXNNYXRjaGluZ0VsZW1lbnQoY29uc3QgSFRNTENvbGxlY3Rpb24mIGh0bWxDb2xsZWN0aW9uLCBF
bGVtZW50JiBlbGUKICAgICAgICAgcmV0dXJuIChlbGVtZW50Lmhhc1RhZ05hbWUoYVRhZykgfHwg
ZWxlbWVudC5oYXNUYWdOYW1lKGFyZWFUYWcpKSAmJiBlbGVtZW50LmZhc3RIYXNBdHRyaWJ1dGUo
aHJlZkF0dHIpOwogICAgIGNhc2UgRG9jQW5jaG9yczoKICAgICAgICAgcmV0dXJuIGVsZW1lbnQu
aGFzVGFnTmFtZShhVGFnKSAmJiBlbGVtZW50LmZhc3RIYXNBdHRyaWJ1dGUobmFtZUF0dHIpOwor
ICAgIGNhc2UgRG9jdW1lbnROYW1lZEl0ZW1zOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Y29uc3QgRG9jdW1lbnROYW1lQ29sbGVjdGlvbiY+KGNvbGxlY3Rpb24pLmVsZW1lbnRNYXRjaGVz
KGVsZW1lbnQpOwogICAgIGNhc2UgRG9jQWxsOgogICAgIGNhc2UgTm9kZUNoaWxkcmVuOgotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIERvY3VtZW50TmFtZWRJdGVtczoKLSAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IERvY3VtZW50TmFtZUNvbGxlY3Rpb24mPihodG1sQ29s
bGVjdGlvbikuZWxlbWVudE1hdGNoZXMoZWxlbWVudCk7CiAgICAgY2FzZSBXaW5kb3dOYW1lZEl0
ZW1zOgotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgV2luZG93TmFtZUNvbGxlY3Rp
b24mPihodG1sQ29sbGVjdGlvbikuZWxlbWVudE1hdGNoZXMoZWxlbWVudCk7CiAgICAgY2FzZSBG
b3JtQ29udHJvbHM6CiAgICAgY2FzZSBUYWJsZVJvd3M6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitpbmxpbmUgYm9vbCBp
c01hdGNoaW5nRWxlbWVudChjb25zdCBIVE1MQ29sbGVjdGlvbiYgY29sbGVjdGlvbiwgRWxlbWVu
dCYgZWxlbWVudCkKK3sKKyAgICAvLyBDb2xsZWN0aW9uIHR5cGVzIHRoYXQgZGVhbCB3aXRoIGFu
eSB0eXBlIG9mIEVsZW1lbnRzLCBub3QganVzdCBIVE1MRWxlbWVudHMuCisgICAgc3dpdGNoIChj
b2xsZWN0aW9uLnR5cGUoKSkgeworICAgIGNhc2UgRG9jQWxsOgorICAgIGNhc2UgTm9kZUNoaWxk
cmVuOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFdpbmRvd05hbWVkSXRlbXM6Cisg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBXaW5kb3dOYW1lQ29sbGVjdGlvbiY+KGNv
bGxlY3Rpb24pLmVsZW1lbnRNYXRjaGVzKGVsZW1lbnQpOworICAgIGRlZmF1bHQ6CiAgICAgICAg
IGJyZWFrOwogICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAvLyBDb2xsZWN0aW9uIHR5cGVzIHRoYXQgb25seSBkZWFsIHdpdGggSFRNTEVs
ZW1lbnRzLgorICAgIHJldHVybiBpczxIVE1MRWxlbWVudD4oZWxlbWVudCkgJiYgaXNNYXRjaGlu
Z0hUTUxFbGVtZW50KGNvbGxlY3Rpb24sIGRvd25jYXN0PEhUTUxFbGVtZW50PihlbGVtZW50KSk7
CiB9CiAKIHN0YXRpYyBFbGVtZW50KiBwcmV2aW91c0VsZW1lbnQoQ29udGFpbmVyTm9kZSYgYmFz
ZSwgRWxlbWVudCogcHJldmlvdXMsIGJvb2wgb25seUluY2x1ZGVEaXJlY3RDaGlsZHJlbikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241248</attachid>
            <date>2014-11-08 21:13:25 -0800</date>
            <delta_ts>2014-11-08 21:59:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138529-20141108211326.patch</filename>
            <type>text/plain</type>
            <size>3628</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1Nzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWNiNWJhMWQ1YmYyN2Q3
ZjIyNGU1ZTFiNjRkODNlZWM2NWY2MzBlYy4uYjc5NDU5OGU3N2U3YmU5MTAyNTNjYmM4YjE1Mzkx
NTUzODVjNDQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTExLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FsbCBmYXN0ZXIgSFRNTEVs
ZW1lbnQ6Omhhc1RhZ05hbWUoKSBpbiBIVE1MQ29sbGVjdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NTI5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQ2FsbCBmYXN0ZXIgSFRNTEVsZW1lbnQ6Omhhc1Rh
Z05hbWUoKSBpbiBIVE1MQ29sbGVjdGlvbiBpbnN0ZWFkIG9mCisgICAgICAgIHNsb3dlciBOb2Rl
OjpoYXNUYWdOYW1lKCkgYnkgcmVzdHJ1Y3R1cmluZyB0aGUgY29kZSBhIGJpdCB0bworICAgICAg
ICBkaXN0aW5ndWlzaCBjb2xsZWN0aW9uIHRoYXQgZGVhbCBvbmx5IHdpdGggSFRNTEVsZW1lbnRz
IGZyb20gb3RoZXJzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojppc01hdGNoaW5nSFRNTEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNNYXRjaGluZ0Vs
ZW1lbnQpOgorCiAyMDE0LTExLTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgU3BlZWQgdXAgSFRNTElucHV0RWxlbWVudDo6aXNFbXB0eVZhbHVlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAKaW5kZXggMTdhMGNmYmUxMGRjZGJjMmI1NzUy
ZWE3MWJmZTVkMTBjOGVkNjJlZS4uMTIxNGM4ZTVlNmZhMzI3NjY0OTA5NWExNWY0ODg0MmQ4NjAw
NmIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAKQEAgLTE2OSwxMyAr
MTY5LDkgQEAgQ29udGFpbmVyTm9kZSYgSFRNTENvbGxlY3Rpb246OnJvb3ROb2RlKCkgY29uc3QK
ICAgICByZXR1cm4gb3duZXJOb2RlKCk7CiB9CiAKLWlubGluZSBib29sIGlzTWF0Y2hpbmdFbGVt
ZW50KGNvbnN0IEhUTUxDb2xsZWN0aW9uJiBodG1sQ29sbGVjdGlvbiwgRWxlbWVudCYgZWxlbWVu
dCkKK2lubGluZSBib29sIGlzTWF0Y2hpbmdIVE1MRWxlbWVudChjb25zdCBIVE1MQ29sbGVjdGlv
biYgY29sbGVjdGlvbiwgSFRNTEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgQ29sbGVjdGlvblR5
cGUgdHlwZSA9IGh0bWxDb2xsZWN0aW9uLnR5cGUoKTsKLSAgICBpZiAoIWVsZW1lbnQuaXNIVE1M
RWxlbWVudCgpICYmICEodHlwZSA9PSBEb2NBbGwgfHwgdHlwZSA9PSBOb2RlQ2hpbGRyZW4gfHwg
dHlwZSA9PSBXaW5kb3dOYW1lZEl0ZW1zKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
c3dpdGNoICh0eXBlKSB7CisgICAgc3dpdGNoIChjb2xsZWN0aW9uLnR5cGUoKSkgewogICAgIGNh
c2UgRG9jSW1hZ2VzOgogICAgICAgICByZXR1cm4gZWxlbWVudC5oYXNUYWdOYW1lKGltZ1RhZyk7
CiAgICAgY2FzZSBEb2NTY3JpcHRzOgpAQCAtMjA5LDEzICsyMDUsMTEgQEAgaW5saW5lIGJvb2wg
aXNNYXRjaGluZ0VsZW1lbnQoY29uc3QgSFRNTENvbGxlY3Rpb24mIGh0bWxDb2xsZWN0aW9uLCBF
bGVtZW50JiBlbGUKICAgICAgICAgcmV0dXJuIChlbGVtZW50Lmhhc1RhZ05hbWUoYVRhZykgfHwg
ZWxlbWVudC5oYXNUYWdOYW1lKGFyZWFUYWcpKSAmJiBlbGVtZW50LmZhc3RIYXNBdHRyaWJ1dGUo
aHJlZkF0dHIpOwogICAgIGNhc2UgRG9jQW5jaG9yczoKICAgICAgICAgcmV0dXJuIGVsZW1lbnQu
aGFzVGFnTmFtZShhVGFnKSAmJiBlbGVtZW50LmZhc3RIYXNBdHRyaWJ1dGUobmFtZUF0dHIpOwor
ICAgIGNhc2UgRG9jdW1lbnROYW1lZEl0ZW1zOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Y29uc3QgRG9jdW1lbnROYW1lQ29sbGVjdGlvbiY+KGNvbGxlY3Rpb24pLmVsZW1lbnRNYXRjaGVz
KGVsZW1lbnQpOwogICAgIGNhc2UgRG9jQWxsOgogICAgIGNhc2UgTm9kZUNoaWxkcmVuOgotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIERvY3VtZW50TmFtZWRJdGVtczoKLSAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IERvY3VtZW50TmFtZUNvbGxlY3Rpb24mPihodG1sQ29s
bGVjdGlvbikuZWxlbWVudE1hdGNoZXMoZWxlbWVudCk7CiAgICAgY2FzZSBXaW5kb3dOYW1lZEl0
ZW1zOgotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgV2luZG93TmFtZUNvbGxlY3Rp
b24mPihodG1sQ29sbGVjdGlvbikuZWxlbWVudE1hdGNoZXMoZWxlbWVudCk7CiAgICAgY2FzZSBG
b3JtQ29udHJvbHM6CiAgICAgY2FzZSBUYWJsZVJvd3M6CiAgICAgICAgIGJyZWFrOwpAQCAtMjI0
LDYgKzIxOCwyMSBAQCBpbmxpbmUgYm9vbCBpc01hdGNoaW5nRWxlbWVudChjb25zdCBIVE1MQ29s
bGVjdGlvbiYgaHRtbENvbGxlY3Rpb24sIEVsZW1lbnQmIGVsZQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAoraW5saW5lIGJvb2wgaXNNYXRjaGluZ0VsZW1lbnQoY29uc3QgSFRNTENvbGxlY3Rpb24m
IGNvbGxlY3Rpb24sIEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgLy8gQ29sbGVjdGlvbiB0eXBl
cyB0aGF0IGRlYWwgd2l0aCBhbnkgdHlwZSBvZiBFbGVtZW50cywgbm90IGp1c3QgSFRNTEVsZW1l
bnRzLgorICAgIHN3aXRjaCAoY29sbGVjdGlvbi50eXBlKCkpIHsKKyAgICBjYXNlIERvY0FsbDoK
KyAgICBjYXNlIE5vZGVDaGlsZHJlbjoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBX
aW5kb3dOYW1lZEl0ZW1zOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgV2luZG93
TmFtZUNvbGxlY3Rpb24mPihjb2xsZWN0aW9uKS5lbGVtZW50TWF0Y2hlcyhlbGVtZW50KTsKKyAg
ICBkZWZhdWx0OgorICAgICAgICAvLyBDb2xsZWN0aW9uIHR5cGVzIHRoYXQgb25seSBkZWFsIHdp
dGggSFRNTEVsZW1lbnRzLgorICAgICAgICByZXR1cm4gaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQp
ICYmIGlzTWF0Y2hpbmdIVE1MRWxlbWVudChjb2xsZWN0aW9uLCBkb3duY2FzdDxIVE1MRWxlbWVu
dD4oZWxlbWVudCkpOworICAgIH0KK30KKwogc3RhdGljIEVsZW1lbnQqIHByZXZpb3VzRWxlbWVu
dChDb250YWluZXJOb2RlJiBiYXNlLCBFbGVtZW50KiBwcmV2aW91cywgYm9vbCBvbmx5SW5jbHVk
ZURpcmVjdENoaWxkcmVuKQogewogICAgIHJldHVybiBvbmx5SW5jbHVkZURpcmVjdENoaWxkcmVu
ID8gRWxlbWVudFRyYXZlcnNhbDo6cHJldmlvdXNTaWJsaW5nKHByZXZpb3VzKSA6IEVsZW1lbnRU
cmF2ZXJzYWw6OnByZXZpb3VzKHByZXZpb3VzLCAmYmFzZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>