<?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>219760</bug_id>
          
          <creation_ts>2020-12-10 15:56:21 -0800</creation_ts>
          <short_desc>REGRESSION (r270458): Canvas painting is broken when enabling GPU process for DOM</short_desc>
          <delta_ts>2020-12-11 08:08:17 -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>Canvas</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1713752</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-10 15:56:21 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713753</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-12-10 16:06:25 -0800</bug_when>
    <thetext>The canvas to canvas painting has been broken since bug 218773 was introduced. And the flushing was disabled in Recorder::drawImageBuffer() till r270645 was landed. So what dud exactly r270458 break in the canvas to canvas painting scenario?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713760</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-10 16:24:53 -0800</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #1)
&gt; The canvas to canvas painting has been broken since bug 218773 was
&gt; introduced. And the flushing was disabled in Recorder::drawImageBuffer()
&gt; till r270645 was landed. So what dud exactly r270458 break in the canvas to
&gt; canvas painting scenario?

Good point — retitled the bug to be more accurate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713762</commentid>
    <comment_count>3</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-12-10 16:28:22 -0800</bug_when>
    <thetext>I am still not clear on what is wrong here. Is the drawing inside the canvas wrong? Or is drawing the canvas itself as a NativeImage to a canvas to a layer wrong?

Can&apos;t you attach a test case to look at?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713764</commentid>
    <comment_count>4</comment_count>
      <attachid>415943</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-10 16:32:27 -0800</bug_when>
    <thetext>Created attachment 415943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713765</commentid>
    <comment_count>5</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-10 16:32:58 -0800</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #3)
&gt; I am still not clear on what is wrong here. Is the drawing inside the canvas
&gt; wrong? Or is drawing the canvas itself as a NativeImage to a canvas to a
&gt; layer wrong?
&gt; 
&gt; Can&apos;t you attach a test case to look at?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713768</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-10 16:35:10 -0800</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #3)
&gt; I am still not clear on what is wrong here. Is the drawing inside the canvas
&gt; wrong? Or is drawing the canvas itself as a NativeImage to a canvas to a
&gt; layer wrong?
&gt; 
&gt; Can&apos;t you attach a test case to look at?

The issue is that ImageBufferShareableIOSurfaceBackend::backendSize() now always returns (0, 0), which breaks various parts of painting code running in the web process (the canvas =&gt; canvas case is just one instance).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713771</commentid>
    <comment_count>7</comment_count>
      <attachid>415943</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-12-10 16:52:49 -0800</bug_when>
    <thetext>Comment on attachment 415943
Patch

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

&gt; Source/WebCore/platform/graphics/ImageBufferBackend.cpp:61
&gt; +IntSize ImageBufferBackend::backendSize() const
&gt; +{
&gt; +    return calculateBackendSize(logicalSize(), resolutionScale());
&gt; +}

I do not think this is the right approach.

If you want to add this function, what is the point of having these functions?

ImageBufferCairoSurfaceBackend::backendSize()
ImageBufferCGBitmapBackend::backendSize()
ImageBufferIOSurfaceBackend::backendSize()

They can all be deleted if you make this change. When I did r270458, I thought because ImageBufferShareableIOSurfaceBackend does not have an IOSurface, it makes sense to return a backendSize = { 0, 0 }. In fact I thought we should ASSERT_NOT_REACHED if ImageBufferBackend::backendSize() is ever called. The goal of this change was to have a single place to get the backendSize which is the backend itself (IOSurface or CGContext) not from a calculated value.

Are you sure you want the backendSize not the logicalSize?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713775</commentid>
    <comment_count>8</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-10 16:59:30 -0800</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #7)
