OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/public/common/common_param_traits.h" | 5 #include "content/public/common/common_param_traits.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "content/public/common/content_constants.h" | 9 #include "content/public/common/content_constants.h" |
10 #include "content/public/common/page_state.h" | 10 #include "content/public/common/page_state.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 // this area. | 29 // this area. |
30 if (!p.is_valid()) { | 30 if (!p.is_valid()) { |
31 m->WriteString(std::string()); | 31 m->WriteString(std::string()); |
32 return; | 32 return; |
33 } | 33 } |
34 | 34 |
35 m->WriteString(p.possibly_invalid_spec()); | 35 m->WriteString(p.possibly_invalid_spec()); |
36 // TODO(brettw) bug 684583: Add encoding for query params. | 36 // TODO(brettw) bug 684583: Add encoding for query params. |
37 } | 37 } |
38 | 38 |
39 bool ParamTraits<GURL>::Read(const Message* m, PickleIterator* iter, GURL* p) { | 39 bool ParamTraits<GURL>::Read(const Message* m, |
| 40 base::PickleIterator* iter, |
| 41 GURL* p) { |
40 std::string s; | 42 std::string s; |
41 if (!iter->ReadString(&s) || s.length() > content::GetMaxURLChars()) { | 43 if (!iter->ReadString(&s) || s.length() > content::GetMaxURLChars()) { |
42 *p = GURL(); | 44 *p = GURL(); |
43 return false; | 45 return false; |
44 } | 46 } |
45 *p = GURL(s); | 47 *p = GURL(s); |
46 if (!s.empty() && !p->is_valid()) { | 48 if (!s.empty() && !p->is_valid()) { |
47 *p = GURL(); | 49 *p = GURL(); |
48 return false; | 50 return false; |
49 } | 51 } |
50 return true; | 52 return true; |
51 } | 53 } |
52 | 54 |
53 void ParamTraits<GURL>::Log(const GURL& p, std::string* l) { | 55 void ParamTraits<GURL>::Log(const GURL& p, std::string* l) { |
54 l->append(p.spec()); | 56 l->append(p.spec()); |
55 } | 57 } |
56 | 58 |
57 void ParamTraits<url::Origin>::Write(Message* m, | 59 void ParamTraits<url::Origin>::Write(Message* m, |
58 const url::Origin& p) { | 60 const url::Origin& p) { |
59 m->WriteString(p.string()); | 61 m->WriteString(p.string()); |
60 } | 62 } |
61 | 63 |
62 bool ParamTraits<url::Origin>::Read(const Message* m, | 64 bool ParamTraits<url::Origin>::Read(const Message* m, |
63 PickleIterator* iter, | 65 base::PickleIterator* iter, |
64 url::Origin* p) { | 66 url::Origin* p) { |
65 std::string s; | 67 std::string s; |
66 if (!iter->ReadString(&s)) { | 68 if (!iter->ReadString(&s)) { |
67 *p = url::Origin(); | 69 *p = url::Origin(); |
68 return false; | 70 return false; |
69 } | 71 } |
70 *p = url::Origin(s); | 72 *p = url::Origin(s); |
71 return true; | 73 return true; |
72 } | 74 } |
73 | 75 |
74 void ParamTraits<url::Origin>::Log(const url::Origin& p, std::string* l) { | 76 void ParamTraits<url::Origin>::Log(const url::Origin& p, std::string* l) { |
75 l->append(p.string()); | 77 l->append(p.string()); |
76 } | 78 } |
77 | 79 |
78 void ParamTraits<net::HostPortPair>::Write(Message* m, const param_type& p) { | 80 void ParamTraits<net::HostPortPair>::Write(Message* m, const param_type& p) { |
79 WriteParam(m, p.host()); | 81 WriteParam(m, p.host()); |
80 WriteParam(m, p.port()); | 82 WriteParam(m, p.port()); |
81 } | 83 } |
82 | 84 |
83 bool ParamTraits<net::HostPortPair>::Read(const Message* m, | 85 bool ParamTraits<net::HostPortPair>::Read(const Message* m, |
84 PickleIterator* iter, | 86 base::PickleIterator* iter, |
85 param_type* r) { | 87 param_type* r) { |
86 std::string host; | 88 std::string host; |
87 uint16 port; | 89 uint16 port; |
88 if (!ReadParam(m, iter, &host) || !ReadParam(m, iter, &port)) | 90 if (!ReadParam(m, iter, &host) || !ReadParam(m, iter, &port)) |
89 return false; | 91 return false; |
90 | 92 |
91 r->set_host(host); | 93 r->set_host(host); |
92 r->set_port(port); | 94 r->set_port(port); |
93 return true; | 95 return true; |
94 } | 96 } |
95 | 97 |
96 void ParamTraits<net::HostPortPair>::Log(const param_type& p, std::string* l) { | 98 void ParamTraits<net::HostPortPair>::Log(const param_type& p, std::string* l) { |
97 l->append(p.ToString()); | 99 l->append(p.ToString()); |
98 } | 100 } |
99 | 101 |
100 void ParamTraits<net::IPEndPoint>::Write(Message* m, const param_type& p) { | 102 void ParamTraits<net::IPEndPoint>::Write(Message* m, const param_type& p) { |
101 WriteParam(m, p.address()); | 103 WriteParam(m, p.address()); |
102 WriteParam(m, p.port()); | 104 WriteParam(m, p.port()); |
103 } | 105 } |
104 | 106 |
105 bool ParamTraits<net::IPEndPoint>::Read(const Message* m, PickleIterator* iter, | 107 bool ParamTraits<net::IPEndPoint>::Read(const Message* m, |
| 108 base::PickleIterator* iter, |
106 param_type* p) { | 109 param_type* p) { |
107 net::IPAddressNumber address; | 110 net::IPAddressNumber address; |
108 uint16 port; | 111 uint16 port; |
109 if (!ReadParam(m, iter, &address) || !ReadParam(m, iter, &port)) | 112 if (!ReadParam(m, iter, &address) || !ReadParam(m, iter, &port)) |
110 return false; | 113 return false; |
111 if (address.size() && | 114 if (address.size() && |
112 address.size() != net::kIPv4AddressSize && | 115 address.size() != net::kIPv4AddressSize && |
113 address.size() != net::kIPv6AddressSize) { | 116 address.size() != net::kIPv6AddressSize) { |
114 return false; | 117 return false; |
115 } | 118 } |
116 *p = net::IPEndPoint(address, port); | 119 *p = net::IPEndPoint(address, port); |
117 return true; | 120 return true; |
118 } | 121 } |
119 | 122 |
120 void ParamTraits<net::IPEndPoint>::Log(const param_type& p, std::string* l) { | 123 void ParamTraits<net::IPEndPoint>::Log(const param_type& p, std::string* l) { |
121 LogParam("IPEndPoint:" + p.ToString(), l); | 124 LogParam("IPEndPoint:" + p.ToString(), l); |
122 } | 125 } |
123 | 126 |
124 void ParamTraits<content::PageState>::Write( | 127 void ParamTraits<content::PageState>::Write( |
125 Message* m, const param_type& p) { | 128 Message* m, const param_type& p) { |
126 WriteParam(m, p.ToEncodedData()); | 129 WriteParam(m, p.ToEncodedData()); |
127 } | 130 } |
128 | 131 |
129 bool ParamTraits<content::PageState>::Read( | 132 bool ParamTraits<content::PageState>::Read(const Message* m, |
130 const Message* m, PickleIterator* iter, param_type* r) { | 133 base::PickleIterator* iter, |
| 134 param_type* r) { |
131 std::string data; | 135 std::string data; |
132 if (!ReadParam(m, iter, &data)) | 136 if (!ReadParam(m, iter, &data)) |
133 return false; | 137 return false; |
134 *r = content::PageState::CreateFromEncodedData(data); | 138 *r = content::PageState::CreateFromEncodedData(data); |
135 return true; | 139 return true; |
136 } | 140 } |
137 | 141 |
138 void ParamTraits<content::PageState>::Log( | 142 void ParamTraits<content::PageState>::Log( |
139 const param_type& p, std::string* l) { | 143 const param_type& p, std::string* l) { |
140 l->append("("); | 144 l->append("("); |
(...skipping 16 matching lines...) Expand all Loading... |
157 #undef CONTENT_PUBLIC_COMMON_COMMON_PARAM_TRAITS_MACROS_H_ | 161 #undef CONTENT_PUBLIC_COMMON_COMMON_PARAM_TRAITS_MACROS_H_ |
158 #include "content/public/common/common_param_traits_macros.h" | 162 #include "content/public/common/common_param_traits_macros.h" |
159 } // namespace IPC | 163 } // namespace IPC |
160 | 164 |
161 // Generate param traits log methods. | 165 // Generate param traits log methods. |
162 #include "ipc/param_traits_log_macros.h" | 166 #include "ipc/param_traits_log_macros.h" |
163 namespace IPC { | 167 namespace IPC { |
164 #undef CONTENT_PUBLIC_COMMON_COMMON_PARAM_TRAITS_MACROS_H_ | 168 #undef CONTENT_PUBLIC_COMMON_COMMON_PARAM_TRAITS_MACROS_H_ |
165 #include "content/public/common/common_param_traits_macros.h" | 169 #include "content/public/common/common_param_traits_macros.h" |
166 } // namespace IPC | 170 } // namespace IPC |
OLD | NEW |