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

Side by Side Diff: content/browser/renderer_host/p2p/socket_dispatcher_host.cc

Issue 142923005: Allow MessageFilters to restrict listening to specific message classes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Working patch Created 6 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/p2p/socket_dispatcher_host.h" 5 #include "content/browser/renderer_host/p2p/socket_dispatcher_host.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "content/browser/renderer_host/p2p/socket_host.h" 9 #include "content/browser/renderer_host/p2p/socket_host.h"
10 #include "content/common/p2p_messages.h" 10 #include "content/common/p2p_messages.h"
11 #include "content/public/browser/resource_context.h" 11 #include "content/public/browser/resource_context.h"
12 #include "net/base/address_list.h" 12 #include "net/base/address_list.h"
13 #include "net/base/completion_callback.h" 13 #include "net/base/completion_callback.h"
14 #include "net/base/net_errors.h" 14 #include "net/base/net_errors.h"
15 #include "net/base/net_log.h" 15 #include "net/base/net_log.h"
16 #include "net/base/sys_addrinfo.h" 16 #include "net/base/sys_addrinfo.h"
17 #include "net/dns/single_request_host_resolver.h" 17 #include "net/dns/single_request_host_resolver.h"
18 #include "net/url_request/url_request_context_getter.h" 18 #include "net/url_request/url_request_context_getter.h"
19 19
20 using content::BrowserMessageFilter; 20 using content::BrowserMessageFilter;
21 using content::BrowserThread; 21 using content::BrowserThread;
22 22
23 namespace content { 23 namespace content {
24 namespace {
24 25
25 const size_t kMaximumPacketSize = 32768; 26 const size_t kMaximumPacketSize = 32768;
26 27
28 const uint32 kFilteredMessageClasses[] = {
29 P2PMsgStart,
30 };
31
32 } // namespace
33
27 class P2PSocketDispatcherHost::DnsRequest { 34 class P2PSocketDispatcherHost::DnsRequest {
28 public: 35 public:
29 typedef base::Callback<void(const net::IPAddressList&)> DoneCallback; 36 typedef base::Callback<void(const net::IPAddressList&)> DoneCallback;
30 37
31 DnsRequest(int32 request_id, net::HostResolver* host_resolver) 38 DnsRequest(int32 request_id, net::HostResolver* host_resolver)
32 : request_id_(request_id), 39 : request_id_(request_id),
33 resolver_(host_resolver) { 40 resolver_(host_resolver) {
34 } 41 }
35 42
36 void Resolve(const std::string& host_name, 43 void Resolve(const std::string& host_name,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 96
90 std::string host_name_; 97 std::string host_name_;
91 net::SingleRequestHostResolver resolver_; 98 net::SingleRequestHostResolver resolver_;
92 99
93 DoneCallback done_callback_; 100 DoneCallback done_callback_;
94 }; 101 };
95 102
96 P2PSocketDispatcherHost::P2PSocketDispatcherHost( 103 P2PSocketDispatcherHost::P2PSocketDispatcherHost(
97 content::ResourceContext* resource_context, 104 content::ResourceContext* resource_context,
98 net::URLRequestContextGetter* url_context) 105 net::URLRequestContextGetter* url_context)
99 : resource_context_(resource_context), 106 : BrowserMessageFilter(
107 kFilteredMessageClasses, arraysize(kFilteredMessageClasses)),
108 resource_context_(resource_context),
100 url_context_(url_context), 109 url_context_(url_context),
101 monitoring_networks_(false) { 110 monitoring_networks_(false) {
102 } 111 }
103 112
104 void P2PSocketDispatcherHost::OnChannelClosing() { 113 void P2PSocketDispatcherHost::OnChannelClosing() {
105 // Since the IPC channel is gone, close pending connections. 114 // Since the IPC channel is gone, close pending connections.
106 STLDeleteContainerPairSecondPointers(sockets_.begin(), sockets_.end()); 115 STLDeleteContainerPairSecondPointers(sockets_.begin(), sockets_.end());
107 sockets_.clear(); 116 sockets_.clear();
108 117
109 STLDeleteContainerPointers(dns_requests_.begin(), dns_requests_.end()); 118 STLDeleteContainerPointers(dns_requests_.begin(), dns_requests_.end());
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 void P2PSocketDispatcherHost::OnAddressResolved( 298 void P2PSocketDispatcherHost::OnAddressResolved(
290 DnsRequest* request, 299 DnsRequest* request,
291 const net::IPAddressList& addresses) { 300 const net::IPAddressList& addresses) {
292 Send(new P2PMsg_GetHostAddressResult(request->request_id(), addresses)); 301 Send(new P2PMsg_GetHostAddressResult(request->request_id(), addresses));
293 302
294 dns_requests_.erase(request); 303 dns_requests_.erase(request);
295 delete request; 304 delete request;
296 } 305 }
297 306
298 } // namespace content 307 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698