<?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>132127</bug_id>
          
          <creation_ts>2014-04-24 09:10:27 -0700</creation_ts>
          <short_desc>[GTK] Plugin process crashes with GTK2 windowed plugins</short_desc>
          <delta_ts>2014-04-25 00:59:09 -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>WebKit2</component>
          <version>528+ (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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1003649</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-04-24 09:10:27 -0700</bug_when>
    <thetext>It happens sometimes because the socket is used before the plug has been added. A runtime critical warning can be seen:

(WebKitPluginProcess2:24445): GLib-GObject-CRITICAL **: g_object_ref: assertion &apos;G_IS_OBJECT (object)&apos; failed

And the it sometimes ends up crashing:

(gdb) bt
#0  0x00007ffff4ecd250 in gdk_window_add_update_window (window=window@entry=0x2855c60) at gdkwindow.c:5309
#1  0x00007ffff4ed027d in impl_window_add_update_area (impl_window=0x2855c60, region=0x285b610) at gdkwindow.c:5878
#2  0x00007ffff4ed056d in gdk_window_invalidate_maybe_recurse_full (window=&lt;optimized out&gt;, region=&lt;optimized out&gt;, clear_bg=CLEAR_BG_ALL, child_func=&lt;optimized out&gt;, 
    user_data=&lt;optimized out&gt;) at gdkwindow.c:5986
#3  0x00007ffff4ed04bb in gdk_window_invalidate_maybe_recurse_full (window=0x2855b40, region=0x28566d0, clear_bg=CLEAR_BG_ALL, child_func=0x7ffff4eccd40 &lt;true_predicate&gt;, user_data=0x0)
    at gdkwindow.c:5951
#4  0x00007ffff4ed90cc in gdk_window_invalidate_region_full (clear_bg=CLEAR_BG_ALL, invalidate_children=1, region=0x28566d0, window=&lt;optimized out&gt;) at gdkwindow.c:6041
#5  gdk_window_move_resize_internal (window=0x2855c60, with_move=&lt;optimized out&gt;, x=&lt;optimized out&gt;, y=&lt;optimized out&gt;, width=&lt;optimized out&gt;, height=&lt;optimized out&gt;) at gdkwindow.c:7696
#6  0x00007ffff51fb2b6 in gtk_drawing_area_size_allocate (widget=0x2857950, allocation=0x7fffffffd020) at gtkdrawingarea.c:125
#7  0x00007ffff43ccd00 in g_cclosure_marshal_VOID__BOXEDv (closure=0x2829a60, return_value=&lt;optimized out&gt;, instance=&lt;optimized out&gt;, args=&lt;optimized out&gt;, marshal_data=&lt;optimized out&gt;, 
    n_params=&lt;optimized out&gt;, param_types=0x2829ad0) at gmarshal.c:1160
#8  0x00007ffff43ca0af in _g_closure_invoke_va (closure=0x2829a60, return_value=0x0, instance=0x2857950, args=0x7fffffffcf48, n_params=1, param_types=0x2829ad0) at gclosure.c:831
#9  0x00007ffff43e37cd in g_signal_emit_valist (instance=0x2857950, signal_id=&lt;optimized out&gt;, detail=0, var_args=var_args@entry=0x7fffffffcf48) at gsignal.c:3215
#10 0x00007ffff43e4462 in g_signal_emit (instance=instance@entry=0x2857950, signal_id=&lt;optimized out&gt;, detail=detail@entry=0) at gsignal.c:3363
#11 0x00007ffff538386a in IA__gtk_widget_size_allocate (widget=0x2857950, allocation=allocation@entry=0x7fffffffd070) at gtkwidget.c:4115
#12 0x00007ffff529e98a in gtk_plug_size_allocate (widget=0x28582e0, allocation=0x7fffffffd390) at gtkplug.c:777
#13 0x00007ffff43ccd00 in g_cclosure_marshal_VOID__BOXEDv (closure=0x2829a60, return_value=&lt;optimized out&gt;, instance=&lt;optimized out&gt;, args=&lt;optimized out&gt;, marshal_data=&lt;optimized out&gt;, 
    n_params=&lt;optimized out&gt;, param_types=0x2829ad0) at gmarshal.c:1160
#14 0x00007ffff43ca0af in _g_closure_invoke_va (closure=0x2829a60, return_value=0x0, instance=0x28582e0, args=0x7fffffffd2b8, n_params=1, param_types=0x2829ad0) at gclosure.c:831
#15 0x00007ffff43e37cd in g_signal_emit_valist (instance=0x28582e0, signal_id=&lt;optimized out&gt;, detail=0, var_args=var_args@entry=0x7fffffffd2b8) at gsignal.c:3215
#16 0x00007ffff43e4462 in g_signal_emit (instance=instance@entry=0x28582e0, signal_id=&lt;optimized out&gt;, detail=detail@entry=0) at gsignal.c:3363
#17 0x00007ffff538386a in IA__gtk_widget_size_allocate (widget=0x28582e0, allocation=allocation@entry=0x7fffffffd3e0) at gtkwidget.c:4115
#18 0x00007ffff52da357 in gtk_socket_size_allocate (widget=0x2840c30, allocation=0x7fffffffd700) at gtksocket.c:528
#19 0x00007ffff43ccd00 in g_cclosure_marshal_VOID__BOXEDv (closure=0x2829a60, return_value=&lt;optimized out&gt;, instance=&lt;optimized out&gt;, args=&lt;optimized out&gt;, marshal_data=&lt;optimized out&gt;, 
    n_params=&lt;optimized out&gt;, param_types=0x2829ad0) at gmarshal.c:1160
