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

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

Issue 10692160: Support socket endpoint permissions for AppsV2 Socket API. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Support socket endpoint permissions Created 8 years, 4 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 (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 "chrome/common/extensions/extension_messages.h" 5 #include "chrome/common/extensions/extension_messages.h"
6 6
7 #include "chrome/common/extensions/extension.h" 7 #include "chrome/common/extensions/extension.h"
8 #include "chrome/common/extensions/extension_constants.h" 8 #include "chrome/common/extensions/extension_constants.h"
9 #include "chrome/common/extensions/manifest.h" 9 #include "chrome/common/extensions/manifest.h"
10 #include "chrome/common/extensions/permissions/permissions_info.h"
10 #include "content/public/common/common_param_traits.h" 11 #include "content/public/common/common_param_traits.h"
11 12
12 using extensions::APIPermission; 13 using extensions::APIPermission;
14 using extensions::APIPermissionDetail;
15 using extensions::APIPermissionMap;
16 using extensions::APIPermissionSet;
13 using extensions::Extension; 17 using extensions::Extension;
14 using extensions::PermissionSet; 18 using extensions::PermissionSet;
19 using extensions::SocketPermissionData;
15 20
16 ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params() 21 ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params()
17 : location(Extension::INVALID), 22 : location(Extension::INVALID),
18 creation_flags(Extension::NO_FLAGS){} 23 creation_flags(Extension::NO_FLAGS){}
19 24
20 ExtensionMsg_Loaded_Params::~ExtensionMsg_Loaded_Params() {} 25 ExtensionMsg_Loaded_Params::~ExtensionMsg_Loaded_Params() {}
21 26
22 ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params( 27 ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params(
23 const Extension* extension) 28 const Extension* extension)
24 : manifest(extension->manifest()->value()->DeepCopy()), 29 : manifest(extension->manifest()->value()->DeepCopy()),
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 138
134 *p = static_cast<APIPermission::ID>(api_id); 139 *p = static_cast<APIPermission::ID>(api_id);
135 return true; 140 return true;
136 } 141 }
137 142
138 void ParamTraits<APIPermission::ID>::Log( 143 void ParamTraits<APIPermission::ID>::Log(
139 const param_type& p, std::string* l) { 144 const param_type& p, std::string* l) {
140 LogParam(static_cast<int>(p), l); 145 LogParam(static_cast<int>(p), l);
141 } 146 }
142 147
148 void ParamTraits<scoped_refptr<APIPermissionDetail> >::Write(
149 Message* m, const param_type& p) {
150 WriteParam(m, p->id());
151 p->Write(m);
152 }
153
154 bool ParamTraits<scoped_refptr<APIPermissionDetail> >::Read(
155 const Message* m, PickleIterator* iter, param_type* r) {
156 APIPermission::ID id;
157 if (!ReadParam(m, iter, &id))
158 return false;
159 APIPermission* permission =
160 extensions::PermissionsInfo::GetInstance()->GetByID(id);
161 if (!permission)
162 return false;
163 *r = permission->CreateDetail();
164 if (!(*r)->Read(m, iter)) {
165 *r = NULL;
166 return false;
167 }
168 return true;
169 }
170
171 void ParamTraits<scoped_refptr<APIPermissionDetail> >::Log(
172 const param_type& p, std::string* l) {
173 p->Log(l);
174 }
175
176 void ParamTraits<APIPermissionSet>::Write(
177 Message* m, const param_type& p) {
178 APIPermissionSet::const_iterator it = p.begin();
179 APIPermissionSet::const_iterator end = p.end();
180 WriteParam(m, p.size());
181 for (; it != end; ++it) {
182 WriteParam(m, *it);
183 }
184 }
185
186 bool ParamTraits<APIPermissionSet>::Read(
187 const Message* m, PickleIterator* iter, param_type* r) {
188 size_t size;
189 if (!ReadParam(m, iter, &size))
190 return false;
191 for (size_t i = 0; i < size; ++i) {
192 scoped_refptr<APIPermissionDetail> p;
193 if (!ReadParam(m, iter, &p))
194 return false;
195 r->insert(p);
196 }
197 return true;
198 }
199
200 void ParamTraits<APIPermissionSet>::Log(
201 const param_type& p, std::string* l) {
202 LogParam(p.map(), l);
203 }
204
205 void ParamTraits<SocketPermissionData>::Write(
206 Message* m, const param_type& p) {
207 WriteParam(m, p.GetAsString());
208 }
209
210 bool ParamTraits<SocketPermissionData>::Read(
211 const Message* m, PickleIterator* iter, param_type* r) {
212 std::string spec;
213 if (!ReadParam(m, iter, &spec))
214 return false;
215
216 return r->Parse(spec);
217 }
218
219 void ParamTraits<SocketPermissionData>::Log(
220 const param_type& p, std::string* l) {
221 LogParam(std::string("<SocketPermissionData>"), l);
222 }
223
143 void ParamTraits<ExtensionMsg_Loaded_Params>::Write(Message* m, 224 void ParamTraits<ExtensionMsg_Loaded_Params>::Write(Message* m,
144 const param_type& p) { 225 const param_type& p) {
145 WriteParam(m, p.location); 226 WriteParam(m, p.location);
146 WriteParam(m, p.path); 227 WriteParam(m, p.path);
147 WriteParam(m, *(p.manifest)); 228 WriteParam(m, *(p.manifest));
148 WriteParam(m, p.creation_flags); 229 WriteParam(m, p.creation_flags);
149 WriteParam(m, p.apis); 230 WriteParam(m, p.apis);
150 WriteParam(m, p.explicit_hosts); 231 WriteParam(m, p.explicit_hosts);
151 WriteParam(m, p.scriptable_hosts); 232 WriteParam(m, p.scriptable_hosts);
152 } 233 }
(...skipping 10 matching lines...) Expand all
163 ReadParam(m, iter, &p->explicit_hosts) && 244 ReadParam(m, iter, &p->explicit_hosts) &&
164 ReadParam(m, iter, &p->scriptable_hosts); 245 ReadParam(m, iter, &p->scriptable_hosts);
165 } 246 }
166 247
167 void ParamTraits<ExtensionMsg_Loaded_Params>::Log(const param_type& p, 248 void ParamTraits<ExtensionMsg_Loaded_Params>::Log(const param_type& p,
168 std::string* l) { 249 std::string* l) {
169 l->append(p.id); 250 l->append(p.id);
170 } 251 }
171 252
172 } // namespace IPC 253 } // namespace IPC
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698