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

Side by Side Diff: extensions/common/extension_messages.cc

Issue 1619363002: Add compile time checks against longs being used in IPC structs on 32 bit Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: one more per Dmitry Created 4 years, 10 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/common/extension_messages.h" 5 #include "extensions/common/extension_messages.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "content/public/common/common_param_traits.h" 9 #include "content/public/common/common_param_traits.h"
10 #include "extensions/common/extension.h" 10 #include "extensions/common/extension.h"
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 180
181 void ParamTraits<APIPermission::ID>::Log( 181 void ParamTraits<APIPermission::ID>::Log(
182 const param_type& p, std::string* l) { 182 const param_type& p, std::string* l) {
183 LogParam(static_cast<int>(p), l); 183 LogParam(static_cast<int>(p), l);
184 } 184 }
185 185
186 void ParamTraits<APIPermissionSet>::Write( 186 void ParamTraits<APIPermissionSet>::Write(
187 Message* m, const param_type& p) { 187 Message* m, const param_type& p) {
188 APIPermissionSet::const_iterator it = p.begin(); 188 APIPermissionSet::const_iterator it = p.begin();
189 const APIPermissionSet::const_iterator end = p.end(); 189 const APIPermissionSet::const_iterator end = p.end();
190 WriteParam(m, p.size()); 190 WriteParam(m, static_cast<uint32_t>(p.size()));
191 for (; it != end; ++it) { 191 for (; it != end; ++it) {
192 WriteParam(m, it->id()); 192 WriteParam(m, it->id());
193 it->Write(m); 193 it->Write(m);
194 } 194 }
195 } 195 }
196 196
197 bool ParamTraits<APIPermissionSet>::Read(const Message* m, 197 bool ParamTraits<APIPermissionSet>::Read(const Message* m,
198 base::PickleIterator* iter, 198 base::PickleIterator* iter,
199 param_type* r) { 199 param_type* r) {
200 size_t size; 200 uint32_t size;
201 if (!ReadParam(m, iter, &size)) 201 if (!ReadParam(m, iter, &size))
202 return false; 202 return false;
203 for (size_t i = 0; i < size; ++i) { 203 for (size_t i = 0; i < size; ++i) {
204 APIPermission::ID id; 204 APIPermission::ID id;
205 if (!ReadParam(m, iter, &id)) 205 if (!ReadParam(m, iter, &id))
206 return false; 206 return false;
207 const APIPermissionInfo* permission_info = 207 const APIPermissionInfo* permission_info =
208 extensions::PermissionsInfo::GetInstance()->GetByID(id); 208 extensions::PermissionsInfo::GetInstance()->GetByID(id);
209 if (!permission_info) 209 if (!permission_info)
210 return false; 210 return false;
211 scoped_ptr<APIPermission> p(permission_info->CreateAPIPermission()); 211 scoped_ptr<APIPermission> p(permission_info->CreateAPIPermission());
212 if (!p->Read(m, iter)) 212 if (!p->Read(m, iter))
213 return false; 213 return false;
214 r->insert(p.release()); 214 r->insert(p.release());
215 } 215 }
216 return true; 216 return true;
217 } 217 }
218 218
219 void ParamTraits<APIPermissionSet>::Log( 219 void ParamTraits<APIPermissionSet>::Log(
220 const param_type& p, std::string* l) { 220 const param_type& p, std::string* l) {
221 LogParam(p.map(), l); 221 LogParam(p.map(), l);
222 } 222 }
223 223
224 void ParamTraits<ManifestPermissionSet>::Write( 224 void ParamTraits<ManifestPermissionSet>::Write(
225 Message* m, const param_type& p) { 225 Message* m, const param_type& p) {
226 ManifestPermissionSet::const_iterator it = p.begin(); 226 ManifestPermissionSet::const_iterator it = p.begin();
227 const ManifestPermissionSet::const_iterator end = p.end(); 227 const ManifestPermissionSet::const_iterator end = p.end();
228 WriteParam(m, p.size()); 228 WriteParam(m, static_cast<uint32_t>(p.size()));
229 for (; it != end; ++it) { 229 for (; it != end; ++it) {
230 WriteParam(m, it->name()); 230 WriteParam(m, it->name());
231 it->Write(m); 231 it->Write(m);
232 } 232 }
233 } 233 }
234 234
235 bool ParamTraits<ManifestPermissionSet>::Read(const Message* m, 235 bool ParamTraits<ManifestPermissionSet>::Read(const Message* m,
236 base::PickleIterator* iter, 236 base::PickleIterator* iter,
237 param_type* r) { 237 param_type* r) {
238 size_t size; 238 uint32_t size;
239 if (!ReadParam(m, iter, &size)) 239 if (!ReadParam(m, iter, &size))
240 return false; 240 return false;
241 for (size_t i = 0; i < size; ++i) { 241 for (size_t i = 0; i < size; ++i) {
242 std::string name; 242 std::string name;
243 if (!ReadParam(m, iter, &name)) 243 if (!ReadParam(m, iter, &name))
244 return false; 244 return false;
245 scoped_ptr<ManifestPermission> p(ManifestHandler::CreatePermission(name)); 245 scoped_ptr<ManifestPermission> p(ManifestHandler::CreatePermission(name));
246 if (!p) 246 if (!p)
247 return false; 247 return false;
248 if (!p->Read(m, iter)) 248 if (!p->Read(m, iter))
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 ReadParam(m, iter, &p->active_permissions) && 328 ReadParam(m, iter, &p->active_permissions) &&
329 ReadParam(m, iter, &p->withheld_permissions); 329 ReadParam(m, iter, &p->withheld_permissions);
330 } 330 }
331 331
332 void ParamTraits<ExtensionMsg_Loaded_Params>::Log(const param_type& p, 332 void ParamTraits<ExtensionMsg_Loaded_Params>::Log(const param_type& p,
333 std::string* l) { 333 std::string* l) {
334 l->append(p.id); 334 l->append(p.id);
335 } 335 }
336 336
337 } // namespace IPC 337 } // namespace IPC
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698