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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/pepper/pepper_plugin_delegate_impl.h ('k') | ppapi/ppapi_proxy.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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));
}
}
« no previous file with comments | « content/renderer/pepper/pepper_plugin_delegate_impl.h ('k') | ppapi/ppapi_proxy.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698