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

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

Issue 2133503002: arc: Revamp the ArcBridgeService interface (Closed) Base URL: https://chromium.googlesource.com/a/chromium/src.git@master
Patch Set: Fix ui_arc_unittests Created 4 years, 5 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(mojom::PolicyInstance* policy_instance,
259 uint32_t version) {
259 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceReady"; 260 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceReady";
260 if (policy_service_ == nullptr) { 261 if (policy_service_ == nullptr) {
261 InitializePolicyService(); 262 InitializePolicyService();
262 } 263 }
263 policy_service_->AddObserver(policy::POLICY_DOMAIN_CHROME, this); 264 policy_service_->AddObserver(policy::POLICY_DOMAIN_CHROME, this);
264 265
265 mojom::PolicyInstance* const policy_instance =
266 arc_bridge_service()->policy_instance();
267 if (!policy_instance) {
268 LOG(ERROR) << "OnPolicyInstanceReady called, but no policy instance found";
269 return;
270 }
271
272 policy_instance->Init(binding_.CreateInterfacePtrAndBind()); 266 policy_instance->Init(binding_.CreateInterfacePtrAndBind());
273 } 267 }
274 268
275 void ArcPolicyBridge::OnPolicyInstanceClosed() { 269 void ArcPolicyBridge::OnInstanceClosed(mojom::PolicyInstance*) {
276 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceClosed"; 270 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceClosed";
277 policy_service_->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this); 271 policy_service_->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this);
278 policy_service_ = nullptr; 272 policy_service_ = nullptr;
279 } 273 }
280 274
281 void ArcPolicyBridge::GetPolicies(const GetPoliciesCallback& callback) { 275 void ArcPolicyBridge::GetPolicies(const GetPoliciesCallback& callback) {
282 VLOG(1) << "ArcPolicyBridge::GetPolicies"; 276 VLOG(1) << "ArcPolicyBridge::GetPolicies";
283 if (!is_managed_) { 277 if (!is_managed_) {
284 callback.Run(mojo::String("")); 278 callback.Run(mojo::String(""));
285 return; 279 return;
286 } 280 }
287 const policy::PolicyNamespace policy_namespace(policy::POLICY_DOMAIN_CHROME, 281 const policy::PolicyNamespace policy_namespace(policy::POLICY_DOMAIN_CHROME,
288 std::string()); 282 std::string());
289 const policy::PolicyMap& policy_map = 283 const policy::PolicyMap& policy_map =
290 policy_service_->GetPolicies(policy_namespace); 284 policy_service_->GetPolicies(policy_namespace);
291 const std::string json_policies = GetFilteredJSONPolicies(policy_map); 285 const std::string json_policies = GetFilteredJSONPolicies(policy_map);
292 callback.Run(mojo::String(json_policies)); 286 callback.Run(mojo::String(json_policies));
293 } 287 }
294 288
295 void ArcPolicyBridge::OnPolicyUpdated(const policy::PolicyNamespace& ns, 289 void ArcPolicyBridge::OnPolicyUpdated(const policy::PolicyNamespace& ns,
296 const policy::PolicyMap& previous, 290 const policy::PolicyMap& previous,
297 const policy::PolicyMap& current) { 291 const policy::PolicyMap& current) {
298 VLOG(1) << "ArcPolicyBridge::OnPolicyUpdated"; 292 VLOG(1) << "ArcPolicyBridge::OnPolicyUpdated";
299 DCHECK(arc_bridge_service()->policy_instance()); 293 DCHECK(arc_bridge_service()->policy()->instance());
300 arc_bridge_service()->policy_instance()->OnPolicyUpdated(); 294 arc_bridge_service()->policy()->instance()->OnPolicyUpdated();
301 } 295 }
302 296
303 void ArcPolicyBridge::InitializePolicyService() { 297 void ArcPolicyBridge::InitializePolicyService() {
304 const user_manager::User* const primary_user = 298 const user_manager::User* const primary_user =
305 user_manager::UserManager::Get()->GetPrimaryUser(); 299 user_manager::UserManager::Get()->GetPrimaryUser();
306 Profile* const profile = 300 Profile* const profile =
307 chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user); 301 chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user);
308 auto profile_policy_connector = 302 auto profile_policy_connector =
309 policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile); 303 policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile);
310 policy_service_ = profile_policy_connector->policy_service(); 304 policy_service_ = profile_policy_connector->policy_service();
311 is_managed_ = profile_policy_connector->IsManaged(); 305 is_managed_ = profile_policy_connector->IsManaged();
312 } 306 }
313 307
314 } // namespace arc 308 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698