<?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>211465</bug_id>
          
          <creation_ts>2020-05-05 13:00:44 -0700</creation_ts>
          <short_desc>[GTK] Cleanup KeyBindingTranslator on WebView disposal</short_desc>
          <delta_ts>2020-05-06 08:32:05 -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 Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211128</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Lauro Moura">lmoura</reporter>
          <assigned_to name="Lauro Moura">lmoura</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1649337</commentid>
    <comment_count>0</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2020-05-05 13:00:44 -0700</bug_when>
    <thetext>During the GTK4 adjustments, r260869/bug211128 made the KeyBindingTranslator hold a plain pointer to a GtkWidget, cleaned up in the `destroyed()` method.

But in some cases, the KeyBindingTranslator can be C++-destroyed before this method being called, leading to an assertion failure.

For example, running the compositing/overflow makes 14 of the 53 tests run to crash. Together with other occurrences in other tests, this is causing the Debug test bot to exit early.

Sample trace:

04:38:20.812 1398   ASSERTION FAILED: !m_nativeWidget
04:38:20.812 1398   ../../Source/WebKit/UIProcess/gtk/KeyBindingTranslator.cpp(195) : WebKit::KeyBindingTranslator::~KeyBindingTranslator()
04:38:20.812 1398   1   0x7f4903e8446d WTFCrash
04:38:20.812 1398   2   0x55a0e73743bb /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0x503bb) [0x55a0e73743bb]
04:38:20.812 1398   3   0x7f4912a87d51 WebKit::KeyBindingTranslator::~KeyBindingTranslator()
04:38:20.812 1398   4   0x7f49128d3f9e _WebKitWebViewBasePrivate::~_WebKitWebViewBasePrivate()
04:38:20.812 1398   5   0x7f49128cc73e /app/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0xd36173e) [0x7f49128cc73e]
04:38:20.812 1398   6   0x7f48fd092d6e g_object_unref
04:38:20.812 1398   7   0x7f48fca65479 /usr/lib/x86_64-linux-gnu/libgtk-3.so.0(+0x394479) [0x7f48fca65479]
04:38:20.812 1398   8   0x7f48fc8071bb /usr/lib/x86_64-linux-gnu/libgtk-3.so.0(+0x1361bb) [0x7f48fc8071bb]
04:38:20.812 1398   9   0x7f48fd08d862 g_closure_invoke
04:38:20.812 1398   10  0x7f48fd0a1b65 /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0(+0x28b65) [0x7f48fd0a1b65]
04:38:20.812 1398   11  0x7f48fd0acbde g_signal_emit_valist
04:38:20.812 1398   12  0x7f48fd0ad113 g_signal_emit
04:38:20.813 1398   13  0x7f48fca5362f /usr/lib/x86_64-linux-gnu/libgtk-3.so.0(+0x38262f) [0x7f48fca5362f]
04:38:20.813 1398   14  0x7f48fca68790 /usr/lib/x86_64-linux-gnu/libgtk-3.so.0(+0x397790) [0x7f48fca68790]
04:38:20.813 1398   15  0x7f48fd094531 g_object_run_dispose
04:38:20.813 1398   16  0x55a0e73e0337 /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0xbc337) [0x55a0e73e0337]
04:38:20.813 1398   17  0x55a0e73a1cea /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0x7dcea) [0x55a0e73a1cea]
04:38:20.813 1398   18  0x55a0e73a35f7 /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0x7f5f7) [0x55a0e73a35f7]
04:38:20.813 1398   19  0x55a0e739e87f /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0x7a87f) [0x55a0e739e87f]
04:38:20.813 1398   20  0x55a0e73871ee /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0x631ee) [0x55a0e73871ee]
04:38:20.813 1398   21  0x55a0e738b015 /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0x67015) [0x55a0e738b015]
04:38:20.813 1398   22  0x55a0e73b76a5 /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0x936a5) [0x55a0e73b76a5]
04:38:20.813 1398   23  0x55a0e738c3a8 /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0x683a8) [0x55a0e738c3a8]
04:38:20.813 1398   24  0x55a0e738c5d3 /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0x685d3) [0x55a0e738c5d3]
04:38:20.813 1398   25  0x55a0e738c628 /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0x68628) [0x55a0e738c628]
04:38:20.813 1398   26  0x55a0e7384c10 /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0x60c10) [0x55a0e7384c10]
04:38:20.813 1398   27  0x55a0e73e400f /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0xc000f) [0x55a0e73e400f]
04:38:20.813 1398   28  0x7f48fc01b183 __libc_start_main
04:38:20.813 1398   29  0x55a0e737403e /app/webkit/WebKitBuild/Debug/bin/WebKitTestRunner(+0x5003e) [0x55a0e737403e]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649340</commentid>
    <comment_count>1</comment_count>
      <attachid>398545</attachid>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2020-05-05 13:11:20 -0700</bug_when>
    <thetext>Created attachment 398545
