<?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>226423</bug_id>
          
          <creation_ts>2021-05-29 13:34:34 -0700</creation_ts>
          <short_desc>[WebXR] Provide a way to bind and unbind IOSurfaces to ANGLE Pbuffers</short_desc>
          <delta_ts>2021-05-30 15:47:13 -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>WebXR</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="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1765111</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-29 13:34:34 -0700</bug_when>
    <thetext>WebXR on Cocoa platforms gets framebuffer texture targets via IOSurfaces. Those must be attached to ANGLE Pbuffers, which are then bound to GL textures. There is already some code in GraphicsContextGL (and in the CoreVideo classes) to do this, but this is an attempt to make a generic function that will handle all use cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765112</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-29 13:34:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/78652783&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765115</commentid>
    <comment_count>2</comment_count>
      <attachid>430106</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-29 13:39:14 -0700</bug_when>
    <thetext>Created attachment 430106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765120</commentid>
    <comment_count>3</comment_count>
      <attachid>430106</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-29 13:44:35 -0700</bug_when>
    <thetext>Comment on attachment 430106
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:651
&gt; +    auto usageHintAngle = [&amp;] () -&gt; EGLint {
&gt; +        if (usage == PbufferAttachmentUsage::Read)
&gt; +            return EGL_IOSURFACE_READ_HINT_ANGLE;
&gt; +        return EGL_IOSURFACE_WRITE_HINT_ANGLE;
&gt; +    }();

Never both?

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h:574
&gt; +    friend class WebXROpaqueFramebuffer;

This is a layering violation. Platform level concepts should not be aware of things like WebXR. Why is this needed? Why not just make this public?

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h:578
&gt; +    enum class PbufferAttachmentUsage {
&gt; +        Read,
&gt; +        Write
&gt; +    };

I would put this all on one line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765241</commentid>
    <comment_count>4</comment_count>
      <attachid>430106</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-30 12:47:36 -0700</bug_when>
    <thetext>Comment on attachment 430106
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:651
&gt;&gt; +    }();
&gt; 
&gt; Never both?

Good point. I&apos;ll check if ANGLE handles that and add it if so.

&gt;&gt; Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h:574
&gt;&gt; +    friend class WebXROpaqueFramebuffer;
&gt; 
&gt; This is a layering violation. Platform level concepts should not be aware of things like WebXR. Why is this needed? Why not just make this public?

Duh, of course. Yeah, I&apos;ll make them public.

&gt;&gt; Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h:578
&gt;&gt; +    };
&gt; 
&gt; I would put this all on one line.

ok!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765242</commentid>
    <comment_count>5</comment_count>
      <attachid>430146</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-30 12:58:31 -0700</bug_when>
    <thetext>Created attachment 430146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765266</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-30 15:47:13 -0700</bug_when>
    <thetext>Committed r278260 (238297@main): &lt;https://commits.webkit.org/238297@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430106</attachid>
            <date>2021-05-29 13:39:14 -0700</date>
            <delta_ts>2021-05-30 12:58:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226423-20210530063913.patch</filename>
            <type>text/plain</type>
            <size>5696</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU4YTE4Mzc0MDhkOTIw
