blob: 3c2475d75f4bf83b638e3c0d528469b3bde38c42 [file] [log] [blame]
// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/public/common/peerconnection/webrtc_ip_handling_policy.h"
#include <string_view>
#include "third_party/blink/public/mojom/peerconnection/webrtc_ip_handling_policy.mojom.h"
namespace blink {
// The set of strings here need to match what's specified in privacy.json.
const char kWebRTCIPHandlingDefault[] = "default";
const char kWebRTCIPHandlingDefaultPublicAndPrivateInterfaces[] =
"default_public_and_private_interfaces";
const char kWebRTCIPHandlingDefaultPublicInterfaceOnly[] =
"default_public_interface_only";
const char kWebRTCIPHandlingDisableNonProxiedUdp[] = "disable_non_proxied_udp";
blink::mojom::WebRtcIpHandlingPolicy ToWebRTCIPHandlingPolicy(
std::string_view preference) {
if (preference == kWebRTCIPHandlingDefaultPublicAndPrivateInterfaces) {
return blink::mojom::WebRtcIpHandlingPolicy::
kDefaultPublicAndPrivateInterfaces;
}
if (preference == kWebRTCIPHandlingDefaultPublicInterfaceOnly) {
return blink::mojom::WebRtcIpHandlingPolicy::kDefaultPublicInterfaceOnly;
}
if (preference == kWebRTCIPHandlingDisableNonProxiedUdp) {
return blink::mojom::WebRtcIpHandlingPolicy::kDisableNonProxiedUdp;
}
return blink::mojom::WebRtcIpHandlingPolicy::kDefault;
}
const char* ToString(blink::mojom::WebRtcIpHandlingPolicy policy) {
switch (policy) {
case blink::mojom::WebRtcIpHandlingPolicy::kDefault:
return kWebRTCIPHandlingDefault;
case blink::mojom::WebRtcIpHandlingPolicy::
kDefaultPublicAndPrivateInterfaces:
return kWebRTCIPHandlingDefaultPublicAndPrivateInterfaces;
case blink::mojom::WebRtcIpHandlingPolicy::kDefaultPublicInterfaceOnly:
return kWebRTCIPHandlingDefaultPublicInterfaceOnly;
case blink::mojom::WebRtcIpHandlingPolicy::kDisableNonProxiedUdp:
return kWebRTCIPHandlingDisableNonProxiedUdp;
}
}
} // namespace blink