| 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),
|
|
|