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

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

Issue 2190483003: arc: Revamp the ArcBridgeService interface (Closed) Base URL: https://chromium.googlesource.com/a/chromium/src.git@2785
Patch Set: One less diff line Created 4 years, 4 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 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 JSONStringValueSerializer serializer(&policy_json); 227 JSONStringValueSerializer serializer(&policy_json);
228 serializer.Serialize(filtered_policies); 228 serializer.Serialize(filtered_policies);
229 return policy_json; 229 return policy_json;
230 } 230 }
231 231
232 } // namespace 232 } // namespace
233 233
234 ArcPolicyBridge::ArcPolicyBridge(ArcBridgeService* bridge_service) 234 ArcPolicyBridge::ArcPolicyBridge(ArcBridgeService* bridge_service)
235 : ArcService(bridge_service), binding_(this) { 235 : ArcService(bridge_service), binding_(this) {
236 VLOG(2) << "ArcPolicyBridge::ArcPolicyBridge"; 236 VLOG(2) << "ArcPolicyBridge::ArcPolicyBridge";
237 arc_bridge_service()->AddObserver(this); 237 arc_bridge_service()->policy()->AddObserver(this);
238 } 238 }
239 239
240 ArcPolicyBridge::ArcPolicyBridge(ArcBridgeService* bridge_service, 240 ArcPolicyBridge::ArcPolicyBridge(ArcBridgeService* bridge_service,
241 policy::PolicyService* policy_service) 241 policy::PolicyService* policy_service)
242 : ArcService(bridge_service), 242 : ArcService(bridge_service),
243 binding_(this), 243 binding_(this),
244 policy_service_(policy_service) { 244 policy_service_(policy_service) {
245 VLOG(2) << "ArcPolicyBridge::ArcPolicyBridge(bridge_service, policy_service)"; 245 VLOG(2) << "ArcPolicyBridge::ArcPolicyBridge(bridge_service, policy_service)";
246 arc_bridge_service()->AddObserver(this); 246 arc_bridge_service()->policy()->AddObserver(this);
247 } 247 }
248 248
249 ArcPolicyBridge::~ArcPolicyBridge() { 249 ArcPolicyBridge::~ArcPolicyBridge() {
250 VLOG(2) << "ArcPolicyBridge::~ArcPolicyBridge"; 250 VLOG(2) << "ArcPolicyBridge::~ArcPolicyBridge";
251 arc_bridge_service()->RemoveObserver(this); 251 arc_bridge_service()->policy()->RemoveObserver(this);
252 } 252 }
253 253
254 void ArcPolicyBridge::OverrideIsManagedForTesting(bool is_managed) { 254 void ArcPolicyBridge::OverrideIsManagedForTesting(bool is_managed) {
255 is_managed_ = is_managed; 255 is_managed_ = is_managed;
256 } 256 }
257 257
258 void ArcPolicyBridge::OnPolicyInstanceReady() { 258 void ArcPolicyBridge::OnInstanceReady() {
259 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceReady"; 259 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceReady";
260 if (policy_service_ == nullptr) { 260 if (policy_service_ == nullptr) {
261 InitializePolicyService(); 261 InitializePolicyService();
262 } 262 }
263 policy_service_->AddObserver(policy::POLICY_DOMAIN_CHROME, this); 263 policy_service_->AddObserver(policy::POLICY_DOMAIN_CHROME, this);
264 264
265 mojom::PolicyInstance* const policy_instance = 265 mojom::PolicyInstance* const policy_instance =
266 arc_bridge_service()->policy_instance(); 266 arc_bridge_service()->policy()->instance();
267 if (!policy_instance) { 267 if (!policy_instance) {
268 LOG(ERROR) << "OnPolicyInstanceReady called, but no policy instance found"; 268 LOG(ERROR) << "OnPolicyInstanceReady called, but no policy instance found";
269 return; 269 return;
270 } 270 }
271 271
272 policy_instance->Init(binding_.CreateInterfacePtrAndBind()); 272 policy_instance->Init(binding_.CreateInterfacePtrAndBind());
273 } 273 }
274 274
275 void ArcPolicyBridge::OnPolicyInstanceClosed() { 275 void ArcPolicyBridge::OnInstanceClosed() {
276 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceClosed"; 276 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceClosed";
277 policy_service_->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this); 277 policy_service_->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this);
278 policy_service_ = nullptr; 278 policy_service_ = nullptr;
279 } 279 }
280 280
281 void ArcPolicyBridge::GetPolicies(const GetPoliciesCallback& callback) { 281 void ArcPolicyBridge::GetPolicies(const GetPoliciesCallback& callback) {
282 VLOG(1) << "ArcPolicyBridge::GetPolicies"; 282 VLOG(1) << "ArcPolicyBridge::GetPolicies";
283 if (!is_managed_) { 283 if (!is_managed_) {
284 callback.Run(mojo::String("")); 284 callback.Run(mojo::String(""));
285 return; 285 return;
286 } 286 }
287 const policy::PolicyNamespace policy_namespace(policy::POLICY_DOMAIN_CHROME, 287 const policy::PolicyNamespace policy_namespace(policy::POLICY_DOMAIN_CHROME,
288 std::string()); 288 std::string());
289 const policy::PolicyMap& policy_map = 289 const policy::PolicyMap& policy_map =
290 policy_service_->GetPolicies(policy_namespace); 290 policy_service_->GetPolicies(policy_namespace);
291 const std::string json_policies = GetFilteredJSONPolicies(policy_map); 291 const std::string json_policies = GetFilteredJSONPolicies(policy_map);
292 callback.Run(mojo::String(json_policies)); 292 callback.Run(mojo::String(json_policies));
293 } 293 }
294 294
295 void ArcPolicyBridge::OnPolicyUpdated(const policy::PolicyNamespace& ns, 295 void ArcPolicyBridge::OnPolicyUpdated(const policy::PolicyNamespace& ns,
296 const policy::PolicyMap& previous, 296 const policy::PolicyMap& previous,
297 const policy::PolicyMap& current) { 297 const policy::PolicyMap& current) {
298 VLOG(1) << "ArcPolicyBridge::OnPolicyUpdated"; 298 VLOG(1) << "ArcPolicyBridge::OnPolicyUpdated";
299 DCHECK(arc_bridge_service()->policy_instance()); 299 DCHECK(arc_bridge_service()->policy()->instance());
300 arc_bridge_service()->policy_instance()->OnPolicyUpdated(); 300 arc_bridge_service()->policy()->instance()->OnPolicyUpdated();
301 } 301 }
302 302
303 void ArcPolicyBridge::InitializePolicyService() { 303 void ArcPolicyBridge::InitializePolicyService() {
304 const user_manager::User* const primary_user = 304 const user_manager::User* const primary_user =
305 user_manager::UserManager::Get()->GetPrimaryUser(); 305 user_manager::UserManager::Get()->GetPrimaryUser();
306 Profile* const profile = 306 Profile* const profile =
307 chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user); 307 chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user);
308 auto profile_policy_connector = 308 auto profile_policy_connector =
309 policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile); 309 policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile);
310 policy_service_ = profile_policy_connector->policy_service(); 310 policy_service_ = profile_policy_connector->policy_service();
311 is_managed_ = profile_policy_connector->IsManaged(); 311 is_managed_ = profile_policy_connector->IsManaged();
312 } 312 }
313 313
314 } // namespace arc 314 } // 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