<?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>145114</bug_id>
          
          <creation_ts>2015-05-17 23:23:04 -0700</creation_ts>
          <short_desc>[GTK] Crash when handling NPAPI plugin</short_desc>
          <delta_ts>2020-08-17 06:48:11 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          <see_also>https://bugzilla.redhat.com/show_bug.cgi?id=1222241</see_also>
    
    <see_also>https://bugzilla.redhat.com/show_bug.cgi?id=1267331</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="Tomas Popela">tpopela</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1095547</commentid>
    <comment_count>0</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2015-05-17 23:23:04 -0700</bug_when>
    <thetext>As reported on https://bugzilla.redhat.com/show_bug.cgi?id=1222241 the WebProcess (WebKitGTK+ 2.8.1) crashed when handling the libgnome-shell-browser-plugin plugin. I&apos;m curious if we can simply early return from WebKit::NetscapePlugin::platformVisibilityDidChange if we cannot obtain valid GdkWindow with gtk_plug_get_socket_window.

#0  0x00007f5f2dbc2b82 in _gdk_window_has_impl (window=window@entry=0x0) at gdkwindow.c:593
No locals.
#1  0x00007f5f2dbf39ee in gdk_x11_window_get_xid (window=0x0) at gdkwindow-x11.c:5527
No locals.
#2  0x00007f5f3594c28d in WebKit::NetscapePlugin::platformVisibilityDidChange (this=0x7f5f117fb158) at /usr/src/debug/webkitgtk-2.8.1/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:291
        windowID = 0
#3  0x00007f5f357515a6 in WebKit::PluginControllerProxy::visibilityDidChange (this=0x7f5f396c3eb0, isVisible=&lt;optimized out&gt;) at /usr/src/debug/webkitgtk-2.8.1/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp:445
No locals.
#4  0x00007f5f3595e8ac in callMemberFunctionImpl&lt;WebKit::PluginControllerProxy, void (WebKit::PluginControllerProxy::*)(bool), std::tuple&lt;bool&gt;, 0ul&gt; (args=&lt;optimized out&gt;, function=&lt;optimized out&gt;, object=0x7f5f396c3eb0) at /usr/src/debug/webkitgtk-2.8.1/Source/WebKit2/Platform/IPC/HandleMessage.h:16
No locals.
#5  callMemberFunction&lt;WebKit::PluginControllerProxy, void (WebKit::PluginControllerProxy::*)(bool), std::tuple&lt;bool&gt;, std::make_index_sequence&lt;1ul&gt; &gt; (function=&lt;optimized out&gt;, object=0x7f5f396c3eb0, args=&lt;unknown type in /usr/lib/debug/usr/lib64/libwebkit2gtk-4.0.so.37.6.4.debug, CU 0xbbd7d6e, DIE 0xbc148d3&gt;) at /usr/src/debug/webkitgtk-2.8.1/Source/WebKit2/Platform/IPC/HandleMessage.h:22
No locals.
#6  IPC::handleMessage&lt;Messages::PluginControllerProxy::MutedStateChanged, WebKit::PluginControllerProxy, void (WebKit::PluginControllerProxy::*)(bool)&gt; (decoder=..., object=object@entry=0x7f5f396c3eb0, function=(void (WebKit::PluginControllerProxy::*)(WebKit::PluginControllerProxy * const, bool)) 0x7f5f35751590 &lt;WebKit::PluginControllerProxy::visibilityDidChange(bool)&gt;) at /usr/src/debug/webkitgtk-2.8.1/Source/WebKit2/Platform/IPC/HandleMessage.h:92
        arguments = std::tuple containing = {[1] = false}
#7  0x00007f5f3595d9f4 in WebKit::PluginControllerProxy::didReceivePluginControllerProxyMessage (this=this@entry=0x7f5f396c3eb0, connection=..., decoder=...) at /usr/src/debug/webkitgtk-2.8.1/x86_64-redhat-linux-gnu/DerivedSources/WebKit2/PluginControllerProxyMessageReceiver.cpp:81
No locals.
#8  0x00007f5f35754d88 in WebKit::WebProcessConnection::didReceiveMessage (this=&lt;optimized out&gt;, connection=..., decoder=...) at /usr/src/debug/webkitgtk-2.8.1/Source/WebKit2/PluginProcess/WebProcessConnection.cpp:140
        protector = {m_pluginController = 0x7f5f396c3eb0}
