| Index: net/proxy/mojo_type_converters.cc
 | 
| diff --git a/net/proxy/mojo_type_converters.cc b/net/proxy/mojo_type_converters.cc
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..211785345eef5587c7c0693375106886bb6b5030
 | 
| --- /dev/null
 | 
| +++ b/net/proxy/mojo_type_converters.cc
 | 
| @@ -0,0 +1,83 @@
 | 
| +// Copyright 2015 The Chromium Authors. All rights reserved.
 | 
| +// Use of this source code is governed by a BSD-style license that can be
 | 
| +// found in the LICENSE file.
 | 
| +
 | 
| +#include "net/proxy/mojo_type_converters.h"
 | 
| +
 | 
| +#include "base/logging.h"
 | 
| +#include "net/base/host_port_pair.h"
 | 
| +#include "net/proxy/proxy_server.h"
 | 
| +
 | 
| +namespace net {
 | 
| +namespace {
 | 
| +
 | 
| +interfaces::ProxyScheme ProxySchemeToMojo(ProxyServer::Scheme scheme) {
 | 
| +  switch (scheme) {
 | 
| +    case ProxyServer::SCHEME_INVALID:
 | 
| +      return interfaces::PROXY_SCHEME_INVALID;
 | 
| +    case ProxyServer::SCHEME_DIRECT:
 | 
| +      return interfaces::PROXY_SCHEME_DIRECT;
 | 
| +    case ProxyServer::SCHEME_HTTP:
 | 
| +      return interfaces::PROXY_SCHEME_HTTP;
 | 
| +    case ProxyServer::SCHEME_SOCKS4:
 | 
| +      return interfaces::PROXY_SCHEME_SOCKS4;
 | 
| +    case ProxyServer::SCHEME_SOCKS5:
 | 
| +      return interfaces::PROXY_SCHEME_SOCKS5;
 | 
| +    case ProxyServer::SCHEME_HTTPS:
 | 
| +      return interfaces::PROXY_SCHEME_HTTPS;
 | 
| +    case ProxyServer::SCHEME_QUIC:
 | 
| +      return interfaces::PROXY_SCHEME_QUIC;
 | 
| +  }
 | 
| +  NOTREACHED();
 | 
| +  return interfaces::PROXY_SCHEME_INVALID;
 | 
| +}
 | 
| +
 | 
| +ProxyServer::Scheme ProxySchemeFromMojo(interfaces::ProxyScheme scheme) {
 | 
| +  switch (scheme) {
 | 
| +    case interfaces::PROXY_SCHEME_INVALID:
 | 
| +      return ProxyServer::SCHEME_INVALID;
 | 
| +    case interfaces::PROXY_SCHEME_DIRECT:
 | 
| +      return ProxyServer::SCHEME_DIRECT;
 | 
| +    case interfaces::PROXY_SCHEME_HTTP:
 | 
| +      return ProxyServer::SCHEME_HTTP;
 | 
| +    case interfaces::PROXY_SCHEME_SOCKS4:
 | 
| +      return ProxyServer::SCHEME_SOCKS4;
 | 
| +    case interfaces::PROXY_SCHEME_SOCKS5:
 | 
| +      return ProxyServer::SCHEME_SOCKS5;
 | 
| +    case interfaces::PROXY_SCHEME_HTTPS:
 | 
| +      return ProxyServer::SCHEME_HTTPS;
 | 
| +    case interfaces::PROXY_SCHEME_QUIC:
 | 
| +      return ProxyServer::SCHEME_QUIC;
 | 
| +  }
 | 
| +  NOTREACHED();
 | 
| +  return ProxyServer::SCHEME_INVALID;
 | 
| +}
 | 
| +
 | 
| +}  // namespace
 | 
| +}  // namespace net
 | 
| +
 | 
| +namespace mojo {
 | 
| +
 | 
| +// static
 | 
| +net::interfaces::ProxyServerPtr
 | 
| +TypeConverter<net::interfaces::ProxyServerPtr, net::ProxyServer>::Convert(
 | 
| +    const net::ProxyServer& obj) {
 | 
| +  net::interfaces::ProxyServerPtr server(net::interfaces::ProxyServer::New());
 | 
| +  server->scheme = net::ProxySchemeToMojo(obj.scheme());
 | 
| +  if (server->scheme != net::interfaces::PROXY_SCHEME_DIRECT &&
 | 
| +      server->scheme != net::interfaces::PROXY_SCHEME_INVALID) {
 | 
| +    server->host = obj.host_port_pair().host();
 | 
| +    server->port = obj.host_port_pair().port();
 | 
| +  }
 | 
| +  return server.Pass();
 | 
| +}
 | 
| +
 | 
| +// static
 | 
| +net::ProxyServer
 | 
| +TypeConverter<net::ProxyServer, net::interfaces::ProxyServerPtr>::Convert(
 | 
| +    const net::interfaces::ProxyServerPtr& obj) {
 | 
| +  return net::ProxyServer(net::ProxySchemeFromMojo(obj->scheme),
 | 
| +                          net::HostPortPair(obj->host, obj->port));
 | 
| +}
 | 
| +
 | 
| +}  // namespace mojo
 | 
| 
 |