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

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

Issue 2357053002: Always use arc::InstanceHolder<T>::GetInstanceForMethod (Closed)
Patch Set: rebased to catch up tot Created 4 years, 3 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 #include <utility>
9 10
10 #include "base/json/json_reader.h" 11 #include "base/json/json_reader.h"
11 #include "base/json/json_string_value_serializer.h" 12 #include "base/json/json_string_value_serializer.h"
12 #include "base/logging.h" 13 #include "base/logging.h"
13 #include "base/memory/ptr_util.h" 14 #include "base/memory/ptr_util.h"
14 #include "base/values.h" 15 #include "base/values.h"
15 #include "chrome/browser/chromeos/profiles/profile_helper.h" 16 #include "chrome/browser/chromeos/profiles/profile_helper.h"
16 #include "chrome/browser/policy/profile_policy_connector.h" 17 #include "chrome/browser/policy/profile_policy_connector.h"
17 #include "chrome/browser/policy/profile_policy_connector_factory.h" 18 #include "chrome/browser/policy/profile_policy_connector_factory.h"
18 #include "chromeos/network/onc/onc_utils.h" 19 #include "chromeos/network/onc/onc_utils.h"
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 } 261 }
261 262
262 void ArcPolicyBridge::OnInstanceReady() { 263 void ArcPolicyBridge::OnInstanceReady() {
263 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceReady"; 264 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceReady";
264 if (policy_service_ == nullptr) { 265 if (policy_service_ == nullptr) {
265 InitializePolicyService(); 266 InitializePolicyService();
266 } 267 }
267 policy_service_->AddObserver(policy::POLICY_DOMAIN_CHROME, this); 268 policy_service_->AddObserver(policy::POLICY_DOMAIN_CHROME, this);
268 269
269 mojom::PolicyInstance* const policy_instance = 270 mojom::PolicyInstance* const policy_instance =
270 arc_bridge_service()->policy()->instance(); 271 arc_bridge_service()->policy()->GetInstanceForMethod("Init");
271 if (!policy_instance) { 272 CHECK(policy_instance);
272 LOG(ERROR) << "OnPolicyInstanceReady called, but no policy instance found";
273 return;
274 }
275
276 policy_instance->Init(binding_.CreateInterfacePtrAndBind()); 273 policy_instance->Init(binding_.CreateInterfacePtrAndBind());
277 } 274 }
278 275
279 void ArcPolicyBridge::OnInstanceClosed() { 276 void ArcPolicyBridge::OnInstanceClosed() {
280 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceClosed"; 277 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceClosed";
281 policy_service_->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this); 278 policy_service_->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this);
282 policy_service_ = nullptr; 279 policy_service_ = nullptr;
283 } 280 }
284 281
285 void ArcPolicyBridge::GetPolicies(const GetPoliciesCallback& callback) { 282 void ArcPolicyBridge::GetPolicies(const GetPoliciesCallback& callback) {
286 VLOG(1) << "ArcPolicyBridge::GetPolicies"; 283 VLOG(1) << "ArcPolicyBridge::GetPolicies";
287 if (!is_managed_) { 284 if (!is_managed_) {
288 callback.Run(mojo::String("")); 285 callback.Run(mojo::String(""));
289 return; 286 return;
290 } 287 }
291 const policy::PolicyNamespace policy_namespace(policy::POLICY_DOMAIN_CHROME, 288 const policy::PolicyNamespace policy_namespace(policy::POLICY_DOMAIN_CHROME,
292 std::string()); 289 std::string());
293 const policy::PolicyMap& policy_map = 290 const policy::PolicyMap& policy_map =
294 policy_service_->GetPolicies(policy_namespace); 291 policy_service_->GetPolicies(policy_namespace);
295 const std::string json_policies = GetFilteredJSONPolicies(policy_map); 292 const std::string json_policies = GetFilteredJSONPolicies(policy_map);
296 callback.Run(mojo::String(json_policies)); 293 callback.Run(mojo::String(json_policies));
297 } 294 }
298 295
299 void ArcPolicyBridge::OnPolicyUpdated(const policy::PolicyNamespace& ns, 296 void ArcPolicyBridge::OnPolicyUpdated(const policy::PolicyNamespace& ns,
300 const policy::PolicyMap& previous, 297 const policy::PolicyMap& previous,
301 const policy::PolicyMap& current) { 298 const policy::PolicyMap& current) {
302 VLOG(1) << "ArcPolicyBridge::OnPolicyUpdated"; 299 VLOG(1) << "ArcPolicyBridge::OnPolicyUpdated";
303 DCHECK(arc_bridge_service()->policy()->instance()); 300 auto* instance =
304 arc_bridge_service()->policy()->instance()->OnPolicyUpdated(); 301 arc_bridge_service()->policy()->GetInstanceForMethod("OnPolicyUpdated");
302 if (!instance)
303 return;
304 instance->OnPolicyUpdated();
305 } 305 }
306 306
307 void ArcPolicyBridge::InitializePolicyService() { 307 void ArcPolicyBridge::InitializePolicyService() {
308 const user_manager::User* const primary_user = 308 const user_manager::User* const primary_user =
309 user_manager::UserManager::Get()->GetPrimaryUser(); 309 user_manager::UserManager::Get()->GetPrimaryUser();
310 Profile* const profile = 310 Profile* const profile =
311 chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user); 311 chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user);
312 auto* profile_policy_connector = 312 auto* profile_policy_connector =
313 policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile); 313 policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile);
314 policy_service_ = profile_policy_connector->policy_service(); 314 policy_service_ = profile_policy_connector->policy_service();
315 is_managed_ = profile_policy_connector->IsManaged(); 315 is_managed_ = profile_policy_connector->IsManaged();
316 } 316 }
317 317
318 } // namespace arc 318 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698