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

Side by Side Diff: chrome/browser/chromeos/policy/device_local_account_policy_provider.cc

Issue 2714493002: Load DeviceLocalAccount policy and DeviceSettings immediately on restore after Chrome crash. (Closed)
Patch Set: add flag to correctly process LoadImmediately() call Created 3 years, 9 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/browser/chromeos/policy/device_local_account_policy_provider.h" 5 #include "chrome/browser/chromeos/policy/device_local_account_policy_provider.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 27 matching lines...) Expand all
38 } 38 }
39 39
40 DeviceLocalAccountPolicyProvider::~DeviceLocalAccountPolicyProvider() { 40 DeviceLocalAccountPolicyProvider::~DeviceLocalAccountPolicyProvider() {
41 service_->RemoveObserver(this); 41 service_->RemoveObserver(this);
42 } 42 }
43 43
44 // static 44 // static
45 std::unique_ptr<DeviceLocalAccountPolicyProvider> 45 std::unique_ptr<DeviceLocalAccountPolicyProvider>
46 DeviceLocalAccountPolicyProvider::Create( 46 DeviceLocalAccountPolicyProvider::Create(
47 const std::string& user_id, 47 const std::string& user_id,
48 DeviceLocalAccountPolicyService* device_local_account_policy_service) { 48 DeviceLocalAccountPolicyService* device_local_account_policy_service,
49 bool force_immediate_load) {
49 DeviceLocalAccount::Type type; 50 DeviceLocalAccount::Type type;
50 if (!device_local_account_policy_service || 51 if (!device_local_account_policy_service ||
51 !IsDeviceLocalAccountUser(user_id, &type)) { 52 !IsDeviceLocalAccountUser(user_id, &type)) {
52 return std::unique_ptr<DeviceLocalAccountPolicyProvider>(); 53 return std::unique_ptr<DeviceLocalAccountPolicyProvider>();
53 } 54 }
54 55
55 std::unique_ptr<PolicyMap> chrome_policy_overrides; 56 std::unique_ptr<PolicyMap> chrome_policy_overrides;
56 if (type == DeviceLocalAccount::TYPE_PUBLIC_SESSION) { 57 if (type == DeviceLocalAccount::TYPE_PUBLIC_SESSION) {
57 chrome_policy_overrides.reset(new PolicyMap()); 58 chrome_policy_overrides.reset(new PolicyMap());
58 59
(...skipping 23 matching lines...) Expand all
82 chrome_policy_overrides->Set( 83 chrome_policy_overrides->Set(
83 key::kFullscreenAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, 84 key::kFullscreenAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
84 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, 85 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE,
85 base::MakeUnique<base::FundamentalValue>(false), nullptr); 86 base::MakeUnique<base::FundamentalValue>(false), nullptr);
86 } 87 }
87 88
88 std::unique_ptr<DeviceLocalAccountPolicyProvider> provider( 89 std::unique_ptr<DeviceLocalAccountPolicyProvider> provider(
89 new DeviceLocalAccountPolicyProvider(user_id, 90 new DeviceLocalAccountPolicyProvider(user_id,
90 device_local_account_policy_service, 91 device_local_account_policy_service,
91 std::move(chrome_policy_overrides))); 92 std::move(chrome_policy_overrides)));
93 if (force_immediate_load)
94 provider->GetBroker()->LoadImmediately();
Andrew T Wilson (Slow) 2017/02/23 12:05:48 See my comment in Store->LoadImmediately() - it's
92 return provider; 95 return provider;
93 } 96 }
94 97
95 bool DeviceLocalAccountPolicyProvider::IsInitializationComplete( 98 bool DeviceLocalAccountPolicyProvider::IsInitializationComplete(
96 PolicyDomain domain) const { 99 PolicyDomain domain) const {
97 if (domain == POLICY_DOMAIN_CHROME) 100 if (domain == POLICY_DOMAIN_CHROME)
98 return store_initialized_; 101 return store_initialized_;
99 if (ComponentCloudPolicyService::SupportsDomain(domain) && 102 if (ComponentCloudPolicyService::SupportsDomain(domain) &&
100 GetBroker() && GetBroker()->component_policy_service()) { 103 GetBroker() && GetBroker()->component_policy_service()) {
101 return GetBroker()->component_policy_service()->is_initialized(); 104 return GetBroker()->component_policy_service()->is_initialized();
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 const PolicyMap::Entry& entry = policy_override.second; 174 const PolicyMap::Entry& entry = policy_override.second;
172 chrome_policy.Set(policy_override.first, entry.level, entry.scope, 175 chrome_policy.Set(policy_override.first, entry.level, entry.scope,
173 entry.source, entry.value->CreateDeepCopy(), nullptr); 176 entry.source, entry.value->CreateDeepCopy(), nullptr);
174 } 177 }
175 } 178 }
176 179
177 UpdatePolicy(std::move(bundle)); 180 UpdatePolicy(std::move(bundle));
178 } 181 }
179 182
180 } // namespace policy 183 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698