| OLD | NEW |
| 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/browser/chromeos/policy/user_cloud_policy_store_chromeos.h" | 5 #include "chrome/browser/chromeos/policy/user_cloud_policy_store_chromeos.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 | 85 |
| 86 private: | 86 private: |
| 87 // Checks whether the load operations from the legacy caches completed. If so, | 87 // Checks whether the load operations from the legacy caches completed. If so, |
| 88 // fires the appropriate notification. | 88 // fires the appropriate notification. |
| 89 void CheckLoadFinished(); | 89 void CheckLoadFinished(); |
| 90 | 90 |
| 91 // Maps a disk cache LoadResult to a CloudPolicyStore::Status. | 91 // Maps a disk cache LoadResult to a CloudPolicyStore::Status. |
| 92 static CloudPolicyStore::Status TranslateLoadResult( | 92 static CloudPolicyStore::Status TranslateLoadResult( |
| 93 UserPolicyDiskCache::LoadResult result); | 93 UserPolicyDiskCache::LoadResult result); |
| 94 | 94 |
| 95 base::WeakPtrFactory<LegacyPolicyCacheLoader> weak_factory_; | |
| 96 | |
| 97 scoped_refptr<UserPolicyTokenLoader> token_loader_; | 95 scoped_refptr<UserPolicyTokenLoader> token_loader_; |
| 98 scoped_refptr<UserPolicyDiskCache> policy_cache_; | 96 scoped_refptr<UserPolicyDiskCache> policy_cache_; |
| 99 | 97 |
| 100 std::string dm_token_; | 98 std::string dm_token_; |
| 101 std::string device_id_; | 99 std::string device_id_; |
| 102 bool has_policy_; | 100 bool has_policy_; |
| 103 scoped_ptr<em::PolicyFetchResponse> policy_; | 101 scoped_ptr<em::PolicyFetchResponse> policy_; |
| 104 CloudPolicyStore::Status status_; | 102 CloudPolicyStore::Status status_; |
| 105 | 103 |
| 106 Callback callback_; | 104 Callback callback_; |
| 107 | 105 |
| 106 base::WeakPtrFactory<LegacyPolicyCacheLoader> weak_factory_; |
| 107 |
| 108 DISALLOW_COPY_AND_ASSIGN(LegacyPolicyCacheLoader); | 108 DISALLOW_COPY_AND_ASSIGN(LegacyPolicyCacheLoader); |
| 109 }; | 109 }; |
| 110 | 110 |
| 111 LegacyPolicyCacheLoader::LegacyPolicyCacheLoader( | 111 LegacyPolicyCacheLoader::LegacyPolicyCacheLoader( |
| 112 const base::FilePath& token_cache_file, | 112 const base::FilePath& token_cache_file, |
| 113 const base::FilePath& policy_cache_file, | 113 const base::FilePath& policy_cache_file, |
| 114 scoped_refptr<base::SequencedTaskRunner> background_task_runner) | 114 scoped_refptr<base::SequencedTaskRunner> background_task_runner) |
| 115 : weak_factory_(this), | 115 : has_policy_(false), |
| 116 has_policy_(false), | 116 status_(CloudPolicyStore::STATUS_OK), |
| 117 status_(CloudPolicyStore::STATUS_OK) { | 117 weak_factory_(this) { |
| 118 token_loader_ = new UserPolicyTokenLoader(weak_factory_.GetWeakPtr(), | 118 token_loader_ = new UserPolicyTokenLoader(weak_factory_.GetWeakPtr(), |
| 119 token_cache_file, | 119 token_cache_file, |
| 120 background_task_runner); | 120 background_task_runner); |
| 121 policy_cache_ = new UserPolicyDiskCache(weak_factory_.GetWeakPtr(), | 121 policy_cache_ = new UserPolicyDiskCache(weak_factory_.GetWeakPtr(), |
| 122 policy_cache_file, | 122 policy_cache_file, |
| 123 background_task_runner); | 123 background_task_runner); |
| 124 } | 124 } |
| 125 | 125 |
| 126 LegacyPolicyCacheLoader::~LegacyPolicyCacheLoader() {} | 126 LegacyPolicyCacheLoader::~LegacyPolicyCacheLoader() {} |
| 127 | 127 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 scoped_refptr<base::SequencedTaskRunner> background_task_runner, | 179 scoped_refptr<base::SequencedTaskRunner> background_task_runner, |
| 180 const std::string& username, | 180 const std::string& username, |
| 181 const base::FilePath& user_policy_key_dir, | 181 const base::FilePath& user_policy_key_dir, |
| 182 const base::FilePath& legacy_token_cache_file, | 182 const base::FilePath& legacy_token_cache_file, |
| 183 const base::FilePath& legacy_policy_cache_file) | 183 const base::FilePath& legacy_policy_cache_file) |
| 184 : UserCloudPolicyStoreBase(background_task_runner), | 184 : UserCloudPolicyStoreBase(background_task_runner), |
| 185 cryptohome_client_(cryptohome_client), | 185 cryptohome_client_(cryptohome_client), |
| 186 session_manager_client_(session_manager_client), | 186 session_manager_client_(session_manager_client), |
| 187 username_(username), | 187 username_(username), |
| 188 user_policy_key_dir_(user_policy_key_dir), | 188 user_policy_key_dir_(user_policy_key_dir), |
| 189 weak_factory_(this), | |
| 190 legacy_cache_dir_(legacy_token_cache_file.DirName()), | 189 legacy_cache_dir_(legacy_token_cache_file.DirName()), |
| 191 legacy_loader_(new LegacyPolicyCacheLoader(legacy_token_cache_file, | 190 legacy_loader_(new LegacyPolicyCacheLoader(legacy_token_cache_file, |
| 192 legacy_policy_cache_file, | 191 legacy_policy_cache_file, |
| 193 background_task_runner)), | 192 background_task_runner)), |
| 194 legacy_caches_loaded_(false), | 193 legacy_caches_loaded_(false), |
| 195 policy_key_loaded_(false) {} | 194 policy_key_loaded_(false), |
| 195 weak_factory_(this) {} |
| 196 | 196 |
| 197 UserCloudPolicyStoreChromeOS::~UserCloudPolicyStoreChromeOS() {} | 197 UserCloudPolicyStoreChromeOS::~UserCloudPolicyStoreChromeOS() {} |
| 198 | 198 |
| 199 void UserCloudPolicyStoreChromeOS::Store( | 199 void UserCloudPolicyStoreChromeOS::Store( |
| 200 const em::PolicyFetchResponse& policy) { | 200 const em::PolicyFetchResponse& policy) { |
| 201 // Cancel all pending requests. | 201 // Cancel all pending requests. |
| 202 weak_factory_.InvalidateWeakPtrs(); | 202 weak_factory_.InvalidateWeakPtrs(); |
| 203 scoped_ptr<em::PolicyFetchResponse> response( | 203 scoped_ptr<em::PolicyFetchResponse> response( |
| 204 new em::PolicyFetchResponse(policy)); | 204 new em::PolicyFetchResponse(policy)); |
| 205 EnsurePolicyKeyLoaded( | 205 EnsurePolicyKeyLoaded( |
| (...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 562 const std::string empty_key = std::string(); | 562 const std::string empty_key = std::string(); |
| 563 // The policy loaded from session manager need not be validated using the | 563 // The policy loaded from session manager need not be validated using the |
| 564 // verification key since it is secure, and since there may be legacy policy | 564 // verification key since it is secure, and since there may be legacy policy |
| 565 // data that was stored without a verification key. Hence passing an empty | 565 // data that was stored without a verification key. Hence passing an empty |
| 566 // value for the verification key. | 566 // value for the verification key. |
| 567 validator->ValidateSignature( | 567 validator->ValidateSignature( |
| 568 policy_key_, empty_key, ExtractDomain(username_), allow_rotation); | 568 policy_key_, empty_key, ExtractDomain(username_), allow_rotation); |
| 569 return validator.Pass(); | 569 return validator.Pass(); |
| 570 } | 570 } |
| 571 } // namespace policy | 571 } // namespace policy |
| OLD | NEW |