&gt; Comment on attachment 415943 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=415943&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/ImageBufferBackend.cpp:61
&gt; &gt; +IntSize ImageBufferBackend::backendSize() const
&gt; &gt; +{
&gt; &gt; +    return calculateBackendSize(logicalSize(), resolutionScale());
&gt; &gt; +}
&gt; 
&gt; I do not think this is the right approach.
&gt; 
&gt; If you want to add this function, what is the point of having these
&gt; functions?
&gt; 
&gt; ImageBufferCairoSurfaceBackend::backendSize()
&gt; ImageBufferCGBitmapBackend::backendSize()
&gt; ImageBufferIOSurfaceBackend::backendSize()
&gt; 
&gt; They can all be deleted if you make this change. When I did r270458, I
&gt; thought because ImageBufferShareableIOSurfaceBackend does not have an
&gt; IOSurface, it makes sense to return a backendSize = { 0, 0 }. In fact I
&gt; thought we should ASSERT_NOT_REACHED if ImageBufferBackend::backendSize() is
&gt; ever called. The goal of this change was to have a single place to get the
&gt; backendSize which is the backend itself (IOSurface or CGContext) not from a
&gt; calculated value.

I see — it wasn&apos;t clear to me that that was the intent. In that case, it sounds like we&apos;ll want to audit the call sites of backendSize() and use logicalSize() instead, if possible.

&gt; 
&gt; Are you sure you want the backendSize not the logicalSize?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713778</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-12-10 17:01:57 -0800</bug_when>
    <thetext>If we go that way, maybe we make it assert instead of just be empty?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713780</commentid>
    <comment_count>10</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-10 17:03:40 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #9)
&gt; If we go that way, maybe we make it assert instead of just be empty?

Yeah, it should really be an assertion (and maybe even override ImageBufferShareableIOSurfaceBackend::backendSize() to explicitly return an empty size). This would&apos;ve made the intention clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713783</commentid>
    <comment_count>11</comment_count>
      <attachid>415950</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-10 17:26:08 -0800</bug_when>
    <thetext>Created attachment 415950
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713814</commentid>
    <comment_count>12</comment_count>
      <attachid>415965</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-10 21:25:20 -0800</bug_when>
    <thetext>Created attachment 415965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713828</commentid>
    <comment_count>13</comment_count>
      <attachid>415965</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-12-10 22:52:21 -0800</bug_when>
    <thetext>Comment on attachment 415965
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        changing image buffers. When enabling GPU process for canvas, `ImageBufferShareableIOSurfaceBackend::backendSize`

I think this should say &quot;DOM&quot; not &quot;canvas&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713902</commentid>
    <comment_count>14</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-11 07:26:06 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #13)
&gt; Comment on attachment 415965 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=415965&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        changing image buffers. When enabling GPU process for canvas, `ImageBufferShareableIOSurfaceBackend::backendSize`
&gt; 
&gt; I think this should say &quot;DOM&quot; not &quot;canvas&quot;

Oops, that&apos;s right. Fixed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713903</commentid>
    <comment_count>15</comment_count>
      <attachid>415995</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-11 07:27:44 -0800</bug_when>
    <thetext>Created attachment 415995
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713908</commentid>
    <comment_count>16</comment_count>
      <attachid>415995</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-11 08:07:20 -0800</bug_when>
    <thetext>Comment on attachment 415995
Patch for landing

Committed r270676: &lt;https://trac.webkit.org/changeset/270676&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713909</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-11 08:08:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/72223661&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415943</attachid>
            <date>2020-12-10 16:32:27 -0800</date>
            <delta_ts>2020-12-10 17:02:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219760-20201210163226.patch</filename>
            <type>text/plain</type>
            <size>3070</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTA2NjhiYTdkOTA3YzE3