#20 0x00007ffff43ca0af in _g_closure_invoke_va (closure=0x2829a60, return_value=0x0, instance=0x2840c30, args=0x7fffffffd628, n_params=1, param_types=0x2829ad0) at gclosure.c:831
#21 0x00007ffff43e37cd in g_signal_emit_valist (instance=0x2840c30, signal_id=&lt;optimized out&gt;, detail=0, var_args=var_args@entry=0x7fffffffd628) at gsignal.c:3215
#22 0x00007ffff43e4462 in g_signal_emit (instance=instance@entry=0x2840c30, signal_id=&lt;optimized out&gt;, detail=detail@entry=0) at gsignal.c:3363
#23 0x00007ffff538386a in IA__gtk_widget_size_allocate (widget=0x2840c30, allocation=allocation@entry=0x7fffffffd750) at gtkwidget.c:4115
#24 0x00007ffff538d1ea in gtk_window_size_allocate (widget=0x28581a0, allocation=0x7fffffffdaa0) at gtkwindow.c:4994
#25 0x00007ffff529e943 in gtk_plug_size_allocate (widget=0x28581a0, allocation=0x7fffffffdaa0) at gtkplug.c:755
#26 0x00007ffff43ccd00 in g_cclosure_marshal_VOID__BOXEDv (closure=0x2829a60, return_value=&lt;optimized out&gt;, instance=&lt;optimized out&gt;, args=&lt;optimized out&gt;, marshal_data=&lt;optimized out&gt;, 
    n_params=&lt;optimized out&gt;, param_types=0x2829ad0) at gmarshal.c:1160
#27 0x00007ffff43ca137 in _g_closure_invoke_va (closure=0x2829a60, return_value=0x0, instance=0x28581a0, args=0x7fffffffd9c8, n_params=1, param_types=0x2829ad0) at gclosure.c:831
#28 0x00007ffff43e37cd in g_signal_emit_valist (instance=0x28581a0, signal_id=&lt;optimized out&gt;, detail=0, var_args=var_args@entry=0x7fffffffd9c8) at gsignal.c:3215
#29 0x00007ffff43e4462 in g_signal_emit (instance=instance@entry=0x28581a0, signal_id=&lt;optimized out&gt;, detail=detail@entry=0) at gsignal.c:3363
#30 0x00007ffff538386a in IA__gtk_widget_size_allocate (widget=widget@entry=0x28581a0, allocation=allocation@entry=0x28581e0) at gtkwidget.c:4115
#31 0x00007ffff51f7a55 in IA__gtk_container_resize_children (container=container@entry=0x28581a0) at gtkcontainer.c:1478
#32 0x00007ffff538e488 in gtk_window_move_resize (window=0x28581a0) at gtkwindow.c:6403
#33 gtk_window_check_resize (container=0x28581a0) at gtkwindow.c:5408
#34 0x00007ffff43ca137 in _g_closure_invoke_va (closure=0x27a2f60, return_value=0x0, instance=0x28581a0, args=0x7fffffffddb8, n_params=0, param_types=0x0) at gclosure.c:831
#35 0x00007ffff43e37cd in g_signal_emit_valist (instance=0x28581a0, signal_id=&lt;optimized out&gt;, detail=0, var_args=var_args@entry=0x7fffffffddb8) at gsignal.c:3215
#36 0x00007ffff43e4462 in g_signal_emit (instance=&lt;optimized out&gt;, signal_id=&lt;optimized out&gt;, detail=&lt;optimized out&gt;) at gsignal.c:3363
#37 0x00007ffff51f79e0 in gtk_container_idle_sizer (data=&lt;optimized out&gt;) at gtkcontainer.c:1357
#38 0x00007ffff4eb1797 in gdk_threads_dispatch (data=0x284f280) at gdk.c:512
#39 0x00007ffff40d7715 in g_main_dispatch (context=0x279a550) at gmain.c:3066
#40 g_main_context_dispatch (context=context@entry=0x279a550) at gmain.c:3641
---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
#41 0x00007ffff40d7a78 in g_main_context_iterate (context=0x279a550, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at gmain.c:3712
#42 0x00007ffff40d7d3a in g_main_loop_run (loop=0x27b1640) at gmain.c:3906
#43 0x0000000000b73eec in PluginProcessMainUnix ()
#44 0x00007fffef0fbb45 in __libc_start_main (main=0xb5e7a0 &lt;main&gt;, argc=3, argv=0x7fffffffe138, init=&lt;optimized out&gt;, fini=&lt;optimized out&gt;, rtld_fini=&lt;optimized out&gt;, 
    stack_end=0x7fffffffe128) at libc-start.c:287
