| OLD | NEW |
| 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/policy/arc_policy_bridge.h" | 5 #include "chrome/browser/chromeos/arc/policy/arc_policy_bridge.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <string> | |
| 9 #include <utility> | 8 #include <utility> |
| 10 | 9 |
| 11 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
| 12 #include "base/json/json_string_value_serializer.h" | 11 #include "base/json/json_string_value_serializer.h" |
| 13 #include "base/logging.h" | 12 #include "base/logging.h" |
| 14 #include "base/memory/ptr_util.h" | 13 #include "base/memory/ptr_util.h" |
| 15 #include "base/values.h" | 14 #include "base/values.h" |
| 16 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 15 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| 17 #include "chrome/browser/policy/profile_policy_connector.h" | 16 #include "chrome/browser/policy/profile_policy_connector.h" |
| 18 #include "chrome/browser/policy/profile_policy_connector_factory.h" | 17 #include "chrome/browser/policy/profile_policy_connector_factory.h" |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 | 276 |
| 278 void ArcPolicyBridge::OnInstanceClosed() { | 277 void ArcPolicyBridge::OnInstanceClosed() { |
| 279 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceClosed"; | 278 VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceClosed"; |
| 280 policy_service_->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this); | 279 policy_service_->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this); |
| 281 policy_service_ = nullptr; | 280 policy_service_ = nullptr; |
| 282 } | 281 } |
| 283 | 282 |
| 284 void ArcPolicyBridge::GetPolicies(const GetPoliciesCallback& callback) { | 283 void ArcPolicyBridge::GetPolicies(const GetPoliciesCallback& callback) { |
| 285 VLOG(1) << "ArcPolicyBridge::GetPolicies"; | 284 VLOG(1) << "ArcPolicyBridge::GetPolicies"; |
| 286 if (!is_managed_) { | 285 if (!is_managed_) { |
| 287 callback.Run(mojo::String("")); | 286 callback.Run(std::string()); |
| 288 return; | 287 return; |
| 289 } | 288 } |
| 290 const policy::PolicyNamespace policy_namespace(policy::POLICY_DOMAIN_CHROME, | 289 const policy::PolicyNamespace policy_namespace(policy::POLICY_DOMAIN_CHROME, |
| 291 std::string()); | 290 std::string()); |
| 292 const policy::PolicyMap& policy_map = | 291 const policy::PolicyMap& policy_map = |
| 293 policy_service_->GetPolicies(policy_namespace); | 292 policy_service_->GetPolicies(policy_namespace); |
| 294 const std::string json_policies = GetFilteredJSONPolicies(policy_map); | 293 callback.Run(GetFilteredJSONPolicies(policy_map)); |
| 295 callback.Run(mojo::String(json_policies)); | |
| 296 } | 294 } |
| 297 | 295 |
| 298 void OnReportComplianceParseSuccess( | 296 void OnReportComplianceParseSuccess( |
| 299 const ArcPolicyBridge::ReportComplianceCallback& callback, | 297 const ArcPolicyBridge::ReportComplianceCallback& callback, |
| 300 std::unique_ptr<base::Value> parsed_json) { | 298 std::unique_ptr<base::Value> parsed_json) { |
| 301 // TODO(poromov@): Track the report and start ARC++ kiosk app when the report | 299 // TODO(poromov@): Track the report and start ARC++ kiosk app when the report |
| 302 // is empty, that means that CloudDpc applied all policies. | 300 // is empty, that means that CloudDpc applied all policies. |
| 303 // Currently do nothing with the report, return 'true' if JSON is parsed. | 301 // Currently do nothing with the report, return 'true' if JSON is parsed. |
| 304 callback.Run(mojo::String("{ \"policyCompliant\": true }")); | 302 callback.Run("{ \"policyCompliant\": true }"); |
| 305 } | 303 } |
| 306 | 304 |
| 307 void OnReportComplianceParseFailure( | 305 void OnReportComplianceParseFailure( |
| 308 const ArcPolicyBridge::ReportComplianceCallback& callback, | 306 const ArcPolicyBridge::ReportComplianceCallback& callback, |
| 309 const std::string& error) { | 307 const std::string& error) { |
| 310 callback.Run(mojo::String("{ \"policyCompliant\": false }")); | 308 callback.Run("{ \"policyCompliant\": false }"); |
| 311 } | 309 } |
| 312 | 310 |
| 313 void ArcPolicyBridge::ReportCompliance( | 311 void ArcPolicyBridge::ReportCompliance( |
| 314 const mojo::String& request, | 312 const std::string& request, |
| 315 const ReportComplianceCallback& callback) { | 313 const ReportComplianceCallback& callback) { |
| 316 VLOG(1) << "ArcPolicyBridge::ReportCompliance"; | 314 VLOG(1) << "ArcPolicyBridge::ReportCompliance"; |
| 317 safe_json::SafeJsonParser::Parse( | 315 safe_json::SafeJsonParser::Parse( |
| 318 request, base::Bind(&OnReportComplianceParseSuccess, callback), | 316 request, base::Bind(&OnReportComplianceParseSuccess, callback), |
| 319 base::Bind(&OnReportComplianceParseFailure, callback)); | 317 base::Bind(&OnReportComplianceParseFailure, callback)); |
| 320 } | 318 } |
| 321 | 319 |
| 322 void ArcPolicyBridge::OnPolicyUpdated(const policy::PolicyNamespace& ns, | 320 void ArcPolicyBridge::OnPolicyUpdated(const policy::PolicyNamespace& ns, |
| 323 const policy::PolicyMap& previous, | 321 const policy::PolicyMap& previous, |
| 324 const policy::PolicyMap& current) { | 322 const policy::PolicyMap& current) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 335 user_manager::UserManager::Get()->GetPrimaryUser(); | 333 user_manager::UserManager::Get()->GetPrimaryUser(); |
| 336 Profile* const profile = | 334 Profile* const profile = |
| 337 chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user); | 335 chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user); |
| 338 auto* profile_policy_connector = | 336 auto* profile_policy_connector = |
| 339 policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile); | 337 policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile); |
| 340 policy_service_ = profile_policy_connector->policy_service(); | 338 policy_service_ = profile_policy_connector->policy_service(); |
| 341 is_managed_ = profile_policy_connector->IsManaged(); | 339 is_managed_ = profile_policy_connector->IsManaged(); |
| 342 } | 340 } |
| 343 | 341 |
| 344 } // namespace arc | 342 } // namespace arc |
| OLD | NEW |