YWNkYzY1YWZjZDMzYjMwM2MyMTU0NWRkYy4uYjI0ZmNlNTE4ZjA4MTJmNzU1N2I1N2I1NTk3NWYy
NTM2M2E5NWRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTEyLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyNzA0NTgpOiBDYW52YXMgcGFpbnRpbmcgaXMgYnJva2VuIHdoZW4gZW5hYmxpbmcgR1BVIHBy
b2Nlc3MgZm9yIERPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE5NzYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWZ0ZXIgcjI3MDQ1OCwgYEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZGAgbm93IHVuY29uZGl0aW9uYWxseSByZXR1cm5zIGFuIGVtcHR5IGBJbnRTaXplYCBmb3IKKyAg
ICAgICAgYGJhY2tlbmRTaXplKClgLCBzaW5jZSBpdCBmYWxscyBiYWNrIHRvIHRoZSBkZWZhdWx0
IGBJbWFnZUJ1ZmZlckJhY2tlbmRgIGltcGxlbWVudGF0aW9uICh3aGljaCBub3cgcmV0dXJucwor
ICAgICAgICBgeyAwLCAwIH1gIGluc3RlYWQgb2YgdGhlIGdpdmVuIGJhY2tlbmQgc2l6ZSkuCisK
KyAgICAgICAgVGhpcyBjYXVzZXMgdXMgKGFtb25nIG90aGVyIHRoaW5ncykgdG8gYXZvaWQgZmx1
c2hpbmcgY2FudmFzZXMgd2l0aCBkaXNwbGF5IGxpc3QgaXRlbXMgc2luY2Ugd2UgYmVsaWV2ZSB0
aGF0CisgICAgICAgIGFsbCBzaGFyZWQgSU9TdXJmYWNlIGltYWdlIGJ1ZmZlciBiYWNrZW5kcyBp
biB0aGUgd2ViIHByb2Nlc3MgYXJlIGVtcHR5LCBzdWNoIHRoYXQgY2FudmFzZXMgdGhhdCBoYXZl
IGJlZW4KKyAgICAgICAgcGFpbnRlZCB0byBhcmUgbmV2ZXIgc3Vic2VxdWVudGx5IGZsdXNoZWQu
CisKKyAgICAgICAgRml4IHRoaXMgYnkgcmVzdG9yaW5nIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBg
SW1hZ2VCdWZmZXJCYWNrZW5kOjpiYWNrZW5kU2l6ZWAsIHdoaWNoIHdpbGwgbm93IGNvbXB1dGUg
YmFja2VuZAorICAgICAgICBzaXplIGZyb20gaW5pdGlhbGl6YXRpb24gcGFyYW1ldGVycyAodW5s
ZXNzIG92ZXJyaWRkZW4gYnkgYSBzdWJjbGFzcykuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXJCYWNrZW5kOjpiYWNrZW5kU2l6ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJh
Y2tlbmQ6OmJhY2tlbmRTaXplIGNvbnN0KTogRGVsZXRlZC4KKwogMjAyMC0xMi0xMCAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3Nd
IENyYXNoIHdoZW4gbG9hZGluZyBkcmlua3RyYWRlLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHAKaW5kZXggOTM5
NGU3YmZmNDI5YmMyMWVmY2RmM2IxNDAxMTFmMWFlMmNhOTQ0ZC4uNTg0ZDFjZGViZjBjZTJmMmUy
NWMzOTdkMjc2NWJiNmJjYzQ3OGViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCkBAIC01NSw2ICs1NSwxMSBA
QCBJbnRTaXplIEltYWdlQnVmZmVyQmFja2VuZDo6Y2FsY3VsYXRlQmFja2VuZFNpemUoY29uc3Qg
RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZQogICAgIHJldHVybiBiYWNrZW5kU2l6ZTsKIH0KIAor
SW50U2l6ZSBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmJhY2tlbmRTaXplKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gY2FsY3VsYXRlQmFja2VuZFNpemUobG9naWNhbFNpemUoKSwgcmVzb2x1dGlvblNjYWxl
KCkpOworfQorCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVmZmVyQmFja2VuZDo6c2lua0lu
dG9OYXRpdmVJbWFnZSgpCiB7CiAgICAgcmV0dXJuIGNvcHlOYXRpdmVJbWFnZShEb250Q29weUJh
Y2tpbmdTdG9yZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyQmFja2VuZC5oCmluZGV4IGIwZjI0MDA1M2FmMzUxZGQ4OGJhNzNhMjU3OWQ0
NmNkZThkYWUyOWMuLjk5ODQ5NjQwYTk1YTQ4MmM2Y2IyZjM1OTlkNTg4OTY3Y2IzMmYwOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFj
a2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
QmFja2VuZC5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb250
ZXh0KCkgeyB9CiAKLSAgICB2aXJ0dWFsIEludFNpemUgYmFja2VuZFNpemUoKSBjb25zdCB7IHJl
dHVybiB7IH07IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEludFNpemUgYmFja2VuZFNp
emUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgc2l6ZV90IG1lbW9yeUNvc3QoKSBjb25zdCB7IHJl
dHVybiA0ICogYmFja2VuZFNpemUoKS5hcmVhKCkudW5zYWZlR2V0KCk7IH0KICAgICB2aXJ0dWFs
IHNpemVfdCBleHRlcm5hbE1lbW9yeUNvc3QoKSBjb25zdCB7IHJldHVybiAwOyB9Cg==
</data>
<flag name="review"
          id="433313"
          type_id="1"
          status="-"
          setter="sabouhallawa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415950</attachid>
            <date>2020-12-10 17:26:08 -0800</date>
            <delta_ts>2020-12-10 21:25:18 -0800</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-219760-20201210172608.patch</filename>
            <type>text/plain</type>
            <size>1505</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTA2NjhiYTdkOTA3YzE3