#45 0x0000000000b5e8b4 in _start ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003659</commentid>
    <comment_count>1</comment_count>
      <attachid>230083</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-04-24 09:21:18 -0700</bug_when>
    <thetext>Created attachment 230083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004002</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-04-25 00:59:09 -0700</bug_when>
    <thetext>Committed r167795: &lt;http://trac.webkit.org/changeset/167795&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230083</attachid>
            <date>2014-04-24 09:21:18 -0700</date>
            <delta_ts>2014-04-24 11:43:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-windowed-crash.diff</filename>
            <type>text/plain</type>
            <size>2219</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA4MDI1OGRmLi45MTExM2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjAg
QEAKIDIwMTQtMDQtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtHVEtdIFBsdWdpbiBwcm9jZXNzIGNyYXNoZXMgd2l0aCBHVEsyIHdpbmRv
d2VkIHBsdWdpbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzMjEyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEl0IGhhcHBlbnMgc29tZXRpbWVzIGJlY2F1c2UgdGhlIHNvY2tldCBpcyB1c2VkIGJlZm9y
ZSB0aGUgcGx1ZworICAgICAgICBoYXMgYmVlbiBhZGRlZC4gQSBydW50aW1lIGNyaXRpY2FsIHdh
cm5pbmdzIGlzIHNob3duIGFuZCBpdAorICAgICAgICBzb21ldGltZXMgZW5kcyB1cCBjcmFzaGlu
Zy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQ
bHVnaW5YMTEuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1Q
b3N0SW5pdGlhbGl6ZVdpbmRvd2VkKTogRG8gbm90CisgICAgICAgIHNob3cgdGhlIHBsdWcgd2lk
Z2V0IHVudGlsIHRoZSBzb2NrZXQgaXMgY29ubmVjdGVkLgorCisyMDE0LTA0LTI0ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBbR1RLXSB3bW9k
ZT0ndHJhbnNwYXJlbnQnIGZvciBmbGFzaCBwbHVnaW4gZG9lc24ndCB3b3JrCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjAwNTUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2Fw
ZVBsdWdpblgxMS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUveDExL05ldHNjYXBlUGx1Z2luWDExLmNwcAppbmRleCA1ZjQzZWMyLi5kYjRiZjI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUveDExL05l
dHNjYXBlUGx1Z2luWDExLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1Z2luWDExLmNwcApAQCAtMTUwLDEwICsxNTAsMTEg
QEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1Qb3N0SW5pdGlhbGl6ZVdpbmRvd2VkKGJv
b2wgbmVlZHNYRW1iZWQsIHVpbnQ2NF90IHcKICAgICAvLyBjb250YWluaW5nIGEgcGx1ZyB3aXRo
IHRoZSBVSSBwcm9jZXNzIHNvY2tldCBlbWJlZGRlZC4KICAgICBtX3BsYXRmb3JtUGx1Z2luV2lk
Z2V0ID0gZ3RrX3BsdWdfbmV3KHN0YXRpY19jYXN0PFdpbmRvdz4od2luZG93SUQpKTsKICAgICBH
dGtXaWRnZXQqIHNvY2tldCA9IGd0a19zb2NrZXRfbmV3KCk7Ci0gICAgZ19zaWduYWxfY29ubmVj
dChzb2NrZXQsICJwbHVnLXJlbW92ZWQiLCBHX0NBTExCQUNLKHNvY2tldFBsdWdSZW1vdmVkQ2Fs
bGJhY2spLCAwKTsKKyAgICAvLyBEbyBub3Qgc2hvdyB0aGUgcGx1ZyB3aWRnZXQgdW50aWwgdGhl
IHNvY2tldCBpcyBjb25uZWN0ZWQuCisgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKHNvY2tl
dCwgInBsdWctYWRkZWQiLCBHX0NBTExCQUNLKGd0a193aWRnZXRfc2hvdyksIG1fcGxhdGZvcm1Q
bHVnaW5XaWRnZXQpOworICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc29ja2V0LCAicGx1Zy1yZW1vdmVk
IiwgR19DQUxMQkFDSyhzb2NrZXRQbHVnUmVtb3ZlZENhbGxiYWNrKSwgbnVsbHB0cik7CiAgICAg
Z3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihtX3BsYXRmb3JtUGx1Z2luV2lkZ2V0KSwg
c29ja2V0KTsKICAgICBndGtfd2lkZ2V0X3Nob3coc29ja2V0KTsKLSAgICBndGtfd2lkZ2V0X3No
b3cobV9wbGF0Zm9ybVBsdWdpbldpZGdldCk7CiAKICAgICBtX25wV2luZG93LndpbmRvdyA9IEdJ
TlRfVE9fUE9JTlRFUihndGtfc29ja2V0X2dldF9pZChHVEtfU09DS0VUKHNvY2tldCkpKTsKICAg
ICBHZGtXaW5kb3cqIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3dpbmRvdyhzb2NrZXQpOwo=
</data>
<flag name="review"
          id="254460"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>