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

Side by Side Diff: components/policy/core/common/cloud/component_cloud_policy_store.cc

Issue 1548203002: Convert Pass()→std::move() in //components/[n-z]* (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix bad headers Created 4 years, 11 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "components/policy/core/common/cloud/component_cloud_policy_store.h" 5 #include "components/policy/core/common/cloud/component_cloud_policy_store.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility>
8 9
9 #include "base/callback.h" 10 #include "base/callback.h"
10 #include "base/json/json_reader.h" 11 #include "base/json/json_reader.h"
11 #include "base/logging.h" 12 #include "base/logging.h"
12 #include "base/macros.h" 13 #include "base/macros.h"
13 #include "base/strings/string_util.h" 14 #include "base/strings/string_util.h"
14 #include "base/values.h" 15 #include "base/values.h"
15 #include "components/policy/core/common/cloud/cloud_policy_constants.h" 16 #include "components/policy/core/common/cloud/cloud_policy_constants.h"
16 #include "components/policy/core/common/cloud/cloud_policy_validator.h" 17 #include "components/policy/core/common/cloud/cloud_policy_validator.h"
17 #include "components/policy/core/common/external_data_fetcher.h" 18 #include "components/policy/core/common/external_data_fetcher.h"
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 ContentMap protos; 131 ContentMap protos;
131 cache_->LoadAllSubkeys(constants.proto_cache_key, &protos); 132 cache_->LoadAllSubkeys(constants.proto_cache_key, &protos);
132 for (ContentMap::iterator it = protos.begin(); it != protos.end(); ++it) { 133 for (ContentMap::iterator it = protos.begin(); it != protos.end(); ++it) {
133 const std::string& id(it->first); 134 const std::string& id(it->first);
134 PolicyNamespace ns(constants.domain, id); 135 PolicyNamespace ns(constants.domain, id);
135 136
136 // Validate each protobuf. 137 // Validate each protobuf.
137 scoped_ptr<em::PolicyFetchResponse> proto(new em::PolicyFetchResponse); 138 scoped_ptr<em::PolicyFetchResponse> proto(new em::PolicyFetchResponse);
138 em::ExternalPolicyData payload; 139 em::ExternalPolicyData payload;
139 if (!proto->ParseFromString(it->second) || 140 if (!proto->ParseFromString(it->second) ||
140 !ValidateProto( 141 !ValidateProto(std::move(proto), constants.policy_type, id, &payload,
141 proto.Pass(), constants.policy_type, id, &payload, NULL)) { 142 NULL)) {
142 Delete(ns); 143 Delete(ns);
143 continue; 144 continue;
144 } 145 }
145 146
146 // The protobuf looks good; load the policy data. 147 // The protobuf looks good; load the policy data.
147 std::string data; 148 std::string data;
148 PolicyMap policy; 149 PolicyMap policy;
149 if (cache_->Load(constants.data_cache_key, id, &data) && 150 if (cache_->Load(constants.data_cache_key, id, &data) &&
150 ValidateData(data, payload.secure_hash(), &policy)) { 151 ValidateData(data, payload.secure_hash(), &policy)) {
151 // The data is also good; expose the policies. 152 // The data is also good; expose the policies.
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 policy_bundle_.Clear(); 247 policy_bundle_.Clear();
247 delegate_->OnComponentCloudPolicyStoreUpdated(); 248 delegate_->OnComponentCloudPolicyStoreUpdated();
248 } 249 }
249 } 250 }
250 251
251 bool ComponentCloudPolicyStore::ValidatePolicy( 252 bool ComponentCloudPolicyStore::ValidatePolicy(
252 scoped_ptr<em::PolicyFetchResponse> proto, 253 scoped_ptr<em::PolicyFetchResponse> proto,
253 PolicyNamespace* ns, 254 PolicyNamespace* ns,
254 em::ExternalPolicyData* payload) { 255 em::ExternalPolicyData* payload) {
255 em::PolicyData policy_data; 256 em::PolicyData policy_data;
256 if (!ValidateProto( 257 if (!ValidateProto(std::move(proto), std::string(), std::string(), payload,
257 proto.Pass(), std::string(), std::string(), payload, &policy_data)) { 258 &policy_data)) {
258 return false; 259 return false;
259 } 260 }
260 261
261 if (!policy_data.has_policy_type()) 262 if (!policy_data.has_policy_type())
262 return false; 263 return false;
263 264
264 const DomainConstants* constants = 265 const DomainConstants* constants =
265 GetDomainConstantsForType(policy_data.policy_type()); 266 GetDomainConstantsForType(policy_data.policy_type());
266 if (!constants || !policy_data.has_settings_entity_id()) 267 if (!constants || !policy_data.has_settings_entity_id())
267 return false; 268 return false;
268 269
269 ns->domain = constants->domain; 270 ns->domain = constants->domain;
270 ns->component_id = policy_data.settings_entity_id(); 271 ns->component_id = policy_data.settings_entity_id();
271 return true; 272 return true;
272 } 273 }
273 274
274 bool ComponentCloudPolicyStore::ValidateProto( 275 bool ComponentCloudPolicyStore::ValidateProto(
275 scoped_ptr<em::PolicyFetchResponse> proto, 276 scoped_ptr<em::PolicyFetchResponse> proto,
276 const std::string& policy_type, 277 const std::string& policy_type,
277 const std::string& settings_entity_id, 278 const std::string& settings_entity_id,
278 em::ExternalPolicyData* payload, 279 em::ExternalPolicyData* payload,
279 em::PolicyData* policy_data) { 280 em::PolicyData* policy_data) {
280 if (username_.empty() || dm_token_.empty()) 281 if (username_.empty() || dm_token_.empty())
281 return false; 282 return false;
282 283
283 scoped_ptr<ComponentCloudPolicyValidator> validator( 284 scoped_ptr<ComponentCloudPolicyValidator> validator(
284 ComponentCloudPolicyValidator::Create( 285 ComponentCloudPolicyValidator::Create(
285 proto.Pass(), scoped_refptr<base::SequencedTaskRunner>())); 286 std::move(proto), scoped_refptr<base::SequencedTaskRunner>()));
286 validator->ValidateUsername(username_, true); 287 validator->ValidateUsername(username_, true);
287 validator->ValidateDMToken(dm_token_, 288 validator->ValidateDMToken(dm_token_,
288 ComponentCloudPolicyValidator::DM_TOKEN_REQUIRED); 289 ComponentCloudPolicyValidator::DM_TOKEN_REQUIRED);
289 if (!policy_type.empty()) 290 if (!policy_type.empty())
290 validator->ValidatePolicyType(policy_type); 291 validator->ValidatePolicyType(policy_type);
291 if (!settings_entity_id.empty()) 292 if (!settings_entity_id.empty())
292 validator->ValidateSettingsEntityId(settings_entity_id); 293 validator->ValidateSettingsEntityId(settings_entity_id);
293 validator->ValidatePayload(); 294 validator->ValidatePayload();
294 // TODO(joaodasilva): validate signature. 295 // TODO(joaodasilva): validate signature.
295 validator->RunValidation(); 296 validator->RunValidation();
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 // this must support a configurable scope; assuming POLICY_SCOPE_USER is 359 // this must support a configurable scope; assuming POLICY_SCOPE_USER is
359 // fine for now. 360 // fine for now.
360 policy->Set(it.key(), level, POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, 361 policy->Set(it.key(), level, POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
361 value.release(), nullptr); 362 value.release(), nullptr);
362 } 363 }
363 364
364 return true; 365 return true;
365 } 366 }
366 367
367 } // namespace policy 368 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698