#9  0x00007f5f3574bcfb in IPC::Connection::dispatchMessage (this=this@entry=0x7f5f117ff3f0, message=std::unique_ptr&lt;IPC::MessageDecoder&gt; containing 0x7f5f11fd5420) at /usr/src/debug/webkitgtk-2.8.1/Source/WebKit2/Platform/IPC/Connection.cpp:860
        oldDidReceiveInvalidMessage = false
#10 0x00007f5f3574c551 in IPC::Connection::dispatchOneMessage (this=0x7f5f117ff3f0) at /usr/src/debug/webkitgtk-2.8.1/Source/WebKit2/Platform/IPC/Connection.cpp:888
        message = std::unique_ptr&lt;IPC::MessageDecoder&gt; containing 0x0
#11 0x00007f5f36b3bf21 in operator() (this=0x7ffde75c4570) at /usr/include/c++/5.0.0/functional:2271
No locals.
#12 WTF::RunLoop::performWork (this=0x7f5f11ff8000) at /usr/src/debug/webkitgtk-2.8.1/Source/WTF/wtf/RunLoop.cpp:104
        function = {&lt;std::_Maybe_unary_or_binary_function&lt;void&gt;&gt; = {&lt;No data fields&gt;}, &lt;std::_Function_base&gt; = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x7f5ec4001e00, _M_const_object = 0x7f5ec4001e00, _M_function_pointer = 0x7f5ec4001e00, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x7f5ec4001e00, this adjustment 140046412330767}, _M_pod_data = &quot;\000\036\000\304^\177\000\000\017\267\250\030_\177\000&quot;}, _M_manager = 0x7f5f3574d280 &lt;std::_Function_base::_Base_manager&lt;WTF::Function&lt;void ()&gt; &gt;::_M_manager(std::_Any_data&amp;, std::_Any_data const&amp;, std::_Manager_operation)&gt;}, _M_invoker = 0x7f5f3574d1e0 &lt;std::_Function_handler&lt;void (), WTF::Function&lt;void ()&gt; &gt;::_M_invoke(std::_Any_data const&amp;)&gt;}
        functionsToHandle = &lt;optimized out&gt;
