<?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>138438</bug_id>
          
          <creation_ts>2014-11-05 14:07:07 -0800</creation_ts>
          <short_desc>Web Inspector: Pseudo element matchedCSSRules do not include matching selector info</short_desc>
          <delta_ts>2014-11-07 12:31:09 -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>Web Inspector</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>benjamin</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1046602</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-05 14:07:07 -0800</bug_when>
    <thetext>* SUMMARY
Pseudo element matchedCSSRules do not include matching selector info. The frontend then displays all selectors as matching instead of showing exactly which selector matched.

* STEPS TO REPRODUCE
1. Inspect &lt;audio&gt; on data:text/html,&lt;audio%20controls&gt;
2. Expand Shadow DOM and select ::webkit-media-text-track-container element
3. Show Styles Sidebar
  =&gt; &quot;video::-webkit-media-text-track-container, audio::-webkit-media-text-track-container&quot; selectors are both highlighted.
  =&gt; expected only audio::-webkit-media-text-track-container to be highlighted, since this is an &lt;audio&gt;

* NOTES
The result of CSSAgent.getMatchedStylesForNode includes the Rule and Selectors, but an empty matchingSelectors list.

{
    &quot;result&quot;: {
        &quot;matchedCSSRules&quot;: [
        ...
         {
            &quot;rule&quot;: {
                &quot;selectorList&quot;: {
                    &quot;selectors&quot;: [{
                        &quot;text&quot;: &quot;video::-webkit-media-controls-panel&quot;,
                        &quot;specificity&quot;: [0, 1, 1]
                    }, {
                        &quot;text&quot;: &quot;audio::-webkit-media-controls-panel&quot;,
                        &quot;specificity&quot;: [0, 1, 1]
                    }],
                    &quot;text&quot;: &quot;video::-webkit-media-controls-panel, audio::-webkit-media-controls-panel&quot;
                },
            },
            &quot;matchingSelectors&quot;: []
        }]
        ...
    }
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046603</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-11-05 14:07:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/18885821&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046615</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-05 15:06:06 -0800</bug_when>
    <thetext>Ben helped point out the issue.

InspectorCSSAgent::buildArrayForMatchedRuleList was using the JavaScript Element::matches API which won&apos;t work with pseudo elements. He suggested instead that we use the SelectorChecker machinery. That works great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046644</commentid>
    <comment_count>3</comment_count>
      <attachid>241070</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-05 15:58:59 -0800</bug_when>
    <thetext>Created attachment 241070
[PATCH] Proposed Fix

The test here is pretty crappy. I&apos;ll see if I can come up with a better test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046912</commentid>
    <comment_count>4</comment_count>
      <attachid>241070</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-11-06 14:29:28 -0800</bug_when>
    <thetext>Comment on attachment 241070
[PATCH] Proposed Fix

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

&gt; LayoutTests/ChangeLog:9
&gt; +        * inspector/css/psuedo-element-matches-expected.txt: Added.
&gt; +        * inspector/css/psuedo-element-matches.html: Added.

Typo: pseudo.

There are other interesting problem with the old code:
-Regular pseudo element matching, a::before, b::after, etc can never match.
-:visited can never match.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047148</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-07 12:31:09 -0800</bug_when>
    <thetext>&lt;http://trac.webkit.org/changeset/175758&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241070</attachid>
            <date>2014-11-05 15:58:59 -0800</date>
            <delta_ts>2014-11-06 14:29:28 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>selector-checker.patch</filename>
            <type>text/plain</type>
            <size>12380</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMGI5OGZiLi44YmEzMmZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMTEt
MDUgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBQc2V1ZG8gZWxlbWVudCBtYXRjaGVkQ1NTUnVsZXMgZG8gbm90IGluY2x1ZGUg
bWF0Y2hpbmcgc2VsZWN0b3IgaW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM4NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL3BzdWVkby1lbGVtZW50LW1hdGNoZXMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL3BzdWVkby1lbGVtZW50
LW1hdGNoZXMuaHRtbDogQWRkZWQuCisgICAgICAgIEFkZCBhIHRlc3QgdG8gZW5zdXJlIHdlIGdl
dCBjb3JyZWN0IHNlbGVjdG9yIG1hdGNoZXMgZm9yIGEgcHNldWRvIGVsZW1lbnQKKyAgICAgICAg
aW5zaWRlIG9mIGFuIDxhdWRpbz4gZWxlbWVudC4gVGhlIHRlc3QgaXMgaGVhdmlseSBjb3VwbGVk
IHRvIG91ciBVc2VyQWdlbnQKKyAgICAgICAgc3R5bGVzaGVldCBhbmQgU2hhZG93IERPTSBsYXlv
dXQsIHNvIGNoZWNrIGZvciBwb3NzaWJsZSBmYWlsdXJlcyBpZgorICAgICAgICBXZWJDb3JlIGNo
YW5nZXMgdGhpbmdzLgorCiAyMDE0LTExLTA0ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBw
bGUuY29tPgogCiAgICAgICAgIERpc2FibGUgZmxha2V5IGRmZy1pbnQ4YXJyYXkuanMgYW5kIGRm
Zy1pbnQxNmFycmF5LmpzIHRlc3RzIGZvciBBUk02NApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2Nzcy9wc3VlZG8tZWxlbWVudC1tYXRjaGVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvcHN1ZWRvLWVsZW1lbnQtbWF0Y2hlcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZmZjdlZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvcHN1ZWRvLWVsZW1lbnQtbWF0Y2hlcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0aW5nIHRoYXQgcHN1ZWRvIGVsZW1lbnQg
c2VsZWN0b3JzIGNvcnJlY3RseSBzaG93IG1hdGNoaW5nIHNlbGVjdG9yIGluZm9ybWF0aW9uLgor
CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyCithdWRpbzo6LXdl
YmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciBNQVRDSEVTCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jc3MvcHN1ZWRvLWVsZW1lbnQtbWF0Y2hlcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9wc3VlZG8tZWxlbWVudC1tYXRjaGVzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjA3NzE4MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvcHN1ZWRvLWVsZW1lbnQtbWF0Y2hlcy5odG1sCkBA
IC0wLDAgKzEsODMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkgewor
ICAgIHZhciBub2RlU3R5bGVzOworCisgICAgZnVuY3Rpb24gdmFsaWRhdGVNYXRjaGVkU2VsZWN0
b3JzKCkKKyAgICB7CisgICAgICAgIHZhciBmb3VuZCA9IGZhbHNlOworCisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXMubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgICAgIHZhciBydWxlID0gbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXNbaV07CisgICAgICAg
ICAgICBpZiAocnVsZS50eXBlICE9PSBXZWJJbnNwZWN0b3IuQ1NTUnVsZS5UeXBlLlVzZXJBZ2Vu
dCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChydWxlLnNlbGVj
dG9yVGV4dC5pbmRleE9mKCI6Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1jb250YWluZXIiKSA9
PT0gLTEpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGZvdW5kID0g
dHJ1ZTsKKyAgICAgICAgICAgIHZhciBpbmRleCA9IDA7CisgICAgICAgICAgICBmb3IgKHZhciBz
ZWxlY3RvciBvZiBydWxlLnNlbGVjdG9ycykgeworICAgICAgICAgICAgICAgIHZhciBtYXRjaGVz
ID0gcnVsZS5tYXRjaGVkU2VsZWN0b3JJbmRpY2VzLmNvbnRhaW5zKGluZGV4KTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhzZWxlY3Rvci50ZXh0ICsgKG1hdGNoZXMgPyAiIE1B
VENIRVMiIDogIiIpKTsKKyAgICAgICAgICAgICAgICBpbmRleCsrOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWZvdW5kKQorICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZhaWxlZCB0byBmaW5kIGEgOjotd2Via2l0LW1l
ZGlhLXRleHQtdHJhY2stY29udGFpbmVyIFVzZXJBZ2VudCBzdHlsZS4gVGVzdCBtYXkgbmVlZCB0
byBjaGFuZ2UuIik7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBvblN0eWxlc1JlZnJlc2hlZCgpCisgICAgeworICAgICAgICBu
b2RlU3R5bGVzLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTU5vZGVTdHlsZXMu
RXZlbnQuUmVmcmVzaGVkLCBvblN0eWxlc1JlZnJlc2hlZCwgdGhpcyk7CisgICAgICAgIHZhbGlk
YXRlTWF0Y2hlZFNlbGVjdG9ycygpOworICAgIH0KKworICAgIFdlYkluc3BlY3Rvci5kb21UcmVl
TWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoZnVuY3Rpb24oZG9jdW1lbnROb2RlKSB7CisgICAgICAg
IFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5p
ZCwgIiNub2RlMSIsIGZ1bmN0aW9uKGNvbnRlbnROb2RlSWQpIHsKKyAgICAgICAgICAgIHRyeSB7
IAorICAgICAgICAgICAgICAgIGlmIChjb250ZW50Tm9kZUlkKSB7CisgICAgICAgICAgICAgICAg
ICAgIHZhciBkb21Ob2RlID0gV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChj
b250ZW50Tm9kZUlkKTsKKyAgICAgICAgICAgICAgICAgICAgZG9tTm9kZS5nZXRTdWJ0cmVlKDEs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNoYWRvd1Jvb3REb2N1
bWVudCA9IGRvbU5vZGUuY2hpbGRyZW5bMF07CisgICAgICAgICAgICAgICAgICAgICAgICBzaGFk
b3dSb290RG9jdW1lbnQuZ2V0U3VidHJlZSgyLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IHNoYWRvd1Jvb3REb2N1bWVudC5jaGlsZHJl
blswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNo
YWRvd1Jvb3QuY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmFyIHNoYWRvd05vZGUgPSBzaGFkb3dSb290LmNoaWxkcmVuW2ldOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2hhZG93Tm9kZS5nZXRBdHRyaWJ1dGUoInBz
ZXVkbyIpID09PSAiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciIpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVTdHlsZXMgPSBXZWJJbnNwZWN0b3Iu
Y3NzU3R5bGVNYW5hZ2VyLnN0eWxlc0Zvck5vZGUoc2hhZG93Tm9kZSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAobm9kZVN0eWxlcy5uZWVkc1JlZnJlc2gpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZVN0eWxlcy5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5ET01Ob2RlU3R5bGVzLkV2ZW50LlJlZnJlc2hlZCwgb25TdHls
ZXNSZWZyZXNoZWQsIHRoaXMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlTWF0
Y2hlZFNlbGVjdG9ycygpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJET00gbm9kZSBub3QgZm91bmQuIik7CisgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJFeGNlcHRpb246ICIgKyBlLm1lc3NhZ2UpOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJGYWlsZWQgdG8gZmluZCBhIDo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNv
bnRhaW5lciBzaGFkb3cgZWxlbWVudCB1bmRlciBhbiA8YXVkaW8+LiBUZXN0IG1heSBuZWVkIHRv
IGNoYW5nZS4iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9KTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RpbmcgdGhhdCBwc3Vl
ZG8gZWxlbWVudCBzZWxlY3RvcnMgY29ycmVjdGx5IHNob3cgbWF0Y2hpbmcgc2VsZWN0b3IgaW5m
b3JtYXRpb24uPC9wPgorCisgICAgPGF1ZGlvIGlkPSJub2RlMSIgY29udHJvbHM+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzhkOWQ2Zi4uNGM5M2Y5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI3IEBACisyMDE0LTExLTA1ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBs
ZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHNldWRvIGVsZW1lbnQgbWF0Y2hlZENT
U1J1bGVzIGRvIG5vdCBpbmNsdWRlIG1hdGNoaW5nIHNlbGVjdG9yIGluZm8KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODQzOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9jc3Mv
cHN1ZWRvLWVsZW1lbnQtbWF0Y2hlcy5odG1sCisKKyAgICAgICAgRWxlbWVudDo6bWF0Y2hlcyBp
cyBub3QgdGhlIGNvcnJlY3QgQVBJIHRvIHVzZSB0byBjaGVjayBzZWxlY3RvcnMgd2l0aCBwc2V1
ZG8tZWxlbWVudHMuCisgICAgICAgIEluc3RlYWQgd2Ugc2hvdWxkIHVzZSB0aGUgQ1NTIFNlbGVj
dG9yIGNoZWNraW5nIG1hY2hpbmFyeSB3aGljaCB1bmRlcnN0YW5kcyB0aGVtLgorCisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNTU0FnZW50OjpnZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpidWlsZEFycmF5Rm9yUnVsZUxpc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkQXJyYXlGb3JSZWdpb25zKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpidWlsZE9iamVjdEZvck5hbWVkRmxv
dyk6CisgICAgICAgIFNvbWUgUmVmUHRyIHJlbGVhc2UgaW1wcm92ZW1lbnRzLgorCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6YnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlz
dCk6CisgICAgICAgIFVzZSBhIFNlbGVjdG9yQ2hlY2tlciB0byBjaGVjayBlYWNoIFNlbGVjdG9y
IGFnYWluc3QgdGhlIGVsZW1lbnQuCisgICAgICAgIFRoaXMgbWF0Y2hlcyB0aGUgU2VsZWN0b3JD
aGVja2VyIHVzZWQgd2hlbiB3ZSBjb2xsZWN0ZWQgdGhlIHJ1bGVzCisgICAgICAgIGZvciB0aGlz
IGVsZW1lbnQuCisKIDIwMTQtMTEtMDQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBQYXVzZSBvbiBleGNlcHRpb25zIHNob3Vs
ZCBzaG93IHRoZSBhY3R1YWwgZXhjZXB0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCA3MWM4YzU4Li40ZTAzZWFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTQ5LDYgKzQ5
LDcgQEAKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd0Zy
YWdtZW50LmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU2VsZWN0
b3JDaGVja2VyLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiU3R5
bGVQcm9wZXJ0eVNob3J0aGFuZC5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKQEAgLTgy
Niw3ICs4MjcsNyBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50OjpnZXRTdXBwb3J0ZWRDU1NQcm9w
ZXJ0aWVzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEluc3BlY3RvcgogICAgICAgICAgICAgQ1NTUHJv
cGVydHlJRCBsb25naGFuZElEID0gc2hvcnRoYW5kLnByb3BlcnRpZXMoKVtqXTsKICAgICAgICAg
ICAgIGxvbmdoYW5kcy0+YWRkSXRlbShnZXRQcm9wZXJ0eU5hbWVTdHJpbmcobG9uZ2hhbmRJRCkp
OwogICAgICAgICB9Ci0gICAgICAgIHByb3BlcnR5LT5zZXRMb25naGFuZHMobG9uZ2hhbmRzKTsK
KyAgICAgICAgcHJvcGVydHktPnNldExvbmdoYW5kcyhsb25naGFuZHMucmVsZWFzZSgpKTsKICAg
ICAgICAgcHJvcGVydGllcy0+YWRkSXRlbShwcm9wZXJ0eS5yZWxlYXNlKCkpOwogICAgIH0KICAg
ICBjc3NQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5yZWxlYXNlKCk7CkBAIC0xMDQ3LDcgKzEwNDgs
NyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkNTUzo6Q1NTUnVsZT4+IEluc3BlYwogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6Q1NTOjpDU1NSdWxlPiBydWxlT2JqZWN0ID0gYnVpbGRPYmplY3RGb3JSdWxlKHJ1
bGUpOwogICAgICAgICBpZiAoIXJ1bGVPYmplY3QpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgcmVzdWx0LT5hZGRJdGVtKHJ1bGVPYmplY3QpOworICAgICAgICByZXN1bHQtPmFkZEl0
ZW0ocnVsZU9iamVjdC5yZWxlYXNlKCkpOwogICAgIH0KICAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2UoKTsKIH0KQEAgLTEwNTYsMjYgKzEwNTcsMzIgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlJ1bGVNYXRjaD4+IEluc3AK
IHsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90
b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiByZXN1bHQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJh
eTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlJ1bGVNYXRjaD46OmNyZWF0ZSgpOwogCisgICAg
U2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQgY29udGV4dChTZWxlY3RvckNoZWNrZXI6
Ok1vZGU6OkNvbGxlY3RpbmdSdWxlcyk7CisgICAgU2VsZWN0b3JDaGVja2VyIHNlbGVjdG9yQ2hl
Y2tlcihlbGVtZW50LT5kb2N1bWVudCgpKTsKKwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtYXRjaGVkUnVsZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKCFtYXRjaGVkUnVsZXNb
aV0tPmlzU3R5bGVSdWxlKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICBTdHls
ZVJ1bGUqIG1hdGNoZWRTdHlsZVJ1bGUgPSBzdGF0aWNfY2FzdDxTdHlsZVJ1bGUqPihtYXRjaGVk
UnVsZXNbaV0uZ2V0KCkpOwogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NT
OjpDU1NSdWxlPiBydWxlT2JqZWN0ID0gYnVpbGRPYmplY3RGb3JSdWxlKG1hdGNoZWRTdHlsZVJ1
bGUsIHN0eWxlUmVzb2x2ZXIpOwogICAgICAgICBpZiAoIXJ1bGVPYmplY3QpCiAgICAgICAgICAg
ICBjb250aW51ZTsKKwogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8
aW50Pj4gbWF0Y2hpbmdTZWxlY3RvcnMgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxpbnQ+
OjpjcmVhdGUoKTsKICAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3Rvckxpc3Qg
PSBtYXRjaGVkU3R5bGVSdWxlLT5zZWxlY3Rvckxpc3QoKTsKICAgICAgICAgbG9uZyBpbmRleCA9
IDA7CiAgICAgICAgIGZvciAoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gc2VsZWN0b3JM
aXN0LmZpcnN0KCk7IHNlbGVjdG9yOyBzZWxlY3RvciA9IENTU1NlbGVjdG9yTGlzdDo6bmV4dChz
ZWxlY3RvcikpIHsKLSAgICAgICAgICAgIGJvb2wgbWF0Y2hlZCA9IGVsZW1lbnQtPm1hdGNoZXMo
c2VsZWN0b3ItPnNlbGVjdG9yVGV4dCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgICAg
IGJvb2wgbWF0Y2hlZCA9IHNlbGVjdG9yQ2hlY2tlci5tYXRjaChzZWxlY3RvciwgZWxlbWVudCwg
Y29udGV4dCk7CiAgICAgICAgICAgICBpZiAobWF0Y2hlZCkKICAgICAgICAgICAgICAgICBtYXRj
aGluZ1NlbGVjdG9ycy0+YWRkSXRlbShpbmRleCk7CiAgICAgICAgICAgICArK2luZGV4OwogICAg
ICAgICB9CisKICAgICAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6UnVsZU1h
dGNoPiBtYXRjaCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6UnVsZU1hdGNoOjpjcmVhdGUo
KQotICAgICAgICAgICAgLnNldFJ1bGUocnVsZU9iamVjdCkKLSAgICAgICAgICAgIC5zZXRNYXRj
aGluZ1NlbGVjdG9ycyhtYXRjaGluZ1NlbGVjdG9ycyk7Ci0gICAgICAgIHJlc3VsdC0+YWRkSXRl
bShtYXRjaCk7CisgICAgICAgICAgICAuc2V0UnVsZShydWxlT2JqZWN0LnJlbGVhc2UoKSkKKyAg
ICAgICAgICAgIC5zZXRNYXRjaGluZ1NlbGVjdG9ycyhtYXRjaGluZ1NlbGVjdG9ycy5yZWxlYXNl
KCkpOworICAgICAgICByZXN1bHQtPmFkZEl0ZW0obWF0Y2gucmVsZWFzZSgpKTsKICAgICB9CiAK
ICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKQEAgLTExMjgsNyArMTEzNSw3IEBAIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NT
OjpSZWdpb24+PiBJbnNwZWN0CiAgICAgICAgICAgICAvLyBkb2N1bWVudE5vZGVJZCB3YXMgcHJl
dmlvdXNseSBhc3NlcnRlZAogICAgICAgICAgICAgLnNldE5vZGVJZChtX2RvbUFnZW50LT5wdXNo
Tm9kZVRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIGRvY3VtZW50Tm9kZUlkLCByZWdpb25MaXN0LT5p
dGVtKGkpKSk7CiAKLSAgICAgICAgcmVnaW9ucy0+YWRkSXRlbShyZWdpb24pOworICAgICAgICBy
ZWdpb25zLT5hZGRJdGVtKHJlZ2lvbi5yZWxlYXNlKCkpOwogICAgIH0KIAogICAgIHJldHVybiBy
ZWdpb25zLnJlbGVhc2UoKTsKQEAgLTExNDQsMTQgKzExNTEsMTMgQEAgUGFzc1JlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpDU1M6Ok5hbWVkRmxvdz4gSW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm8KICAgICAgICAgY29udGVudC0+YWRkSXRlbShtX2RvbUFnZW50LT5wdXNoTm9kZVRv
RnJvbnRlbmQoZXJyb3JTdHJpbmcsIGRvY3VtZW50Tm9kZUlkLCBjb250ZW50TGlzdC0+aXRlbShp
KSkpOwogICAgIH0KIAotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6Ok5hbWVk
Rmxvdz4gbmFtZWRGbG93ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpOYW1lZEZsb3c6OmNy
ZWF0ZSgpCisgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6TmFtZWRGbG93Ojpj
cmVhdGUoKQogICAgICAgICAuc2V0RG9jdW1lbnROb2RlSWQoZG9jdW1lbnROb2RlSWQpCiAgICAg
ICAgIC5zZXROYW1lKHdlYmtpdE5hbWVkRmxvdy0+bmFtZSgpLnN0cmluZygpKQogICAgICAgICAu
c2V0T3ZlcnNldCh3ZWJraXROYW1lZEZsb3ctPm92ZXJzZXQoKSkKLSAgICAgICAgLnNldENvbnRl
bnQoY29udGVudCkKLSAgICAgICAgLnNldFJlZ2lvbnMoYnVpbGRBcnJheUZvclJlZ2lvbnMoZXJy
b3JTdHJpbmcsIHdlYmtpdE5hbWVkRmxvdy0+Z2V0UmVnaW9ucygpLCBkb2N1bWVudE5vZGVJZCkp
OwotCi0gICAgcmV0dXJuIG5hbWVkRmxvdy5yZWxlYXNlKCk7CisgICAgICAgIC5zZXRDb250ZW50
KGNvbnRlbnQucmVsZWFzZSgpKQorICAgICAgICAuc2V0UmVnaW9ucyhidWlsZEFycmF5Rm9yUmVn
aW9ucyhlcnJvclN0cmluZywgd2Via2l0TmFtZWRGbG93LT5nZXRSZWdpb25zKCksIGRvY3VtZW50
Tm9kZUlkKSkKKyAgICAgICAgLnJlbGVhc2UoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDU1NBZ2Vu
dDo6ZGlkUmVtb3ZlRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKaW5kZXggMGY4N2IzNC4uOWJmZmVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMTcgQEAKIDIwMTQtMTEtMDUgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBQc2V1ZG8gZWxlbWVudCBtYXRjaGVk
Q1NTUnVsZXMgZG8gbm90IGluY2x1ZGUgbWF0Y2hpbmcgc2VsZWN0b3IgaW5mbworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NDM4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jh
c2UvVGVzdC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5sb2FkZWQpOgorICAgICAgICBJbmNs
dWRlIGEgZ2xvYmFsIHNldHRpbmcgZm9yIHNoYWRvdyBkb20gdXNlZCBieSBET00gbW9kZWwgY2xh
c3Nlcy4KKyAgICAgICAgR2l2ZSBpdCBhICJ0ZXN0IiBzcGVjaWZpYyBuYW1lIHRvIG5vdCBvdmVy
cmlkZSBub24tdGVzdCBzZXR0aW5nIHZhbHVlcy4KKworMjAxNC0xMS0wNSAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNwZWNp
ZmljaXR5IG5vdCBzaG93biBmb3IgcHNldWRvIGVsZW1lbnQgc3R5bGVzCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg0MzYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9UZXN0LmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9UZXN0LmpzCmluZGV4IGE1NDhlZDIu
LmY0NDJlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0Jhc2UvVGVzdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL1Rlc3QuanMKQEAgLTYzLDYgKzYzLDggQEAgV2ViSW5zcGVjdG9yLmxvYWRlZCA9IGZ1bmN0
aW9uKCkKIAogICAgIC8vIFBlcmZvcm0gb25lLXRpbWUgdGFza3MuCiAgICAgV2ViSW5zcGVjdG9y
LkNTU0NvbXBsZXRpb25zLnJlcXVlc3RDU1NOYW1lQ29tcGxldGlvbnMoKTsKKworICAgIHRoaXMu
c2hvd1NoYWRvd0RPTVNldHRpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlNldHRpbmcoInRlc3Qtc2hv
dy1zaGFkb3ctZG9tIiwgdHJ1ZSk7CiB9CiAKIFdlYkluc3BlY3Rvci5jb250ZW50TG9hZGVkID0g
ZnVuY3Rpb24oKQo=
</data>
<flag name="review"
          id="265879"
          type_id="1"
          status="+"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="265880"
          type_id="3"
          status="-"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>