Index: content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.h |
diff --git a/content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.h b/content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.h |
index c28e75abb26e2d52ab630c7c3aa7559f3dd18930..dd6792c1dfe614780004b5eb6c3331ac63baec91 100644 |
--- a/content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.h |
+++ b/content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.h |
@@ -5,6 +5,7 @@ |
#ifndef CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_UDP_SOCKET_MESSAGE_FILTER_H_ |
#define CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_UDP_SOCKET_MESSAGE_FILTER_H_ |
+#include <queue> |
#include <string> |
#include "base/basictypes.h" |
@@ -56,6 +57,18 @@ class CONTENT_EXPORT PepperUDPSocketMessageFilter |
virtual ~PepperUDPSocketMessageFilter(); |
private: |
+ struct PendingSend { |
+ PendingSend(const net::IPAddressNumber& address, |
+ int port, |
+ const scoped_refptr<net::IOBufferWithSize>& buffer, |
+ const ppapi::host::ReplyMessageContext& context); |
+ ~PendingSend(); |
+ |
+ net::IPAddressNumber address; |
+ int port; |
+ scoped_refptr<net::IOBufferWithSize> buffer; |
+ ppapi::host::ReplyMessageContext context; |
+ }; |
// ppapi::host::ResourceMessageFilter overrides. |
virtual scoped_refptr<base::TaskRunner> OverrideTaskRunnerForMessage( |
const IPC::Message& message) OVERRIDE; |
@@ -81,10 +94,15 @@ class CONTENT_EXPORT PepperUDPSocketMessageFilter |
void DoSendTo(const ppapi::host::ReplyMessageContext& context, |
const std::string& data, |
const PP_NetAddress_Private& addr); |
+ void CallSendTo(const net::IPAddressNumber& address, |
yzshen1
2014/10/08 18:05:38
nit: the two names (DoSendTo and CallSendTo) are t
bbudge
2014/10/08 21:44:35
Changed to DoPendingSend.
dmichael (off chromium)
2014/10/08 22:42:40
suggestion: FlushPendingSends?
|
+ int port, |
+ const scoped_refptr<net::IOBufferWithSize>& buffer, |
+ const ppapi::host::ReplyMessageContext& context); |
void Close(); |
void OnRecvFromCompleted(int net_result); |
- void OnSendToCompleted(const ppapi::host::ReplyMessageContext& context, |
+ void OnSendToCompleted(scoped_refptr<net::IOBufferWithSize> buffer, |
+ const ppapi::host::ReplyMessageContext& context, |
int net_result); |
void SendBindReply(const ppapi::host::ReplyMessageContext& context, |
@@ -110,12 +128,15 @@ class CONTENT_EXPORT PepperUDPSocketMessageFilter |
bool closed_; |
scoped_refptr<net::IOBuffer> recvfrom_buffer_; |
- scoped_refptr<net::IOBufferWithSize> sendto_buffer_; |
+ |
+ std::queue<PendingSend> pending_sends_; |
net::IPEndPoint recvfrom_address_; |
size_t remaining_recv_slots_; |
+ bool socket_busy_; |
yzshen1
2014/10/08 18:05:38
It is not obvious what it means. (reading or writi
bbudge
2014/10/08 21:44:35
Renamed send_in_progress_
dmichael (off chromium)
2014/10/08 22:42:40
Maybe you can eliminate this and rely on !pending_
|
+ |
bool external_plugin_; |
bool private_api_; |