chromium/chrome/services/file_util/public/mojom/BUILD.gn

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

import("//build/config/chromeos/ui_mode.gni")
import("//build/config/features.gni")
import("//chrome/services/file_util/public/features.gni")
import("//components/safe_browsing/buildflags.gni")
import("//mojo/public/tools/bindings/mojom.gni")

mojom("mojom") {
  sources = [ "file_util_service.mojom" ]
  enabled_features = []

  if (safe_browsing_mode == 1) {
    sources += [ "safe_archive_analyzer.mojom" ]
    enabled_features += [ "full_safe_browsing" ]
  }

  public_deps = [
    "//mojo/public/mojom/base",
    "//sandbox/policy/mojom",
  ]

  if (is_chromeos_ash) {
    sources += [ "zip_file_creator.mojom" ]
    public_deps += [ "//components/services/filesystem/public/mojom" ]
  }

  if (enable_extractors) {
    sources += [
      "constants.mojom",
      "single_file_extractor.mojom",
    ]
    enabled_features += [ "extractors" ]
  }

  cpp_typemaps = []

  if (safe_browsing_mode == 1) {
    cpp_typemaps += [
      {
        types = [
          {
            mojom = "chrome.mojom.SafeArchiveAnalyzerResults"
            cpp = "::safe_browsing::ArchiveAnalyzerResults"
          },
        ]
        traits_headers =
            [ "//chrome/common/safe_browsing/archive_analyzer_results.h" ]
        traits_private_headers = [ "safe_archive_analyzer_param_traits.h" ]
        traits_public_deps = [
          "//chrome/common/safe_browsing:archive_analyzer_results",
          "//chrome/common/safe_browsing:proto",
          "//components/safe_browsing:buildflags",
          "//components/safe_browsing/core/common/proto:csd_proto",
          "//ipc:protobuf_support",
        ]
      },
    ]
  }
}