<?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>149242</bug_id>
          
          <creation_ts>2015-09-16 18:07:18 -0700</creation_ts>
          <short_desc>HTMLSlotElement should render its assigned nodes</short_desc>
          <delta_ts>2015-09-21 15:28:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>149241</dependson>
          <blocked>148695</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>eoconnor</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hyatt</cc>
    
    <cc>kangil.han</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1126543</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-09-16 18:07:18 -0700</bug_when>
    <thetext>Support rendering the assigned nodes under HTMLSlotElement added in the bug 149241.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126983</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-09-17 18:11:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/22750917&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127762</commentid>
    <comment_count>2</comment_count>
      <attachid>261686</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-09-21 14:51:54 -0700</bug_when>
    <thetext>Created attachment 261686
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127769</commentid>
    <comment_count>3</comment_count>
      <attachid>261686</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-09-21 15:06:11 -0700</bug_when>
    <thetext>Comment on attachment 261686
patch

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

&gt; Source/WebCore/dom/SlotAssignment.cpp:187
&gt; +        auto defaultSlotEntry = m_slots.find(emptyAtom);

!? This would result in a hash lookup in each iteration.

&gt; Source/WebCore/style/StyleResolveTree.cpp:473
&gt; +static void attachSlot(HTMLSlotElement&amp; slot, RenderStyle&amp; inheritedStyle, RenderTreePosition&amp; renderTreePosition)

Attach sounds like we&apos;re attaching a renderer for a slot.
Maybe attachSlotContents would sound better?
attachSlotAssignee?

&gt; Source/WebCore/style/StyleResolveTree.cpp:481
&gt; +                continue;
&gt; +            }
&gt; +            if (is&lt;Element&gt;(*child))

Why don&apos;t we just do elseif?

&gt; Source/WebCore/style/StyleResolveTree.cpp:586
&gt; +                continue;
&gt; +            }
&gt; +            if (is&lt;Element&gt;(*child))

Why don&apos;t we just do &quot;else if&quot; instead?

&gt; Source/WebCore/style/StyleResolveTree.cpp:616
&gt; +#if ENABLE(SHADOW_DOM)
&gt; +    else if (is&lt;HTMLSlotElement&gt;(current))
&gt; +        detachSlot(downcast&lt;HTMLSlotElement&gt;(current), detachType);
&gt; +#endif
&gt; +    else if (ShadowRoot* shadowRoot = current.shadowRoot())
&gt;          detachShadowRoot(*shadowRoot, detachType);

What happens when a slot element has its own shadow root?

&gt; Source/WebCore/style/StyleResolveTree.cpp:857
&gt; +                continue;
&gt; +            }
&gt; +            if (is&lt;Element&gt;(*child))

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127772</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-09-21 15:16:24 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 261686 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; !? This would result in a hash lookup in each iteration.

This fixes a bug, the cached iterator becomes invalid after mutation.
 
&gt; &gt; Source/WebCore/style/StyleResolveTree.cpp:616
&gt; &gt; +#if ENABLE(SHADOW_DOM)
&gt; &gt; +    else if (is&lt;HTMLSlotElement&gt;(current))
&gt; &gt; +        detachSlot(downcast&lt;HTMLSlotElement&gt;(current), detachType);
&gt; &gt; +#endif
&gt; &gt; +    else if (ShadowRoot* shadowRoot = current.shadowRoot())
&gt; &gt;          detachShadowRoot(*shadowRoot, detachType);
&gt; 
&gt; What happens when a slot element has its own shadow root?

We ignore shadow root for slot element when creating the render tree so no need to detach it either. I assume the spec forbids it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127777</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-09-21 15:28:16 -0700</bug_when>
    <thetext>https://trac.webkit.org/r190084</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261686</attachid>
            <date>2015-09-21 14:51:54 -0700</date>
            <delta_ts>2015-09-21 15:06:11 -0700</delta_ts>
            <desc>patch</desc>
            <filename>shadow-dom-render.patch</filename>
            <type>text/plain</type>
            <size>10540</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MDA4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE1LTA5LTIxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBIVE1MU2xvdEVsZW1lbnQgc2hv
