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

Unified Diff: content/renderer/media/webrtc/peer_connection_dependency_factory.cc

Issue 2127653002: Add policy to control valid UDP port range in WebRTC (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: tnagel's comments Created 4 years, 4 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 | « content/public/common/renderer_preferences.cc ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/webrtc/peer_connection_dependency_factory.cc
diff --git a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc
index 6c886e9df99fe47426fcb0300faf83ef840023d5..93b7f2fbef930f5cc0f39b36d14d91c76098ed39 100644
--- a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc
+++ b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc
@@ -91,6 +91,11 @@ WebRTCIPHandlingPolicy GetWebRTCIPHandlingPolicy(
return DEFAULT;
}
+bool IsValidPortRange(uint16_t min_port, uint16_t max_port) {
+ DCHECK(min_port <= max_port);
+ return min_port != 0 && max_port != 0;
+}
+
} // namespace
PeerConnectionDependencyFactory::PeerConnectionDependencyFactory(
@@ -297,6 +302,8 @@ PeerConnectionDependencyFactory::CreatePeerConnection(
// Copy the flag from Preference associated with this WebFrame.
P2PPortAllocator::Config port_config;
+ uint16_t min_port = 0;
+ uint16_t max_port = 0;
// |media_permission| will be called to check mic/camera permission. If at
// least one of them is granted, P2PPortAllocator is allowed to gather local
@@ -353,10 +360,17 @@ PeerConnectionDependencyFactory::CreatePeerConnection(
break;
}
+ min_port =
+ renderer_view_impl->renderer_preferences().webrtc_udp_min_port;
+ max_port =
+ renderer_view_impl->renderer_preferences().webrtc_udp_max_port;
+
VLOG(3) << "WebRTC routing preferences: "
<< "policy: " << policy
<< ", multiple_routes: " << port_config.enable_multiple_routes
- << ", nonproxied_udp: " << port_config.enable_nonproxied_udp;
+ << ", nonproxied_udp: " << port_config.enable_nonproxied_udp
+ << ", min_udp_port: " << min_port
+ << ", max_udp_port: " << max_port;
}
}
if (port_config.enable_multiple_routes) {
@@ -393,6 +407,8 @@ PeerConnectionDependencyFactory::CreatePeerConnection(
std::unique_ptr<P2PPortAllocator> port_allocator(new P2PPortAllocator(
p2p_socket_dispatcher_, std::move(network_manager), socket_factory_.get(),
port_config, requesting_origin));
+ if (IsValidPortRange(min_port, max_port))
+ port_allocator->SetPortRange(min_port, max_port);
return GetPcFactory()
->CreatePeerConnection(config, std::move(port_allocator),
« no previous file with comments | « content/public/common/renderer_preferences.cc ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698