YWNkYzY1YWZjZDMzYjMwM2MyMTU0NWRkYy4uZDljMTJhOWNjYjBhY2VlMGM2NDI3ODM1Mjk3Yzhh
NjBkNGNhZGNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTEyLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyNzA0NTgpOiBDYW52YXMgcGFpbnRpbmcgaXMgYnJva2VuIHdoZW4gZW5hYmxpbmcgR1BVIHBy
b2Nlc3MgZm9yIERPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE5NzYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdCBwYXRjaCBmb3IgRVdTLgorCisgICAgICAgICogaHRtbC9DYW52YXNCYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc0Jhc2U6OnNldEltYWdlQnVmZmVyIGNvbnN0KToK
KwogMjAyMC0xMi0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIENyYXNoIHdoZW4gbG9hZGluZyBkcmlua3RyYWRlLmNvbQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DYW52YXNCYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5jcHAKaW5kZXggZDk0MTFhYzNkMDY5ZWU4MmZmNzliMzM0
NjZhZTE2ZGM4MzkxNjFkNS4uZTRiYjg4ZTI4ZjliNDczYmYwYTVmN2FmMWZiOGU1YzUxMjAwNTE1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DYW52YXNCYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0NhbnZhc0Jhc2UuY3BwCkBAIC0xOTEsOCArMTkxLDggQEAgUmVm
UHRyPEltYWdlQnVmZmVyPiBDYW52YXNCYXNlOjpzZXRJbWFnZUJ1ZmZlcihSZWZQdHI8SW1hZ2VC
dWZmZXI+JiYgYnVmZmVyKSBjb24KICAgICAgICAgcmV0dXJuQnVmZmVyID0gc3RkOjpleGNoYW5n
ZShtX2ltYWdlQnVmZmVyLCBXVEZNb3ZlKGJ1ZmZlcikpOwogICAgIH0KIAotICAgIGlmIChtX2lt
YWdlQnVmZmVyICYmIG1fc2l6ZSAhPSBtX2ltYWdlQnVmZmVyLT5iYWNrZW5kU2l6ZSgpKQotICAg
ICAgICBtX3NpemUgPSBtX2ltYWdlQnVmZmVyLT5iYWNrZW5kU2l6ZSgpOworICAgIGlmIChtX2lt
YWdlQnVmZmVyICYmIG1fc2l6ZSAhPSBtX2ltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKQorICAg
ICAgICBtX3NpemUgPSBtX2ltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpOwogCiAgICAgc2l6ZV90
IHByZXZpb3VzTWVtb3J5Q29zdCA9IG1faW1hZ2VCdWZmZXJDb3N0OwogICAgIG1faW1hZ2VCdWZm
ZXJDb3N0ID0gbWVtb3J5Q29zdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415965</attachid>
            <date>2020-12-10 21:25:20 -0800</date>
            <delta_ts>2020-12-10 22:52:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219760-20201210212519.patch</filename>
            <type>text/plain</type>
            <size>1937</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTA2NjhiYTdkOTA3YzE3
