# Copyright 2016 The Chromium Embedded Framework Authors. Portions copyright
# 2014 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.

import("//tools/json_schema_compiler/json_features.gni")
#import("//tools/json_schema_compiler/json_schema_api.gni")

# TODO(cef): Enable if/when CEF exposes its own Mojo APIs. See README.txt for
# details.
#schema_sources = [
#  # TODO(cef): Add CEF-specific Mojo APIs here.
#]
#
#uncompiled_sources = [
#]
#
#root_namespace = "extensions::api::cef::%(namespace)s"
#schema_include_rules = "//cef/libcef/browser/extensions/api:extensions::api::cef::%(namespace)s"
#schema_dependencies = [ "//extensions/common/api" ]
#
#generated_json_strings("api") {
#  sources = schema_sources
#  schemas = true
#  configs = [ "//build/config:precompiled_headers" ]
#  bundle_name = "Cef"
#
#  deps = schema_dependencies
#}
#
#function_registration("api_registration") {
#  sources = schema_sources
#  impl_dir = "//cef/libcef/browser/extensions/api"
#  configs = [ "//build/config:precompiled_headers" ]
#  bundle_name = "Cef"
#
#  deps = [
#    ":api",
#  ]
#  deps += schema_dependencies
#}

json_features("cef_api_features") {
  feature_type = "APIFeature"
  method_name = "AddCEFAPIFeatures"
  sources = [
    "_api_features.json",
  ]
}

json_features("cef_permission_features") {
  feature_type = "PermissionFeature"
  method_name = "AddCEFPermissionFeatures"
  sources = [
    "_permission_features.json",
  ]
}

json_features("cef_manifest_features") {
  feature_type = "ManifestFeature"
  method_name = "AddCEFManifestFeatures"
  sources = [
    # Use the same manifest features as Chrome.
    "//chrome/common/extensions/api/_manifest_features.json",
  ]
}

group("extensions_features") {
  public_deps = [
    ":cef_api_features",
    ":cef_manifest_features",
    ":cef_permission_features",
    "//extensions/common/api:extensions_features",
  ]
}
