Changeset 233904 in webkit


Ignore:
Timestamp:
Jul 17, 2018 8:43:37 PM (6 years ago)
Author:
Chris Dumez
Message:

RELEASE_ASSERT() under IPC::Connection::sendSync() from PluginProxy::supportsSnapshotting()
https://bugs.webkit.org/show_bug.cgi?id=187740
<rdar://problem/41818955>

Reviewed by Youenn Fablet.

As per the crash trace, PluginProxy::supportsSnapshotting() can be called during layout but does synchronous
IPC. As a result, we need to prevent WebCore re-entrancy by using DoNotProcessIncomingMessagesWhenWaitingForSyncReply
sendOption.

  • WebProcess/Plugins/PluginProxy.cpp:

(WebKit::PluginProxy::supportsSnapshotting const):

Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r233897 r233904  
     12018-07-17  Chris Dumez  <cdumez@apple.com>
     2
     3        RELEASE_ASSERT() under IPC::Connection::sendSync() from PluginProxy::supportsSnapshotting()
     4        https://bugs.webkit.org/show_bug.cgi?id=187740
     5        <rdar://problem/41818955>
     6
     7        Reviewed by Youenn Fablet.
     8
     9        As per the crash trace, PluginProxy::supportsSnapshotting() can be called during layout but does synchronous
     10        IPC. As a result, we need to prevent WebCore re-entrancy by using DoNotProcessIncomingMessagesWhenWaitingForSyncReply
     11        sendOption.
     12
     13        * WebProcess/Plugins/PluginProxy.cpp:
     14        (WebKit::PluginProxy::supportsSnapshotting const):
     15
    1162018-07-17  Chris Dumez  <cdumez@apple.com>
    217
  • trunk/Source/WebKit/WebProcess/Plugins/PluginProxy.cpp

    r232157 r233904  
    235235
    236236    bool isSupported = false;
    237     if (m_connection && !m_connection->connection()->sendSync(Messages::PluginControllerProxy::SupportsSnapshotting(), Messages::PluginControllerProxy::SupportsSnapshotting::Reply(isSupported), m_pluginInstanceID))
     237    if (m_connection && !m_connection->connection()->sendSync(Messages::PluginControllerProxy::SupportsSnapshotting(), Messages::PluginControllerProxy::SupportsSnapshotting::Reply(isSupported), m_pluginInstanceID, Seconds::infinity(), IPC::SendSyncOption::DoNotProcessIncomingMessagesWhenWaitingForSyncReply))
    238238        return false;
    239239
Note: See TracChangeset for help on using the changeset viewer.