Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(552)

Side by Side Diff: content/renderer/pepper/pepper_plugin_delegate_impl.cc

Issue 9669038: Added out-of-process support for server sockets. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Sync. Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/pepper/pepper_plugin_delegate_impl.h" 5 #include "content/renderer/pepper/pepper_plugin_delegate_impl.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <map> 8 #include <map>
9 #include <queue> 9 #include <queue>
10 10
(...skipping 1042 matching lines...) Expand 10 before | Expand all | Expand 10 after
1053 void PepperPluginDelegateImpl::UDPSocketClose(uint32 socket_id) { 1053 void PepperPluginDelegateImpl::UDPSocketClose(uint32 socket_id) {
1054 // There are no DCHECK(udp_sockets_.Lookup(socket_id)) because it 1054 // There are no DCHECK(udp_sockets_.Lookup(socket_id)) because it
1055 // can be called before UDPSocketBind is called. 1055 // can be called before UDPSocketBind is called.
1056 render_view_->Send(new PpapiHostMsg_PPBUDPSocket_Close(socket_id)); 1056 render_view_->Send(new PpapiHostMsg_PPBUDPSocket_Close(socket_id));
1057 if (udp_sockets_.Lookup(socket_id)) 1057 if (udp_sockets_.Lookup(socket_id))
1058 udp_sockets_.Remove(socket_id); 1058 udp_sockets_.Remove(socket_id);
1059 } 1059 }
1060 1060
1061 void PepperPluginDelegateImpl::TCPServerSocketListen( 1061 void PepperPluginDelegateImpl::TCPServerSocketListen(
1062 webkit::ppapi::PPB_TCPServerSocket_Private_Impl* socket, 1062 webkit::ppapi::PPB_TCPServerSocket_Private_Impl* socket,
1063 uint32 temp_socket_id, 1063 PP_Resource socket_resource,
1064 const PP_NetAddress_Private& addr, 1064 const PP_NetAddress_Private& addr,
1065 int32_t backlog) { 1065 int32_t backlog) {
1066 uninitialized_tcp_server_sockets_.AddWithID(socket, temp_socket_id); 1066 uninitialized_tcp_server_sockets_.AddWithID(socket, socket_resource);
1067 render_view_->Send( 1067 render_view_->Send(
1068 new PpapiHostMsg_PPBTCPServerSocket_Listen( 1068 new PpapiHostMsg_PPBTCPServerSocket_Listen(
1069 render_view_->routing_id(), 0, temp_socket_id, addr, backlog)); 1069 render_view_->routing_id(), 0, socket_resource, addr, backlog));
1070 } 1070 }
1071 1071
1072 void PepperPluginDelegateImpl::TCPServerSocketAccept(uint32 real_socket_id) { 1072 void PepperPluginDelegateImpl::TCPServerSocketAccept(uint32 real_socket_id) {
1073 DCHECK(tcp_server_sockets_.Lookup(real_socket_id)); 1073 DCHECK(tcp_server_sockets_.Lookup(real_socket_id));
1074 render_view_->Send(new PpapiHostMsg_PPBTCPServerSocket_Accept( 1074 render_view_->Send(new PpapiHostMsg_PPBTCPServerSocket_Accept(
1075 real_socket_id)); 1075 render_view_->routing_id(), real_socket_id));
1076 } 1076 }
1077 1077
1078 void PepperPluginDelegateImpl::TCPServerSocketStopListening( 1078 void PepperPluginDelegateImpl::TCPServerSocketStopListening(
1079 uint32 real_socket_id, 1079 PP_Resource socket_resource,
1080 uint32 temp_socket_id) { 1080 uint32 real_socket_id) {
1081 if (real_socket_id == 0) { 1081 if (real_socket_id == 0) {
1082 if (uninitialized_tcp_server_sockets_.Lookup(temp_socket_id)) { 1082 if (uninitialized_tcp_server_sockets_.Lookup(socket_resource)) {
1083 // Pending Listen request. 1083 // Pending Listen request.
1084 uninitialized_tcp_server_sockets_.Remove(temp_socket_id); 1084 uninitialized_tcp_server_sockets_.Remove(socket_resource);
1085 } 1085 }
1086 } else { 1086 } else {
1087 render_view_->Send( 1087 render_view_->Send(
1088 new PpapiHostMsg_PPBTCPServerSocket_Destroy(real_socket_id)); 1088 new PpapiHostMsg_PPBTCPServerSocket_Destroy(real_socket_id));
1089 tcp_server_sockets_.Remove(real_socket_id); 1089 tcp_server_sockets_.Remove(real_socket_id);
1090 } 1090 }
1091 } 1091 }
1092 1092
1093 bool PepperPluginDelegateImpl::AddNetworkListObserver( 1093 bool PepperPluginDelegateImpl::AddNetworkListObserver(
1094 webkit_glue::NetworkListObserver* observer) { 1094 webkit_glue::NetworkListObserver* observer) {
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
1456 bool succeeded, 1456 bool succeeded,
1457 int32_t bytes_written) { 1457 int32_t bytes_written) {
1458 webkit::ppapi::PPB_UDPSocket_Private_Impl* socket = 1458 webkit::ppapi::PPB_UDPSocket_Private_Impl* socket =
1459 udp_sockets_.Lookup(socket_id); 1459 udp_sockets_.Lookup(socket_id);
1460 if (socket) 1460 if (socket)
1461 socket->OnSendToCompleted(succeeded, bytes_written); 1461 socket->OnSendToCompleted(succeeded, bytes_written);
1462 } 1462 }
1463 1463
1464 void PepperPluginDelegateImpl::OnTCPServerSocketListenACK( 1464 void PepperPluginDelegateImpl::OnTCPServerSocketListenACK(
1465 uint32 plugin_dispatcher_id, 1465 uint32 plugin_dispatcher_id,
1466 PP_Resource socket_resource,
1466 uint32 real_socket_id, 1467 uint32 real_socket_id,
1467 uint32 temp_socket_id,
1468 int32_t status) { 1468 int32_t status) {
1469 webkit::ppapi::PPB_TCPServerSocket_Private_Impl* socket = 1469 webkit::ppapi::PPB_TCPServerSocket_Private_Impl* socket =
1470 uninitialized_tcp_server_sockets_.Lookup(temp_socket_id); 1470 uninitialized_tcp_server_sockets_.Lookup(socket_resource);
yzshen1 2012/03/13 17:46:32 Can we also use EnterResource and remove uninitial
ygorshenin1 2012/03/14 11:36:18 Sure, thanks! On 2012/03/13 17:46:32, yzshen1 wro
1471 if (socket == NULL) { 1471 if (socket == NULL) {
1472 // StopListening was called before completion of Listen. 1472 // StopListening was called before completion of Listen.
1473 render_view_->Send( 1473 render_view_->Send(
1474 new PpapiHostMsg_PPBTCPServerSocket_Destroy(real_socket_id)); 1474 new PpapiHostMsg_PPBTCPServerSocket_Destroy(real_socket_id));
1475 } else { 1475 } else {
1476 uninitialized_tcp_server_sockets_.Remove(temp_socket_id); 1476 uninitialized_tcp_server_sockets_.Remove(socket_resource);
1477 1477
1478 if (status == PP_OK) 1478 if (status == PP_OK)
1479 tcp_server_sockets_.AddWithID(socket, real_socket_id); 1479 tcp_server_sockets_.AddWithID(socket, real_socket_id);
1480 socket->OnListenCompleted(real_socket_id, status); 1480 socket->OnListenCompleted(real_socket_id, status);
1481 } 1481 }
1482 } 1482 }
1483 1483
1484 void PepperPluginDelegateImpl::OnTCPServerSocketAcceptACK( 1484 void PepperPluginDelegateImpl::OnTCPServerSocketAcceptACK(
1485 uint32 plugin_dispatcher_id, 1485 uint32 plugin_dispatcher_id,
1486 uint32 real_server_socket_id, 1486 uint32 real_socket_id,
1487 uint32 accepted_socket_id, 1487 uint32 accepted_socket_id,
1488 const PP_NetAddress_Private& local_addr, 1488 const PP_NetAddress_Private& local_addr,
1489 const PP_NetAddress_Private& remote_addr) { 1489 const PP_NetAddress_Private& remote_addr) {
1490 webkit::ppapi::PPB_TCPServerSocket_Private_Impl* socket = 1490 webkit::ppapi::PPB_TCPServerSocket_Private_Impl* socket =
1491 tcp_server_sockets_.Lookup(real_server_socket_id); 1491 tcp_server_sockets_.Lookup(real_socket_id);
1492 if (socket) { 1492 if (socket) {
1493 bool succeeded = accepted_socket_id != 0; 1493 bool succeeded = (accepted_socket_id != 0);
1494 socket->OnAcceptCompleted(succeeded, 1494 socket->OnAcceptCompleted(succeeded,
1495 accepted_socket_id, 1495 accepted_socket_id,
1496 local_addr, 1496 local_addr,
1497 remote_addr); 1497 remote_addr);
1498 } 1498 }
yzshen1 2012/03/13 17:46:32 Please consider sending back a message to destroy
ygorshenin1 2012/03/14 11:36:18 Done.
1499 } 1499 }
1500 1500
1501 int PepperPluginDelegateImpl::GetRoutingID() const { 1501 int PepperPluginDelegateImpl::GetRoutingID() const {
1502 return render_view_->routing_id(); 1502 return render_view_->routing_id();
1503 } 1503 }
1504 1504
1505 int PepperPluginDelegateImpl::OpenDevice(PP_DeviceType_Dev type, 1505 int PepperPluginDelegateImpl::OpenDevice(PP_DeviceType_Dev type,
1506 const std::string& device_id, 1506 const std::string& device_id,
1507 const OpenDeviceCallback& callback) { 1507 const OpenDeviceCallback& callback) {
1508 int request_id = 1508 int request_id =
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1582 render_view_->mouse_lock_dispatcher()->OnLockTargetDestroyed(target); 1582 render_view_->mouse_lock_dispatcher()->OnLockTargetDestroyed(target);
1583 delete target; 1583 delete target;
1584 mouse_lock_instances_.erase(it); 1584 mouse_lock_instances_.erase(it);
1585 } 1585 }
1586 } 1586 }
1587 1587
1588 webkit_glue::ClipboardClient* 1588 webkit_glue::ClipboardClient*
1589 PepperPluginDelegateImpl::CreateClipboardClient() const { 1589 PepperPluginDelegateImpl::CreateClipboardClient() const {
1590 return new RendererClipboardClient; 1590 return new RendererClipboardClient;
1591 } 1591 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698