NDVmZmZhYTZlZGNjOTQxZmU3OTZiZjVmMC4uMTE3YmQ0MWY2NjlmMjgwMTlhZWI3ODViNTJjMjhl
ZjAxNDcyYzU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA1LTI5ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViWFJdIFByb3ZpZGUgYSB3
YXkgdG8gYmluZCBhbmQgdW5iaW5kIElPU3VyZmFjZXMgdG8gQU5HTEUgUGJ1ZmZlcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjQyMworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzg2NTI3ODM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViWFIgb24gQ29jb2EgcGxhdGZvcm1zIGdldHMgZnJhbWVi
dWZmZXIgdGV4dHVyZSB0YXJnZXRzIHZpYQorICAgICAgICBJT1N1cmZhY2VzLiBUaG9zZSBtdXN0
IGJlIGF0dGFjaGVkIHRvIEFOR0xFIFBidWZmZXJzLCB3aGljaCBhcmUKKyAgICAgICAgdGhlbiBi
b3VuZCB0byBHTCB0ZXh0dXJlcy4gVGhlcmUgaXMgYWxyZWFkeSBzb21lIGNvZGUgaW4KKyAgICAg
ICAgR3JhcGhpY3NDb250ZXh0R0wgKGFuZCBpbiB0aGUgQ29yZVZpZGVvIGNsYXNzZXMpIHRvIGRv
IHRoaXMsIGJ1dAorICAgICAgICB0aGlzIGlzIGFuIGF0dGVtcHQgdG8gbWFrZSBhIGdlbmVyaWMg
ZnVuY3Rpb24gdGhhdCB3aWxsIGhhbmRsZSBhbGwKKyAgICAgICAgY2FzZXMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1t
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZVBidWZm
ZXJBbmRBdHRhY2hJT1N1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmRlc3Ryb3lQYnVmZmVyQW5kRGV0YWNoSU9TdXJmYWNlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaDoKKwogMjAy
MS0wNS0yOCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYlhS
XSBSZWNvbW1lbmRlZCBmcmFtZWJ1ZmZlciB3aWR0aCBpbmNvcnJlY3RseSBzY2FsZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IGRkMTA3MTMxMWM5YjNj
MTg0OTRiYzExOGE0MTEwMTMzZTExZDdkZjkuLmNlNGFhZWEwZTM1MjExYmVmMDJkYTAxMjU2Njkz
NGQxNDY2ZjNhOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5t
bQpAQCAtNjI2LDYgKzYyNiw2NyBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpiaW5k
RGlzcGxheUJ1ZmZlckJhY2tpbmdUb1BCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPAogICAgIHJldHVy
biB0cnVlOwogfQogCit2b2lkKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlUGJ1ZmZl
ckFuZEF0dGFjaElPU3VyZmFjZShHQ0dMZW51bSB0YXJnZXQsIFBidWZmZXJBdHRhY2htZW50VXNh
Z2UgdXNhZ2UsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xz
aXplaSBoZWlnaHQsIEdDR0xlbnVtIHR5cGUsIElPU3VyZmFjZVJlZiBzdXJmYWNlLCBHQ0dMdWlu
dCBwbGFuZSkKK3sKKyAgICBpZiAodGFyZ2V0ICE9IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJF
X1JFQ1RBTkdMRV9BUkIgJiYgdGFyZ2V0ICE9IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJE
KSB7CisgICAgICAgIExPRyhXZWJHTCwgIlVua25vd24gdGV4dHVyZSB0YXJnZXQgJWQuIiwgc3Rh
dGljX2Nhc3Q8aW50Pih0YXJnZXQpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQor
CisgICAgYXV0byBlZ2xUZXh0dXJlVGFyZ2V0ID0gWyZdICgpIC0+IEVHTGludCB7CisgICAgICAg
IGlmICh0YXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlRFWFRVUkVfUkVDVEFOR0xFX0FSQikK
KyAgICAgICAgICAgIHJldHVybiBFR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEU7CisgICAgICAg
IHJldHVybiBFR0xfVEVYVFVSRV8yRDsKKyAgICB9KCk7CisKKyAgICBpZiAoZWdsVGV4dHVyZVRh
cmdldCAhPSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RUdMRHJhd2luZ0J1ZmZlclRleHR1cmVU
YXJnZXQoKSkgeworICAgICAgICBMT0coV2ViR0wsICJNaXNtYXRjaCBpbiBFR0wgdGV4dHVyZSB0
YXJnZXQ6ICVkIHNob3VsZCBiZSAlZC4iLCBzdGF0aWNfY2FzdDxpbnQ+KHRhcmdldCksIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpFR0xEcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgpKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgYXV0byB1c2FnZUhpbnRBbmdsZSA9
IFsmXSAoKSAtPiBFR0xpbnQgeworICAgICAgICBpZiAodXNhZ2UgPT0gUGJ1ZmZlckF0dGFjaG1l
bnRVc2FnZTo6UmVhZCkKKyAgICAgICAgICAgIHJldHVybiBFR0xfSU9TVVJGQUNFX1JFQURfSElO
VF9BTkdMRTsKKyAgICAgICAgcmV0dXJuIEVHTF9JT1NVUkZBQ0VfV1JJVEVfSElOVF9BTkdMRTsK
KyAgICB9KCk7CisKKyAgICBjb25zdCBFR0xpbnQgc3VyZmFjZUF0dHJpYnV0ZXNbXSA9IHsKKyAg
ICAgICAgRUdMX1dJRFRILCB3aWR0aCwKKyAgICAgICAgRUdMX0hFSUdIVCwgaGVpZ2h0LAorICAg
ICAgICBFR0xfSU9TVVJGQUNFX1BMQU5FX0FOR0xFLCBzdGF0aWNfY2FzdDxFR0xpbnQ+KHBsYW5l
KSwKKyAgICAgICAgRUdMX1RFWFRVUkVfVEFSR0VULCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGVnbFRl
eHR1cmVUYXJnZXQpLAorICAgICAgICBFR0xfVEVYVFVSRV9JTlRFUk5BTF9GT1JNQVRfQU5HTEUs
IHN0YXRpY19jYXN0PEVHTGludD4oaW50ZXJuYWxGb3JtYXQpLAorICAgICAgICBFR0xfVEVYVFVS
RV9GT1JNQVQsIEVHTF9URVhUVVJFX1JHQkEsCisgICAgICAgIEVHTF9URVhUVVJFX1RZUEVfQU5H
TEUsIHN0YXRpY19jYXN0PEVHTGludD4odHlwZSksCisgICAgICAgIC8vIE9ubHkgaGFzIGFuIGVm
ZmVjdCBvbiB0aGUgaU9TIFNpbXVsYXRvci4KKyAgICAgICAgRUdMX0lPU1VSRkFDRV9VU0FHRV9I
SU5UX0FOR0xFLCB1c2FnZUhpbnRBbmdsZSwKKyAgICAgICAgRUdMX05PTkUsIEVHTF9OT05FCisg
ICAgfTsKKworICAgIGF1dG8gZGlzcGxheSA9IHBsYXRmb3JtRGlzcGxheSgpOworICAgIEVHTFN1
cmZhY2UgcGJ1ZmZlciA9IEVHTF9DcmVhdGVQYnVmZmVyRnJvbUNsaWVudEJ1ZmZlcihkaXNwbGF5
LCBFR0xfSU9TVVJGQUNFX0FOR0xFLCBzdXJmYWNlLCBwbGF0Zm9ybUNvbmZpZygpLCBzdXJmYWNl
QXR0cmlidXRlcyk7CisgICAgaWYgKCFwYnVmZmVyKSB7CisgICAgICAgIExPRyhXZWJHTCwgIkVH
TF9DcmVhdGVQYnVmZmVyRnJvbUNsaWVudEJ1ZmZlciBmYWlsZWQuIik7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKworICAgIGlmICghRUdMX0JpbmRUZXhJbWFnZShkaXNwbGF5LCBw
YnVmZmVyLCBFR0xfQkFDS19CVUZGRVIpKSB7CisgICAgICAgIExPRyhXZWJHTCwgIkVHTF9CaW5k
VGV4SW1hZ2UgZmFpbGVkLiIpOworICAgICAgICBFR0xfRGVzdHJveVN1cmZhY2UoZGlzcGxheSwg
cGJ1ZmZlcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBw
YnVmZmVyOworfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpkZXN0cm95UGJ1ZmZl
ckFuZERldGFjaElPU3VyZmFjZSh2b2lkKiBoYW5kbGUpCit7CisgICAgYXV0byBkaXNwbGF5ID0g
cGxhdGZvcm1EaXNwbGF5KCk7CisgICAgRUdMX1JlbGVhc2VUZXhJbWFnZShkaXNwbGF5LCBoYW5k
bGUsIEVHTF9CQUNLX0JVRkZFUik7CisgICAgRUdMX0Rlc3Ryb3lTdXJmYWNlKGRpc3BsYXksIGhh
bmRsZSk7Cit9CisKKwogYm9vbCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aXNHTEVTMkNvbXBs
aWFudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faXNGb3JXZWJHTDI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTC5oCmluZGV4IDhhZmRkOWI2YThmODgxYWI3ZmUzZWE0MjZhNzljNDE1
MWQxZGNjZjMuLjU4YWI3ZTM1YjM5MTg2YTI0ZjliMDllOWMwOGM1YmI5MTVlZTY0ZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCkBAIC01NjQsMTMgKzU2NCwyMyBAQCBwcml2
YXRlOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCByZXNoYXBlRGlzcGxheUJ1ZmZl
ckJhY2tpbmcoKTsKLSAgICAvL2Jvb2wgYWxsb2NhdGVBbmRCaW5kRGlzcGxheUJ1ZmZlckJhY2tp
bmcoKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGFsbG9jYXRlRGlzcGxheUJ1
ZmZlckJhY2tpbmcoKTsKICAgICBib29sIGFsbG9jYXRlQW5kQmluZFBCdWZmZXIoc3RkOjp1bmlx
dWVfcHRyPElPU3VyZmFjZT4gYmFja2luZyk7CiAgICAgYm9vbCBhbGxvY2F0ZUFuZEJpbmREaXNw
bGF5QnVmZmVyQmFja2luZygpOwogICAgIAogICAgIGJvb2wgYmluZERpc3BsYXlCdWZmZXJCYWNr
aW5nVG9QQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGJhY2tpbmcsIHZvaWQqIHBi
dWZmZXIpOworCisgICAgZnJpZW5kIGNsYXNzIFdlYlhST3BhcXVlRnJhbWVidWZmZXI7CisgICAg
ZW51bSBjbGFzcyBQYnVmZmVyQXR0YWNobWVudFVzYWdlIHsKKyAgICAgICAgUmVhZCwKKyAgICAg
ICAgV3JpdGUKKyAgICB9OworICAgIC8vIFJldHVybnMgYSBoYW5kbGUgd2hpY2gsIGlmIG5vbi1u
dWxsLCBtdXN0IGJlIHJlbGVhc2VkIHZpYSB0aGUKKyAgICAvLyBkZXRhY2ggY2FsbCBiZWxvdy4K
KyAgICB2b2lkKiBjcmVhdGVQYnVmZmVyQW5kQXR0YWNoSU9TdXJmYWNlKEdDR0xlbnVtIHRhcmdl
dCwgUGJ1ZmZlckF0dGFjaG1lbnRVc2FnZSwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xz
aXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gdHlwZSwgSU9TdXJmYWNlUmVm
LCBHQ0dMdWludCBwbGFuZSk7CisgICAgdm9pZCBkZXN0cm95UGJ1ZmZlckFuZERldGFjaElPU3Vy
ZmFjZSh2b2lkKiBoYW5kbGUpOworCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430146</attachid>
            <date>2021-05-30 12:58:31 -0700</date>
            <delta_ts>2021-05-30 14:32:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226423-20210531055829.patch</filename>
            <type>text/plain</type>
            <size>6033</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODJmMDMwYjk0OWM1ZDAz