#13 0x00007f5f34f4b225 in operator() (this=0x7ffde75c4638) at /usr/include/c++/5.0.0/functional:2271
No locals.
#14 WTF::GMainLoopSource::voidCallback (this=0x7f5f11fd82c0) at /usr/src/debug/webkitgtk-2.8.1/Source/WTF/wtf/gobject/GMainLoopSource.cpp:365
        context = {source = {m_ptr = 0x7f5ec4001e60}, cancellable = {m_ptr = 0x0}, socketCancellable = {m_ptr = 0x0}, voidCallback = {&lt;std::_Maybe_unary_or_binary_function&lt;void&gt;&gt; = {&lt;No data fields&gt;}, &lt;std::_Function_base&gt; = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x7f5ec4001e40, _M_const_object = 0x7f5ec4001e40, _M_function_pointer = 0x7f5ec4001e40, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x7f5ec4001e40, this adjustment 140046961219824}, _M_pod_data = &quot;@\036\000\304^\177\000\000\360\030`9_\177\000&quot;}, _M_manager = 0x7f5f36b3fdc0 &lt;std::_Function_base::_Base_manager&lt;WTF::RunLoop::wakeUp()::&lt;lambda()&gt; &gt;::_M_manager(std::_Any_data &amp;, const std::_Any_data &amp;, std::_Manager_operation)&gt;}, _M_invoker = 0x7f5f36b3fd80 &lt;std::_Function_handler&lt;void(), WTF::RunLoop::wakeUp()::&lt;lambda()&gt; &gt;::_M_invoke(const std::_Any_data &amp;)&gt;}, boolCallback = {&lt;std::_Maybe_unary_or_binary_function&lt;bool&gt;&gt; = {&lt;No data fields&gt;}, &lt;std::_Function_base&gt; = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x0, _M_const_object = 0x0, _M_function_pointer = 0x0, _M_member_pointer = NULL}, _M_pod_data = &apos;\000&apos; &lt;repeats 15 times&gt;}, _M_manager = 0x0}, _M_invoker = 0x0}, socketCallback = {&lt;std::_Maybe_unary_or_binary_function&lt;bool, GIOCondition&gt;&gt; = {&lt;std::unary_function&lt;GIOCondition, bool&gt;&gt; = {&lt;No data fields&gt;}, &lt;No data fields&gt;}, &lt;std::_Function_base&gt; = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x7f5ec4000020, _M_const_object = 0x7f5ec4000020, _M_function_pointer = 0x7f5ec4000020, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x7f5ec4000020, this adjustment 8}, _M_pod_data = &quot; \000\000\304^\177\000\000\b\000\000\000\000\000\000&quot;}, _M_manager = 0x0}, _M_invoker = 0x7f5f11fd82c0}, destroyCallback = {&lt;std::_Maybe_unary_or_binary_function&lt;void&gt;&gt; = {&lt;No data fields&gt;}, &lt;std::_Function_base&gt; = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x0, _M_const_object = 0x0, _M_function_pointer = 0x0, _M_member_pointer = NULL}, _M_pod_data = &quot;\000\000\000\000\000\000\000\000 \000\000\304^\177\000&quot;}, _M_manager = 0x0}, _M_invoker = 0x7f5f18a8b650}}
#15 0x00007f5f34f4742a in WTF::GMainLoopSource::voidSourceCallback (source=&lt;optimized out&gt;) at /usr/src/debug/webkitgtk-2.8.1/Source/WTF/wtf/gobject/GMainLoopSource.cpp:456
No locals.
#16 0x00007f5f31e84a8a in g_main_dispatch (context=0x7f5f396018f0) at gmain.c:3122
        dispatch = 0x7f5f31e81530 &lt;g_idle_dispatch&gt;
        prev_source = 0x0
        was_in_call = 0
        user_data = 0x7f5f11fd82c0
        callback = 0x7f5f34f47420 &lt;WTF::GMainLoopSource::voidSourceCallback(WTF::GMainLoopSource*)&gt;
        cb_funcs = 0x7f5f321738a0 &lt;g_source_callback_funcs&gt;
        cb_data = 0x7f5ec4001ef0
        need_destroy = &lt;optimized out&gt;
        source = 0x7f5ec4001e60
        current = 0x7f5f395e9500
        i = 0
#17 g_main_context_dispatch (context=context@entry=0x7f5f396018f0) at gmain.c:3737
No locals.
#18 0x00007f5f31e84e20 in g_main_context_iterate (context=0x7f5f396018f0, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at gmain.c:3808
        max_priority = 2147483647
        timeout = 1133
        some_ready = 1
        nfds = &lt;optimized out&gt;
        allocated_nfds = 3
        fds = 0x7f5f3968e920
#19 0x00007f5f31e85142 in g_main_loop_run (loop=0x7f5f3968e860) at gmain.c:4002
        __func__ = &quot;g_main_loop_run&quot;
#20 0x00007f5f358e1e4b in WebKit::ChildProcessMain&lt;WebKit::PluginProcess, WebKit::PluginProcessMain&gt; (argc=&lt;optimized out&gt;, argv=&lt;optimized out&gt;) at /usr/src/debug/webkitgtk-2.8.1/Source/WebKit2/Shared/unix/ChildProcessMain.h:61
        childMain = {&lt;WebKit::ChildProcessMainBase&gt; = {_vptr.ChildProcessMainBase = 0x7f5f3723fd50 &lt;vtable for WebKit::PluginProcessMain+16&gt;, m_parameters = {uiProcessName = {m_impl = {m_ptr = 0x0}}, clientIdentifier = {m_impl = {m_ptr = 0x0}}, connectionIdentifier = 34, extraInitializationData = {m_impl = {static m_maxLoad = &lt;optimized out&gt;, static m_minLoad = &lt;optimized out&gt;, m_table = 0x7f5f11ffb200, m_tableSize = 8, m_tableSizeMask = 7, m_keyCount = 1, m_deletedCount = 0}}}}, &lt;No data fields&gt;}
#21 0x00007f5f2c4b8790 in __libc_start_main (main=0x7f5f37600bd0 &lt;main(int, char**)&gt;, argc=3, argv=0x7ffde75c4998, init=&lt;optimized out&gt;, fini=&lt;optimized out&gt;, rtld_fini=&lt;optimized out&gt;, stack_end=0x7ffde75c4988) at libc-start.c:289
        result = &lt;optimized out&gt;
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -5599487145779380534, 140046927662048, 140728485038480, 0, 0, -5544212190049583414, -5599497930774659382}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7ffde75c49b8, 0x7f5f375ff148}, data = {prev = 0x0, cleanup = 0x0, canceltype = -413382216}}}
        not_first_call = &lt;optimized out&gt;
#22 0x00007f5f37600c09 in _start ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680795</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-08-17 06:48:11 -0700</bug_when>
    <thetext>Plugins are no longer supported.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>