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

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

Issue 2833843004: Reland: Communicate ExtensionSettings policy to renderers (Closed)
Patch Set: Removed unused URLPatternSet parameters in ExtensionMsg_PermissionSetStruct which was causing MSAN … Created 3 years, 8 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 <memory> 9 #include <memory>
10 10
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 57
58 ExtensionMsg_Loaded_Params::~ExtensionMsg_Loaded_Params() {} 58 ExtensionMsg_Loaded_Params::~ExtensionMsg_Loaded_Params() {}
59 59
60 ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params( 60 ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params(
61 const Extension* extension, 61 const Extension* extension,
62 bool include_tab_permissions) 62 bool include_tab_permissions)
63 : manifest(extension->manifest()->value()->DeepCopy()), 63 : manifest(extension->manifest()->value()->DeepCopy()),
64 location(extension->location()), 64 location(extension->location()),
65 path(extension->path()), 65 path(extension->path()),
66 active_permissions(extension->permissions_data()->active_permissions()), 66 active_permissions(extension->permissions_data()->active_permissions()),
67 withheld_permissions(extension->permissions_data() 67 withheld_permissions(
68 ->withheld_permissions()), 68 extension->permissions_data()->withheld_permissions()),
69 policy_blocked_hosts(
70 extension->permissions_data()->policy_blocked_hosts()),
71 policy_allowed_hosts(
72 extension->permissions_data()->policy_allowed_hosts()),
73 uses_default_policy_blocked_allowed_hosts(
74 extension->permissions_data()->UsesDefaultPolicyHostRestrictions()),
69 id(extension->id()), 75 id(extension->id()),
70 creation_flags(extension->creation_flags()) { 76 creation_flags(extension->creation_flags()) {
71 if (include_tab_permissions) { 77 if (include_tab_permissions) {
72 for (const auto& pair : 78 for (const auto& pair :
73 extension->permissions_data()->tab_specific_permissions()) { 79 extension->permissions_data()->tab_specific_permissions()) {
74 tab_specific_permissions[pair.first] = 80 tab_specific_permissions[pair.first] =
75 ExtensionMsg_PermissionSetStruct(*pair.second); 81 ExtensionMsg_PermissionSetStruct(*pair.second);
76 } 82 }
77 } 83 }
78 } 84 }
79 85
80 ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params( 86 ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params(
81 const ExtensionMsg_Loaded_Params& other) = default; 87 const ExtensionMsg_Loaded_Params& other) = default;
82 88
83 scoped_refptr<Extension> ExtensionMsg_Loaded_Params::ConvertToExtension( 89 scoped_refptr<Extension> ExtensionMsg_Loaded_Params::ConvertToExtension(
84 std::string* error) const { 90 std::string* error) const {
85 // We pass in the |id| to the create call because it will save work in the 91 // We pass in the |id| to the create call because it will save work in the
86 // normal case, and because in tests, extensions may not have paths or keys, 92 // normal case, and because in tests, extensions may not have paths or keys,
87 // but it's important to retain the same id. 93 // but it's important to retain the same id.
88 scoped_refptr<Extension> extension = 94 scoped_refptr<Extension> extension =
89 Extension::Create(path, location, *manifest, creation_flags, id, error); 95 Extension::Create(path, location, *manifest, creation_flags, id, error);
90 if (extension.get()) { 96 if (extension.get()) {
91 const extensions::PermissionsData* permissions_data = 97 const extensions::PermissionsData* permissions_data =
92 extension->permissions_data(); 98 extension->permissions_data();
93 permissions_data->SetPermissions(active_permissions.ToPermissionSet(), 99 permissions_data->SetPermissions(active_permissions.ToPermissionSet(),
94 withheld_permissions.ToPermissionSet()); 100 withheld_permissions.ToPermissionSet());
101 if (uses_default_policy_blocked_allowed_hosts) {
102 permissions_data->SetUsesDefaultHostRestrictions();
103 } else {
104 permissions_data->SetPolicyHostRestrictions(policy_blocked_hosts,
105 policy_allowed_hosts);
106 }
95 for (const auto& pair : tab_specific_permissions) { 107 for (const auto& pair : tab_specific_permissions) {
96 permissions_data->UpdateTabSpecificPermissions( 108 permissions_data->UpdateTabSpecificPermissions(
97 pair.first, *pair.second.ToPermissionSet()); 109 pair.first, *pair.second.ToPermissionSet());
98 } 110 }
99 } 111 }
100 return extension; 112 return extension;
101 } 113 }
102 114
103 namespace IPC { 115 namespace IPC {
104 116
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 void ParamTraits<ExtensionMsg_Loaded_Params>::Write(base::Pickle* m, 364 void ParamTraits<ExtensionMsg_Loaded_Params>::Write(base::Pickle* m,
353 const param_type& p) { 365 const param_type& p) {
354 WriteParam(m, p.location); 366 WriteParam(m, p.location);
355 WriteParam(m, p.path); 367 WriteParam(m, p.path);
356 WriteParam(m, *(p.manifest)); 368 WriteParam(m, *(p.manifest));
357 WriteParam(m, p.creation_flags); 369 WriteParam(m, p.creation_flags);
358 WriteParam(m, p.id); 370 WriteParam(m, p.id);
359 WriteParam(m, p.active_permissions); 371 WriteParam(m, p.active_permissions);
360 WriteParam(m, p.withheld_permissions); 372 WriteParam(m, p.withheld_permissions);
361 WriteParam(m, p.tab_specific_permissions); 373 WriteParam(m, p.tab_specific_permissions);
374 WriteParam(m, p.policy_blocked_hosts);
375 WriteParam(m, p.policy_allowed_hosts);
376 WriteParam(m, p.uses_default_policy_blocked_allowed_hosts);
362 } 377 }
363 378
364 bool ParamTraits<ExtensionMsg_Loaded_Params>::Read(const base::Pickle* m, 379 bool ParamTraits<ExtensionMsg_Loaded_Params>::Read(const base::Pickle* m,
365 base::PickleIterator* iter, 380 base::PickleIterator* iter,
366 param_type* p) { 381 param_type* p) {
367 p->manifest.reset(new base::DictionaryValue()); 382 p->manifest.reset(new base::DictionaryValue());
368 return ReadParam(m, iter, &p->location) && ReadParam(m, iter, &p->path) && 383 return ReadParam(m, iter, &p->location) && ReadParam(m, iter, &p->path) &&
369 ReadParam(m, iter, p->manifest.get()) && 384 ReadParam(m, iter, p->manifest.get()) &&
370 ReadParam(m, iter, &p->creation_flags) && ReadParam(m, iter, &p->id) && 385 ReadParam(m, iter, &p->creation_flags) && ReadParam(m, iter, &p->id) &&
371 ReadParam(m, iter, &p->active_permissions) && 386 ReadParam(m, iter, &p->active_permissions) &&
372 ReadParam(m, iter, &p->withheld_permissions) && 387 ReadParam(m, iter, &p->withheld_permissions) &&
373 ReadParam(m, iter, &p->tab_specific_permissions); 388 ReadParam(m, iter, &p->tab_specific_permissions) &&
389 ReadParam(m, iter, &p->policy_blocked_hosts) &&
390 ReadParam(m, iter, &p->policy_allowed_hosts) &&
391 ReadParam(m, iter, &p->uses_default_policy_blocked_allowed_hosts);
374 } 392 }
375 393
376 void ParamTraits<ExtensionMsg_Loaded_Params>::Log(const param_type& p, 394 void ParamTraits<ExtensionMsg_Loaded_Params>::Log(const param_type& p,
377 std::string* l) { 395 std::string* l) {
378 l->append(p.id); 396 l->append(p.id);
379 } 397 }
380 398
381 } // namespace IPC 399 } // namespace IPC
OLDNEW
« no previous file with comments | « extensions/common/extension_messages.h ('k') | extensions/common/permissions/permissions_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698