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

Unified Diff: ppapi/proxy/udp_socket_resource_base.h

Issue 869883003: Never lock the Pepper proxy lock on the IO thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix size_t vs int32_t Created 5 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 | « ppapi/proxy/udp_socket_filter.cc ('k') | ppapi/proxy/udp_socket_resource_base.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/proxy/udp_socket_resource_base.h
diff --git a/ppapi/proxy/udp_socket_resource_base.h b/ppapi/proxy/udp_socket_resource_base.h
index 61ed66478048d4bf4b503c17b15c1ef753d15f79..e5a8aef805f4f1f2415364aa1e7a295fc2010dbc 100644
--- a/ppapi/proxy/udp_socket_resource_base.h
+++ b/ppapi/proxy/udp_socket_resource_base.h
@@ -6,7 +6,6 @@
#define PPAPI_PROXY_UDP_SOCKET_RESOURCE_BASE_H_
#include <queue>
-#include <string>
#include "base/basictypes.h"
#include "base/compiler_specific.h"
@@ -15,6 +14,7 @@
#include "ppapi/c/private/ppb_net_address_private.h"
#include "ppapi/proxy/plugin_resource.h"
#include "ppapi/proxy/ppapi_proxy_export.h"
+#include "ppapi/proxy/udp_socket_filter.h"
#include "ppapi/shared_impl/tracked_callback.h"
namespace ppapi {
@@ -22,7 +22,7 @@ namespace proxy {
class ResourceMessageReplyParams;
-class PPAPI_PROXY_EXPORT UDPSocketResourceBase: public PluginResource {
+class PPAPI_PROXY_EXPORT UDPSocketResourceBase : public PluginResource {
public:
// The maximum number of bytes that each
// PpapiPluginMsg_PPBUDPSocket_PushRecvResult message is allowed to carry.
@@ -79,43 +79,20 @@ class PPAPI_PROXY_EXPORT UDPSocketResourceBase: public PluginResource {
scoped_refptr<TrackedCallback> callback);
private:
- struct RecvBuffer {
- int32_t result;
- std::string data;
- PP_NetAddress_Private addr;
- };
-
- // Resource overrides.
- virtual void OnReplyReceived(const ResourceMessageReplyParams& params,
- const IPC::Message& msg) override;
-
- void PostAbortIfNecessary(scoped_refptr<TrackedCallback>* callback);
-
// IPC message handlers.
void OnPluginMsgGeneralReply(scoped_refptr<TrackedCallback> callback,
const ResourceMessageReplyParams& params);
void OnPluginMsgBindReply(const ResourceMessageReplyParams& params,
const PP_NetAddress_Private& bound_addr);
- void OnPluginMsgPushRecvResult(const ResourceMessageReplyParams& params,
- int32_t result,
- const std::string& data,
- const PP_NetAddress_Private& addr);
void OnPluginMsgSendToReply(const ResourceMessageReplyParams& params,
int32_t bytes_written);
- void RunCallback(scoped_refptr<TrackedCallback> callback, int32_t pp_result);
-
- // Callers must ensure that |output_buffer| is big enough to store |data|.
- int32_t SetRecvFromOutput(int32_t browser_result,
- const std::string& data,
- const PP_NetAddress_Private& addr,
- char* output_buffer,
- int32_t num_bytes,
- PP_Resource* output_addr);
+ static void SlotBecameAvailable(PP_Resource resource);
+ static void SlotBecameAvailableWithLock(PP_Resource resource);
bool private_api_;
- // |bind_called_| is true after Bind() is called, while |bound_| is true,
+ // |bind_called_| is true after Bind() is called, while |bound_| is true
// after Bind() succeeds. Bind() is an asynchronous method, so the timing
// on which of these is set is slightly different.
bool bind_called_;
@@ -123,17 +100,10 @@ class PPAPI_PROXY_EXPORT UDPSocketResourceBase: public PluginResource {
bool closed_;
scoped_refptr<TrackedCallback> bind_callback_;
- scoped_refptr<TrackedCallback> recvfrom_callback_;
-
- char* read_buffer_;
- int32_t bytes_to_read_;
- PP_Resource* recvfrom_addr_resource_;
+ scoped_refptr<UDPSocketFilter> recv_filter_;
- PP_NetAddress_Private recvfrom_addr_;
PP_NetAddress_Private bound_addr_;
- std::queue<RecvBuffer> recv_buffers_;
-
std::queue<scoped_refptr<TrackedCallback>> sendto_callbacks_;
DISALLOW_COPY_AND_ASSIGN(UDPSocketResourceBase);
« no previous file with comments | « ppapi/proxy/udp_socket_filter.cc ('k') | ppapi/proxy/udp_socket_resource_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698