<?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>210453</bug_id>
          
          <creation_ts>2020-04-13 13:32:22 -0700</creation_ts>
          <short_desc>[GTK4] Adapt to cursor API changes</short_desc>
          <delta_ts>2020-04-15 06:08:30 -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>WebKitGTK</component>
          <version>WebKit Local 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>210100</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1641073</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-13 13:32:22 -0700</bug_when>
    <thetext>We need to account for two changes in Source/WebCore/platform/gtk/CursorGtk.cpp:

 - The parameters taken by gdk_cursor_new_from_name() have changed.
 - In GTK4 custom cursors are now created from GdkTexture objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641079</commentid>
    <comment_count>1</comment_count>
      <attachid>396327</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-13 13:39:52 -0700</bug_when>
    <thetext>Created attachment 396327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641172</commentid>
    <comment_count>2</comment_count>
      <attachid>396327</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-13 16:45:20 -0700</bug_when>
    <thetext>Comment on attachment 396327
Patch

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

Not sure I should review a GTK-specific patch. Look fine to me, but I hav no idea how to find out if it’s right or not.

&gt; Source/WebCore/platform/gtk/CursorGtk.cpp:41
&gt; +    GRefPtr&lt;GdkCursor&gt; fallback = adoptGRef(gdk_cursor_new_from_name(&quot;default&quot;, nullptr));

I’d have used auto here, and maybe made a function so this can be shared with the code below.

&gt; Source/WebCore/platform/gtk/CursorGtk.cpp:70
&gt; +        auto w = cairo_image_surface_get_width(surface.get());
&gt; +        auto h = cairo_image_surface_get_height(surface.get());

WebKit coding style would suggest using a word for this

&gt; Source/WebCore/platform/gtk/CursorGtk.cpp:72
&gt; +        GRefPtr&lt;cairo_surface_t&gt; converted = adoptGRef(cairo_image_surface_create(CAIRO_FORMAT_ARGB32, w, h));
&gt; +        GRefPtr&lt;cairo_t&gt; cr = adoptGRef(cairo_create(converted.get()));

I’d have used auto here, and maye not both local variables

WebKit style would suggest nouns or noun phrases for these variable names, not adjectives &quot;converted&quot; or abbreviations &quot;cr&quot;.

&gt; Source/WebCore/platform/gtk/CursorGtk.cpp:80
&gt; +    GRefPtr&lt;GdkCursor&gt; fallback = adoptGRef(gdk_cursor_new_from_name(&quot;default&quot;, nullptr));
&gt; +    GRefPtr&lt;GdkTexture&gt; texture = adoptGRef(gdk_memory_texture_new(cairo_image_surface_get_width(surface.get()), cairo_image_surface_get_height(surface.get()), format, cairo_image_surface_get_stride(surface.get())));

I’d have used auto here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641253</commentid>
    <comment_count>3</comment_count>
      <attachid>396327</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-13 22:23:06 -0700</bug_when>
    <thetext>Comment on attachment 396327
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        provide the &quot;pointer&quot; cursor as fallback.

Is it &quot;pointer&quot; or &quot;default&quot;?

