| Index: content/renderer/pepper/pepper_plugin_delegate_impl.cc
|
| diff --git a/content/renderer/pepper/pepper_plugin_delegate_impl.cc b/content/renderer/pepper/pepper_plugin_delegate_impl.cc
|
| index a68ab1cce802edea26ca826df8b4a45f677f401a..c75191a430e01c2e4fc657c970f88e5a7b2ea0c1 100644
|
| --- a/content/renderer/pepper/pepper_plugin_delegate_impl.cc
|
| +++ b/content/renderer/pepper/pepper_plugin_delegate_impl.cc
|
| @@ -64,6 +64,8 @@
|
| #include "ppapi/shared_impl/platform_file.h"
|
| #include "ppapi/shared_impl/ppapi_preferences.h"
|
| #include "ppapi/shared_impl/ppb_device_ref_shared.h"
|
| +#include "ppapi/thunk/enter.h"
|
| +#include "ppapi/thunk/ppb_tcp_server_socket_private_api.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebCursorInfo.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebFileChooserCompletion.h"
|
| @@ -1060,34 +1062,26 @@ void PepperPluginDelegateImpl::UDPSocketClose(uint32 socket_id) {
|
| }
|
|
|
| void PepperPluginDelegateImpl::TCPServerSocketListen(
|
| - webkit::ppapi::PPB_TCPServerSocket_Private_Impl* socket,
|
| - uint32 temp_socket_id,
|
| + PP_Resource socket_resource,
|
| const PP_NetAddress_Private& addr,
|
| int32_t backlog) {
|
| - uninitialized_tcp_server_sockets_.AddWithID(socket, temp_socket_id);
|
| render_view_->Send(
|
| new PpapiHostMsg_PPBTCPServerSocket_Listen(
|
| - render_view_->routing_id(), 0, temp_socket_id, addr, backlog));
|
| + render_view_->routing_id(), 0, socket_resource, addr, backlog));
|
| }
|
|
|
| -void PepperPluginDelegateImpl::TCPServerSocketAccept(uint32 real_socket_id) {
|
| - DCHECK(tcp_server_sockets_.Lookup(real_socket_id));
|
| +void PepperPluginDelegateImpl::TCPServerSocketAccept(uint32 server_socket_id) {
|
| + DCHECK(tcp_server_sockets_.Lookup(server_socket_id));
|
| render_view_->Send(new PpapiHostMsg_PPBTCPServerSocket_Accept(
|
| - real_socket_id));
|
| + render_view_->routing_id(), server_socket_id));
|
| }
|
|
|
| void PepperPluginDelegateImpl::TCPServerSocketStopListening(
|
| - uint32 real_socket_id,
|
| - uint32 temp_socket_id) {
|
| - if (real_socket_id == 0) {
|
| - if (uninitialized_tcp_server_sockets_.Lookup(temp_socket_id)) {
|
| - // Pending Listen request.
|
| - uninitialized_tcp_server_sockets_.Remove(temp_socket_id);
|
| - }
|
| - } else {
|
| - render_view_->Send(
|
| - new PpapiHostMsg_PPBTCPServerSocket_Destroy(real_socket_id));
|
| - tcp_server_sockets_.Remove(real_socket_id);
|
| + PP_Resource socket_resource,
|
| + uint32 socket_id) {
|
| + if (socket_id != 0) {
|
| + render_view_->Send(new PpapiHostMsg_PPBTCPServerSocket_Destroy(socket_id));
|
| + tcp_server_sockets_.Remove(socket_id);
|
| }
|
| }
|
|
|
| @@ -1504,38 +1498,40 @@ void PepperPluginDelegateImpl::OnUDPSocketSendToACK(uint32 plugin_dispatcher_id,
|
|
|
| void PepperPluginDelegateImpl::OnTCPServerSocketListenACK(
|
| uint32 plugin_dispatcher_id,
|
| - uint32 real_socket_id,
|
| - uint32 temp_socket_id,
|
| + PP_Resource socket_resource,
|
| + uint32 socket_id,
|
| int32_t status) {
|
| - webkit::ppapi::PPB_TCPServerSocket_Private_Impl* socket =
|
| - uninitialized_tcp_server_sockets_.Lookup(temp_socket_id);
|
| - if (socket == NULL) {
|
| - // StopListening was called before completion of Listen.
|
| - render_view_->Send(
|
| - new PpapiHostMsg_PPBTCPServerSocket_Destroy(real_socket_id));
|
| - } else {
|
| - uninitialized_tcp_server_sockets_.Remove(temp_socket_id);
|
| -
|
| + ppapi::thunk::EnterResource<ppapi::thunk::PPB_TCPServerSocket_Private_API>
|
| + enter(socket_resource, true);
|
| + if (enter.succeeded()) {
|
| + ppapi::PPB_TCPServerSocket_Shared* socket =
|
| + static_cast<ppapi::PPB_TCPServerSocket_Shared*>(enter.object());
|
| if (status == PP_OK)
|
| - tcp_server_sockets_.AddWithID(socket, real_socket_id);
|
| - socket->OnListenCompleted(real_socket_id, status);
|
| + tcp_server_sockets_.AddWithID(socket, socket_id);
|
| + socket->OnListenCompleted(socket_id, status);
|
| + } else if (socket_id != 0 && status == PP_OK) {
|
| + // StopListening was called before completion of Listen.
|
| + render_view_->Send(new PpapiHostMsg_PPBTCPServerSocket_Destroy(socket_id));
|
| }
|
| }
|
|
|
| void PepperPluginDelegateImpl::OnTCPServerSocketAcceptACK(
|
| uint32 plugin_dispatcher_id,
|
| - uint32 real_server_socket_id,
|
| + uint32 server_socket_id,
|
| uint32 accepted_socket_id,
|
| const PP_NetAddress_Private& local_addr,
|
| const PP_NetAddress_Private& remote_addr) {
|
| - webkit::ppapi::PPB_TCPServerSocket_Private_Impl* socket =
|
| - tcp_server_sockets_.Lookup(real_server_socket_id);
|
| + ppapi::PPB_TCPServerSocket_Shared* socket =
|
| + tcp_server_sockets_.Lookup(server_socket_id);
|
| if (socket) {
|
| - bool succeeded = accepted_socket_id != 0;
|
| + bool succeeded = (accepted_socket_id != 0);
|
| socket->OnAcceptCompleted(succeeded,
|
| accepted_socket_id,
|
| local_addr,
|
| remote_addr);
|
| + } else if (accepted_socket_id != 0) {
|
| + render_view_->Send(
|
| + new PpapiHostMsg_PPBTCPSocket_Disconnect(accepted_socket_id));
|
| }
|
| }
|
|
|
|
|