OLD | NEW |
| (Empty) |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "net/proxy/mojo_proxy_type_converters.h" | |
6 | |
7 #include "base/logging.h" | |
8 #include "net/base/host_port_pair.h" | |
9 #include "net/proxy/proxy_info.h" | |
10 #include "net/proxy/proxy_server.h" | |
11 | |
12 namespace net { | |
13 namespace { | |
14 | |
15 interfaces::ProxyScheme ProxySchemeToMojo(ProxyServer::Scheme scheme) { | |
16 switch (scheme) { | |
17 case ProxyServer::SCHEME_INVALID: | |
18 return interfaces::ProxyScheme::INVALID; | |
19 case ProxyServer::SCHEME_DIRECT: | |
20 return interfaces::ProxyScheme::DIRECT; | |
21 case ProxyServer::SCHEME_HTTP: | |
22 return interfaces::ProxyScheme::HTTP; | |
23 case ProxyServer::SCHEME_SOCKS4: | |
24 return interfaces::ProxyScheme::SOCKS4; | |
25 case ProxyServer::SCHEME_SOCKS5: | |
26 return interfaces::ProxyScheme::SOCKS5; | |
27 case ProxyServer::SCHEME_HTTPS: | |
28 return interfaces::ProxyScheme::HTTPS; | |
29 case ProxyServer::SCHEME_QUIC: | |
30 return interfaces::ProxyScheme::QUIC; | |
31 } | |
32 NOTREACHED(); | |
33 return interfaces::ProxyScheme::INVALID; | |
34 } | |
35 | |
36 ProxyServer::Scheme ProxySchemeFromMojo(interfaces::ProxyScheme scheme) { | |
37 switch (scheme) { | |
38 case interfaces::ProxyScheme::INVALID: | |
39 return ProxyServer::SCHEME_INVALID; | |
40 case interfaces::ProxyScheme::DIRECT: | |
41 return ProxyServer::SCHEME_DIRECT; | |
42 case interfaces::ProxyScheme::HTTP: | |
43 return ProxyServer::SCHEME_HTTP; | |
44 case interfaces::ProxyScheme::SOCKS4: | |
45 return ProxyServer::SCHEME_SOCKS4; | |
46 case interfaces::ProxyScheme::SOCKS5: | |
47 return ProxyServer::SCHEME_SOCKS5; | |
48 case interfaces::ProxyScheme::HTTPS: | |
49 return ProxyServer::SCHEME_HTTPS; | |
50 case interfaces::ProxyScheme::QUIC: | |
51 return ProxyServer::SCHEME_QUIC; | |
52 } | |
53 NOTREACHED(); | |
54 return ProxyServer::SCHEME_INVALID; | |
55 } | |
56 | |
57 } // namespace | |
58 } // namespace net | |
59 | |
60 namespace mojo { | |
61 | |
62 // static | |
63 net::interfaces::ProxyServerPtr | |
64 TypeConverter<net::interfaces::ProxyServerPtr, net::ProxyServer>::Convert( | |
65 const net::ProxyServer& obj) { | |
66 net::interfaces::ProxyServerPtr server(net::interfaces::ProxyServer::New()); | |
67 server->scheme = net::ProxySchemeToMojo(obj.scheme()); | |
68 if (server->scheme != net::interfaces::ProxyScheme::DIRECT && | |
69 server->scheme != net::interfaces::ProxyScheme::INVALID) { | |
70 server->host = obj.host_port_pair().host(); | |
71 server->port = obj.host_port_pair().port(); | |
72 } | |
73 return server; | |
74 } | |
75 | |
76 // static | |
77 net::ProxyServer | |
78 TypeConverter<net::ProxyServer, net::interfaces::ProxyServerPtr>::Convert( | |
79 const net::interfaces::ProxyServerPtr& obj) { | |
80 return net::ProxyServer(net::ProxySchemeFromMojo(obj->scheme), | |
81 net::HostPortPair(obj->host, obj->port)); | |
82 } | |
83 | |
84 // static | |
85 net::ProxyInfo | |
86 TypeConverter<net::ProxyInfo, mojo::Array<net::interfaces::ProxyServerPtr>>:: | |
87 Convert(const mojo::Array<net::interfaces::ProxyServerPtr>& obj) { | |
88 net::ProxyList proxy_list; | |
89 for (size_t i = 0; i < obj.size(); i++) { | |
90 proxy_list.AddProxyServer(obj[i].To<net::ProxyServer>()); | |
91 } | |
92 net::ProxyInfo info; | |
93 info.UseProxyList(proxy_list); | |
94 return info; | |
95 } | |
96 | |
97 } // namespace mojo | |
OLD | NEW |