&gt; Source/WebCore/platform/gtk/CursorGtk.cpp:65
&gt; +    default: {

Is this even possible? I would assert here, I think we can only receive CAIRO_FORMAT_ARGB32 (or CAIRO_FORMAT_RGB24) here, since ImageBufferCairo creates CAIRO_FORMAT_ARGB32 surfaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641541</commentid>
    <comment_count>4</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-14 14:19:48 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #3)
&gt; Comment on attachment 396327 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396327&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        provide the &quot;pointer&quot; cursor as fallback.
&gt; 
&gt; Is it &quot;pointer&quot; or &quot;default&quot;?

It&apos;s &quot;default&quot;, I&apos;ll fix it in the ChangeLog.

&gt; &gt; Source/WebCore/platform/gtk/CursorGtk.cpp:65
&gt; &gt; +    default: {
&gt; 
&gt; Is this even possible? I would assert here, I think we can only receive
&gt; CAIRO_FORMAT_ARGB32 (or CAIRO_FORMAT_RGB24) here, since ImageBufferCairo
&gt; creates CAIRO_FORMAT_ARGB32 surfaces.

You are right, I should have checked. Let&apos;s remove the conversion code
and assert here that the Cairo surface format is CAIRO_FORMAT_ARGB32 =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641543</commentid>
    <comment_count>5</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-14 14:20:33 -0700</bug_when>
    <thetext>Also thanks to Darin for chiming in — I&apos;ll use “auto” a bit more =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641550</commentid>
    <comment_count>6</comment_count>
      <attachid>396463</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-14 14:28:50 -0700</bug_when>
    <thetext>Created attachment 396463
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641734</commentid>
    <comment_count>7</comment_count>
      <attachid>396463</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-15 03:22:49 -0700</bug_when>
    <thetext>Comment on attachment 396463
Patch v2

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

&gt; Source/WebCore/platform/gtk/CursorGtk.cpp:43
&gt; +#if USE(GTK4)
&gt; +static GRefPtr&lt;GdkCursor&gt; fallbackCursor()
&gt; +{
&gt; +    return adoptGRef(gdk_cursor_new_from_name(&quot;default&quot;, nullptr));
&gt; +}
&gt; +#endif // USE(GTK4)

Would it make sene to cache this? using NeverDestroyed? I guess it will be used a lot. I&apos;m not sure how expensive it is, or whether it&apos;s already cached by GTK though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641738</commentid>
    <comment_count>8</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-15 04:05:28 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #7)
&gt; Comment on attachment 396463 [details]
&gt; Patch v2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396463&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/gtk/CursorGtk.cpp:43
&gt; &gt; +#if USE(GTK4)
&gt; &gt; +static GRefPtr&lt;GdkCursor&gt; fallbackCursor()
&gt; &gt; +{
&gt; &gt; +    return adoptGRef(gdk_cursor_new_from_name(&quot;default&quot;, nullptr));
&gt; &gt; +}
&gt; &gt; +#endif // USE(GTK4)
&gt; 
&gt; Would it make sene to cache this? using NeverDestroyed? I guess it will be
&gt; used a lot. I&apos;m not sure how expensive it is, or whether it&apos;s already cached
&gt; by GTK though.

After checking the code for gdk_cursor_new_from_name(), I think it may
be a good idea to cache the fallback pointer because the function creates
a new object each time. I&apos;ll add that bit before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641745</commentid>
    <comment_count>9</comment_count>
      <attachid>396520</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-15 05:33:08 -0700</bug_when>
    <thetext>Created attachment 396520
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641756</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-15 06:08:29 -0700</bug_when>
    <thetext>Committed r260123: &lt;https://trac.webkit.org/changeset/260123&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396520.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396327</attachid>
            <date>2020-04-13 13:39:52 -0700</date>
            <delta_ts>2020-04-14 14:28:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210453-20200413233950.patch</filename>
            <type>text/plain</type>
            <size>3802</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE5ODI4ODNlZWFhYmVi
ZjEwNjU3NDc4YjM1NjE5ZGE0MjNiMmY5YS4uYThmNTgzNTMzMzJlZGZjNmIyYzFlZWNiNWNlZGNl
NzYwMjA4NTM5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA0LTEzICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUSzRd
IEFkYXB0IHRvIGN1cnNvciBBUEkgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIHBs
YXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTmFtZWRD
dXJzb3IpOiBBZGFwdCB0byB0aGUgY2hhbmdlcyBpbiB0aGUgZ2RrX2N1cnNvcl9uZXdfZnJvbV9u
YW1lKCksIGFuZAorICAgICAgICBwcm92aWRlIHRoZSAicG9pbnRlciIgY3Vyc29yIGFzIGZhbGxi
YWNrLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9tQ3Vyc29yKTogQ3JlYXRlIGEgR2Rr
VGV4dHVyZSBkaXJlY3RseSB3aGVuIHRoZSBnaXZlbiBDYWlybyBzdXJmYWNlIGlzCisgICAgICAg
IGluIG9uZSBvZiB0aGUgcGl4ZWwgZm9ybWF0cyBzdXBwb3J0ZWQgYnkgZ2RrX21lbW9yeV90ZXh0
dXJlX25ldygpLCBvdGhlcndpc2UgY29udmVydCBmaXJzdDsKKyAgICAgICAgdGhlbiBjcmVhdGUg
YSBHZGtDdXJzb3IgZnJvbSB0aGUgR2RrVGV4dHVyZS4gVGhlICJwb2ludGVyIiBjdXJzb3IgaXMg
dXNlZCBhcyBmYWxsYmFjayBhcworICAgICAgICB3ZWxsLgorCiAyMDIwLTA0LTEzICBBZHJpYW4g
UGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUSzRdIFVz
ZSBUaGVtZUFkd2FpdGEgaW5zdGVhZCBvZiBUaGVtZUd0awpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvQ3Vyc29yR3RrLmNwcAppbmRleCBlYTA1YTUxYTk3ODNiNWY3MTlhMDBiODIyODQ3OGZl
NWJmZWNlOTBmLi5jNDIyYTRmYjJhZjQ1ZjZlOGEyYmQ5MmM4MzY3MTk0MzUxYTFmMWI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ3Vyc29yR3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ3Vyc29yR3RrLmNwcApAQCAtMzcsNyArMzcsMTIg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgR1JlZlB0cjxHZGtDdXJzb3I+IGNyZWF0
ZU5hbWVkQ3Vyc29yKGNvbnN0IGNoYXIqIG5hbWUpCiB7CisjaWYgVVNFKEdUSzQpCisgICAgR1Jl
ZlB0cjxHZGtDdXJzb3I+IGZhbGxiYWNrID0gYWRvcHRHUmVmKGdka19jdXJzb3JfbmV3X2Zyb21f
bmFtZSgiZGVmYXVsdCIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gYWRvcHRHUmVmKGdka19jdXJz
b3JfbmV3X2Zyb21fbmFtZShuYW1lLCBmYWxsYmFjay5nZXQoKSkpOworI2Vsc2UKICAgICByZXR1
cm4gYWRvcHRHUmVmKGdka19jdXJzb3JfbmV3X2Zyb21fbmFtZShnZGtfZGlzcGxheV9nZXRfZGVm
YXVsdCgpLCBuYW1lKSk7CisjZW5kaWYgLy8gVVNFKEdUSzQpCiB9CiAKIHN0YXRpYyBHUmVmUHRy
PEdka0N1cnNvcj4gY3JlYXRlQ3VzdG9tQ3Vyc29yKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UG9p
bnQmIGhvdFNwb3QpCkBAIC00Nyw3ICs1MiwzNiBAQCBzdGF0aWMgR1JlZlB0cjxHZGtDdXJzb3I+
IGNyZWF0ZUN1c3RvbUN1cnNvcihJbWFnZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTcAog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEludFBvaW50IGVmZmVjdGl2ZUhvdFNwb3Qg
PSBkZXRlcm1pbmVIb3RTcG90KGltYWdlLCBob3RTcG90KTsKKworI2lmIFVTRShHVEs0KQorICAg
IEdka01lbW9yeUZvcm1hdCBmb3JtYXQ7CisgICAgc3dpdGNoIChjYWlyb19pbWFnZV9zdXJmYWNl
X2dldF9mb3JtYXQoc3VyZmFjZS5nZXQoKSkpIHsKKyAgICBjYXNlIENBSVJPX0ZPUk1BVF9BUkdC
MzI6CisgICAgICAgIGZvcm1hdCA9IEdES19NRU1PUllfQThSOEc4QjhfUFJFTVVMVElQTElFRDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDQUlST19GT1JNQVRfUkdCMjQ6CisgICAgICAgIGZv
cm1hdCA9IEdES19NRU1PUllfUjhHOEI4OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OiB7
CisgICAgICAgIC8vIEZvciBhbnkgb3RoZXIgZm9ybWF0cyBub3Qgc3VwcG9ydGVkIGJ5IEdka1Rl
eHR1cmUsIGNyZWF0ZSBhIG5ldyBDYWlybyBzdXJmYWNlIGluIGEKKyAgICAgICAgLy8gc3VwcG9y
dGVkIGZvcm1hdCBhbmQgZmlsbCBpdCB3aXRoIHRoZSBjdXJzb3Igc3VyZmFjZSB0byBoYXZlIGEg
Y29weSBpbiB0aGF0IGZvcm1hdC4KKyAgICAgICAgZm9ybWF0ID0gR0RLX01FTU9SWV9BOFI4RzhC
OF9QUkVNVUxUSVBMSUVEOworICAgICAgICBhdXRvIHcgPSBjYWlyb19pbWFnZV9zdXJmYWNlX2dl
dF93aWR0aChzdXJmYWNlLmdldCgpKTsKKyAgICAgICAgYXV0byBoID0gY2Fpcm9faW1hZ2Vfc3Vy
ZmFjZV9nZXRfaGVpZ2h0KHN1cmZhY2UuZ2V0KCkpOworICAgICAgICBHUmVmUHRyPGNhaXJvX3N1
cmZhY2VfdD4gY29udmVydGVkID0gYWRvcHRHUmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRl
KENBSVJPX0ZPUk1BVF9BUkdCMzIsIHcsIGgpKTsKKyAgICAgICAgR1JlZlB0cjxjYWlyb190PiBj
ciA9IGFkb3B0R1JlZihjYWlyb19jcmVhdGUoY29udmVydGVkLmdldCgpKSk7CisgICAgICAgIGNh
aXJvX3NldF9zb3VyY2Vfc3VyZmFjZShjci5nZXQoKSwgc3VyZmFjZS5nZXQoKSwgMCwgMCk7Cisg
ICAgICAgIGNhaXJvX3JlY3RhbmdsZShjci5nZXQoKSwgMCwgMCwgdywgaCk7CisgICAgICAgIGNh
aXJvX2ZpbGwoY3IuZ2V0KCkpOworICAgICAgICBzdXJmYWNlID0gV1RGTW92ZShjb252ZXJ0ZWQp
OworICAgIH0KKyAgICB9CisgICAgR1JlZlB0cjxHZGtDdXJzb3I+IGZhbGxiYWNrID0gYWRvcHRH
UmVmKGdka19jdXJzb3JfbmV3X2Zyb21fbmFtZSgiZGVmYXVsdCIsIG51bGxwdHIpKTsKKyAgICBH
UmVmUHRyPEdka1RleHR1cmU+IHRleHR1cmUgPSBhZG9wdEdSZWYoZ2RrX21lbW9yeV90ZXh0dXJl
X25ldyhjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aChzdXJmYWNlLmdldCgpKSwgY2Fpcm9f
aW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KHN1cmZhY2UuZ2V0KCkpLCBmb3JtYXQsIGNhaXJvX2lt
YWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzdXJmYWNlLmdldCgpKSkpOworICAgIHJldHVybiBhZG9w
dEdSZWYoZ2RrX2N1cnNvcl9uZXdfZnJvbV90ZXh0dXJlKHRleHR1cmUuZ2V0KCksIGVmZmVjdGl2
ZUhvdFNwb3QueCgpLCBlZmZlY3RpdmVIb3RTcG90LnkoKSwgZmFsbGJhY2suZ2V0KCkpKTsKKyNl
bHNlCiAgICAgcmV0dXJuIGFkb3B0R1JlZihnZGtfY3Vyc29yX25ld19mcm9tX3N1cmZhY2UoZ2Rr
X2Rpc3BsYXlfZ2V0X2RlZmF1bHQoKSwgc3VyZmFjZS5nZXQoKSwgZWZmZWN0aXZlSG90U3BvdC54
KCksIGVmZmVjdGl2ZUhvdFNwb3QueSgpKSk7CisjZW5kaWYgLy8gVVNFKEdUSzQpCiB9CiAKIHZv
aWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396463</attachid>
            <date>2020-04-14 14:28:50 -0700</date>
            <delta_ts>2020-04-15 05:33:03 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-210453-20200415002849.patch</filename>
            <type>text/plain</type>
            <size>2847</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWViMTI1ZDNmZDk1YzYx
ZDUzN2Q0OGE5MzA1N2RmOTgxZjA0NjQyMS4uMWEwYTVkNjE1ZDQ3ZDM5OTg0ZGY4OGM0MGYzMTky
NGE1NjJjN2E1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA0LTE0ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUSzRd
IEFkYXB0IHRvIGN1cnNvciBBUEkgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIHBs
YXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmFsbGJhY2tDdXJz
b3IpOiBVdGlsaXR5IGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgdGhlICJkZWZhdWx0IiBjdXJzb3Ig
Zm9yIEdUSzQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVOYW1lZEN1cnNvcik6IEFkYXB0IHRv
IHRoZSBjaGFuZ2VzIGluIHRoZSBnZGtfY3Vyc29yX25ld19mcm9tX25hbWUoKS4KKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUN1c3RvbUN1cnNvcik6IENyZWF0ZSBhIEdka1RleHR1cmUgZGlyZWN0
bHkgd2hlbiB0aGUgZ2l2ZW4gQ2Fpcm8gc3VyZmFjZSBpcworICAgICAgICBpbiBvbmUgb2YgdGhl
IHBpeGVsIGZvcm1hdHMgc3VwcG9ydGVkIGJ5IGdka19tZW1vcnlfdGV4dHVyZV9uZXcoKSwgb3Ro
ZXJ3aXNlIGNvbnZlcnQgZmlyc3Q7CisgICAgICAgIHRoZW4gY3JlYXRlIGEgR2RrQ3Vyc29yIGZy
b20gdGhlIEdka1RleHR1cmUuCisKIDIwMjAtMDQtMTQgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8g
IDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLNF0gUHJvdmlkZSBhbiBhbHRlcm5h
dGl2ZSB0byBndGtfd2lkZ2V0X3tnZXQsaXN9X3RvcGxldmVsKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKaW5kZXggZWEwNWE1MWE5NzgzYjVmNzE5YTAwYjgyMjg0
NzhmZTViZmVjZTkwZi4uN2U3N2RjOWE4ZDk1ZTYwOTg3ZWE2YTVhZjA2YjdlM2FmOGQ1Zjk1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKQEAgLTM1LDkgKzM1
LDIwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIFVTRShHVEs0KQorc3RhdGljIEdS
ZWZQdHI8R2RrQ3Vyc29yPiBmYWxsYmFja0N1cnNvcigpCit7CisgICAgcmV0dXJuIGFkb3B0R1Jl
ZihnZGtfY3Vyc29yX25ld19mcm9tX25hbWUoImRlZmF1bHQiLCBudWxscHRyKSk7Cit9CisjZW5k
aWYgLy8gVVNFKEdUSzQpCisKIHN0YXRpYyBHUmVmUHRyPEdka0N1cnNvcj4gY3JlYXRlTmFtZWRD
dXJzb3IoY29uc3QgY2hhciogbmFtZSkKIHsKKyNpZiBVU0UoR1RLNCkKKyAgICByZXR1cm4gYWRv
cHRHUmVmKGdka19jdXJzb3JfbmV3X2Zyb21fbmFtZShuYW1lLCBmYWxsYmFja0N1cnNvcigpLmdl
dCgpKSk7CisjZWxzZQogICAgIHJldHVybiBhZG9wdEdSZWYoZ2RrX2N1cnNvcl9uZXdfZnJvbV9u
YW1lKGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCksIG5hbWUpKTsKKyNlbmRpZiAvLyBVU0UoR1RL
NCkKIH0KIAogc3RhdGljIEdSZWZQdHI8R2RrQ3Vyc29yPiBjcmVhdGVDdXN0b21DdXJzb3IoSW1h
Z2UqIGltYWdlLCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCkKQEAgLTQ3LDcgKzU4LDE0IEBAIHN0
YXRpYyBHUmVmUHRyPEdka0N1cnNvcj4gY3JlYXRlQ3VzdG9tQ3Vyc29yKEltYWdlKiBpbWFnZSwg
Y29uc3QgSW50UG9pbnQmIGhvdFNwCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgSW50
UG9pbnQgZWZmZWN0aXZlSG90U3BvdCA9IGRldGVybWluZUhvdFNwb3QoaW1hZ2UsIGhvdFNwb3Qp
OworCisjaWYgVVNFKEdUSzQpCisgICAgQVNTRVJUKGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2Zv
cm1hdChzdXJmYWNlLmdldCgpKSA9PSBDQUlST19GT1JNQVRfQVJHQjMyKTsKKyAgICBhdXRvIHRl
eHR1cmUgPSBhZG9wdEdSZWYoZ2RrX21lbW9yeV90ZXh0dXJlX25ldyhjYWlyb19pbWFnZV9zdXJm
YWNlX2dldF93aWR0aChzdXJmYWNlLmdldCgpKSwgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVp
Z2h0KHN1cmZhY2UuZ2V0KCkpLCBHREtfTUVNT1JZX0E4UjhHOEI4X1BSRU1VTFRJUExJRUQsIGNh
aXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzdXJmYWNlLmdldCgpKSkpOworICAgIHJldHVy
biBhZG9wdEdSZWYoZ2RrX2N1cnNvcl9uZXdfZnJvbV90ZXh0dXJlKHRleHR1cmUuZ2V0KCksIGVm
ZmVjdGl2ZUhvdFNwb3QueCgpLCBlZmZlY3RpdmVIb3RTcG90LnkoKSwgZmFsbGJhY2tDdXJzb3Io
KS5nZXQoKSkpOworI2Vsc2UKICAgICByZXR1cm4gYWRvcHRHUmVmKGdka19jdXJzb3JfbmV3X2Zy
b21fc3VyZmFjZShnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCgpLCBzdXJmYWNlLmdldCgpLCBlZmZl
Y3RpdmVIb3RTcG90LngoKSwgZWZmZWN0aXZlSG90U3BvdC55KCkpKTsKKyNlbmRpZiAvLyBVU0Uo
R1RLNCkKIH0KIAogdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396520</attachid>
            <date>2020-04-15 05:33:08 -0700</date>
            <delta_ts>2020-04-15 06:08:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210453-20200415153307.patch</filename>
            <type>text/plain</type>
            <size>3014</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJlMWY5YjMzZWE1MWQ2
NDEyMDkwNmUyNjkzZGVhNDNjNDAzZWNlYi4uNTZmNjVlYTJhNjc5NDk5M2NkYzVlNWQxNTg2YTU4
ZTdjODI0Zjg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA0LTE0ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUSzRd
IEFkYXB0IHRvIGN1cnNvciBBUEkgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9z
IEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmFsbGJh
Y2tDdXJzb3IpOiBVdGlsaXR5IGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgdGhlICJkZWZhdWx0IiBj
dXJzb3IgZm9yIEdUSzQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVOYW1lZEN1cnNvcik6IEFk
YXB0IHRvIHRoZSBjaGFuZ2VzIGluIHRoZSBnZGtfY3Vyc29yX25ld19mcm9tX25hbWUoKS4KKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUN1c3RvbUN1cnNvcik6IENyZWF0ZSBhIEdka1RleHR1cmUg
ZGlyZWN0bHkgd2hlbiB0aGUgZ2l2ZW4gQ2Fpcm8gc3VyZmFjZSBpcworICAgICAgICBpbiBvbmUg
b2YgdGhlIHBpeGVsIGZvcm1hdHMgc3VwcG9ydGVkIGJ5IGdka19tZW1vcnlfdGV4dHVyZV9uZXco
KSwgb3RoZXJ3aXNlIGNvbnZlcnQgZmlyc3Q7CisgICAgICAgIHRoZW4gY3JlYXRlIGEgR2RrQ3Vy
c29yIGZyb20gdGhlIEdka1RleHR1cmUuCisKIDIwMjAtMDQtMTQgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgW0FzeW5jIG92ZXJmbG93IHNjcm9sbF0g
QmFja2dyb3VuZHMgbWlzc2luZyBvbiBnbWFpbCBzb21ldGltZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKaW5kZXggZWEwNWE1MWE5NzgzYjVmNzE5YTAwYjgyMjg0
NzhmZTViZmVjZTkwZi4uYTY5MDY3YzdmZjhhMWY4NjYyMzZkYmM3NWUxMTAyNTExM2NjOTZhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKQEAgLTMyLDEyICsz
MiwyNSBAQAogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNs
dWRlIDxnZGsvZ2RrLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorI2lmIFVTRShHVEs0KQorc3RhdGljIEdSZWZQdHI8R2RrQ3Vyc29y
PiBmYWxsYmFja0N1cnNvcigpCit7CisgICAgc3RhdGljIFdURjo6TmV2ZXJEZXN0cm95ZWQ8R1Jl
ZlB0cjxHZGtDdXJzb3I+PiBjdXJzb3IoYWRvcHRHUmVmKGdka19jdXJzb3JfbmV3X2Zyb21fbmFt
ZSgiZGVmYXVsdCIsIG51bGxwdHIpKSk7CisgICAgcmV0dXJuIGN1cnNvcjsKK30KKyNlbmRpZiAv
LyBVU0UoR1RLNCkKKwogc3RhdGljIEdSZWZQdHI8R2RrQ3Vyc29yPiBjcmVhdGVOYW1lZEN1cnNv
cihjb25zdCBjaGFyKiBuYW1lKQogeworI2lmIFVTRShHVEs0KQorICAgIHJldHVybiBhZG9wdEdS
ZWYoZ2RrX2N1cnNvcl9uZXdfZnJvbV9uYW1lKG5hbWUsIGZhbGxiYWNrQ3Vyc29yKCkuZ2V0KCkp
KTsKKyNlbHNlCiAgICAgcmV0dXJuIGFkb3B0R1JlZihnZGtfY3Vyc29yX25ld19mcm9tX25hbWUo
Z2RrX2Rpc3BsYXlfZ2V0X2RlZmF1bHQoKSwgbmFtZSkpOworI2VuZGlmIC8vIFVTRShHVEs0KQog
fQogCiBzdGF0aWMgR1JlZlB0cjxHZGtDdXJzb3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJbWFnZSog
aW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTcG90KQpAQCAtNDcsNyArNjAsMTQgQEAgc3RhdGlj
IEdSZWZQdHI8R2RrQ3Vyc29yPiBjcmVhdGVDdXN0b21DdXJzb3IoSW1hZ2UqIGltYWdlLCBjb25z
dCBJbnRQb2ludCYgaG90U3AKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBJbnRQb2lu
dCBlZmZlY3RpdmVIb3RTcG90ID0gZGV0ZXJtaW5lSG90U3BvdChpbWFnZSwgaG90U3BvdCk7CisK
KyNpZiBVU0UoR1RLNCkKKyAgICBBU1NFUlQoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZm9ybWF0
KHN1cmZhY2UuZ2V0KCkpID09IENBSVJPX0ZPUk1BVF9BUkdCMzIpOworICAgIGF1dG8gdGV4dHVy
ZSA9IGFkb3B0R1JlZihnZGtfbWVtb3J5X3RleHR1cmVfbmV3KGNhaXJvX2ltYWdlX3N1cmZhY2Vf
Z2V0X3dpZHRoKHN1cmZhY2UuZ2V0KCkpLCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQo
c3VyZmFjZS5nZXQoKSksIEdES19NRU1PUllfQThSOEc4QjhfUFJFTVVMVElQTElFRCwgY2Fpcm9f
aW1hZ2Vfc3VyZmFjZV9nZXRfc3RyaWRlKHN1cmZhY2UuZ2V0KCkpKSk7CisgICAgcmV0dXJuIGFk
b3B0R1JlZihnZGtfY3Vyc29yX25ld19mcm9tX3RleHR1cmUodGV4dHVyZS5nZXQoKSwgZWZmZWN0
aXZlSG90U3BvdC54KCksIGVmZmVjdGl2ZUhvdFNwb3QueSgpLCBmYWxsYmFja0N1cnNvcigpLmdl
dCgpKSk7CisjZWxzZQogICAgIHJldHVybiBhZG9wdEdSZWYoZ2RrX2N1cnNvcl9uZXdfZnJvbV9z
dXJmYWNlKGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCksIHN1cmZhY2UuZ2V0KCksIGVmZmVjdGl2
ZUhvdFNwb3QueCgpLCBlZmZlY3RpdmVIb3RTcG90LnkoKSkpOworI2VuZGlmIC8vIFVTRShHVEs0
KQogfQogCiB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>