| Index: content/browser/renderer_host/pepper/pepper_message_filter.cc
|
| diff --git a/content/browser/renderer_host/pepper/pepper_message_filter.cc b/content/browser/renderer_host/pepper/pepper_message_filter.cc
|
| index bced66ba56a0de7646b90d7616328aa5ec06e45a..16adf2a48bdb3c5a532a319c79d1d582266c0ae3 100644
|
| --- a/content/browser/renderer_host/pepper/pepper_message_filter.cc
|
| +++ b/content/browser/renderer_host/pepper/pepper_message_filter.cc
|
| @@ -151,6 +151,8 @@ if (process_type_ == PLUGIN) {
|
|
|
| // UDP messages.
|
| IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBUDPSocket_Create, OnUDPCreate)
|
| + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBUDPSocket_SetBoolSocketFeature,
|
| + OnUDPSetBoolSocketFeature)
|
| IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBUDPSocket_Bind, OnUDPBind)
|
| IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBUDPSocket_RecvFrom, OnUDPRecvFrom)
|
| IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBUDPSocket_SendTo, OnUDPSendTo)
|
| @@ -398,6 +400,33 @@ void PepperMessageFilter::OnUDPCreate(int32 routing_id,
|
| new PepperUDPSocket(this, routing_id, plugin_dispatcher_id, *socket_id));
|
| }
|
|
|
| +void PepperMessageFilter::OnUDPSetBoolSocketFeature(
|
| + int32 routing_id,
|
| + uint32 socket_id,
|
| + PP_UDPSocketFeature_Private name,
|
| + bool value) {
|
| + UDPSocketMap::iterator iter = udp_sockets_.find(socket_id);
|
| + if (iter == udp_sockets_.end()) {
|
| + NOTREACHED();
|
| + return;
|
| + }
|
| +
|
| + if (routing_id == iter->second->routing_id()) {
|
| + switch(name) {
|
| + case PP_UDPSOCKETFEATURE_ADDRESS_REUSE:
|
| + iter->second->AllowAddressReuse(value);
|
| + break;
|
| + case PP_UDPSOCKETFEATURE_BROADCAST:
|
| + iter->second->AllowBroadcast(value);
|
| + break;
|
| + default:
|
| + iter->second->SendSetSocketFeatureACK(false);
|
| + }
|
| + } else {
|
| + iter->second->SendSetSocketFeatureACK(false);
|
| + }
|
| +}
|
| +
|
| void PepperMessageFilter::OnUDPBind(int32 routing_id,
|
| uint32 socket_id,
|
| const PP_NetAddress_Private& addr) {
|
|
|