MDg3ZGVkY2M0YTcwYzBiZDQ0MjI5N2RhOS4uZGU1ZjVlYTZiOWZkZWFiMWEzNzEwM2EzOWQ0ZTll
YzYzMDFkYjdkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA1LTMwICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViWFJdIFByb3ZpZGUgYSB3
YXkgdG8gYmluZCBhbmQgdW5iaW5kIElPU3VyZmFjZXMgdG8gQU5HTEUgUGJ1ZmZlcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjQyMworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzg2NTI3ODM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViWFIgb24gQ29jb2EgcGxhdGZvcm1zIGdldHMgZnJhbWVi
dWZmZXIgdGV4dHVyZSB0YXJnZXRzIHZpYQorICAgICAgICBJT1N1cmZhY2VzLiBUaG9zZSBtdXN0
IGJlIGF0dGFjaGVkIHRvIEFOR0xFIFBidWZmZXJzLCB3aGljaCBhcmUKKyAgICAgICAgdGhlbiBi
b3VuZCB0byBHTCB0ZXh0dXJlcy4gVGhlcmUgaXMgYWxyZWFkeSBzb21lIGNvZGUgaW4KKyAgICAg
ICAgR3JhcGhpY3NDb250ZXh0R0wgKGFuZCBpbiB0aGUgQ29yZVZpZGVvIGNsYXNzZXMpIHRvIGRv
IHRoaXMsIGJ1dAorICAgICAgICB0aGlzIGlzIGFuIGF0dGVtcHQgdG8gbWFrZSBhIGdlbmVyaWMg
ZnVuY3Rpb24gdGhhdCB3aWxsIGhhbmRsZSBhbGwKKyAgICAgICAgY2FzZXMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1t
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZVBidWZm
ZXJBbmRBdHRhY2hJT1N1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmRlc3Ryb3lQYnVmZmVyQW5kRGV0YWNoSU9TdXJmYWNlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaDoKKwogMjAy
MS0wNS0zMCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYlhS
XSBpbnZhbGlkYXRlRnJhbWVidWZmZXIgaXMgbm90IHRoZSBzYW1lIGFzIGNsZWFyaW5nIGNvbnRl
bnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCA3Nzll
YmQxODk2YmM1OTZmNzAzMzE4YjhlOGExZTJjNzMwNWY5MDY5Li4wNmUyOGYyZWM2Mzg0N2I3ZDg2
YWUwNTU0NmY1OGRlZjhlNmRmYzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMQ29jb2EubW0KQEAgLTYxMSw2ICs2MTEsNjkgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6YmluZERpc3BsYXlCdWZmZXJCYWNraW5nKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2UK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNy
ZWF0ZVBidWZmZXJBbmRBdHRhY2hJT1N1cmZhY2UoR0NHTGVudW0gdGFyZ2V0LCBQYnVmZmVyQXR0
YWNobWVudFVzYWdlIHVzYWdlLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTHNpemVpIHdp
ZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMZW51bSB0eXBlLCBJT1N1cmZhY2VSZWYgc3VyZmFj
ZSwgR0NHTHVpbnQgcGxhbmUpCit7CisgICAgaWYgKHRhcmdldCAhPSBHcmFwaGljc0NvbnRleHRH
TDo6VEVYVFVSRV9SRUNUQU5HTEVfQVJCICYmIHRhcmdldCAhPSBHcmFwaGljc0NvbnRleHRHTDo6
VEVYVFVSRV8yRCkgeworICAgICAgICBMT0coV2ViR0wsICJVbmtub3duIHRleHR1cmUgdGFyZ2V0
ICVkLiIsIHN0YXRpY19jYXN0PGludD4odGFyZ2V0KSk7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KKworICAgIGF1dG8gZWdsVGV4dHVyZVRhcmdldCA9IFsmXSAoKSAtPiBFR0xpbnQg
eworICAgICAgICBpZiAodGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFX1JFQ1RB
TkdMRV9BUkIpCisgICAgICAgICAgICByZXR1cm4gRUdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xF
OworICAgICAgICByZXR1cm4gRUdMX1RFWFRVUkVfMkQ7CisgICAgfSgpOworCisgICAgaWYgKGVn
bFRleHR1cmVUYXJnZXQgIT0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkVHTERyYXdpbmdCdWZm
ZXJUZXh0dXJlVGFyZ2V0KCkpIHsKKyAgICAgICAgTE9HKFdlYkdMLCAiTWlzbWF0Y2ggaW4gRUdM
IHRleHR1cmUgdGFyZ2V0OiAlZCBzaG91bGQgYmUgJWQuIiwgc3RhdGljX2Nhc3Q8aW50Pih0YXJn
ZXQpLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RUdMRHJhd2luZ0J1ZmZlclRleHR1cmVUYXJn
ZXQoKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGF1dG8gdXNhZ2VI
aW50QW5nbGUgPSBbJl0gKCkgLT4gRUdMaW50IHsKKyAgICAgICAgaWYgKHVzYWdlID09IFBidWZm
ZXJBdHRhY2htZW50VXNhZ2U6OlJlYWQpCisgICAgICAgICAgICByZXR1cm4gRUdMX0lPU1VSRkFD
RV9SRUFEX0hJTlRfQU5HTEU7CisgICAgICAgIGlmICh1c2FnZSA9PSBQYnVmZmVyQXR0YWNobWVu
dFVzYWdlOjpXcml0ZSkKKyAgICAgICAgICAgIHJldHVybiBFR0xfSU9TVVJGQUNFX1dSSVRFX0hJ
TlRfQU5HTEU7CisgICAgICAgIHJldHVybiBFR0xfSU9TVVJGQUNFX1JFQURfSElOVF9BTkdMRSB8
IEVHTF9JT1NVUkZBQ0VfV1JJVEVfSElOVF9BTkdMRTsKKyAgICB9KCk7CisKKyAgICBjb25zdCBF
R0xpbnQgc3VyZmFjZUF0dHJpYnV0ZXNbXSA9IHsKKyAgICAgICAgRUdMX1dJRFRILCB3aWR0aCwK
KyAgICAgICAgRUdMX0hFSUdIVCwgaGVpZ2h0LAorICAgICAgICBFR0xfSU9TVVJGQUNFX1BMQU5F
X0FOR0xFLCBzdGF0aWNfY2FzdDxFR0xpbnQ+KHBsYW5lKSwKKyAgICAgICAgRUdMX1RFWFRVUkVf
VEFSR0VULCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGVnbFRleHR1cmVUYXJnZXQpLAorICAgICAgICBF
R0xfVEVYVFVSRV9JTlRFUk5BTF9GT1JNQVRfQU5HTEUsIHN0YXRpY19jYXN0PEVHTGludD4oaW50
ZXJuYWxGb3JtYXQpLAorICAgICAgICBFR0xfVEVYVFVSRV9GT1JNQVQsIEVHTF9URVhUVVJFX1JH
QkEsCisgICAgICAgIEVHTF9URVhUVVJFX1RZUEVfQU5HTEUsIHN0YXRpY19jYXN0PEVHTGludD4o
dHlwZSksCisgICAgICAgIC8vIE9ubHkgaGFzIGFuIGVmZmVjdCBvbiB0aGUgaU9TIFNpbXVsYXRv
ci4KKyAgICAgICAgRUdMX0lPU1VSRkFDRV9VU0FHRV9ISU5UX0FOR0xFLCB1c2FnZUhpbnRBbmds
ZSwKKyAgICAgICAgRUdMX05PTkUsIEVHTF9OT05FCisgICAgfTsKKworICAgIGF1dG8gZGlzcGxh
eSA9IHBsYXRmb3JtRGlzcGxheSgpOworICAgIEVHTFN1cmZhY2UgcGJ1ZmZlciA9IEVHTF9DcmVh
dGVQYnVmZmVyRnJvbUNsaWVudEJ1ZmZlcihkaXNwbGF5LCBFR0xfSU9TVVJGQUNFX0FOR0xFLCBz
dXJmYWNlLCBwbGF0Zm9ybUNvbmZpZygpLCBzdXJmYWNlQXR0cmlidXRlcyk7CisgICAgaWYgKCFw
YnVmZmVyKSB7CisgICAgICAgIExPRyhXZWJHTCwgIkVHTF9DcmVhdGVQYnVmZmVyRnJvbUNsaWVu
dEJ1ZmZlciBmYWlsZWQuIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAg
IGlmICghRUdMX0JpbmRUZXhJbWFnZShkaXNwbGF5LCBwYnVmZmVyLCBFR0xfQkFDS19CVUZGRVIp
KSB7CisgICAgICAgIExPRyhXZWJHTCwgIkVHTF9CaW5kVGV4SW1hZ2UgZmFpbGVkLiIpOworICAg
ICAgICBFR0xfRGVzdHJveVN1cmZhY2UoZGlzcGxheSwgcGJ1ZmZlcik7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBwYnVmZmVyOworfQorCit2b2lkIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpkZXN0cm95UGJ1ZmZlckFuZERldGFjaElPU3VyZmFjZSh2b2lk
KiBoYW5kbGUpCit7CisgICAgYXV0byBkaXNwbGF5ID0gcGxhdGZvcm1EaXNwbGF5KCk7CisgICAg
RUdMX1JlbGVhc2VUZXhJbWFnZShkaXNwbGF5LCBoYW5kbGUsIEVHTF9CQUNLX0JVRkZFUik7Cisg
ICAgRUdMX0Rlc3Ryb3lTdXJmYWNlKGRpc3BsYXksIGhhbmRsZSk7Cit9CisKKwogYm9vbCBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6aXNHTEVTMkNvbXBsaWFudCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1faXNGb3JXZWJHTDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCmluZGV4
IGJiMzNhMTE0ZGM3ZjdkMmZjZjczOGIwNzk3MGJkYzA2ZGQ3NjgzMzkuLjYwY2JhZWRkMjM4ZjQ5
OTlmNjQ4OTM0MmIyMGM0OTU0MjhiYTNiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTC5oCkBAIC01MjgsNiArNTI4LDE0IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHBh
aW50VG9DYW52YXMoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgUGl4ZWxCdWZm
ZXImJiwgY29uc3QgSW50U2l6ZSYgY2FudmFzU2l6ZSwgR3JhcGhpY3NDb250ZXh0Jik7CiAKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBlbnVtIGNsYXNzIFBidWZmZXJBdHRhY2htZW50VXNhZ2Ug
eyBSZWFkLCBXcml0ZSwgUmVhZFdyaXRlIH07CisgICAgLy8gUmV0dXJucyBhIGhhbmRsZSB3aGlj
aCwgaWYgbm9uLW51bGwsIG11c3QgYmUgcmVsZWFzZWQgdmlhIHRoZQorICAgIC8vIGRldGFjaCBj
YWxsIGJlbG93LgorICAgIHZvaWQqIGNyZWF0ZVBidWZmZXJBbmRBdHRhY2hJT1N1cmZhY2UoR0NH
TGVudW0gdGFyZ2V0LCBQYnVmZmVyQXR0YWNobWVudFVzYWdlLCBHQ0dMZW51bSBpbnRlcm5hbEZv
cm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMZW51bSB0eXBlLCBJ
T1N1cmZhY2VSZWYsIEdDR0x1aW50IHBsYW5lKTsKKyAgICB2b2lkIGRlc3Ryb3lQYnVmZmVyQW5k
RGV0YWNoSU9TdXJmYWNlKHZvaWQqIGhhbmRsZSk7CisjZW5kaWYKKwogcHJpdmF0ZToKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hh
cmVkQ29udGV4dCA9IG51bGxwdHIsIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWlu
KiA9IG51bGxwdHIpOwpAQCAtNTUyLDcgKzU2MCw2IEBAIHByaXZhdGU6CiAgICAgLy8gRGlkIHRo
ZSBtb3N0IHJlY2VudCBkcmF3aW5nIG9wZXJhdGlvbiBsZWF2ZSB0aGUgR1BVIGluIGFuIGFjY2Vw
dGFibGUgc3RhdGU/CiAgICAgdm9pZCBjaGVja0dQVVN0YXR1cygpOwogCi0KICAgICBzdGQ6Om9w
dGlvbmFsPFBpeGVsQnVmZmVyPiByZWFkUmVuZGVyaW5nUmVzdWx0cygpOwogICAgIHN0ZDo6b3B0
aW9uYWw8UGl4ZWxCdWZmZXI+IHJlYWRDb21wb3NpdGVkUmVzdWx0cygpOwogICAgIHN0ZDo6b3B0
aW9uYWw8UGl4ZWxCdWZmZXI+IHJlYWRQaXhlbHNGb3JQYWludFJlc3VsdHMoKTsK
</data>
<flag name="review"
          id="451512"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="451519"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>