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

Side by Side Diff: content/public/common/webkit_param_traits.cc

Issue 10966050: Add pickling traits for the WebFilterOperations class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « content/public/common/webkit_param_traits.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 // NOTE: New trait definitions that will be used by Chrome Frame must be placed 5 // NOTE: New trait definitions that will be used by Chrome Frame must be placed
6 // in common_param_traits2.cc. 6 // in common_param_traits2.cc.
7 7
8 #include "content/public/common/webkit_param_traits.h" 8 #include "content/public/common/webkit_param_traits.h"
9 9
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
(...skipping 15 matching lines...) Expand all
26 : type(NPVARIANT_PARAM_VOID), 26 : type(NPVARIANT_PARAM_VOID),
27 bool_value(false), 27 bool_value(false),
28 int_value(0), 28 int_value(0),
29 double_value(0), 29 double_value(0),
30 npobject_routing_id(-1) { 30 npobject_routing_id(-1) {
31 } 31 }
32 32
33 NPVariant_Param::~NPVariant_Param() { 33 NPVariant_Param::~NPVariant_Param() {
34 } 34 }
35 35
36 IPC_STRUCT_TRAITS_BEGIN(WebKit::WebPoint)
37 IPC_STRUCT_TRAITS_MEMBER(x)
38 IPC_STRUCT_TRAITS_MEMBER(y)
39 IPC_STRUCT_TRAITS_END()
40
41 IPC_STRUCT_TRAITS_BEGIN(WebKit::WebRect)
42 IPC_STRUCT_TRAITS_MEMBER(x)
43 IPC_STRUCT_TRAITS_MEMBER(y)
44 IPC_STRUCT_TRAITS_MEMBER(width)
45 IPC_STRUCT_TRAITS_MEMBER(height)
46 IPC_STRUCT_TRAITS_END()
danakj 2012/09/21 23:38:26 I strongly suspect this is the wrong thing to do,
47
36 namespace IPC { 48 namespace IPC {
37 49
38 void ParamTraits<WebKit::WebData>::Write(Message* m, const param_type& p) { 50 void ParamTraits<WebKit::WebData>::Write(Message* m, const param_type& p) {
39 if (p.isEmpty()) { 51 if (p.isEmpty()) {
40 m->WriteData(NULL, 0); 52 m->WriteData(NULL, 0);
41 } else { 53 } else {
42 m->WriteData(p.data(), p.size()); 54 m->WriteData(p.data(), p.size());
43 } 55 }
44 } 56 }
45 57
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 LogParam(p.m41(), l); 168 LogParam(p.m41(), l);
157 l->append(", "); 169 l->append(", ");
158 LogParam(p.m42(), l); 170 LogParam(p.m42(), l);
159 l->append(", "); 171 l->append(", ");
160 LogParam(p.m43(), l); 172 LogParam(p.m43(), l);
161 l->append(", "); 173 l->append(", ");
162 LogParam(p.m44(), l); 174 LogParam(p.m44(), l);
163 l->append(") "); 175 l->append(") ");
164 } 176 }
165 177
178 void ParamTraits<WebKit::WebFilterOperations>::Write(
179 Message* m, const param_type& p) {
180 if (p.isEmpty()) {
181 WriteParam(m, 0);
182 return;
183 }
184
185 WriteParam(m, p.size());
186 for (std::size_t i = 0; i < p.size(); ++i) {
187 WriteParam(m, p.at(i));
188 }
189 }
190
191 bool ParamTraits<WebKit::WebFilterOperations>::Read(
192 const Message* m, PickleIterator* iter, param_type* r) {
193 size_t count;
194 if (!ReadParam(m, iter, &count))
195 return false;
196
197 for (std::size_t i = 0; i < count; ++i) {
198 WebKit::WebFilterOperation op =
199 WebKit::WebFilterOperation::createEmptyFilter();
200 if (!ReadParam(m, iter, &op))
201 return false;
202 r->append(op);
203 }
204 return true;
205 }
206
207 void ParamTraits<WebKit::WebFilterOperations>::Log(
208 const param_type& p, std::string* l) {
209 l->append("(");
210 for (std::size_t i = 0; i < p.size(); ++i) {
211 if (i)
212 l->append(", ");
213 LogParam(p.at(i), l);
214 }
215 l->append(")");
216 }
217
218 void ParamTraits<WebKit::WebFilterOperation>::Write(
219 Message* m, const param_type& p) {
220 WriteParam(m, static_cast<unsigned>(p.type()));
221 switch (p.type()) {
222 case WebKit::WebFilterOperation::FilterTypeGrayscale:
223 case WebKit::WebFilterOperation::FilterTypeSepia:
224 case WebKit::WebFilterOperation::FilterTypeSaturate:
225 case WebKit::WebFilterOperation::FilterTypeHueRotate:
226 case WebKit::WebFilterOperation::FilterTypeInvert:
227 case WebKit::WebFilterOperation::FilterTypeBrightness:
228 case WebKit::WebFilterOperation::FilterTypeContrast:
229 case WebKit::WebFilterOperation::FilterTypeOpacity:
230 case WebKit::WebFilterOperation::FilterTypeBlur:
231 WriteParam(m, p.amount());
232 break;
233 case WebKit::WebFilterOperation::FilterTypeDropShadow:
234 WriteParam(m, p.dropShadowOffset());
235 WriteParam(m, p.amount());
236 WriteParam(m, p.dropShadowColor());
237 break;
238 case WebKit::WebFilterOperation::FilterTypeColorMatrix:
239 for (int i = 0; i < 20; ++i)
240 WriteParam(m, p.matrix()[i]);
241 break;
242 case WebKit::WebFilterOperation::FilterTypeZoom:
243 WriteParam(m, p.zoomRect());
244 WriteParam(m, p.amount());
245 break;
246 }
247 }
248
249 bool ParamTraits<WebKit::WebFilterOperation>::Read(
250 const Message* m, PickleIterator* iter, param_type* r) {
251 unsigned type;
252 float amount;
253 WebKit::WebPoint dropShadowOffset;
254 WebKit::WebColor dropShadowColor;
255 SkScalar matrix[20];
256 WebKit::WebRect zoomRect;
257
258 if (!ReadParam(m, iter, &type))
259 return false;
260 r->setType(static_cast<WebKit::WebFilterOperation::FilterType>(type));
261
262 switch (type) {
263 case WebKit::WebFilterOperation::FilterTypeGrayscale:
264 case WebKit::WebFilterOperation::FilterTypeSepia:
265 case WebKit::WebFilterOperation::FilterTypeSaturate:
266 case WebKit::WebFilterOperation::FilterTypeHueRotate:
267 case WebKit::WebFilterOperation::FilterTypeInvert:
268 case WebKit::WebFilterOperation::FilterTypeBrightness:
269 case WebKit::WebFilterOperation::FilterTypeContrast:
270 case WebKit::WebFilterOperation::FilterTypeOpacity:
271 case WebKit::WebFilterOperation::FilterTypeBlur:
272 if (!ReadParam(m, iter, &amount))
273 return false;
274 r->setAmount(amount);
275 break;
276 case WebKit::WebFilterOperation::FilterTypeDropShadow:
277 if (!ReadParam(m, iter, &dropShadowOffset) ||
278 !ReadParam(m, iter, &amount) ||
279 !ReadParam(m, iter, &dropShadowColor))
280 return false;
281 r->setDropShadowOffset(dropShadowOffset);
282 r->setAmount(amount);
283 r->setDropShadowColor(dropShadowColor);
284 break;
285 case WebKit::WebFilterOperation::FilterTypeColorMatrix:
286 for (int i = 0; i < 20; ++i) {
287 if (!ReadParam(m, iter, &matrix[i]))
288 return false;
289 }
290 r->setMatrix(matrix);
291 break;
292 case WebKit::WebFilterOperation::FilterTypeZoom:
293 if (!ReadParam(m, iter, &zoomRect) ||
294 !ReadParam(m, iter, &amount))
295 return false;
296 r->setZoomRect(zoomRect);
297 r->setAmount(amount);
298 break;
299 }
300 return true;
301 }
302
303 void ParamTraits<WebKit::WebFilterOperation>::Log(
304 const param_type& p, std::string* l) {
305 l->append("(");
306 LogParam(static_cast<unsigned>(p.type()), l);
307 l->append(", ");
308
309 switch (p.type()) {
310 case WebKit::WebFilterOperation::FilterTypeGrayscale:
311 case WebKit::WebFilterOperation::FilterTypeSepia:
312 case WebKit::WebFilterOperation::FilterTypeSaturate:
313 case WebKit::WebFilterOperation::FilterTypeHueRotate:
314 case WebKit::WebFilterOperation::FilterTypeInvert:
315 case WebKit::WebFilterOperation::FilterTypeBrightness:
316 case WebKit::WebFilterOperation::FilterTypeContrast:
317 case WebKit::WebFilterOperation::FilterTypeOpacity:
318 case WebKit::WebFilterOperation::FilterTypeBlur:
319 LogParam(p.amount(), l);
320 break;
321 case WebKit::WebFilterOperation::FilterTypeDropShadow:
322 LogParam(p.dropShadowOffset(), l);
323 l->append(", ");
324 LogParam(p.amount(), l);
325 l->append(", ");
326 LogParam(p.dropShadowColor(), l);
327 break;
328 case WebKit::WebFilterOperation::FilterTypeColorMatrix:
329 for (int i = 0; i < 20; ++i) {
330 if (i)
331 l->append(", ");
332 LogParam(p.matrix()[i], l);
333 }
334 break;
335 case WebKit::WebFilterOperation::FilterTypeZoom:
336 LogParam(p.zoomRect(), l);
337 l->append(", ");
338 LogParam(p.amount(), l);
339 break;
340 }
341 l->append(")");
342 }
343
166 void ParamTraits<webkit_glue::ResourceLoadTimingInfo>::Write( 344 void ParamTraits<webkit_glue::ResourceLoadTimingInfo>::Write(
167 Message* m, const param_type& p) { 345 Message* m, const param_type& p) {
168 WriteParam(m, p.base_time.is_null()); 346 WriteParam(m, p.base_time.is_null());
169 if (p.base_time.is_null()) 347 if (p.base_time.is_null())
170 return; 348 return;
171 WriteParam(m, p.base_ticks); 349 WriteParam(m, p.base_ticks);
172 WriteParam(m, p.base_time); 350 WriteParam(m, p.base_time);
173 WriteParam(m, p.proxy_start); 351 WriteParam(m, p.proxy_start);
174 WriteParam(m, p.proxy_end); 352 WriteParam(m, p.proxy_end);
175 WriteParam(m, p.dns_start); 353 WriteParam(m, p.dns_start);
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 ReadParam(m, iter, &p->ssl_valid) && 650 ReadParam(m, iter, &p->ssl_valid) &&
473 ReadParam(m, iter, &p->preferred) && 651 ReadParam(m, iter, &p->preferred) &&
474 ReadParam(m, iter, &p->blacklisted_by_user); 652 ReadParam(m, iter, &p->blacklisted_by_user);
475 } 653 }
476 void ParamTraits<webkit::forms::PasswordForm>::Log(const param_type& p, 654 void ParamTraits<webkit::forms::PasswordForm>::Log(const param_type& p,
477 std::string* l) { 655 std::string* l) {
478 l->append("<PasswordForm>"); 656 l->append("<PasswordForm>");
479 } 657 }
480 658
481 } // namespace IPC 659 } // namespace IPC
OLDNEW
« no previous file with comments | « content/public/common/webkit_param_traits.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698