Tentative fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649341</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-05-05 13:12:00 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649371</commentid>
    <comment_count>3</comment_count>
      <attachid>398545</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-05-05 14:09:45 -0700</bug_when>
    <thetext>Comment on attachment 398545
Tentative fix

Change LGTM, but I will wait for Carlos García to give the r+
because it won&apos;t hurt to have another pair of eyes look at this :]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649628</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-06 08:32:04 -0700</bug_when>
    <thetext>Committed r261230: &lt;https://trac.webkit.org/changeset/261230&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398545.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398545</attachid>
            <date>2020-05-05 13:11:20 -0700</date>
            <delta_ts>2020-05-06 08:32:04 -0700</delta_ts>
            <desc>Tentative fix</desc>
            <filename>bug-211465-20200505171119.patch</filename>
            <type>text/plain</type>
            <size>3265</size>
            <attacher name="Lauro Moura">lmoura</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1MGNjYjZkNTk2MjFkMmY1
Y2RjOTMxNGY0NWRkYzEzOTliYWI4ZDguLjEyZWJiOGYxNWI3ZDczYzk4NjA2NzE5MGE4MGJjZjJh
YWI2ZjczNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMDUtMDUgIExhdXJvIE1v
dXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQ2xlYW51cCBLZXlCaW5k
aW5nVHJhbnNsYXRvciBvbiBXZWJWaWV3IGRpc3Bvc2FsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE0NjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlcyBhc3NlcnRpb24gaW4gZGVidWcgbW9kZSB3
aGVuIGEgdGVzdCBmYWlsZWQgYW5kIHRoZSB3aWRnZXQKKyAgICAgICAgZm9sbG93ZWQgYSBkZXN0
cnVjdGlvbiBwYXR0ZXJuIHdoZXJlIEtleUJpbmRpbmdUcmFuc2xhdG9yIHdvdWxkIGJlCisgICAg
ICAgIGRlc3Ryb3llZCBiZWZvcmUgdGhlIGNvbnRhaW5lciB3aWRnZXQgaXMgY2xlYW5lZCB1cC4K
KworICAgICAgICBBbHNvIHJlbmFtZWQgdGhlIG1ldGhvZCBmcm9tICdkZXN0cm95ZWQnIHRvICdp
bnZhbGlkYXRlJyB0byB0cnkgdG8KKyAgICAgICAgYmV0dGVyIGNvbnZleSB0aGUgYWN0aW9uIGJl
aW5nIHBlcmZvcm1lZCBvbiB0aGUgS2V5QmluZGluZ1RyYW5zbGF0b3IuCisKKyAgICAgICAgQ292
ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlQ29udGFpbmVy
UmVtb3ZlKTogVXBkYXRlIG1ldGhvZCBuYW1lLgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VE
aXNwb3NlKTogQ2xlYW51cCBrZXlCaW5kaW5nVHJhbnNsYXRvciB3aGVuCisgICAgICAgIGRpc3Bv
c2luZyB0aGlzIHdpZGdldC4KKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFu
c2xhdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OktleUJpbmRpbmdUcmFuc2xhdG9yOjppbnZhbGlk
YXRlKTogUmVuYW1lZCBmcm9tIGRlc3Ryb3llZC4KKyAgICAgICAgKFdlYktpdDo6S2V5QmluZGlu
Z1RyYW5zbGF0b3I6OmRlc3Ryb3llZCk6IERlbGV0ZWQuCisKIDIwMjAtMDUtMDUgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hlY2sgZm9yIGFw
cC1ib3VuZCBkb21haW5zIHNob3VsZCBjb25maXJtIFdLQXBwQm91bmREb21haW5zIGtleSBleGlz
dHMgd2hlbiBjaGVja2luZyBmb3IgZGVmYXVsdCBhcHAtYm91bmQgcHJvdG9jb2xzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNw
cAppbmRleCBlMGIzY2JkN2FhNTc0NGMwY2VhMzgzODU3MTMzMDBkNGY1MjFlZDNlLi42Mjg4NjU3
ZjQwNGIxYzdiM2M2NzhhZjc0OTRmNzdlMGJhMzkyNmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtNTI5LDcg
KzUyOSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ29udGFpbmVyUmVtb3ZlKEd0
a0NvbnRhaW5lciogY29udGFpbmVyLCBHdGtXaWRnZXQqCiAgICAgICAgIGlmIChndGtfd2lkZ2V0
X2dldF92aXNpYmxlKHdpZGdldENvbnRhaW5lcikpCiAgICAgICAgICAgICBndGtfd2lkZ2V0X2dy
YWJfZm9jdXMod2lkZ2V0Q29udGFpbmVyKTsKICAgICB9IGVsc2UgaWYgKHByaXYtPmtleUJpbmRp
bmdUcmFuc2xhdG9yLndpZGdldCgpID09IHdpZGdldCkKLSAgICAgICAgcHJpdi0+a2V5QmluZGlu
Z1RyYW5zbGF0b3IuZGVzdHJveWVkKCk7CisgICAgICAgIHByaXYtPmtleUJpbmRpbmdUcmFuc2xh
dG9yLmludmFsaWRhdGUoKTsKICAgICBlbHNlIHsKICAgICAgICAgQVNTRVJUKHByaXYtPmNoaWxk
cmVuLmNvbnRhaW5zKHdpZGdldCkpOwogICAgICAgICBwcml2LT5jaGlsZHJlbi5yZW1vdmUod2lk
Z2V0KTsKQEAgLTYwMCw2ICs2MDAsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURp
c3Bvc2UoR09iamVjdCogZ29iamVjdCkKICAgICB3ZWJWaWV3LT5wcml2LT5wYWdlUHJveHktPmNs
b3NlKCk7CiAgICAgd2ViVmlldy0+cHJpdi0+YWNjZWxlcmF0ZWRCYWNraW5nU3RvcmUgPSBudWxs
cHRyOwogICAgIHdlYlZpZXctPnByaXYtPnNsZWVwRGlzYWJsZXIgPSBudWxscHRyOworICAgIHdl
YlZpZXctPnByaXYtPmtleUJpbmRpbmdUcmFuc2xhdG9yLmludmFsaWRhdGUoKTsKICAgICBHX09C
SkVDVF9DTEFTUyh3ZWJraXRfd2ViX3ZpZXdfYmFzZV9wYXJlbnRfY2xhc3MpLT5kaXNwb3NlKGdv
YmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvS2V5
QmluZGluZ1RyYW5zbGF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5k
aW5nVHJhbnNsYXRvci5oCmluZGV4IDc4ODc4NDU2NzdiZGVhMWE3MGEwYjJmNmUxMjU5ZDZhZWQw
MjMyZDkuLjRjNDNhYzczMjc2Y2E2MWVhZDU5ZmQ2MmFiNTM0YzYxYmZiODQyYzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oCkBA
IC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICB+S2V5QmluZGluZ1RyYW5zbGF0b3IoKTsKIAog
ICAgIEd0a1dpZGdldCogd2lkZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVXaWRnZXQ7IH0K
LSAgICB2b2lkIGRlc3Ryb3llZCgpIHsgbV9uYXRpdmVXaWRnZXQgPSBudWxscHRyOyB9CisgICAg
dm9pZCBpbnZhbGlkYXRlKCkgeyBtX25hdGl2ZVdpZGdldCA9IG51bGxwdHI7IH0KIAogI2lmIFVT
RShHVEs0KQogICAgIFZlY3RvcjxTdHJpbmc+IGNvbW1hbmRzRm9yS2V5RXZlbnQoR3RrRXZlbnRD
b250cm9sbGVyS2V5Kik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>