dWxkIHJlbmRlciBpdHMgYXNzaWduZWQgbm9kZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTI0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgcmVuZGVyaW5nIHRoZSBhc3NpZ25lZCBub2Rl
cyB1bmRlciBIVE1MU2xvdEVsZW1lbnQuCisKKyAgICAgICAgKiBkb20vU2xvdEFzc2lnbm1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2xvdEFzc2lnbm1lbnQ6OmFzc2lnblNsb3RzKToKKyAg
ICAgICAgKiBodG1sL0hUTUxTbG90RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
U2xvdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNs
b3RFbGVtZW50Ojphc3NpZ25lZE5vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTbG90RWxl
bWVudDo6Z2V0RGlzdHJpYnV0ZWROb2Rlcyk6CisgICAgICAgICogaHRtbC9IVE1MU2xvdEVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjphdHRhY2hCZWZvcmVPckFmdGVyUHNldWRvRWxlbWVudElmTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjphdHRhY2hTbG90KToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjphdHRhY2hSZW5kZXJUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpkZXRh
Y2hDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6ZGV0YWNoU2hhZG93Um9vdCk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6ZGV0YWNoU2xvdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6ZGV0YWNoUmVuZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6cmVz
b2x2ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpyZXNvbHZlU2xvdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6cmVzb2x2ZVRyZWUpOgorCiAyMDE1LTA5LTIxICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIHN2Zy9jdXN0b20v
aGlkcGktbWFza2luZy1jbGlwcGluZy5zdmcgZmFpbHMgd2l0aCBhY2NlbGVyYXRlZCBkcmF3aW5n
IG9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2xvdEFzc2lnbm1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TbG90QXNzaWdubWVudC5jcHAJKHJldmlzaW9uIDE5
MDA3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TbG90QXNzaWdubWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE3NSw4ICsxNzUsNiBAQCB2b2lkIFNsb3RBc3NpZ25tZW50Ojphc3NpZ25TbG90
cyhTaGFkb3dSCiAgICAgZm9yIChhdXRvJiBlbnRyeSA6IG1fc2xvdHMpCiAgICAgICAgIGVudHJ5
LnZhbHVlLT5hc3NpZ25lZE5vZGVzLnNocmluaygwKTsKIAotICAgIGF1dG8gZGVmYXVsdFNsb3RF
bnRyeSA9IG1fc2xvdHMuZmluZChlbXB0eUF0b20pOwotCiAgICAgZm9yIChOb2RlKiBjaGlsZCA9
IGhvc3QtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkp
IHsKICAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KGNoaWxkKSkgewogICAgICAgICAgICAgYXV0byYg
c2xvdE5hbWUgPSBkb3duY2FzdDxFbGVtZW50PigqY2hpbGQpLmZhc3RHZXRBdHRyaWJ1dGUoc2xv
dEF0dHIpOwpAQCAtMTg2LDYgKzE4NCw3IEBAIHZvaWQgU2xvdEFzc2lnbm1lbnQ6OmFzc2lnblNs
b3RzKFNoYWRvd1IKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQorICAgICAgICBhdXRvIGRlZmF1bHRTbG90RW50cnkgPSBtX3Nsb3RzLmZpbmQoZW1w
dHlBdG9tKTsKICAgICAgICAgaWYgKGRlZmF1bHRTbG90RW50cnkgIT0gbV9zbG90cy5lbmQoKSkK
ICAgICAgICAgICAgIGRlZmF1bHRTbG90RW50cnktPnZhbHVlLT5hc3NpZ25lZE5vZGVzLmFwcGVu
ZChjaGlsZCk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2xvdEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50
LmNwcAkocmV2aXNpb24gMTkwMDc0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2xvdEVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSwxNSArODUsMjQgQEAgdm9pZCBIVE1MU2xv
dEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoYwogICAgIH0KIH0KIAorY29uc3QgVmVjdG9yPE5v
ZGUqPiogSFRNTFNsb3RFbGVtZW50Ojphc3NpZ25lZE5vZGVzKCkgY29uc3QKK3sKKyAgICBWZWN0
b3I8UmVmUHRyPE5vZGU+PiBkaXN0cmlidXRlZE5vZGVzOworCisgICAgYXV0byogc2hhZG93Um9v
dCA9IGNvbnRhaW5pbmdTaGFkb3dSb290KCk7CisgICAgaWYgKCFzaGFkb3dSb290KQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBzaGFkb3dSb290LT5hc3NpZ25lZE5vZGVz
Rm9yU2xvdCgqdGhpcyk7Cit9CisKIFZlY3RvcjxSZWZQdHI8Tm9kZT4+IEhUTUxTbG90RWxlbWVu
dDo6Z2V0RGlzdHJpYnV0ZWROb2RlcygpIGNvbnN0CiB7CiAgICAgVmVjdG9yPFJlZlB0cjxOb2Rl
Pj4gZGlzdHJpYnV0ZWROb2RlczsKIAotICAgIGlmIChhdXRvIHNoYWRvd1Jvb3QgPSBjb250YWlu
aW5nU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgIGlmIChhdXRvIGFzc2lnbmVkTm9kZXMgPSBzaGFk
b3dSb290LT5hc3NpZ25lZE5vZGVzRm9yU2xvdCgqdGhpcykpIHsKLSAgICAgICAgICAgIGZvciAo
YXV0byogbm9kZSA6ICphc3NpZ25lZE5vZGVzKQotICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGVk
Tm9kZXMuYXBwZW5kKG5vZGUpOwotICAgICAgICB9CisgICAgaWYgKGF1dG8qIGFzc2lnbmVkTm9k
ZXMgPSB0aGlzLT5hc3NpZ25lZE5vZGVzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvKiBub2RlIDog
KmFzc2lnbmVkTm9kZXMpCisgICAgICAgICAgICBkaXN0cmlidXRlZE5vZGVzLmFwcGVuZChub2Rl
KTsKICAgICB9CiAKICAgICByZXR1cm4gZGlzdHJpYnV0ZWROb2RlczsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2xvdEVsZW1lbnQuaAkocmV2aXNpb24gMTkwMDc0KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2xvdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYs
OCBAQCBjbGFzcyBIVE1MU2xvdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNCiBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxIVE1MU2xvdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAorICAgIGNvbnN0IFZlY3RvcjxOb2RlKj4qIGFzc2lnbmVkTm9kZXMo
KSBjb25zdDsKKwogICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+IGdldERpc3RyaWJ1dGVkTm9kZXMo
KSBjb25zdDsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVz
b2x2ZVRyZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVz
b2x2ZVRyZWUuY3BwCShyZXZpc2lvbiAxOTAwNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVUcmVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnRSYXJlRGF0YS5oIgog
I2luY2x1ZGUgIkZsb3dUaHJlYWRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiSFRNTFNsb3RFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgpAQCAtNDY4LDEx
ICs0NjksMzUgQEAgc3RhdGljIHZvaWQgYXR0YWNoQmVmb3JlT3JBZnRlclBzZXVkb0VsZQogICAg
IGF0dGFjaFJlbmRlclRyZWUocHNldWRvRWxlbWVudC5nZXQoKSwgKmN1cnJlbnQucmVuZGVyU3R5
bGUoKSwgcmVuZGVyVHJlZVBvc2l0aW9uLCBudWxscHRyKTsKIH0KIAorI2lmIEVOQUJMRShTSEFE
T1dfRE9NKQorc3RhdGljIHZvaWQgYXR0YWNoU2xvdChIVE1MU2xvdEVsZW1lbnQmIHNsb3QsIFJl
bmRlclN0eWxlJiBpbmhlcml0ZWRTdHlsZSwgUmVuZGVyVHJlZVBvc2l0aW9uJiByZW5kZXJUcmVl
UG9zaXRpb24pCit7CisgICAgaWYgKGF1dG8qIGFzc2lnbmVkTm9kZXMgPSBzbG90LmFzc2lnbmVk
Tm9kZXMoKSkgeworICAgICAgICBmb3IgKGF1dG8qIGNoaWxkIDogKmFzc2lnbmVkTm9kZXMpIHsK
KyAgICAgICAgICAgIGlmIChpczxUZXh0PigqY2hpbGQpKSB7CisgICAgICAgICAgICAgICAgYXR0
YWNoVGV4dFJlbmRlcmVyKGRvd25jYXN0PFRleHQ+KCpjaGlsZCksIHJlbmRlclRyZWVQb3NpdGlv
bik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAoaXM8RWxlbWVudD4oKmNoaWxkKSkKKyAgICAgICAgICAgICAgICBhdHRhY2hSZW5kZXJU
cmVlKGRvd25jYXN0PEVsZW1lbnQ+KCpjaGlsZCksIGluaGVyaXRlZFN0eWxlLCByZW5kZXJUcmVl
UG9zaXRpb24sIG51bGxwdHIpOworICAgICAgICB9CisgICAgfQorICAgIHNsb3QuY2xlYXJOZWVk
c1N0eWxlUmVjYWxjKCk7CisgICAgc2xvdC5jbGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwor
fQorI2VuZGlmCisKIHN0YXRpYyB2b2lkIGF0dGFjaFJlbmRlclRyZWUoRWxlbWVudCYgY3VycmVu
dCwgUmVuZGVyU3R5bGUmIGluaGVyaXRlZFN0eWxlLCBSZW5kZXJUcmVlUG9zaXRpb24mIHJlbmRl
clRyZWVQb3NpdGlvbiwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gcmVzb2x2ZWRTdHlsZSkKIHsK
ICAgICBQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXIgY2FsbGJhY2tEaXNhYmxlcihjdXJy
ZW50LmRvY3VtZW50KCkpOwogICAgIFdpZGdldEhpZXJhcmNoeVVwZGF0ZXNTdXNwZW5zaW9uU2Nv
cGUgc3VzcGVuZFdpZGdldEhpZXJhcmNoeVVwZGF0ZXM7CiAKKyNpZiBFTkFCTEUoU0hBRE9XX0RP
TSkKKyAgICBpZiAoaXM8SFRNTFNsb3RFbGVtZW50PihjdXJyZW50KSkgeworICAgICAgICBhdHRh
Y2hTbG90KGRvd25jYXN0PEhUTUxTbG90RWxlbWVudD4oY3VycmVudCksIGluaGVyaXRlZFN0eWxl
LCByZW5kZXJUcmVlUG9zaXRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAg
ICAgaWYgKGlzPEluc2VydGlvblBvaW50PihjdXJyZW50KSkgewogICAgICAgICBhdHRhY2hEaXN0
cmlidXRlZENoaWxkcmVuKGRvd25jYXN0PEluc2VydGlvblBvaW50PihjdXJyZW50KSwgaW5oZXJp
dGVkU3R5bGUsIHJlbmRlclRyZWVQb3NpdGlvbik7CiAgICAgICAgIGN1cnJlbnQuY2xlYXJOZWVk
c1N0eWxlUmVjYWxjKCk7CkBAIC01MzIsMTIgKzU1Nyw5IEBAIHN0YXRpYyB2b2lkIGRldGFjaERp
c3RyaWJ1dGVkQ2hpbGRyZW4oSW4KIAogc3RhdGljIHZvaWQgZGV0YWNoQ2hpbGRyZW4oQ29udGFp
bmVyTm9kZSYgY3VycmVudCwgRGV0YWNoVHlwZSBkZXRhY2hUeXBlKQogewotICAgIGlmIChpczxJ
bnNlcnRpb25Qb2ludD4oY3VycmVudCkpCi0gICAgICAgIGRldGFjaERpc3RyaWJ1dGVkQ2hpbGRy
ZW4oZG93bmNhc3Q8SW5zZXJ0aW9uUG9pbnQ+KGN1cnJlbnQpKTsKLQogICAgIGZvciAoTm9kZSog
Y2hpbGQgPSBjdXJyZW50LmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRT
aWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGlzPFRleHQ+KCpjaGlsZCkpIHsKLSAgICAgICAgICAg
IFN0eWxlOjpkZXRhY2hUZXh0UmVuZGVyZXIoZG93bmNhc3Q8VGV4dD4oKmNoaWxkKSk7CisgICAg
ICAgICAgICBkZXRhY2hUZXh0UmVuZGVyZXIoZG93bmNhc3Q8VGV4dD4oKmNoaWxkKSk7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICBpZiAoaXM8RWxlbWVudD4oKmNo
aWxkKSkKQEAgLTU1MSw2ICs1NzMsMjUgQEAgc3RhdGljIHZvaWQgZGV0YWNoU2hhZG93Um9vdChT
aGFkb3dSb290JgogICAgIGRldGFjaENoaWxkcmVuKHNoYWRvd1Jvb3QsIGRldGFjaFR5cGUpOwog
fQogCisjaWYgRU5BQkxFKFNIQURPV19ET00pCitzdGF0aWMgdm9pZCBkZXRhY2hTbG90KEhUTUxT
bG90RWxlbWVudCYgc2xvdCwgRGV0YWNoVHlwZSBkZXRhY2hUeXBlKQoreworICAgIEFTU0VSVCgh
c2xvdC5yZW5kZXJlcigpKTsKKyAgICBpZiAoYXV0byogYXNzaWduZWROb2RlcyA9IHNsb3QuYXNz
aWduZWROb2RlcygpKSB7CisgICAgICAgIGZvciAoYXV0byogY2hpbGQgOiAqYXNzaWduZWROb2Rl
cykgeworICAgICAgICAgICAgaWYgKGlzPFRleHQ+KCpjaGlsZCkpIHsKKyAgICAgICAgICAgICAg
ICBkZXRhY2hUZXh0UmVuZGVyZXIoZG93bmNhc3Q8VGV4dD4oKmNoaWxkKSk7CisgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXM8RWxlbWVu
dD4oKmNoaWxkKSkKKyAgICAgICAgICAgICAgICBkZXRhY2hSZW5kZXJUcmVlKGRvd25jYXN0PEVs
ZW1lbnQ+KCpjaGlsZCksIGRldGFjaFR5cGUpOworICAgICAgICB9CisgICAgfQorICAgIHNsb3Qu
Y2xlYXJOZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgc2xvdC5jbGVhckNoaWxkTmVlZHNTdHlsZVJl
Y2FsYygpOworfQorI2VuZGlmCisKIHN0YXRpYyB2b2lkIGRldGFjaFJlbmRlclRyZWUoRWxlbWVu
dCYgY3VycmVudCwgRGV0YWNoVHlwZSBkZXRhY2hUeXBlKQogewogICAgIFdpZGdldEhpZXJhcmNo
eVVwZGF0ZXNTdXNwZW5zaW9uU2NvcGUgc3VzcGVuZFdpZGdldEhpZXJhcmNoeVVwZGF0ZXM7CkBA
IC01NjUsNyArNjA2LDEzIEBAIHN0YXRpYyB2b2lkIGRldGFjaFJlbmRlclRyZWUoRWxlbWVudCYg
Y3UKICAgICBpZiAoZGV0YWNoVHlwZSAhPSBSZWF0dGFjaERldGFjaCkKICAgICAgICAgY3VycmVu
dC5jbGVhckhvdmVyQW5kQWN0aXZlU3RhdHVzQmVmb3JlRGV0YWNoaW5nUmVuZGVyZXIoKTsKIAot
ICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3dSb290ID0gY3VycmVudC5zaGFkb3dSb290KCkpCisg
ICAgaWYgKGlzPEluc2VydGlvblBvaW50PihjdXJyZW50KSkKKyAgICAgICAgZGV0YWNoRGlzdHJp
YnV0ZWRDaGlsZHJlbihkb3duY2FzdDxJbnNlcnRpb25Qb2ludD4oY3VycmVudCkpOworI2lmIEVO
QUJMRShTSEFET1dfRE9NKQorICAgIGVsc2UgaWYgKGlzPEhUTUxTbG90RWxlbWVudD4oY3VycmVu
dCkpCisgICAgICAgIGRldGFjaFNsb3QoZG93bmNhc3Q8SFRNTFNsb3RFbGVtZW50PihjdXJyZW50
KSwgZGV0YWNoVHlwZSk7CisjZW5kaWYKKyAgICBlbHNlIGlmIChTaGFkb3dSb290KiBzaGFkb3dS
b290ID0gY3VycmVudC5zaGFkb3dSb290KCkpCiAgICAgICAgIGRldGFjaFNoYWRvd1Jvb3QoKnNo
YWRvd1Jvb3QsIGRldGFjaFR5cGUpOwogCiAgICAgZGV0YWNoQ2hpbGRyZW4oY3VycmVudCwgZGV0
YWNoVHlwZSk7CkBAIC03OTgsMTAgKzg0NSwzNCBAQCBzdGF0aWMgdm9pZCByZXNvbHZlQ2hpbGRy
ZW4oRWxlbWVudCYgY3VyCiAgICAgfQogfQogCisjaWYgRU5BQkxFKFNIQURPV19ET00pCitzdGF0
aWMgdm9pZCByZXNvbHZlU2xvdChIVE1MU2xvdEVsZW1lbnQmIHNsb3QsIFJlbmRlclN0eWxlJiBp
bmhlcml0ZWRTdHlsZSwgUmVuZGVyVHJlZVBvc2l0aW9uJiByZW5kZXJUcmVlUG9zaXRpb24sIENo
YW5nZSBjaGFuZ2UpCit7CisgICAgaWYgKGF1dG8qIGFzc2lnbmVkTm9kZXMgPSBzbG90LmFzc2ln
bmVkTm9kZXMoKSkgeworICAgICAgICBmb3IgKGF1dG8qIGNoaWxkIDogKmFzc2lnbmVkTm9kZXMp
IHsKKyAgICAgICAgICAgIGlmIChpczxUZXh0PigqY2hpbGQpKSB7CisgICAgICAgICAgICAgICAg
cmVzb2x2ZVRleHROb2RlKGRvd25jYXN0PFRleHQ+KCpjaGlsZCksIHJlbmRlclRyZWVQb3NpdGlv
bik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAoaXM8RWxlbWVudD4oKmNoaWxkKSkKKyAgICAgICAgICAgICAgICByZXNvbHZlVHJlZShk
b3duY2FzdDxFbGVtZW50PigqY2hpbGQpLCBpbmhlcml0ZWRTdHlsZSwgcmVuZGVyVHJlZVBvc2l0
aW9uLCBjaGFuZ2UpOworICAgICAgICB9CisgICAgfQorICAgIHNsb3QuY2xlYXJOZWVkc1N0eWxl
UmVjYWxjKCk7CisgICAgc2xvdC5jbGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOworfQorI2Vu
ZGlmCisKIHZvaWQgcmVzb2x2ZVRyZWUoRWxlbWVudCYgY3VycmVudCwgUmVuZGVyU3R5bGUmIGlu
aGVyaXRlZFN0eWxlLCBSZW5kZXJUcmVlUG9zaXRpb24mIHJlbmRlclRyZWVQb3NpdGlvbiwgQ2hh
bmdlIGNoYW5nZSkKIHsKICAgICBBU1NFUlQoY2hhbmdlICE9IERldGFjaCk7CiAKKyNpZiBFTkFC
TEUoU0hBRE9XX0RPTSkKKyAgICBpZiAoaXM8SFRNTFNsb3RFbGVtZW50PihjdXJyZW50KSkgewor
ICAgICAgICByZXNvbHZlU2xvdChkb3duY2FzdDxIVE1MU2xvdEVsZW1lbnQ+KGN1cnJlbnQpLCBp
bmhlcml0ZWRTdHlsZSwgcmVuZGVyVHJlZVBvc2l0aW9uLCBjaGFuZ2UpOworICAgICAgICByZXR1
cm47CisgICAgfQorI2VuZGlmCiAgICAgaWYgKGlzPEluc2VydGlvblBvaW50PihjdXJyZW50KSkg
ewogICAgICAgICBjdXJyZW50LmNsZWFyTmVlZHNTdHlsZVJlY2FsYygpOwogICAgICAgICBjdXJy
ZW50LmNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTAw
ODApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAxNS0wOS0yMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSFRNTFNsb3RFbGVtZW50IHNob3VsZCByZW5kZXIgaXRzIGFzc2lnbmVkIG5vZGVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkyNDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgcmVs
ZXZhbnQgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoK
KwogMjAxNS0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IERPTVRva2VuTGlzdC5hZGQoKSAvIHJlbW92ZSgpIHNob3VsZCBydW4gdGhlIHVwZGF0ZSBzdGVw
cyBldmVuIGlmIHRva2VucyB3ZXJlIG5vdCBtb2RpZmllZApJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE5MDA3NCkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAz
LDYgKzEzMDMsNCBAQCB3ZWJraXQub3JnL2IvMTQzMjU4IFsgTWF2ZXJpY2tzIF0gaHR0cC90CiB3
ZWJraXQub3JnL2IvMTQ5MTI4IGZhc3QvdGV4dC9jb250cm9sLWNoYXJhY3RlcnMgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE0ODY5NSBmYXN0L3NoYWRvdy1kb20gWyBQYXNz
IF0KLXdlYmtpdC5vcmcvYi8xNDkyNDIgZmFzdC9zaGFkb3ctZG9tL2Nzcy1zY29waW5nLXNoYWRv
dy1zbG90Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNDkyNDIgZmFz
dC9zaGFkb3ctZG9tL2Nzcy1zY29waW5nLXNoYWRvdy1pbnZpc2libGUtc2xvdC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQ5MzI4IGZhc3Qvc2hhZG93LWRvbS9jc3Mt
c2NvcGluZy1zaGFkb3ctd2l0aC1ydWxlcy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>
<flag name="review"
          id="286876"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>