| 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 430df2c444e7b2ab740aac004dd51d48962940ee..abb4f05c7b57879e9a6291a0e496cda06c7342f2 100644
|
| --- a/content/browser/renderer_host/pepper/pepper_message_filter.cc
|
| +++ b/content/browser/renderer_host/pepper/pepper_message_filter.cc
|
| @@ -17,7 +17,6 @@
|
| #include "base/threading/sequenced_worker_pool.h"
|
| #include "base/threading/worker_pool.h"
|
| #include "build/build_config.h"
|
| -#include "content/browser/renderer_host/pepper/pepper_lookup_request.h"
|
| #include "content/browser/renderer_host/pepper/pepper_socket_utils.h"
|
| #include "content/browser/renderer_host/pepper/pepper_tcp_server_socket.h"
|
| #include "content/browser/renderer_host/pepper/pepper_tcp_socket.h"
|
| @@ -35,12 +34,10 @@
|
| #include "net/base/host_port_pair.h"
|
| #include "net/base/sys_addrinfo.h"
|
| #include "ppapi/c/pp_errors.h"
|
| -#include "ppapi/c/private/ppb_host_resolver_private.h"
|
| #include "ppapi/c/private/ppb_net_address_private.h"
|
| #include "ppapi/proxy/ppapi_messages.h"
|
| #include "ppapi/shared_impl/api_id.h"
|
| #include "ppapi/shared_impl/private/net_address_private_impl.h"
|
| -#include "ppapi/shared_impl/private/ppb_host_resolver_shared.h"
|
|
|
| using ppapi::NetAddressPrivateImpl;
|
|
|
| @@ -50,21 +47,6 @@ namespace {
|
| const size_t kMaxSocketsAllowed = 1024;
|
| const uint32 kInvalidSocketID = 0;
|
|
|
| -void CreateNetAddressListFromAddressList(
|
| - const net::AddressList& list,
|
| - std::vector<PP_NetAddress_Private>* net_address_list) {
|
| - PP_NetAddress_Private address;
|
| - for (size_t i = 0; i < list.size(); ++i) {
|
| - if (!NetAddressPrivateImpl::IPEndPointToNetAddress(list[i].address(),
|
| - list[i].port(),
|
| - &address)) {
|
| - net_address_list->clear();
|
| - return;
|
| - }
|
| - net_address_list->push_back(address);
|
| - }
|
| -}
|
| -
|
| } // namespace
|
|
|
| PepperMessageFilter::PepperMessageFilter(ProcessType process_type,
|
| @@ -123,8 +105,7 @@ void PepperMessageFilter::OverrideThreadForMessage(
|
| BrowserThread::ID* thread) {
|
| if (message.type() == PpapiHostMsg_PPBTCPServerSocket_Listen::ID ||
|
| message.type() == PpapiHostMsg_PPBTCPSocket_Connect::ID ||
|
| - message.type() == PpapiHostMsg_PPBTCPSocket_ConnectWithNetAddress::ID ||
|
| - message.type() == PpapiHostMsg_PPBHostResolver_Resolve::ID) {
|
| + message.type() == PpapiHostMsg_PPBTCPSocket_ConnectWithNetAddress::ID) {
|
| *thread = BrowserThread::UI;
|
| }
|
| }
|
| @@ -152,10 +133,6 @@ bool PepperMessageFilter::OnMessageReceived(const IPC::Message& msg,
|
| IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBTCPServerSocket_Destroy,
|
| RemoveTCPServerSocket)
|
|
|
| - // HostResolver messages.
|
| - IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBHostResolver_Resolve,
|
| - OnHostResolverResolve)
|
| -
|
| // NetworkMonitor messages.
|
| IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBNetworkMonitor_Start,
|
| OnNetworkMonitorStart)
|
| @@ -414,127 +391,12 @@ void PepperMessageFilter::OnTCPServerAccept(int32 tcp_client_socket_routing_id,
|
| iter->second->Accept(tcp_client_socket_routing_id);
|
| }
|
|
|
| -void PepperMessageFilter::OnHostResolverResolve(
|
| - int32 routing_id,
|
| - uint32 plugin_dispatcher_id,
|
| - uint32 host_resolver_id,
|
| - const ppapi::HostPortPair& host_port,
|
| - const PP_HostResolver_Private_Hint& hint) {
|
| - // Allow all process types except NaCl, unless the plugin is whitelisted for
|
| - // using socket APIs.
|
| - // TODO(bbudge) use app permissions when they are ready.
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - content::SocketPermissionRequest request(
|
| - content::SocketPermissionRequest::NONE, "", 0);
|
| - if (process_type_ == PROCESS_TYPE_NACL_LOADER &&
|
| - !CanUseSocketAPIs(routing_id, request)) {
|
| - return;
|
| - }
|
| -
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&PepperMessageFilter::DoHostResolverResolve,
|
| - this,
|
| - routing_id,
|
| - plugin_dispatcher_id,
|
| - host_resolver_id,
|
| - host_port,
|
| - hint));
|
| -}
|
| -
|
| -void PepperMessageFilter::DoHostResolverResolve(
|
| - int32 routing_id,
|
| - uint32 plugin_dispatcher_id,
|
| - uint32 host_resolver_id,
|
| - const ppapi::HostPortPair& host_port,
|
| - const PP_HostResolver_Private_Hint& hint) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - net::HostResolver::RequestInfo request_info(
|
| - net::HostPortPair(host_port.host, host_port.port));
|
| -
|
| - net::AddressFamily address_family;
|
| - switch (hint.family) {
|
| - case PP_NETADDRESSFAMILY_IPV4:
|
| - address_family = net::ADDRESS_FAMILY_IPV4;
|
| - break;
|
| - case PP_NETADDRESSFAMILY_IPV6:
|
| - address_family = net::ADDRESS_FAMILY_IPV6;
|
| - break;
|
| - default:
|
| - address_family = net::ADDRESS_FAMILY_UNSPECIFIED;
|
| - }
|
| - request_info.set_address_family(address_family);
|
| -
|
| - net::HostResolverFlags host_resolver_flags = 0;
|
| - if (hint.flags & PP_HOST_RESOLVER_FLAGS_CANONNAME)
|
| - host_resolver_flags |= net::HOST_RESOLVER_CANONNAME;
|
| - if (hint.flags & PP_HOST_RESOLVER_FLAGS_LOOPBACK_ONLY)
|
| - host_resolver_flags |= net::HOST_RESOLVER_LOOPBACK_ONLY;
|
| - request_info.set_host_resolver_flags(host_resolver_flags);
|
| -
|
| - scoped_ptr<OnHostResolverResolveBoundInfo> bound_info(
|
| - new OnHostResolverResolveBoundInfo);
|
| - bound_info->routing_id = routing_id;
|
| - bound_info->plugin_dispatcher_id = plugin_dispatcher_id;
|
| - bound_info->host_resolver_id = host_resolver_id;
|
| -
|
| - // The lookup request will delete itself on completion.
|
| - PepperLookupRequest<OnHostResolverResolveBoundInfo>* lookup_request =
|
| - new PepperLookupRequest<OnHostResolverResolveBoundInfo>(
|
| - GetHostResolver(),
|
| - request_info,
|
| - bound_info.release(),
|
| - base::Bind(&PepperMessageFilter::OnHostResolverResolveLookupFinished,
|
| - this));
|
| - lookup_request->Start();
|
| -}
|
| -
|
| -void PepperMessageFilter::OnHostResolverResolveLookupFinished(
|
| - int result,
|
| - const net::AddressList& addresses,
|
| - const OnHostResolverResolveBoundInfo& bound_info) {
|
| - if (result != net::OK) {
|
| - SendHostResolverResolveACKError(bound_info.routing_id,
|
| - bound_info.plugin_dispatcher_id,
|
| - bound_info.host_resolver_id);
|
| - } else {
|
| - const std::string& canonical_name = addresses.canonical_name();
|
| - std::vector<PP_NetAddress_Private> net_address_list;
|
| - CreateNetAddressListFromAddressList(addresses, &net_address_list);
|
| - if (net_address_list.size() == 0) {
|
| - SendHostResolverResolveACKError(bound_info.routing_id,
|
| - bound_info.plugin_dispatcher_id,
|
| - bound_info.host_resolver_id);
|
| - } else {
|
| - Send(new PpapiMsg_PPBHostResolver_ResolveACK(
|
| - bound_info.routing_id,
|
| - bound_info.plugin_dispatcher_id,
|
| - bound_info.host_resolver_id,
|
| - true,
|
| - canonical_name,
|
| - net_address_list));
|
| - }
|
| - }
|
| -}
|
| -
|
| -bool PepperMessageFilter::SendHostResolverResolveACKError(
|
| - int32 routing_id,
|
| - uint32 plugin_dispatcher_id,
|
| - uint32 host_resolver_id) {
|
| - return Send(new PpapiMsg_PPBHostResolver_ResolveACK(
|
| - routing_id,
|
| - plugin_dispatcher_id,
|
| - host_resolver_id,
|
| - false,
|
| - "",
|
| - std::vector<PP_NetAddress_Private>()));
|
| -}
|
| -
|
| void PepperMessageFilter::OnNetworkMonitorStart(uint32 plugin_dispatcher_id) {
|
| // Support all in-process plugins, and ones with "private" permissions.
|
| if (process_type_ != PROCESS_TYPE_RENDERER &&
|
| - !permissions_.HasPermission(ppapi::PERMISSION_PRIVATE))
|
| + !permissions_.HasPermission(ppapi::PERMISSION_PRIVATE)) {
|
| return;
|
| + }
|
|
|
| if (network_monitor_ids_.empty())
|
| net::NetworkChangeNotifier::AddIPAddressObserver(this);
|
| @@ -546,8 +408,9 @@ void PepperMessageFilter::OnNetworkMonitorStart(uint32 plugin_dispatcher_id) {
|
| void PepperMessageFilter::OnNetworkMonitorStop(uint32 plugin_dispatcher_id) {
|
| // Support all in-process plugins, and ones with "private" permissions.
|
| if (process_type_ != PROCESS_TYPE_RENDERER &&
|
| - !permissions_.HasPermission(ppapi::PERMISSION_PRIVATE))
|
| + !permissions_.HasPermission(ppapi::PERMISSION_PRIVATE)) {
|
| return;
|
| + }
|
|
|
| network_monitor_ids_.erase(plugin_dispatcher_id);
|
| if (network_monitor_ids_.empty())
|
|
|