YWNkYzY1YWZjZDMzYjMwM2MyMTU0NWRkYy4uMDQyMmZmNDFjNjJiYjc5ZThmNGJmOWMzYzZjOTE4
MDE3ZTdkZWEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTEyLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyNzA0NTgpOiBDYW52YXMgcGFpbnRpbmcgaXMgYnJva2VuIHdoZW4gZW5hYmxpbmcgR1BVIHBy
b2Nlc3MgZm9yIERPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE5NzYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIGBJbWFnZUJ1ZmZlcjo6bG9naWNhbFNpemVgIGluc3RlYWQgb2YgYEltYWdlQnVm
ZmVyOjpiYWNrZW5kU2l6ZWAgd2hlbiBvdmVycmlkaW5nIHRoZSBDYW52YXNCYXNlJ3Mgc2l6ZSwg
dXBvbgorICAgICAgICBjaGFuZ2luZyBpbWFnZSBidWZmZXJzLiBXaGVuIGVuYWJsaW5nIEdQVSBw
cm9jZXNzIGZvciBjYW52YXMsIGBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6
OmJhY2tlbmRTaXplYAorICAgICAgICBpcyBlbXB0eSBiZWNhdXNlIHRoZSBhY3R1YWwgSU9TdXJm
YWNlIGJhY2tlbmQgZXhpc3RzIGluIHRoZSBHUFUgcHJvY2VzczsgdXNpbmcgdGhlIGJhY2tlbmRT
aXplIGluc3RlYWQgb2YgdGhlCisgICAgICAgIGxvZ2ljYWwgc2l6ZSBoZXJlIHdvdWxkIG90aGVy
d2lzZSBjYXVzZSB1cyB0byBhbHdheXMgc2V0IENhbnZhc0Jhc2UncyBzaXplIHRvIGAoMCwgMClg
LgorCisgICAgICAgICogaHRtbC9DYW52YXNCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc0Jhc2U6OnNldEltYWdlQnVmZmVyIGNvbnN0KToKKwogMjAyMC0xMi0xMCAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENy
YXNoIHdoZW4gbG9hZGluZyBkcmlua3RyYWRlLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9DYW52YXNCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5j
cHAKaW5kZXggZDk0MTFhYzNkMDY5ZWU4MmZmNzliMzM0NjZhZTE2ZGM4MzkxNjFkNS4uZTRiYjg4
ZTI4ZjliNDczYmYwYTVmN2FmMWZiOGU1YzUxMjAwNTE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9DYW52YXNCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NhbnZh
c0Jhc2UuY3BwCkBAIC0xOTEsOCArMTkxLDggQEAgUmVmUHRyPEltYWdlQnVmZmVyPiBDYW52YXNC
YXNlOjpzZXRJbWFnZUJ1ZmZlcihSZWZQdHI8SW1hZ2VCdWZmZXI+JiYgYnVmZmVyKSBjb24KICAg
ICAgICAgcmV0dXJuQnVmZmVyID0gc3RkOjpleGNoYW5nZShtX2ltYWdlQnVmZmVyLCBXVEZNb3Zl
KGJ1ZmZlcikpOwogICAgIH0KIAotICAgIGlmIChtX2ltYWdlQnVmZmVyICYmIG1fc2l6ZSAhPSBt
X2ltYWdlQnVmZmVyLT5iYWNrZW5kU2l6ZSgpKQotICAgICAgICBtX3NpemUgPSBtX2ltYWdlQnVm
ZmVyLT5iYWNrZW5kU2l6ZSgpOworICAgIGlmIChtX2ltYWdlQnVmZmVyICYmIG1fc2l6ZSAhPSBt
X2ltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKQorICAgICAgICBtX3NpemUgPSBtX2ltYWdlQnVm
ZmVyLT5sb2dpY2FsU2l6ZSgpOwogCiAgICAgc2l6ZV90IHByZXZpb3VzTWVtb3J5Q29zdCA9IG1f
aW1hZ2VCdWZmZXJDb3N0OwogICAgIG1faW1hZ2VCdWZmZXJDb3N0ID0gbWVtb3J5Q29zdCgpOwo=
</data>
<flag name="review"
          id="433338"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415995</attachid>
            <date>2020-12-11 07:27:44 -0800</date>
            <delta_ts>2020-12-11 08:07:20 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-219760-20201211072743.patch</filename>
            <type>text/plain</type>
            <size>1930</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTA2NjhiYTdkOTA3YzE3
