910e62b5创建于 1月15日历史提交
// 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