<?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>207208</bug_id>
          
          <creation_ts>2020-02-04 09:52:43 -0800</creation_ts>
          <short_desc>[GStreamer] Client-side video rendering doesn&apos;t fallback to internal compositing</short_desc>
          <delta_ts>2020-02-05 02:01:14 -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>Platform</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1614605</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-02-04 09:52:43 -0800</bug_when>
    <thetext>For instance when the EGLImage export fails, we should fallback to internal compositing (eg, no hole punching).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614608</commentid>
    <comment_count>1</comment_count>
      <attachid>389674</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-02-04 09:56:37 -0800</bug_when>
    <thetext>Created attachment 389674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614634</commentid>
    <comment_count>2</comment_count>
      <attachid>389674</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-02-04 10:47:48 -0800</bug_when>
    <thetext>Comment on attachment 389674
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3172
&gt; +    auto internalCompositingOperation = [this](TextureMapperPlatformLayerProxy&amp; proxy, std::unique_ptr&lt;GstVideoFrameHolder&gt; frameHolder) {

You&apos;re moving the frameholder when calling this, so I guess you should make this &amp;&amp; as well.

Anyway, why do you create a lambda instead of a method considering that we are only capturing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614973</commentid>
    <comment_count>3</comment_count>
      <attachid>389674</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2020-02-05 01:08:49 -0800</bug_when>
    <thetext>Comment on attachment 389674
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:218
&gt; +        static std::once_flag onceFlag;
&gt; +        std::call_once(onceFlag, [] {

Nit: I&apos;d recommend using `s_onceFlag` as the name, the `s_` prefix more explicitly describing the storage nature.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:372
&gt; +        return m_dmabufFD;

This should test for m_dmabufFD being &gt;= 0, i.e. a valid fd. Related to this, m_dmabufFD should be initialized to -1 and in handoffVideoDmaBuf() reset to -1 after the hand-off and closure.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3203
&gt; +            std::unique_ptr&lt;GstVideoFrameHolder&gt; frameHolder = makeUnique&lt;GstVideoFrameHolder&gt;(m_sample.get(), m_videoDecoderPlatform, m_textureMapperFlags, !m_isUsingFallbackVideoSink);
&gt; +            if (frameHolder-&gt;hasDMABuf()) {
&gt; +                std::unique_ptr&lt;TextureMapperPlatformLayerBuffer&gt; layerBuffer = makeUnique&lt;TextureMapperPlatformLayerBuffer&gt;(0, m_size, TextureMapperGL::ShouldNotBlend, GL_DONT_CARE);

Could use `auto object = makeUnique&lt;&gt;()` in both cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614976</commentid>
    <comment_count>4</comment_count>
      <attachid>389674</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-02-05 01:21:42 -0800</bug_when>
    <thetext>Comment on attachment 389674
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3172
&gt;&gt; +    auto internalCompositingOperation = [this](TextureMapperPlatformLayerProxy&amp; proxy, std::unique_ptr&lt;GstVideoFrameHolder&gt; frameHolder) {
&gt; 
&gt; You&apos;re moving the frameholder when calling this, so I guess you should make this &amp;&amp; as well.
&gt; 
&gt; Anyway, why do you create a lambda instead of a method considering that we are only capturing this?

I don&apos;t really see the point of adding a method for this. As the logic remains self-contained in pushTextureToCompositor() anyway. This new closure is an implementation detail of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614978</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-02-05 02:00:08 -0800</bug_when>
    <thetext>Committed r255790: &lt;https://trac.webkit.org/changeset/255790&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614979</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-05 02:01:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/59182626&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389674</attachid>
            <date>2020-02-04 09:56:37 -0800</date>
            <delta_ts>2020-02-04 10:47:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207208-20200204175636.patch</filename>
            <type>text/plain</type>
            <size>8931</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGEwZTE0MGI5NDhhYWQz
YTZhMjU1MWVhNzI1ZjIwZDZhZTExMWUyMy4uMzNkNGY1NzVhYmRjYTQ4YjgzODAyOGZjMTYyZTk5
ZDVhZjEzYjBlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAyLTA0ICBQaGls
aXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBD
bGllbnQtc2lkZSB2aWRlbyByZW5kZXJpbmcgZG9lc24ndCBmYWxsYmFjayB0byBpbnRlcm5hbCBj
b21wb3NpdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA3MjA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVmYWN0b3IgdGhlIGRlZmF1bHQgdmlkZW8gY29tcG9zaXRpb24gY29kZSBpbnRvIGEgc2Vs
Zi1jb250YWluZWQKKyAgICAgICAgY2xvc3VyZSBhbmQgaW52b2tlIGl0IGlmIHRoZSB2aWRlbyBm
cmFtZSBob2xkZXIgZmFpbGVkIHRvIGV4cG9ydAorICAgICAgICB0aGUgRUdMSW1hZ2UgdG8gYSB2
YWxpZCBETUFCdWYuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdzdFZpZGVv
RnJhbWVIb2xkZXI6OkdzdFZpZGVvRnJhbWVIb2xkZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3N0
VmlkZW9GcmFtZUhvbGRlcjo6aGFzRE1BQnVmIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IpOgorCiAy
MDIwLTAyLTA0ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBN
ZWRpYURldmljZXMgc2hvdWxkIGhhbmRsZSBjaGFuZ2VzIG9mIGlmcmFtZSBhbGxvdyBhdHRyaWJ1
dGUgdmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAKaW5kZXggMjc2ZDBhYmM5OTY2YjIzYTcyYzg0MzNlNjM1MzNhZDU1MjI3M2FiMy4uZWMxZTI1
Yzg2ZjJhNjkzYjkxZjVjNWFkMjIwYzUwZTFjODBiZjlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTIwNSw2ICsyMDUsMjEgQEAgcHVi
bGljOgogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiAgICAgICAgIG1fZmxhZ3MgPSBmbGFncyB8ICht
X2hhc0FscGhhQ2hhbm5lbCA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwKTsKIAor
I2lmIFVTRShXUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCisgICAgICAgIEdzdE1lbW9y
eSogbWVtb3J5ID0gZ3N0X2J1ZmZlcl9wZWVrX21lbW9yeShtX2J1ZmZlci5nZXQoKSwgMCk7Cisg
ICAgICAgIGlmIChnc3RfaXNfZ2xfbWVtb3J5KG1lbW9yeSkpIHsKKyAgICAgICAgICAgIEdzdEdM
TWVtb3J5KiBnbE1lbW9yeSA9IEdTVF9HTF9NRU1PUllfQ0FTVChtZW1vcnkpOworICAgICAgICAg
ICAgR1JlZlB0cjxHc3RFR0xJbWFnZT4gZWdsSW1hZ2UgPSBhZG9wdEdSZWYoZ3N0X2VnbF9pbWFn
ZV9mcm9tX3RleHR1cmUoR1NUX0dMX0JBU0VfTUVNT1JZX0NBU1QobWVtb3J5KS0+Y29udGV4dCwg
Z2xNZW1vcnksIG51bGxwdHIpKTsKKyAgICAgICAgICAgIGdzaXplIG9mZnNldDsKKyAgICAgICAg
ICAgIGlmIChlZ2xJbWFnZSAmJiBnc3RfZWdsX2ltYWdlX2V4cG9ydF9kbWFidWYoZWdsSW1hZ2Uu
Z2V0KCksICZtX2RtYWJ1ZkZELCAmbV9kbWFidWZTdHJpZGUsICZvZmZzZXQpKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
b25jZUZsYWc7CisgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisgICAgICAg
ICAgICBHU1RfV0FSTklORygiVGV4dHVyZSBleHBvcnQgdG8gRE1BQnVmIGZhaWxlZCwgZmFsbGlu
ZyBiYWNrIHRvIGludGVybmFsIHJlbmRlcmluZyIpOworICAgICAgICB9KTsKKyNlbmRpZiAvLyBV
U0UoV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQorCiAgICAgICAgIGlmIChnc3RHTEVu
YWJsZWQpIHsKICAgICAgICAgICAgIG1faXNNYXBwZWQgPSBnc3RfdmlkZW9fZnJhbWVfbWFwKCZt
X3ZpZGVvRnJhbWUsICZ2aWRlb0luZm8sIG1fYnVmZmVyLmdldCgpLCBzdGF0aWNfY2FzdDxHc3RN
YXBGbGFncz4oR1NUX01BUF9SRUFEIHwgR1NUX01BUF9HTCkpOwogICAgICAgICAgICAgaWYgKG1f
aXNNYXBwZWQpIHsKQEAgLTIxOCwyMCArMjMzLDYgQEAgcHVibGljOgogI2VuZGlmIC8vIFVTRShH
U1RSRUFNRVJfR0wpCiAKICAgICAgICAgewotI2lmIFVTRShXUEVfVklERU9fUExBTkVfRElTUExB
WV9ETUFCVUYpCi0gICAgICAgICAgICBHc3RNZW1vcnkqIG1lbW9yeSA9IGdzdF9idWZmZXJfcGVl
a19tZW1vcnkobV9idWZmZXIuZ2V0KCksIDApOwotICAgICAgICAgICAgaWYgKGdzdF9pc19nbF9t
ZW1vcnkobWVtb3J5KSkgewotICAgICAgICAgICAgICAgIEdzdEdMTWVtb3J5KiBnbE1lbW9yeSA9
IEdTVF9HTF9NRU1PUllfQ0FTVChtZW1vcnkpOwotICAgICAgICAgICAgICAgIEdSZWZQdHI8R3N0
RUdMSW1hZ2U+IGVnbEltYWdlID0gYWRvcHRHUmVmKGdzdF9lZ2xfaW1hZ2VfZnJvbV90ZXh0dXJl
KEdTVF9HTF9CQVNFX01FTU9SWV9DQVNUKG1lbW9yeSktPmNvbnRleHQsIGdsTWVtb3J5LCBudWxs
cHRyKSk7Ci0gICAgICAgICAgICAgICAgZ3NpemUgb2Zmc2V0OwotICAgICAgICAgICAgICAgIGlm
IChlZ2xJbWFnZSAmJiBnc3RfZWdsX2ltYWdlX2V4cG9ydF9kbWFidWYoZWdsSW1hZ2UuZ2V0KCks
ICZtX2RtYWJ1ZkZELCAmbV9kbWFidWZTdHJpZGUsICZvZmZzZXQpKQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgb25jZUZsYWc7Ci0gICAgICAgICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10g
ewotICAgICAgICAgICAgICAgIEdTVF9XQVJOSU5HKCJUZXh0dXJlIGV4cG9ydCB0byBETUFCdWYg
ZmFpbGVkLCBmYWxsaW5nIGJhY2sgdG8gaW50ZXJuYWwgcmVuZGVyaW5nIik7Ci0gICAgICAgICAg
ICB9KTsKLSNlbmRpZgogICAgICAgICAgICAgbV90ZXh0dXJlSUQgPSAwOwogICAgICAgICAgICAg
bV9pc01hcHBlZCA9IGdzdF92aWRlb19mcmFtZV9tYXAoJm1fdmlkZW9GcmFtZSwgJnZpZGVvSW5m
bywgbV9idWZmZXIuZ2V0KCksIEdTVF9NQVBfUkVBRCk7CiAgICAgICAgICAgICBpZiAobV9pc01h
cHBlZCkgewpAQCAtMzY1LDYgKzM2NiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAorICAgIGJvb2wgaGFzRE1BQnVmKCkgY29uc3QKKyAgICB7CisjaWYgVVNF
KFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRikKKyAgICAgICAgcmV0dXJuIG1fZG1hYnVm
RkQ7CisjZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICB9CisKIHByaXZh
dGU6CiAgICAgR1JlZlB0cjxHc3RCdWZmZXI+IG1fYnVmZmVyOwogICAgIEdzdFZpZGVvRnJhbWUg
bV92aWRlb0ZyYW1lIHsgfTsKQEAgLTMxNTksMjYgKzMxNjksNDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnB1c2hUZXh0dXJlVG9Db21wb3NpdG9yKCkKICAgICBpZiAoIUdT
VF9JU19TQU1QTEUobV9zYW1wbGUuZ2V0KCkpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBVU0Uo
V1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQorICAgIGF1dG8gaW50ZXJuYWxDb21wb3Np
dGluZ09wZXJhdGlvbiA9IFt0aGlzXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBw
cm94eSwgc3RkOjp1bmlxdWVfcHRyPEdzdFZpZGVvRnJhbWVIb2xkZXI+IGZyYW1lSG9sZGVyKSB7
CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZl
cj4gbGF5ZXJCdWZmZXI7CisgICAgICAgIGlmIChmcmFtZUhvbGRlci0+aGFzTWFwcGVkVGV4dHVy
ZXMoKSkgeworICAgICAgICAgICAgbGF5ZXJCdWZmZXIgPSBmcmFtZUhvbGRlci0+cGxhdGZvcm1M
YXllckJ1ZmZlcigpOworICAgICAgICAgICAgaWYgKCFsYXllckJ1ZmZlcikKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICBsYXllckJ1ZmZlci0+c2V0VW5tYW5hZ2VkQnVmZmVy
RGF0YUhvbGRlcihXVEZNb3ZlKGZyYW1lSG9sZGVyKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBsYXllckJ1ZmZlciA9IHByb3h5LmdldEF2YWlsYWJsZUJ1ZmZlcihmcmFtZUhvbGRl
ci0+c2l6ZSgpLCBHTF9ET05UX0NBUkUpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFsYXll
ckJ1ZmZlcikpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHRleHR1cmUgPSBCaXRtYXBUZXh0dXJl
R0w6OmNyZWF0ZShUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpKTsKKyAgICAg
ICAgICAgICAgICB0ZXh0dXJlLT5yZXNldChmcmFtZUhvbGRlci0+c2l6ZSgpLCBmcmFtZUhvbGRl
ci0+aGFzQWxwaGFDaGFubmVsKCkgPyBCaXRtYXBUZXh0dXJlOjpTdXBwb3J0c0FscGhhIDogQml0
bWFwVGV4dHVyZTo6Tm9GbGFnKTsKKyAgICAgICAgICAgICAgICBsYXllckJ1ZmZlciA9IG1ha2VV
bmlxdWU8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+KFdURk1vdmUodGV4dHVyZSkp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZnJhbWVIb2xkZXItPnVwZGF0ZVRleHR1cmUo
bGF5ZXJCdWZmZXItPnRleHR1cmVHTCgpKTsKKyAgICAgICAgICAgIGxheWVyQnVmZmVyLT5zZXRF
eHRyYUZsYWdzKG1fdGV4dHVyZU1hcHBlckZsYWdzIHwgKGZyYW1lSG9sZGVyLT5oYXNBbHBoYUNo
YW5uZWwoKSA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwKSk7CisgICAgICAgIH0K
KyAgICAgICAgcHJveHkucHVzaE5leHRCdWZmZXIoV1RGTW92ZShsYXllckJ1ZmZlcikpOworICAg
IH07CiAKKyNpZiBVU0UoV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQogICAgIGF1dG8g
cHJveHlPcGVyYXRpb24gPQotICAgICAgICBbdGhpc10oVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJQcm94eSYgcHJveHkpCisgICAgICAgIFt0aGlzLCBpbnRlcm5hbENvbXBvc2l0aW5nT3BlcmF0
aW9uXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAgICAgICAgewog
ICAgICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIocHJveHkubG9jaygpKTsKIAogICAgICAgICAg
ICAgaWYgKCFwcm94eS5pc0FjdGl2ZSgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdzdFZpZGVvRnJhbWVIb2xkZXI+IGZyYW1lSG9sZGVy
ID0gbWFrZVVuaXF1ZTxHc3RWaWRlb0ZyYW1lSG9sZGVyPihtX3NhbXBsZS5nZXQoKSwgbV92aWRl
b0RlY29kZXJQbGF0Zm9ybSwgbV90ZXh0dXJlTWFwcGVyRmxhZ3MsIGZhbHNlKTsKLQotICAgICAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPiBs
YXllckJ1ZmZlciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+
KDAsIG1fc2l6ZSwgVGV4dHVyZU1hcHBlckdMOjpTaG91bGROb3RCbGVuZCwgR0xfRE9OVF9DQVJF
KTsKLSAgICAgICAgICAgIGF1dG8gaG9sZVB1bmNoQ2xpZW50ID0gbWFrZVVuaXF1ZTxHU3RyZWFt
ZXJETUFCdWZIb2xlUHVuY2hDbGllbnQ+KFdURk1vdmUoZnJhbWVIb2xkZXIpLCBtX3dwZVZpZGVv
UGxhbmVEaXNwbGF5RG1hQnVmLmdldCgpKTsKLSAgICAgICAgICAgIGxheWVyQnVmZmVyLT5zZXRI
b2xlUHVuY2hDbGllbnQoV1RGTW92ZShob2xlUHVuY2hDbGllbnQpKTsKLSAgICAgICAgICAgIHBy
b3h5LnB1c2hOZXh0QnVmZmVyKFdURk1vdmUobGF5ZXJCdWZmZXIpKTsKKyAgICAgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxHc3RWaWRlb0ZyYW1lSG9sZGVyPiBmcmFtZUhvbGRlciA9IG1ha2VVbmlx
dWU8R3N0VmlkZW9GcmFtZUhvbGRlcj4obV9zYW1wbGUuZ2V0KCksIG1fdmlkZW9EZWNvZGVyUGxh
dGZvcm0sIG1fdGV4dHVyZU1hcHBlckZsYWdzLCAhbV9pc1VzaW5nRmFsbGJhY2tWaWRlb1Npbmsp
OworICAgICAgICAgICAgaWYgKGZyYW1lSG9sZGVyLT5oYXNETUFCdWYoKSkgeworICAgICAgICAg
ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4g
bGF5ZXJCdWZmZXIgPSBtYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVy
PigwLCBtX3NpemUsIFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkTm90QmxlbmQsIEdMX0RPTlRfQ0FS
RSk7CisgICAgICAgICAgICAgICAgYXV0byBob2xlUHVuY2hDbGllbnQgPSBtYWtlVW5pcXVlPEdT
dHJlYW1lckRNQUJ1ZkhvbGVQdW5jaENsaWVudD4oV1RGTW92ZShmcmFtZUhvbGRlciksIG1fd3Bl
VmlkZW9QbGFuZURpc3BsYXlEbWFCdWYuZ2V0KCkpOworICAgICAgICAgICAgICAgIGxheWVyQnVm
ZmVyLT5zZXRIb2xlUHVuY2hDbGllbnQoV1RGTW92ZShob2xlUHVuY2hDbGllbnQpKTsKKyAgICAg
ICAgICAgICAgICBwcm94eS5wdXNoTmV4dEJ1ZmZlcihXVEZNb3ZlKGxheWVyQnVmZmVyKSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBpbnRlcm5hbENvbXBvc2l0aW5nT3Bl
cmF0aW9uKHByb3h5LCBXVEZNb3ZlKGZyYW1lSG9sZGVyKSk7CiAgICAgICAgIH07CiAjZWxzZQog
ICAgIGF1dG8gcHJveHlPcGVyYXRpb24gPQotICAgICAgICBbdGhpc10oVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJQcm94eSYgcHJveHkpCisgICAgICAgIFt0aGlzLCBpbnRlcm5hbENvbXBvc2l0
aW5nT3BlcmF0aW9uXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAg
ICAgICAgewogICAgICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIocHJveHkubG9jaygpKTsKIApA
QCAtMzE4NiwyNCArMzIxNyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpw
dXNoVGV4dHVyZVRvQ29tcG9zaXRvcigpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3N0VmlkZW9GcmFtZUhvbGRlcj4gZnJhbWVIb2xkZXIg
PSBtYWtlVW5pcXVlPEdzdFZpZGVvRnJhbWVIb2xkZXI+KG1fc2FtcGxlLmdldCgpLCBtX3ZpZGVv
RGVjb2RlclBsYXRmb3JtLCBtX3RleHR1cmVNYXBwZXJGbGFncywgIW1faXNVc2luZ0ZhbGxiYWNr
VmlkZW9TaW5rKTsKLQotICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyQnVmZmVyPiBsYXllckJ1ZmZlcjsKLSAgICAgICAgICAgIGlmIChmcmFtZUhv
bGRlci0+aGFzTWFwcGVkVGV4dHVyZXMoKSkgewotICAgICAgICAgICAgICAgIGxheWVyQnVmZmVy
ID0gZnJhbWVIb2xkZXItPnBsYXRmb3JtTGF5ZXJCdWZmZXIoKTsKLSAgICAgICAgICAgICAgICBp
ZiAoIWxheWVyQnVmZmVyKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICAgICAgbGF5ZXJCdWZmZXItPnNldFVubWFuYWdlZEJ1ZmZlckRhdGFIb2xkZXIoV1RGTW92ZShm
cmFtZUhvbGRlcikpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBsYXll
ckJ1ZmZlciA9IHByb3h5LmdldEF2YWlsYWJsZUJ1ZmZlcihmcmFtZUhvbGRlci0+c2l6ZSgpLCBH
TF9ET05UX0NBUkUpOwotICAgICAgICAgICAgICAgIGlmIChVTkxJS0VMWSghbGF5ZXJCdWZmZXIp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gdGV4dHVyZSA9IEJpdG1hcFRleHR1cmVHTDo6
Y3JlYXRlKFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlczo6Z2V0KCkpOwotICAgICAgICAg
ICAgICAgICAgICB0ZXh0dXJlLT5yZXNldChmcmFtZUhvbGRlci0+c2l6ZSgpLCBmcmFtZUhvbGRl
ci0+aGFzQWxwaGFDaGFubmVsKCkgPyBCaXRtYXBUZXh0dXJlOjpTdXBwb3J0c0FscGhhIDogQml0
bWFwVGV4dHVyZTo6Tm9GbGFnKTsKLSAgICAgICAgICAgICAgICAgICAgbGF5ZXJCdWZmZXIgPSBt
YWtlVW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPihXVEZNb3ZlKHRleHR1
cmUpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZnJhbWVIb2xkZXItPnVw
ZGF0ZVRleHR1cmUobGF5ZXJCdWZmZXItPnRleHR1cmVHTCgpKTsKLSAgICAgICAgICAgICAgICBs
YXllckJ1ZmZlci0+c2V0RXh0cmFGbGFncyhtX3RleHR1cmVNYXBwZXJGbGFncyB8IChmcmFtZUhv
bGRlci0+aGFzQWxwaGFDaGFubmVsKCkgPyBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kIDog
MCkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJveHkucHVzaE5leHRCdWZmZXIoV1RG
TW92ZShsYXllckJ1ZmZlcikpOworICAgICAgICAgICAgaW50ZXJuYWxDb21wb3NpdGluZ09wZXJh
dGlvbihwcm94eSwgV1RGTW92ZShmcmFtZUhvbGRlcikpOwogICAgICAgICB9OwogI2VuZGlmIC8v
IFVTRShXUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCiAK
</data>
<flag name="review"
          id="405329"
          type_id="1"
          status="+"
          setter="calvaris"
    />
    <flag name="commit-queue"
          id="405337"
          type_id="3"
          status="-"
          setter="calvaris"
    />
          </attachment>
      

    </bug>

</bugzilla>