policy_namespace_mojom_traits.cc 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright 2022 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "chromeos/crosapi/mojom/policy_namespace_mojom_traits.h"
  5. #include "chromeos/crosapi/mojom/policy_domain_mojom_traits.h"
  6. namespace mojo {
  7. // static
  8. bool StructTraits<
  9. crosapi::mojom::PolicyNamespaceDataView,
  10. policy::PolicyNamespace>::Read(crosapi::mojom::PolicyNamespaceDataView data,
  11. policy::PolicyNamespace* out) {
  12. base::StringPiece component_id_string;
  13. if (!data.ReadComponentId(&component_id_string))
  14. return false;
  15. policy::PolicyDomain domain;
  16. switch (data.domain()) {
  17. case crosapi::mojom::PolicyDomain::kPolicyDomainChrome:
  18. domain = policy::POLICY_DOMAIN_CHROME;
  19. break;
  20. case crosapi::mojom::PolicyDomain::kPolicyDomainExtensions:
  21. domain = policy::POLICY_DOMAIN_EXTENSIONS;
  22. break;
  23. case crosapi::mojom::PolicyDomain::kPolicyDomainSigninExtensions:
  24. domain = policy::POLICY_DOMAIN_SIGNIN_EXTENSIONS;
  25. break;
  26. }
  27. out->domain = domain;
  28. out->component_id = std::string{component_id_string};
  29. return true;
  30. }
  31. } // namespace mojo