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

Side by Side Diff: chrome/browser/chromeos/arc/arc_policy_bridge.cc

Issue 1923363002: Make GetPolicies() return null for unmanaged users (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/arc/arc_policy_bridge.h" 5 #include "chrome/browser/chromeos/arc/arc_policy_bridge.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 9
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 policy_service_(policy_service) { 145 policy_service_(policy_service) {
146 VLOG(1) << "ArcPolicyBridge::ArcPolicyBridge(bridge_service, policy_service)"; 146 VLOG(1) << "ArcPolicyBridge::ArcPolicyBridge(bridge_service, policy_service)";
147 arc_bridge_service()->AddObserver(this); 147 arc_bridge_service()->AddObserver(this);
148 } 148 }
149 149
150 ArcPolicyBridge::~ArcPolicyBridge() { 150 ArcPolicyBridge::~ArcPolicyBridge() {
151 VLOG(1) << "ArcPolicyBridge::~ArcPolicyBridge"; 151 VLOG(1) << "ArcPolicyBridge::~ArcPolicyBridge";
152 arc_bridge_service()->RemoveObserver(this); 152 arc_bridge_service()->RemoveObserver(this);
153 } 153 }
154 154
155 void ArcPolicyBridge::OverrideIsManagedForTesting(bool is_managed) {
156 is_managed_ = is_managed;
157 }
158
155 void ArcPolicyBridge::OnPolicyInstanceReady() { 159 void ArcPolicyBridge::OnPolicyInstanceReady() {
156 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceReady"; 160 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceReady";
157 if (policy_service_ == nullptr) { 161 if (policy_service_ == nullptr) {
158 InitializePolicyService(); 162 InitializePolicyService();
159 } 163 }
160 policy_service_->AddObserver(policy::POLICY_DOMAIN_CHROME, this); 164 policy_service_->AddObserver(policy::POLICY_DOMAIN_CHROME, this);
161 165
162 mojom::PolicyInstance* const policy_instance = 166 mojom::PolicyInstance* const policy_instance =
163 arc_bridge_service()->policy_instance(); 167 arc_bridge_service()->policy_instance();
164 if (!policy_instance) { 168 if (!policy_instance) {
165 LOG(ERROR) << "OnPolicyInstanceReady called, but no policy instance found"; 169 LOG(ERROR) << "OnPolicyInstanceReady called, but no policy instance found";
166 return; 170 return;
167 } 171 }
168 172
169 policy_instance->Init(binding_.CreateInterfacePtrAndBind()); 173 policy_instance->Init(binding_.CreateInterfacePtrAndBind());
170 } 174 }
171 175
172 void ArcPolicyBridge::OnPolicyInstanceClosed() { 176 void ArcPolicyBridge::OnPolicyInstanceClosed() {
173 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceClosed"; 177 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceClosed";
174 policy_service_->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this); 178 policy_service_->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this);
175 policy_service_ = nullptr; 179 policy_service_ = nullptr;
176 } 180 }
177 181
178 void ArcPolicyBridge::GetPolicies(const GetPoliciesCallback& callback) { 182 void ArcPolicyBridge::GetPolicies(const GetPoliciesCallback& callback) {
179 VLOG(1) << "ArcPolicyBridge::GetPolicies"; 183 VLOG(1) << "ArcPolicyBridge::GetPolicies";
184 if (!is_managed_) {
185 callback.Run(mojo::String(nullptr));
186 return;
187 }
180 const policy::PolicyNamespace policy_namespace(policy::POLICY_DOMAIN_CHROME, 188 const policy::PolicyNamespace policy_namespace(policy::POLICY_DOMAIN_CHROME,
181 std::string()); 189 std::string());
182 const policy::PolicyMap& policy_map = 190 const policy::PolicyMap& policy_map =
183 policy_service_->GetPolicies(policy_namespace); 191 policy_service_->GetPolicies(policy_namespace);
184 const std::string json_policies = GetFilteredJSONPolicies(policy_map); 192 const std::string json_policies = GetFilteredJSONPolicies(policy_map);
185 callback.Run(mojo::String(json_policies)); 193 callback.Run(mojo::String(json_policies));
186 } 194 }
187 195
188 void ArcPolicyBridge::OnPolicyUpdated(const policy::PolicyNamespace& ns, 196 void ArcPolicyBridge::OnPolicyUpdated(const policy::PolicyNamespace& ns,
189 const policy::PolicyMap& previous, 197 const policy::PolicyMap& previous,
190 const policy::PolicyMap& current) { 198 const policy::PolicyMap& current) {
191 VLOG(1) << "ArcPolicyBridge::OnPolicyUpdated"; 199 VLOG(1) << "ArcPolicyBridge::OnPolicyUpdated";
192 DCHECK(arc_bridge_service()->policy_instance()); 200 DCHECK(arc_bridge_service()->policy_instance());
193 arc_bridge_service()->policy_instance()->OnPolicyUpdated(); 201 arc_bridge_service()->policy_instance()->OnPolicyUpdated();
194 } 202 }
195 203
196 void ArcPolicyBridge::InitializePolicyService() { 204 void ArcPolicyBridge::InitializePolicyService() {
197 const user_manager::User* const primary_user = 205 const user_manager::User* const primary_user =
198 user_manager::UserManager::Get()->GetPrimaryUser(); 206 user_manager::UserManager::Get()->GetPrimaryUser();
199 Profile* const profile = 207 Profile* const profile =
200 chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user); 208 chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user);
201 policy_service_ = 209 auto profile_policy_connector =
202 policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile) 210 policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile);
203 ->policy_service(); 211 policy_service_ = profile_policy_connector->policy_service();
212 is_managed_ = profile_policy_connector->IsManaged();
204 } 213 }
205 214
206 } // namespace arc 215 } // namespace arc
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/arc/arc_policy_bridge.h ('k') | chrome/browser/chromeos/arc/arc_policy_bridge_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698