Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: net/proxy/mojo_proxy_struct_traits.cc

Issue 2083463002: Replace //net TypeConverters with StructTraits. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@type-converter-cleanup--gurl
Patch Set: rebase Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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_struct_traits.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 mojo {
13
14 net::interfaces::ProxyScheme
15 EnumTraits<net::interfaces::ProxyScheme, net::ProxyServer::Scheme>::ToMojom(
16 net::ProxyServer::Scheme scheme) {
17 using net::ProxyServer;
18 switch (scheme) {
19 case ProxyServer::SCHEME_INVALID:
20 return net::interfaces::ProxyScheme::INVALID;
21 case ProxyServer::SCHEME_DIRECT:
22 return net::interfaces::ProxyScheme::DIRECT;
23 case ProxyServer::SCHEME_HTTP:
24 return net::interfaces::ProxyScheme::HTTP;
25 case ProxyServer::SCHEME_SOCKS4:
26 return net::interfaces::ProxyScheme::SOCKS4;
27 case ProxyServer::SCHEME_SOCKS5:
28 return net::interfaces::ProxyScheme::SOCKS5;
29 case ProxyServer::SCHEME_HTTPS:
30 return net::interfaces::ProxyScheme::HTTPS;
31 case ProxyServer::SCHEME_QUIC:
32 return net::interfaces::ProxyScheme::QUIC;
33 }
34 NOTREACHED();
35 return net::interfaces::ProxyScheme::INVALID;
36 }
37
38 bool EnumTraits<net::interfaces::ProxyScheme, net::ProxyServer::Scheme>::
39 FromMojom(net::interfaces::ProxyScheme scheme,
40 net::ProxyServer::Scheme* out) {
41 using net::ProxyServer;
42 switch (scheme) {
43 case net::interfaces::ProxyScheme::INVALID:
44 *out = ProxyServer::SCHEME_INVALID;
45 return true;
46 case net::interfaces::ProxyScheme::DIRECT:
47 *out = ProxyServer::SCHEME_DIRECT;
48 return true;
49 case net::interfaces::ProxyScheme::HTTP:
50 *out = ProxyServer::SCHEME_HTTP;
51 return true;
52 case net::interfaces::ProxyScheme::SOCKS4:
53 *out = ProxyServer::SCHEME_SOCKS4;
54 return true;
55 case net::interfaces::ProxyScheme::SOCKS5:
56 *out = ProxyServer::SCHEME_SOCKS5;
57 return true;
58 case net::interfaces::ProxyScheme::HTTPS:
59 *out = ProxyServer::SCHEME_HTTPS;
60 return true;
61 case net::interfaces::ProxyScheme::QUIC:
62 *out = ProxyServer::SCHEME_QUIC;
63 return true;
64 }
65 return false;
66 }
67
68 base::StringPiece
69 StructTraits<net::interfaces::ProxyServerDataView, net::ProxyServer>::host(
70 const net::ProxyServer& s) {
71 if (s.scheme() == net::ProxyServer::SCHEME_DIRECT ||
72 s.scheme() == net::ProxyServer::SCHEME_INVALID) {
73 return base::StringPiece();
dcheng 2016/10/05 05:59:33 Is it valid for these conditions to be true and ho
Sam McNally 2016/10/05 22:48:37 ProxyServer::host_port_pair() DCHECKs that it's va
74 }
75 return s.host_port_pair().host();
76 }
77
78 uint16_t StructTraits<net::interfaces::ProxyServerDataView,
79 net::ProxyServer>::port(const net::ProxyServer& s) {
80 if (s.scheme() == net::ProxyServer::SCHEME_DIRECT ||
81 s.scheme() == net::ProxyServer::SCHEME_INVALID) {
82 return 0;
83 }
84 return s.host_port_pair().port();
85 }
86
87 bool StructTraits<net::interfaces::ProxyServerDataView, net::ProxyServer>::Read(
88 net::interfaces::ProxyServerDataView data,
89 net::ProxyServer* out) {
90 net::ProxyServer::Scheme scheme;
91 if (!data.ReadScheme(&scheme))
92 return false;
93
94 base::StringPiece host;
95 if (!data.ReadHost(&host))
96 return false;
97
98 if ((scheme == net::ProxyServer::SCHEME_DIRECT ||
99 scheme == net::ProxyServer::SCHEME_INVALID) &&
100 (!host.empty() || data.port())) {
101 return false;
102 }
103
104 *out = net::ProxyServer(scheme,
105 net::HostPortPair(host.as_string(), data.port()));
106 return true;
107 }
108
109 bool StructTraits<net::interfaces::ProxyInfoDataView, net::ProxyInfo>::Read(
110 net::interfaces::ProxyInfoDataView data,
111 net::ProxyInfo* out) {
112 std::vector<net::ProxyServer> proxy_servers;
113 if (!data.ReadProxyServers(&proxy_servers))
114 return false;
115
116 net::ProxyList proxy_list;
117 for (const auto& server : proxy_servers)
118 proxy_list.AddProxyServer(server);
119
120 out->UseProxyList(proxy_list);
121 return true;
122 }
123
124 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698