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

Side by Side Diff: content/common/cc_messages.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, 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 | Annotate | Revision Log
« no previous file with comments | « content/common/cc_messages.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 #include "content/common/cc_messages.h" 5 #include "content/common/cc_messages.h"
6 6
7 #include "content/public/common/common_param_traits.h" 7 #include "content/public/common/common_param_traits.h"
8 #include "third_party/WebKit/Source/Platform/chromium/public/WebData.h"
9 #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperations .h"
10 #include "third_party/WebKit/Source/Platform/chromium/public/WebTransformationMa trix.h"
8 11
9 namespace IPC { 12 namespace IPC {
10 13
11 void ParamTraits<WebKit::WebData>::Write(Message* m, const param_type& p) { 14 void ParamTraits<WebKit::WebData>::Write(Message* m, const param_type& p) {
12 if (p.isEmpty()) { 15 if (p.isEmpty()) {
13 m->WriteData(NULL, 0); 16 m->WriteData(NULL, 0);
14 } else { 17 } else {
15 m->WriteData(p.data(), p.size()); 18 m->WriteData(p.data(), p.size());
16 } 19 }
17 } 20 }
(...skipping 10 matching lines...) Expand all
28 r->reset(); 31 r->reset();
29 return true; 32 return true;
30 } 33 }
31 34
32 void ParamTraits<WebKit::WebData>::Log(const param_type& p, std::string* l) { 35 void ParamTraits<WebKit::WebData>::Log(const param_type& p, std::string* l) {
33 l->append("(WebData of size "); 36 l->append("(WebData of size ");
34 LogParam(p.size(), l); 37 LogParam(p.size(), l);
35 l->append(")"); 38 l->append(")");
36 } 39 }
37 40
41 void ParamTraits<WebKit::WebFilterOperation>::Write(
42 Message* m, const param_type& p) {
43 WriteParam(m, p.type());
44 switch (p.type()) {
45 case WebKit::WebFilterOperation::FilterTypeGrayscale:
46 case WebKit::WebFilterOperation::FilterTypeSepia:
47 case WebKit::WebFilterOperation::FilterTypeSaturate:
48 case WebKit::WebFilterOperation::FilterTypeHueRotate:
49 case WebKit::WebFilterOperation::FilterTypeInvert:
50 case WebKit::WebFilterOperation::FilterTypeBrightness:
51 case WebKit::WebFilterOperation::FilterTypeContrast:
52 case WebKit::WebFilterOperation::FilterTypeOpacity:
53 case WebKit::WebFilterOperation::FilterTypeBlur:
54 WriteParam(m, p.amount());
55 break;
56 case WebKit::WebFilterOperation::FilterTypeDropShadow:
57 WriteParam(m, p.dropShadowOffset());
58 WriteParam(m, p.amount());
59 WriteParam(m, p.dropShadowColor());
60 break;
61 case WebKit::WebFilterOperation::FilterTypeColorMatrix:
62 for (int i = 0; i < 20; ++i)
63 WriteParam(m, p.matrix()[i]);
64 break;
65 case WebKit::WebFilterOperation::FilterTypeZoom:
66 WriteParam(m, p.zoomRect());
67 WriteParam(m, p.amount());
68 break;
69 }
70 }
71
72 bool ParamTraits<WebKit::WebFilterOperation>::Read(
73 const Message* m, PickleIterator* iter, param_type* r) {
74 WebKit::WebFilterOperation::FilterType type;
75 float amount;
76 WebKit::WebPoint dropShadowOffset;
77 WebKit::WebColor dropShadowColor;
78 SkScalar matrix[20];
79 WebKit::WebRect zoomRect;
80
81 if (!ReadParam(m, iter, &type))
82 return false;
83 r->setType(type);
84
85 bool success = false;
86 switch (type) {
87 case WebKit::WebFilterOperation::FilterTypeGrayscale:
88 case WebKit::WebFilterOperation::FilterTypeSepia:
89 case WebKit::WebFilterOperation::FilterTypeSaturate:
90 case WebKit::WebFilterOperation::FilterTypeHueRotate:
91 case WebKit::WebFilterOperation::FilterTypeInvert:
92 case WebKit::WebFilterOperation::FilterTypeBrightness:
93 case WebKit::WebFilterOperation::FilterTypeContrast:
94 case WebKit::WebFilterOperation::FilterTypeOpacity:
95 case WebKit::WebFilterOperation::FilterTypeBlur:
96 if (ReadParam(m, iter, &amount)) {
97 r->setAmount(amount);
98 success = true;
99 }
100 break;
101 case WebKit::WebFilterOperation::FilterTypeDropShadow:
102 if (ReadParam(m, iter, &dropShadowOffset) &&
103 ReadParam(m, iter, &amount) &&
104 ReadParam(m, iter, &dropShadowColor)) {
105 r->setDropShadowOffset(dropShadowOffset);
106 r->setAmount(amount);
107 r->setDropShadowColor(dropShadowColor);
108 success = true;
109 }
110 break;
111 case WebKit::WebFilterOperation::FilterTypeColorMatrix: {
112 int i;
113 for (i = 0; i < 20; ++i) {
114 if (!ReadParam(m, iter, &matrix[i]))
115 break;
116 }
117 if (i == 20) {
118 r->setMatrix(matrix);
119 success = true;
120 }
121 break;
122 }
123 case WebKit::WebFilterOperation::FilterTypeZoom:
124 if (ReadParam(m, iter, &zoomRect) &&
125 ReadParam(m, iter, &amount)) {
126 r->setZoomRect(zoomRect);
127 r->setAmount(amount);
128 success = true;
129 }
130 break;
131 }
132 return success;
133 }
134
135 void ParamTraits<WebKit::WebFilterOperation>::Log(
136 const param_type& p, std::string* l) {
137 l->append("(");
138 LogParam(static_cast<unsigned>(p.type()), l);
139 l->append(", ");
140
141 switch (p.type()) {
142 case WebKit::WebFilterOperation::FilterTypeGrayscale:
143 case WebKit::WebFilterOperation::FilterTypeSepia:
144 case WebKit::WebFilterOperation::FilterTypeSaturate:
145 case WebKit::WebFilterOperation::FilterTypeHueRotate:
146 case WebKit::WebFilterOperation::FilterTypeInvert:
147 case WebKit::WebFilterOperation::FilterTypeBrightness:
148 case WebKit::WebFilterOperation::FilterTypeContrast:
149 case WebKit::WebFilterOperation::FilterTypeOpacity:
150 case WebKit::WebFilterOperation::FilterTypeBlur:
151 LogParam(p.amount(), l);
152 break;
153 case WebKit::WebFilterOperation::FilterTypeDropShadow:
154 LogParam(p.dropShadowOffset(), l);
155 l->append(", ");
156 LogParam(p.amount(), l);
157 l->append(", ");
158 LogParam(p.dropShadowColor(), l);
159 break;
160 case WebKit::WebFilterOperation::FilterTypeColorMatrix:
161 for (int i = 0; i < 20; ++i) {
162 if (i)
163 l->append(", ");
164 LogParam(p.matrix()[i], l);
165 }
166 break;
167 case WebKit::WebFilterOperation::FilterTypeZoom:
168 LogParam(p.zoomRect(), l);
169 l->append(", ");
170 LogParam(p.amount(), l);
171 break;
172 }
173 l->append(")");
174 }
175
176 void ParamTraits<WebKit::WebFilterOperations>::Write(
177 Message* m, const param_type& p) {
178 WriteParam(m, p.size());
179 for (std::size_t i = 0; i < p.size(); ++i) {
180 WriteParam(m, p.at(i));
181 }
182 }
183
184 bool ParamTraits<WebKit::WebFilterOperations>::Read(
185 const Message* m, PickleIterator* iter, param_type* r) {
186 size_t count;
187 if (!ReadParam(m, iter, &count))
188 return false;
189
190 for (std::size_t i = 0; i < count; ++i) {
191 WebKit::WebFilterOperation op =
192 WebKit::WebFilterOperation::createEmptyFilter();
193 if (!ReadParam(m, iter, &op))
194 return false;
195 r->append(op);
196 }
197 return true;
198 }
199
200 void ParamTraits<WebKit::WebFilterOperations>::Log(
201 const param_type& p, std::string* l) {
202 l->append("(");
203 for (std::size_t i = 0; i < p.size(); ++i) {
204 if (i)
205 l->append(", ");
206 LogParam(p.at(i), l);
207 }
208 l->append(")");
209 }
210
38 void ParamTraits<WebKit::WebTransformationMatrix>::Write( 211 void ParamTraits<WebKit::WebTransformationMatrix>::Write(
39 Message* m, const param_type& p) { 212 Message* m, const param_type& p) {
40 WriteParam(m, p.m11()); 213 WriteParam(m, p.m11());
41 WriteParam(m, p.m12()); 214 WriteParam(m, p.m12());
42 WriteParam(m, p.m13()); 215 WriteParam(m, p.m13());
43 WriteParam(m, p.m14()); 216 WriteParam(m, p.m14());
44 WriteParam(m, p.m21()); 217 WriteParam(m, p.m21());
45 WriteParam(m, p.m22()); 218 WriteParam(m, p.m22());
46 WriteParam(m, p.m23()); 219 WriteParam(m, p.m23());
47 WriteParam(m, p.m24()); 220 WriteParam(m, p.m24());
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 l->append(", "); 303 l->append(", ");
131 LogParam(p.m42(), l); 304 LogParam(p.m42(), l);
132 l->append(", "); 305 l->append(", ");
133 LogParam(p.m43(), l); 306 LogParam(p.m43(), l);
134 l->append(", "); 307 l->append(", ");
135 LogParam(p.m44(), l); 308 LogParam(p.m44(), l);
136 l->append(") "); 309 l->append(") ");
137 } 310 }
138 311
139 } // namespace IPC 312 } // namespace IPC
OLDNEW
« no previous file with comments | « content/common/cc_messages.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698