chromium/components/safe_browsing/content/common/BUILD.gn

# Copyright 2016 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/features.gni")
import("//components/safe_browsing/buildflags.gni")
import("//mojo/public/tools/bindings/mojom.gni")

mojom("interfaces") {
  sources = [ "safe_browsing.mojom" ]

  public_deps = [
    "//components/safe_browsing/core/common:interfaces",
    "//mojo/public/mojom/base:protobuf_support",
    "//services/network/public/mojom",
    "//third_party/blink/public/mojom/tokens",
    "//url/mojom:url_mojom_gurl",
  ]

  enabled_features = []
  if (safe_browsing_mode > 0) {
    enabled_features += [ "full_safe_browsing" ]
  }
}

if (safe_browsing_mode != 0) {
  source_set("file_type_policies") {
    sources = [
      "file_type_policies.cc",
      "file_type_policies.h",
      "file_type_policies_policy_util.cc",
      "file_type_policies_policy_util.h",
      "file_type_policies_prefs.cc",
      "file_type_policies_prefs.h",
    ]

    configs += [ "//build/config/compiler:wexit_time_destructors" ]

    public_deps = [
      "//base",
      "//components/safe_browsing/content/common/proto:download_file_types_proto",
      "//url:url",
    ]

    deps = [
      "//components/policy/core/browser",
      "//components/prefs",
      "//components/resources:components_resources",
      "//components/url_matcher:url_matcher",
      "//ui/base",
    ]
  }

  source_set("file_type_policies_test_support") {
    testonly = true
    sources = [
      "file_type_policies_test_util.cc",
      "file_type_policies_test_util.h",
    ]

    deps = [ ":file_type_policies" ]
  }

  source_set("file_type_policies_policy_util_unittest") {
    testonly = true
    sources = [ "file_type_policies_policy_util_unittest.cc" ]

    deps = [
      ":file_type_policies",
      ":file_type_policies_test_support",
      "//base:base",
      "//components/policy/core/browser:test_support",
      "//components/prefs:test_support",
      "//testing/gmock:gmock",
      "//testing/gtest:gtest",
    ]
  }

  source_set("file_type_policies_unittest") {
    testonly = true
    sources = [ "file_type_policies_unittest.cc" ]

    deps = [
      ":file_type_policies",
      ":file_type_policies_test_support",
      "//base:base",
      "//build:chromeos_buildflags",
      "//components/policy/core/browser:test_support",
      "//components/prefs:test_support",
      "//testing/gmock:gmock",
      "//testing/gtest:gtest",
    ]
  }

  source_set("visual_utils") {
    sources = [
      "visual_utils.cc",
      "visual_utils.h",
    ]

    configs += [ "//build/config/compiler:wexit_time_destructors" ]

    deps = [
      "//components/safe_browsing:buildflags",
      "//components/safe_browsing/core/common:common",
      "//components/safe_browsing/core/common/proto:client_model_proto",
      "//components/safe_browsing/core/common/proto:csd_proto",
      "//ui/gfx:color_utils",
    ]
  }

  source_set("unit_tests") {
    testonly = true
    sources = [ "visual_utils_unittest.cc" ]

    deps = [
      ":visual_utils",
      "//base/test:test_support",
      "//components/safe_browsing/core/common",
      "//testing/gmock:gmock",
      "//testing/gtest:gtest",
      "//ui/gfx:color_utils",
    ]
  }
}