# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

mojom = "//services/identity/public/mojom/google_service_auth_error.mojom"
public_headers = [ "//google_apis/gaia/google_service_auth_error.h" ]
traits_headers = [
  "//services/identity/public/cpp/google_service_auth_error_mojom_traits.h",
]
sources = [
  "//services/identity/public/cpp/google_service_auth_error_mojom_traits.cc",
]
public_deps = [
  # TODO(blundell): In the long term, any files from //google_apis that are
  # exposed to consumers of the Identity Service should move to be part of
  # the client library of the Identity Service.
  "//google_apis",
  "//services/identity/public/cpp:cpp_types",
]

type_mappings = [
  "identity.mojom.Captcha=::GoogleServiceAuthError::Captcha",
  "identity.mojom.SecondFactor=::GoogleServiceAuthError::SecondFactor",
  "identity.mojom.GoogleServiceAuthError=::GoogleServiceAuthError",
]
