<?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>31271</bug_id>
          
          <creation_ts>2009-11-09 13:04:04 -0800</creation_ts>
          <short_desc>[Gtk] crashed when destroying</short_desc>
          <delta_ts>2010-02-26 09:05:22 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Jonh Wendell">wendell</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>jmalonzo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>161724</commentid>
    <comment_count>0</comment_count>
    <who name="Jonh Wendell">wendell</who>
    <bug_when>2009-11-09 13:04:04 -0800</bug_when>
    <thetext>I&apos;m getting a segfault when destroying the WebView widget in a idle callback. Piece of code:

...
  g_signal_connect (self,
		    &quot;navigation-policy-decision-requested&quot;,
		    G_CALLBACK (link_cb),
		    NULL);
...

static gboolean
link_cb (WebKitWebView             *web_view,
	 WebKitWebFrame            *frame,
	 WebKitNetworkRequest      *request,
	 WebKitWebNavigationAction *navigation_action,
	 WebKitWebPolicyDecision   *policy_decision,
	 gpointer                   user_data)
{
  const gchar *uri;

  uri = webkit_network_request_get_uri (request);
  if (strncmp (uri, &quot;ascli://remove&quot;, 14) == 0)
    {
      webkit_web_policy_decision_ignore (policy_decision);
      g_idle_add ((GSourceFunc) delayed_destroy, web_view);
      return TRUE;
    }

  return FALSE;
}

...

static gboolean
delayed_destroy (GtkWidget *w)
{
  gtk_widget_destroy (w);  &lt;&lt;&lt;&lt;----------- CRASH
  return FALSE;
}

......

I&apos;m putting the WebView inside a GtkVBox</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161744</commentid>
    <comment_count>1</comment_count>
      <attachid>42792</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-11-09 13:15:00 -0800</bug_when>
    <thetext>Created attachment 42792
small test case

I wrote this small test case to demonstrate the crash. Replacing WebView with GtkTextView there makes the crash go away, which implies this is a bug in our stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193767</commentid>
    <comment_count>2</comment_count>
      <attachid>49497</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-02-25 09:35:36 -0800</bug_when>
    <thetext>Created attachment 49497
Fix this crash, by only relaying focus out when the page exists</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193799</commentid>
    <comment_count>3</comment_count>
      <attachid>49497</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-02-25 10:18:49 -0800</bug_when>
    <thetext>Comment on attachment 49497
Fix this crash, by only relaying focus out when the page exists

Landed as r55245 with minor changes to not require the 200ms timeout on the test. Reviewed by Xan over XMPP.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>42792</attachid>
            <date>2009-11-09 13:15:00 -0800</date>
            <delta_ts>2010-02-25 06:47:14 -0800</delta_ts>
            <desc>small test case</desc>
            <filename>test.c</filename>
            <type>text/plain</type>
            <size>549</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">I2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KCmdib29sZWFuIGRlbGF5ZWRfZGVzdHJveSAoZ3Bv
aW50ZXIgZGF0YSkKewogICAgZ3RrX3dpZGdldF9kZXN0cm95IChHVEtfV0lER0VUIChkYXRhKSk7
CiAgICByZXR1cm4gRkFMU0U7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKewog
ICAgR3RrV2lkZ2V0KiB3aW5kb3c7CiAgICBHdGtXaWRnZXQqIHdlYl92aWV3OwoKICAgIGdfdGhy
ZWFkX2luaXQgKE5VTEwpOwoKICAgIGd0a19pbml0ICgmYXJnYywgJmFyZ3YpOwoKICAgIHdpbmRv
dyA9IGd0a193aW5kb3dfbmV3IChHVEtfV0lORE9XX1RPUExFVkVMKTsKICAgIHdlYl92aWV3ID0g
d2Via2l0X3dlYl92aWV3X25ldyAoKTsKCiAgICBndGtfY29udGFpbmVyX2FkZCAoR1RLX0NPTlRB
SU5FUiAod2luZG93KSwgd2ViX3ZpZXcpOwoKICAgIGdfdGltZW91dF9hZGQgKDIwMDAsIGRlbGF5
ZWRfZGVzdHJveSwgd2ViX3ZpZXcpOwoKICAgIGd0a193aWRnZXRfc2hvd19hbGwgKHdpbmRvdyk7
CgogICAgZ3RrX21haW4gKCk7CgogICAgcmV0dXJuIDA7Cn0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49497</attachid>
            <date>2010-02-25 09:35:36 -0800</date>
            <delta_ts>2010-02-25 10:18:48 -0800</delta_ts>
            <desc>Fix this crash, by only relaying focus out when the page exists</desc>
            <filename>0001-NULL-check-page-when-relaying-focus-out.patch</filename>
            <type>text/plain</type>
            <size>4326</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSAxMjc5NWM5MWZjYTk2NzBhNTQxZWFlZDk0ODgwODRhYzc0Yjg2YzA0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IFRodSwgMjUgRmViIDIwMTAgMTQ6MzQ6MjYgLTAzMDAKU3ViamVjdDogW1BBVENIXSBO
VUxMLWNoZWNrIHBhZ2Ugd2hlbiByZWxheWluZyBmb2N1cyBvdXQKCi0tLQogV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgfCAgIDE4ICsrKysrKysrKysrKysrKysrKwogV2ViS2l0
L2d0ay90ZXN0cy90ZXN0d2Vidmlldy5jICAgICAgfCAgIDMzICsrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgfCAgIDEx
ICsrKysrKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDQgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0No
YW5nZUxvZwppbmRleCBhYWMyM2E0Li45N2EyMDFhIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0No
YW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEw
LTAyLTI1ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3Jh
LmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtHdGtdIGNyYXNoZWQgd2hlbiBkZXN0cm95aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTI3MQorCisgICAgICAgIE5VTEwtY2hlY2sgdGhlIHBh
Z2UgYmVmb3JlIHJlbGF5aW5nIHRoZSBmb2N1cyBvdXQgZXZlbnQsIHNpbmNlCisgICAgICAgIHRo
aXMgbWlnaHQgaGFwcGVuIHdoZW4gZGVzdHJveWluZyB0aGUgd2lkZ2V0IHdpdGhvdXQgZGVzdHJv
eWluZworICAgICAgICBpdHMgcGFyZW50LCBhbmQgd2UgY3VycmVudGx5IGNyYXNoLgorCisgICAg
ICAgICogdGVzdHMvdGVzdHdlYnZpZXcuYzoKKyAgICAgICAgKGRlbGF5ZWRfZGVzdHJveSk6Cisg
ICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfdmlld19kZXN0cm95KToKKyAgICAgICAgKG1haW4pOgor
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19mb2N1c19pbl9ldmVudCk6CisKIDIwMTAtMDItMjQgIEtyenlzenRvZiBLb3RsZW5nYSA8
cG9jZWtAdXNlcnMuc2YubmV0PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25o
YSBTaWx2YS4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYnZpZXcuYyBiL1dl
YktpdC9ndGsvdGVzdHMvdGVzdHdlYnZpZXcuYwppbmRleCBjZWFjOGEwLi42ZDQ4M2RiIDEwMDY0
NAotLS0gYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJ2aWV3LmMKKysrIGIvV2ViS2l0L2d0ay90
ZXN0cy90ZXN0d2Vidmlldy5jCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwOCBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgotICogQ29weXJpZ2h0IChDKSAyMDA5IENv
bGxhYm9yYSBMdGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgQ29sbGFib3JhIEx0ZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjI2LDYgKzIyNiwzNiBAQCBzdGF0aWMgdm9pZCB0ZXN0
X3dlYmtpdF93ZWJfdmlld19hZGp1c3RtZW50cygpCiAgICAgZG9fdGVzdF93ZWJraXRfd2ViX3Zp
ZXdfYWRqdXN0bWVudHMoVFJVRSk7CiB9CiAKK2dib29sZWFuIGRlbGF5ZWRfZGVzdHJveShncG9p
bnRlciBkYXRhKQoreworICAgIGd0a193aWRnZXRfZGVzdHJveShHVEtfV0lER0VUKGRhdGEpKTsK
KyAgICBnX21haW5fbG9vcF9xdWl0KGxvb3ApOworICAgIHJldHVybiBGQUxTRTsKK30KKworc3Rh
dGljIHZvaWQgdGVzdF93ZWJraXRfd2ViX3ZpZXdfZGVzdHJveSgpCit7CisgICAgR3RrV2lkZ2V0
KiB3aW5kb3c7CisgICAgR3RrV2lkZ2V0KiB3ZWJfdmlldzsKKworICAgIHdpbmRvdyA9IGd0a193
aW5kb3dfbmV3KEdUS19XSU5ET1dfVE9QTEVWRUwpOworICAgIHdlYl92aWV3ID0gd2Via2l0X3dl
Yl92aWV3X25ldygpOworCisgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUih3aW5k
b3cpLCB3ZWJfdmlldyk7CisKKyAgICAvKiBUaGUgb25seSB3YXkgSSBjb3VsZCBjb25zaXN0ZW50
bHkgcmVwcm9kdWNlIHRoaXMgY3Jhc2ggd2FzIGJ5CisgICAgICogbWFraW5nIHRoaXMgYSB0aW1l
b3V0IHRoYXQgd2FpdHMgMjAwbXMKKyAgICAgKi8KKyAgICBnX3RpbWVvdXRfYWRkKDIwMCwgZGVs
YXllZF9kZXN0cm95LCB3ZWJfdmlldyk7CisKKyAgICBndGtfd2lkZ2V0X3Nob3dfYWxsKHdpbmRv
dyk7CisKKyAgICBsb29wID0gZ19tYWluX2xvb3BfbmV3KE5VTEwsIFRSVUUpOworICAgIGdfbWFp
bl9sb29wX3J1bihsb29wKTsKKworICAgIGd0a193aWRnZXRfZGVzdHJveSh3aW5kb3cpOworfQor
CiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7CiAgICAgU291cFNlcnZlciogc2Vy
dmVyOwpAQCAtMjUxLDYgKzI4MSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikK
ICAgICBnX3Rlc3RfYnVnX2Jhc2UoImh0dHBzOi8vYnVncy53ZWJraXQub3JnLyIpOwogICAgIGdf
dGVzdF9hZGRfZnVuYygiL3dlYmtpdC93ZWJ2aWV3L2ljb24tdXJpIiwgdGVzdF93ZWJraXRfd2Vi
X3ZpZXdfaWNvbl91cmkpOwogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC93ZWJ2aWV3L2Fk
anVzdG1lbnRzIiwgdGVzdF93ZWJraXRfd2ViX3ZpZXdfYWRqdXN0bWVudHMpOworICAgIGdfdGVz
dF9hZGRfZnVuYygiL3dlYmtpdC93ZWJ2aWV3L2Rlc3Ryb3kiLCB0ZXN0X3dlYmtpdF93ZWJfdmll
d19kZXN0cm95KTsKIAogICAgIHJldHVybiBnX3Rlc3RfcnVuICgpOwogfQpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCAxNmM5NDc3Li45OTNjZDNhIDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcApAQCAtNiw3ICs2LDcgQEAKICAqICBDb3B5cmlnaHQgKEMpIDIwMDgg
SmFuIEFsb256byA8am1hbG9uem9AdW5wbHVnZ2FibGUuY29tPgogICogIENvcHlyaWdodCAoQykg
MjAwOCBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+CiAgKiAgQ29weXJpZ2h0
IChDKSAyMDA4IE51YW50aSBMdGQuCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IENvbGxh
Ym9yYSBMdGQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIENvbGxhYm9yYSBM
dGQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBTLkwuCiAgKiAgQ29weXJpZ2h0IChD
KSAyMDA5IE1vdmlhbCBDcmVhdGl2ZSBUZWNobm9sb2dpZXMgSW5jLgogICogIENvcHlyaWdodCAo
QykgMjAwOSBCb2JieSBQb3dlcnMKQEAgLTY3Niw4ICs2NzYsMTMgQEAgc3RhdGljIGdib29sZWFu
IHdlYmtpdF93ZWJfdmlld19mb2N1c19vdXRfZXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2
ZW50Rm9jdXMKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVX
KHdpZGdldCk7CiAKLSAgICBjb3JlKHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0QWN0
aXZlKGZhbHNlKTsKLSAgICBjb3JlKHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9j
dXNlZChmYWxzZSk7CisgICAgLy8gV2UgbWF5IGhpdCB0aGlzIGNvZGUgd2hpbGUgZGVzdHJveWlu
ZyB0aGUgd2lkZ2V0LCBhbmQgd2UgbWlnaHQKKyAgICAvLyBubyBsb25nZXIgaGF2ZSBhIHBhZ2Us
IHRoZW4uCisgICAgUGFnZSogcGFnZSA9IGNvcmUod2ViVmlldyk7CisgICAgaWYgKHBhZ2UpIHsK
KyAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPnNldEFjdGl2ZShmYWxzZSk7CisgICAg
ICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkKGZhbHNlKTsKKyAgICB9CiAK
ICAgICByZXR1cm4gR1RLX1dJREdFVF9DTEFTUyh3ZWJraXRfd2ViX3ZpZXdfcGFyZW50X2NsYXNz
KS0+Zm9jdXNfb3V0X2V2ZW50KHdpZGdldCwgZXZlbnQpOwogfQotLSAKMS42LjYuMgoK
</data>
<flag name="commit-queue"
          id="32385"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>