YWNkYzY1YWZjZDMzYjMwM2MyMTU0NWRkYy4uOTllNjU4ZDMwNWRjOGVjOTIwZWMyMjNjNWZlOWQ5
NmIyNTQxMTA3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTEyLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyNzA0NTgpOiBDYW52YXMgcGFpbnRpbmcgaXMgYnJva2VuIHdoZW4gZW5hYmxpbmcgR1BVIHBy
b2Nlc3MgZm9yIERPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE5NzYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAg
ICBVc2UgYEltYWdlQnVmZmVyOjpsb2dpY2FsU2l6ZWAgaW5zdGVhZCBvZiBgSW1hZ2VCdWZmZXI6
OmJhY2tlbmRTaXplYCB3aGVuIG92ZXJyaWRpbmcgdGhlIENhbnZhc0Jhc2UncyBzaXplLCB1cG9u
CisgICAgICAgIGNoYW5naW5nIGltYWdlIGJ1ZmZlcnMuIFdoZW4gZW5hYmxpbmcgR1BVIHByb2Nl
c3MgZm9yIERPTSwgYEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6YmFja2Vu
ZFNpemVgCisgICAgICAgIGlzIGVtcHR5IGJlY2F1c2UgdGhlIGFjdHVhbCBJT1N1cmZhY2UgYmFj
a2VuZCBleGlzdHMgaW4gdGhlIEdQVSBwcm9jZXNzOyB1c2luZyB0aGUgYmFja2VuZFNpemUgaW5z
dGVhZCBvZiB0aGUKKyAgICAgICAgbG9naWNhbCBzaXplIGhlcmUgd291bGQgb3RoZXJ3aXNlIGNh
dXNlIHVzIHRvIGFsd2F5cyBzZXQgQ2FudmFzQmFzZSdzIHNpemUgdG8gYCgwLCAwKWAuCisKKyAg
ICAgICAgKiBodG1sL0NhbnZhc0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzQmFz
ZTo6c2V0SW1hZ2VCdWZmZXIgY29uc3QpOgorCiAyMDIwLTEyLTEwICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gQ3Jhc2ggd2hl
biBsb2FkaW5nIGRyaW5rdHJhZGUuY29tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NhbnZhc0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DYW52YXNCYXNlLmNwcAppbmRl
eCBkOTQxMWFjM2QwNjllZTgyZmY3OWIzMzQ2NmFlMTZkYzgzOTE2MWQ1Li5lNGJiODhlMjhmOWI0
NzNiZjBhNWY3YWYxZmI4ZTVjNTEyMDA1MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NhbnZhc0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5j
cHAKQEAgLTE5MSw4ICsxOTEsOCBAQCBSZWZQdHI8SW1hZ2VCdWZmZXI+IENhbnZhc0Jhc2U6OnNl
dEltYWdlQnVmZmVyKFJlZlB0cjxJbWFnZUJ1ZmZlcj4mJiBidWZmZXIpIGNvbgogICAgICAgICBy
ZXR1cm5CdWZmZXIgPSBzdGQ6OmV4Y2hhbmdlKG1faW1hZ2VCdWZmZXIsIFdURk1vdmUoYnVmZmVy
KSk7CiAgICAgfQogCi0gICAgaWYgKG1faW1hZ2VCdWZmZXIgJiYgbV9zaXplICE9IG1faW1hZ2VC
dWZmZXItPmJhY2tlbmRTaXplKCkpCi0gICAgICAgIG1fc2l6ZSA9IG1faW1hZ2VCdWZmZXItPmJh
Y2tlbmRTaXplKCk7CisgICAgaWYgKG1faW1hZ2VCdWZmZXIgJiYgbV9zaXplICE9IG1faW1hZ2VC
dWZmZXItPmxvZ2ljYWxTaXplKCkpCisgICAgICAgIG1fc2l6ZSA9IG1faW1hZ2VCdWZmZXItPmxv
Z2ljYWxTaXplKCk7CiAKICAgICBzaXplX3QgcHJldmlvdXNNZW1vcnlDb3N0ID0gbV9pbWFnZUJ1
ZmZlckNvc3Q7CiAgICAgbV9pbWFnZUJ1ZmZlckNvc3QgPSBtZW1vcnlDb3N0KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>