# 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("//build/config/chromecast_build.gni")
import("//build/config/compiler/compiler.gni")
import("//build/toolchain/toolchain.gni")
import("//build/config/ui.gni")
import("//build/split_static_library.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//third_party/WebKit/Source/bindings/bindings.gni")
import("//third_party/WebKit/Source/bindings/modules/v8/generated.gni")
import("//third_party/WebKit/Source/bindings/scripts/scripts.gni")
import("//third_party/WebKit/Source/config.gni")
import("//third_party/WebKit/Source/core/core.gni")
import("//third_party/WebKit/Source/build/scripts/scripts.gni")
import("//third_party/WebKit/Source/modules/modules_idl_files.gni")
import("//third_party/WebKit/Source/platform/platform_generated.gni")

visibility = [
  "//third_party/WebKit/Source/*",
  "//third_party/WebKit/public/*",
]

rel_blink_core_gen_dir = rebase_path(blink_core_output_dir, root_build_dir)

# Config for code that builds as part of core.
config("config") {
  defines = [ "BLINK_CORE_IMPLEMENTATION=1" ]

  cflags = []
  if (is_win) {
    # Suppress __declspec(dllexport)/extern conflict (C4910).
    cflags += [ "/wd4910" ]
  }

  if (is_chromecast) {
    defines += [ "BLINK_MEDIA_LOG=LOG(INFO)" ]
  }
}

config("core_include_dirs") {
  include_dirs = [
    "..",
    "$root_gen_dir/blink",
  ]
  if (is_android && use_openmax_dl_fft) {
    include_dirs += [ "//third_party/openmax_dl" ]
  }
}

import("//build/config/pch.gni")

config("blink_core_pch") {
  if (enable_precompiled_headers) {
    if (is_win) {
      # This is a string rather than a file GN knows about. It has to match
      # exactly what's in the /FI flag below, and what might appear in the
      # source code in quotes for an #include directive.
      precompiled_header = rebase_path("Precompile-core.h", root_build_dir)

      # This is a file that GN will compile with the above header. It will be
      # implicitly added to the sources (potentially multiple times, with one
      # variant for each language used in the target).
      precompiled_source =
          "//third_party/WebKit/Source/core/win/Precompile-core.cpp"

      # Force include the header.
      cflags = [ "/FI$precompiled_header" ]
    } else if (is_mac) {
      precompiled_source = "//third_party/WebKit/Source/core/Precompile-core.h"
    }
  }
}

core_config_add += [ ":blink_core_pch" ]

source_set("generated") {
  deps = [
    ":core_generated",
    ":prerequisites",
    "//gin",
    "//skia",
    "//third_party/WebKit/Source/bindings/core/v8:bindings_core_v8_generated",
    "//third_party/WebKit/Source/core/inspector:generated",
    "//third_party/WebKit/Source/core/probe:generated",
    "//third_party/iccjpeg",
    "//third_party/libpng",
    "//third_party/libwebp",
    "//third_party/libxml",
    "//third_party/libxslt",
    "//third_party/sqlite",

    # FIXME: don't depend on bindings/modules http://crbug.com/358074
    "//third_party/WebKit/Source/bindings/modules:bindings_modules_generated",
    "//third_party/WebKit/Source/bindings/modules/v8:bindings_modules_v8_generated",
    "//third_party/WebKit/Source/platform:make_platform_generated",
    "//third_party/WebKit/Source/platform/wtf",
    "//url",
    "//v8",
  ]
}

source_set("prerequisites") {
  public_deps = [
    "//gpu/command_buffer/client:gles2_c_lib",
    "//services/service_manager/public/cpp",
    "//skia",
    "//third_party/WebKit/Source/core/inspector:generated",
    "//third_party/WebKit/Source/core/probe:generated",
    "//third_party/WebKit/Source/platform",
    "//third_party/angle:translator",
    "//third_party/iccjpeg",
    "//third_party/icu",
    "//third_party/libpng",
    "//third_party/libwebp",
    "//third_party/libxml",
    "//third_party/libxslt",
    "//third_party/ots",
    "//third_party/snappy",
    "//third_party/sqlite",
    "//third_party/zlib",
    "//ui/gfx/geometry",
    "//url",
    "//v8",
  ]
  deps = [
    "//third_party/WebKit/Source/bindings/core/v8:bindings_core_v8_generated",

    # FIXME: don't depend on bindings_modules http://crbug.com/358074
    "//third_party/WebKit/Source/bindings/modules/v8:bindings_modules_v8_generated",
  ]

  public_configs = [
    ":core_include_dirs",
    "//third_party/WebKit/Source:config",
    "//third_party/WebKit/Source:inside_blink",
  ]

  if (use_openmax_dl_fft) {
    deps += [ "//third_party/openmax_dl/dl" ]
  }
}

# Note that this is a source set rather than a group, even though it has no
# sources. A group would implicitly forward all direct dependent configs
# through it, but we want to keep our internal targets' public_configs private
# and only forward some of them.
component("core") {
  output_name = "blink_core"

  visibility = []  # Allow re-assignment of list.
  visibility = [ "//third_party/WebKit/*" ]

  # If you create a new subdirectory, make a new BUILD file for that directory
  # and reference it in the deps below rather than adding the sources here.
  sources = [
    "CoreExport.h",
    "CoreInitializer.cpp",
    "CoreInitializer.h",
  ]

  configs -= core_config_remove
  configs += core_config_add

  public_deps = [
    ":core_generated",
    "//skia",
    "//third_party/WebKit/Source/platform",
    "//third_party/WebKit/Source/platform/wtf",
    "//url",
    "//v8",
  ]
  deps = [
    "//third_party/WebKit/Source/core/animation",
    "//third_party/WebKit/Source/core/clipboard",
    "//third_party/WebKit/Source/core/context_features",
    "//third_party/WebKit/Source/core/css",
    "//third_party/WebKit/Source/core/dom",
    "//third_party/WebKit/Source/core/editing",
    "//third_party/WebKit/Source/core/events",
    "//third_party/WebKit/Source/core/exported",
    "//third_party/WebKit/Source/core/fileapi",
    "//third_party/WebKit/Source/core/frame",
    "//third_party/WebKit/Source/core/geometry",
    "//third_party/WebKit/Source/core/html",
    "//third_party/WebKit/Source/core/imagebitmap",
    "//third_party/WebKit/Source/core/input",
    "//third_party/WebKit/Source/core/inspector",
    "//third_party/WebKit/Source/core/layout",
    "//third_party/WebKit/Source/core/layout/svg:svg_layout",
    "//third_party/WebKit/Source/core/loader",
    "//third_party/WebKit/Source/core/mojo",
    "//third_party/WebKit/Source/core/offscreencanvas",
    "//third_party/WebKit/Source/core/origin_trials",
    "//third_party/WebKit/Source/core/page",
    "//third_party/WebKit/Source/core/paint",
    "//third_party/WebKit/Source/core/plugins",
    "//third_party/WebKit/Source/core/probe",
    "//third_party/WebKit/Source/core/streams",
    "//third_party/WebKit/Source/core/style:rendering",
    "//third_party/WebKit/Source/core/style:svg_style",
    "//third_party/WebKit/Source/core/svg",
    "//third_party/WebKit/Source/core/timing",
    "//third_party/WebKit/Source/core/workers",
    "//third_party/WebKit/Source/core/xml",
    "//third_party/WebKit/Source/core/xmlhttprequest",
  ]

  if (is_win && is_debug && is_component_build &&
      (current_cpu == "x64" || is_clang)) {
    # Incremental linking fails when the .ilk file gets too large.
    # 64-bit debug builds and Clang builds with full symbols trigger this
    # problem, so we turn off incremental linking in those configurations.
    # For fastest builds, use component release builds without debug
    # information.
    # VC++ bug filed for 64-bit debug incremental link failures:
    # https://connect.microsoft.com/VisualStudio/feedback/details/2846790
    configs -= [ "//build/config/win:default_incremental_linking" ]
    configs += [ "//build/config/win:no_incremental_linking" ]
  }

  public_configs = [ ":core_include_dirs" ]

  if (is_mac) {
    libs = [
      "AppKit.framework",
      "Carbon.framework",
    ]
  }
}

source_set("testing") {
  configs += [
    ":blink_core_pch",
    "//third_party/WebKit/Source:config",
    "//third_party/WebKit/Source:inside_blink",
  ]

  deps = [
    ":core",
    ":generated_testing_idls",
    "//third_party/WebKit/Source/bindings/core/v8:testing",
  ]

  sources = [
    "$blink_core_output_dir/testing/InternalSettingsGenerated.cpp",
    "$blink_core_output_dir/testing/InternalSettingsGenerated.h",
    "testing/CallbackFunctionTest.cpp",
    "testing/CallbackFunctionTest.h",
    "testing/DeathAwareScriptWrappable.cpp",
    "testing/DeathAwareScriptWrappable.h",
    "testing/DictionaryTest.cpp",
    "testing/DictionaryTest.h",
    "testing/DummyModulator.cpp",
    "testing/DummyModulator.h",
    "testing/DummyPageHolder.cpp",
    "testing/DummyPageHolder.h",
    "testing/GCObservation.cpp",
    "testing/GCObservation.h",
    "testing/GarbageCollectedScriptWrappable.cpp",
    "testing/GarbageCollectedScriptWrappable.h",
    "testing/InternalSettings.cpp",
    "testing/InternalSettings.h",
    "testing/Internals.cpp",
    "testing/Internals.h",
    "testing/LayerRect.h",
    "testing/LayerRectList.cpp",
    "testing/LayerRectList.h",
    "testing/MockHyphenation.cpp",
    "testing/MockHyphenation.h",
    "testing/NullExecutionContext.cpp",
    "testing/NullExecutionContext.h",
    "testing/OriginTrialsTest.cpp",
    "testing/OriginTrialsTest.h",
    "testing/OriginTrialsTestPartial.h",
    "testing/RecordTest.cpp",
    "testing/RecordTest.h",
    "testing/SequenceTest.cpp",
    "testing/SequenceTest.h",
    "testing/TypeConversions.h",
    "testing/UnionTypesTest.cpp",
    "testing/UnionTypesTest.h",
    "testing/WorkerInternals.cpp",
    "testing/WorkerInternals.h",
    "testing/v8/WebCoreTestSupport.cpp",
    "testing/v8/WebCoreTestSupport.h",
  ]

  # Compile the sources produced by these IDL file lists.
  sources += process_file_template(
          webcore_testing_idl_files + core_testing_dictionary_idl_files +
              generated_webcore_testing_idl_files +
              webcore_testing_idl_with_modules_dependency_files,
          [
            "$bindings_core_v8_output_dir/V8{{source_name_part}}.cpp",
            "$bindings_core_v8_output_dir/V8{{source_name_part}}.h",
          ])
}

# core_bindings_generated ------------------------------------------------------

generate_event_interfaces("core_event_interfaces") {
  sources = [
    "css/FontFaceSetLoadEvent.idl",
    "css/MediaQueryListEvent.idl",
    "events/AnimationEvent.idl",
    "events/AnimationPlaybackEvent.idl",
    "events/ApplicationCacheErrorEvent.idl",
    "events/BeforeUnloadEvent.idl",
    "events/ClipboardEvent.idl",
    "events/CompositionEvent.idl",
    "events/CustomEvent.idl",
    "events/DragEvent.idl",
    "events/ErrorEvent.idl",
    "events/Event.idl",
    "events/FocusEvent.idl",
    "events/HashChangeEvent.idl",
    "events/InputEvent.idl",
    "events/KeyboardEvent.idl",
    "events/MessageEvent.idl",
    "events/MouseEvent.idl",
    "events/MutationEvent.idl",
    "events/PageTransitionEvent.idl",
    "events/PointerEvent.idl",
    "events/PopStateEvent.idl",
    "events/ProgressEvent.idl",
    "events/PromiseRejectionEvent.idl",
    "events/ResourceProgressEvent.idl",
    "events/SecurityPolicyViolationEvent.idl",
    "events/TextEvent.idl",
    "events/TouchEvent.idl",
    "events/TransitionEvent.idl",
    "events/UIEvent.idl",
    "events/WheelEvent.idl",
    "html/track/TrackEvent.idl",
    "mojo/test/MojoInterfaceRequestEvent.idl",
  ]
  output_file = "core/EventInterfaces.json5"
}

# generated_testing_idls -------------------------------------------------------

group("generated_testing_idls") {
  public_deps = [
    ":generated_settings_macros",
    ":generated_testing_idls_internal_runtime_flags",
    ":generated_testing_idls_settings",
  ]
}

action("generated_settings_macros") {
  script = "../build/scripts/make_settings.py"

  inputs = scripts_for_json5_files + [
             "../build/scripts/make_settings.py",
             "../build/scripts/templates/SettingsMacros.h.tmpl",
             "frame/Settings.json5",
           ]
  outputs = [
    "$blink_core_output_dir/SettingsMacros.h",
  ]

  args = [
    rebase_path("frame/Settings.json5", root_build_dir),
    "--output_dir",
    rel_blink_core_gen_dir,
  ]
}

action("generated_testing_idls_settings") {
  script = "../build/scripts/make_internal_settings.py"

  inputs = scripts_for_json5_files + [
             "../build/scripts/make_internal_settings.py",
             "../build/scripts/templates/InternalSettingsGenerated.idl.tmpl",
             "../build/scripts/templates/InternalSettingsGenerated.cpp.tmpl",
             "../build/scripts/templates/InternalSettingsGenerated.h.tmpl",
             "frame/Settings.json5",
           ]
  outputs = [
    "$blink_core_output_dir/testing/InternalSettingsGenerated.idl",
    "$blink_core_output_dir/testing/InternalSettingsGenerated.cpp",
    "$blink_core_output_dir/testing/InternalSettingsGenerated.h",
  ]

  args = [
    rebase_path("frame/Settings.json5", root_build_dir),
    "--output_dir",
    "$rel_blink_core_gen_dir/testing",
  ]
}

action("generated_testing_idls_internal_runtime_flags") {
  script = "../build/scripts/make_internal_runtime_flags.py"

  inputs = scripts_for_json5_files + [
             "../build/scripts/make_internal_runtime_flags.py",
             "../platform/RuntimeEnabledFeatures.json5",
             "../build/scripts/templates/InternalRuntimeFlags.h.tmpl",
             "../build/scripts/templates/InternalRuntimeFlags.idl.tmpl",
           ]
  outputs = [
    "$blink_core_output_dir/testing/InternalRuntimeFlags.idl",
    "$blink_core_output_dir/testing/InternalRuntimeFlags.h",
  ]

  args = [
    rebase_path("../platform/RuntimeEnabledFeatures.json5", root_build_dir),
    "--output_dir",
    "$rel_blink_core_gen_dir/testing",
  ]
}

css_properties("make_core_generated_computed_style_base") {
  script = "../build/scripts/make_computed_style_base.py"
  in_files = [
    "css/ComputedStyleExtraFields.json5",
    "css/ComputedStyleDiffFunctions.json5",
  ]
  other_inputs = [
    "../build/scripts/templates/fields/field.tmpl",
    "../build/scripts/templates/fields/group.tmpl",
    "../build/scripts/templates/fields/base.tmpl",
    "../build/scripts/templates/fields/keyword.tmpl",
    "../build/scripts/templates/fields/primitive.tmpl",
    "../build/scripts/templates/fields/monotonic_flag.tmpl",
    "../build/scripts/templates/fields/storage_only.tmpl",
    "../build/scripts/templates/fields/external.tmpl",
    "../build/scripts/templates/ComputedStyleBase.h.tmpl",
    "../build/scripts/templates/ComputedStyleBase.cpp.tmpl",
    "../build/scripts/templates/ComputedStyleBaseConstants.h.tmpl",
  ]
  outputs = [
    "$blink_core_output_dir/ComputedStyleBase.h",
    "$blink_core_output_dir/ComputedStyleBase.cpp",
    "$blink_core_output_dir/ComputedStyleBaseConstants.h",
  ]
}

css_properties("make_core_generated_css_value_id_mappings") {
  script = "../build/scripts/make_css_value_id_mappings.py"
  other_inputs =
      [ "../build/scripts/templates/CSSValueIDMappingsGenerated.h.tmpl" ]
  outputs = [
    "$blink_core_output_dir/CSSValueIDMappingsGenerated.h",
  ]
}

# TODO(shend): Need a better way to specify generated output files
css_properties("make_core_generated_css_property_apis") {
  script = "../build/scripts/make_css_property_apis.py"
  other_inputs = [
    "../build/scripts/templates/CSSPropertyDescriptor.cpp.tmpl",
    "../build/scripts/templates/CSSPropertyDescriptor.h.tmpl",
    "../build/scripts/templates/CSSPropertyAPIFiles.h.tmpl",
  ]
  in_files = [ "css/properties/CSSPropertyAPIMethods.json5" ]
  outputs = [
    "$blink_core_output_dir/css/properties/CSSPropertyAPIAlignItems.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIAlignOrJustifyContent.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIAlignOrJustifySelf.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIAnimationDirection.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIAnimationFillMode.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIAnimationIterationCount.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIAnimationName.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIAnimationPlayState.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIBaselineShift.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIBorderImageOutset.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIBorderImageRepeat.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIBorderImageSlice.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIBorderImageWidth.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIBorderRadius.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIBorderWidth.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIBoxShadow.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPICaretColor.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIClip.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIClipPath.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIColor.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIColorNoQuirks.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIColumnCount.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIColumnGap.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIColumnRuleWidth.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIColumnSpan.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIColumnWidth.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIContain.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIContent.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPICounterIncrement.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPICounterReset.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPICursor.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPID.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIFilter.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIFlexBasis.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIFlexGrowOrShrink.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIFontFamily.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIFontFeatureSettings.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIFontSize.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIFontSizeAdjust.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIFontVariantCaps.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIFontVariantLigatures.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIFontVariantNumeric.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIFontVariationSettings.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIFontWeight.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIFragmentation.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIGridAutoFlow.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIGridAutoLine.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIGridLine.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIGridTemplateAreas.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIGridTemplateLine.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIImage.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIImageOrientation.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIJustifyItems.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPILetterAndWordSpacing.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPILineHeight.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPILineHeightStep.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIMargin.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIMarker.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIObjectPosition.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIOffsetAnchor.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIOffsetDistance.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIOffsetPath.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIOffsetPosition.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIOffsetRotate.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIOpacity.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIOrder.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIOutlineColor.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIOutlineOffset.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIOutlineWidth.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIPadding.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIPage.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIPaintOrder.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIPaintStroke.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIPerspective.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIPerspectiveOrigin.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIQuotes.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIRadius.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIRotate.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIScale.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIScrollSnapAlign.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIScrollPadding.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIScrollSnapMargin.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIScrollSnapType.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIShapeImageThreshold.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIShapeMargin.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIShapeOutside.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPISize.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIStrokeDasharray.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIStrokeMiterlimit.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIStrokeOrLength.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPITabSize.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPITextDecorationColor.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPITextDecorationLine.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPITextDecorationSkip.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPITextIndent.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPITextShadow.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPITextSizeAdjust.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPITextUnderlinePosition.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPITouchAction.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPITransform.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPITransformOrigin.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPITransitionProperty.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPITranslate.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIVerticalAlign.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitBorderImage.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitBorderSpacing.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitBorderWidth.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitBoxFlex.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitBoxFlexGroup.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitBoxReflect.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitFontSizeDelta.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitHighlight.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitLineClamp.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitLogicalWidthOrHeight.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitMargin.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitMaskRepeat.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitMaxLogicalWidthOrHeight.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitOriginX.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitOriginY.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitPadding.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitTextEmphasisStyle.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitTextStrokeWidth.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWebkitTransformOriginZ.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWidthOrHeight.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIWillChange.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIZIndex.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIZoom.h",
    "$blink_core_output_dir/css/properties/CSSPropertyDescriptor.cpp",
    "$blink_core_output_dir/css/properties/CSSPropertyDescriptor.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIBorderImage.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIBorderRadius.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIBorderSpacing.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIColumns.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIFlex.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIFont.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIFontVariant.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIMargin.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIOutline.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIOverflow.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIOffset.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIScrollPaddingBlock.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPITextDecoration.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIWebkitBorderAfter.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIWebkitBorderBefore.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIWebkitBorderEnd.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIWebkitBorderStart.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIWebkitMarginCollapse.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIWebkitMaskBoxImage.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIWebkitTextEmphasis.h",
    "$blink_core_output_dir/css/properties/CSSShorthandPropertyAPIWebkitTextStroke.h",
  ]
}

css_properties("make_core_generated_css_property_names") {
  script = "../build/scripts/make_css_property_names.py"
  outputs = [
    "$blink_core_output_dir/CSSPropertyNames.cpp",
    "$blink_core_output_dir/CSSPropertyNames.h",
  ]
}

process_in_files("make_core_generated_media_features") {
  script = "../build/scripts/make_media_features.py"
  in_files = [ "css/MediaFeatureNames.json5" ]
  other_inputs = [
    "../build/scripts/make_media_features.py",
    "../build/scripts/templates/MediaFeatures.h.tmpl",
  ]
  outputs = [
    "$blink_core_output_dir/MediaFeatures.h",
  ]
}

css_properties("make_core_generated_style_property_shorthand") {
  script = "../build/scripts/make_style_shorthands.py"
  other_inputs = [
    "../build/scripts/templates/StylePropertyShorthand.cpp.tmpl",
    "../build/scripts/templates/StylePropertyShorthand.h.tmpl",
  ]
  outputs = [
    "$blink_core_output_dir/StylePropertyShorthand.cpp",
    "$blink_core_output_dir/StylePropertyShorthand.h",
  ]
}

css_properties("make_core_generated_style_builder") {
  script = "../build/scripts/make_style_builder.py"
  other_inputs = [
    "../build/scripts/templates/StyleBuilder.cpp.tmpl",
    "../build/scripts/templates/StyleBuilderFunctions.cpp.tmpl",
    "../build/scripts/templates/StyleBuilderFunctions.h.tmpl",
  ]
  outputs = [
    "$blink_core_output_dir/StyleBuilder.cpp",
    "$blink_core_output_dir/StyleBuilderFunctions.h",
    "$blink_core_output_dir/StyleBuilderFunctions.cpp",
  ]
}

css_properties("make_core_generated_cssom_types") {
  script = "../build/scripts/make_cssom_types.py"
  other_inputs = [
    "../build/scripts/templates/CSSOMKeywords.cpp.tmpl",
    "../build/scripts/templates/CSSOMTypes.cpp.tmpl",
  ]
  outputs = [
    "$blink_core_output_dir/CSSOMKeywords.cpp",
    "$blink_core_output_dir/CSSOMTypes.cpp",
  ]
}

css_properties("make_core_generated_css_property_metadata") {
  script = "../build/scripts/make_css_property_metadata.py"
  other_inputs = [ "../build/scripts/templates/CSSPropertyMetadata.cpp.tmpl" ]
  outputs = [
    "$blink_core_output_dir/CSSPropertyMetadata.cpp",
  ]
}

process_in_files("make_core_generated_css_value_keywords") {
  script = "../build/scripts/make_css_value_keywords.py"

  in_files = [
    "css/CSSValueKeywords.json5",
    "css/SVGCSSValueKeywords.json5",
  ]
  outputs = [
    "$blink_core_output_dir/CSSValueKeywords.cpp",
    "$blink_core_output_dir/CSSValueKeywords.h",
  ]
  other_args = [
    "--gperf",
    gperf_exe,
  ]
}

process_in_files("make_core_generated_html_element_factory") {
  script = "../build/scripts/make_element_factory.py"

  in_files = [
    "html/HTMLTagNames.json5",
    "html/HTMLAttributeNames.json5",
  ]
  other_inputs = make_element_factory_files
  outputs = [
    "$blink_core_output_dir/HTMLElementFactory.cpp",
    "$blink_core_output_dir/HTMLElementFactory.h",
    "$blink_core_output_dir/HTMLNames.cpp",
    "$blink_core_output_dir/HTMLNames.h",
  ]
}

process_in_files("make_core_generated_html_element_type_helpers") {
  script = "../build/scripts/make_element_type_helpers.py"

  in_files = [ "html/HTMLTagNames.json5" ]
  other_inputs = make_element_type_helpers_files
  outputs = [
    "$blink_core_output_dir/HTMLElementTypeHelpers.cpp",
    "$blink_core_output_dir/HTMLElementTypeHelpers.h",
  ]
}

process_in_files("make_core_generated_svg_names") {
  script = "../build/scripts/make_element_factory.py"

  in_files = [
    "svg/SVGTagNames.json5",
    "svg/SVGAttributeNames.json5",
  ]
  other_inputs = make_element_factory_files
  outputs = [
    "$blink_core_output_dir/SVGElementFactory.cpp",
    "$blink_core_output_dir/SVGElementFactory.h",
    "$blink_core_output_dir/SVGNames.cpp",
    "$blink_core_output_dir/SVGNames.h",
  ]
}

process_in_files("make_core_generated_svg_element_type_helpers") {
  script = "../build/scripts/make_element_type_helpers.py"

  in_files = [ "svg/SVGTagNames.json5" ]
  other_inputs = make_element_type_helpers_files
  outputs = [
    "$blink_core_output_dir/SVGElementTypeHelpers.h",
  ]
}

# make_event_factory -----------------------------------------------------------

make_event_factory("make_core_generated_event_factory") {
  in_files = [
    "$blink_core_output_dir/EventInterfaces.json5",
    "events/EventAliases.json5",
  ]
  outputs = [
    "$blink_core_output_dir/Event.cpp",
    "$blink_core_output_dir/EventHeaders.h",
  ]
}

# make_names -------------------------------------------------------------------

process_in_files("make_core_generated_media_feature_names") {
  script = "../build/scripts/make_media_feature_names.py"
  in_files = [ "css/MediaFeatureNames.json5" ]
  other_inputs = make_names_files
  outputs = [
    "$blink_core_output_dir/MediaFeatureNames.cpp",
    "$blink_core_output_dir/MediaFeatureNames.h",
  ]
}

make_names("make_core_generated_media_type_names") {
  in_files = [ "css/MediaTypeNames.json5" ]
  outputs = [
    "$blink_core_output_dir/MediaTypeNames.cpp",
    "$blink_core_output_dir/MediaTypeNames.h",
  ]
}

make_names("make_core_generated_event_names") {
  in_files = [ "$blink_core_output_dir/EventInterfaces.json5" ]
  outputs = [
    "$blink_core_output_dir/EventNames.cpp",
    "$blink_core_output_dir/EventNames.h",
  ]
}

make_names("make_core_generated_event_target_names") {
  in_files = [ "events/EventTargetFactory.json5" ]
  outputs = [
    "$blink_core_output_dir/EventTargetNames.cpp",
    "$blink_core_output_dir/EventTargetNames.h",
  ]
}

make_names("make_core_generated_event_type_names") {
  in_files = [ "events/EventTypeNames.json5" ]
  outputs = [
    "$blink_core_output_dir/EventTypeNames.cpp",
    "$blink_core_output_dir/EventTypeNames.h",
  ]
}

make_names("make_core_generated_html_tokenizer_names") {
  in_files = [ "html/parser/HTMLTokenizerNames.json5" ]
  outputs = [
    "$blink_core_output_dir/HTMLTokenizerNames.cpp",
    "$blink_core_output_dir/HTMLTokenizerNames.h",
  ]
}

make_names("make_core_generated_input_type_names") {
  in_files = [ "html/forms/InputTypeNames.json5" ]
  outputs = [
    "$blink_core_output_dir/InputTypeNames.cpp",
    "$blink_core_output_dir/InputTypeNames.h",
  ]
}

make_names("make_core_generated_input_mode_names") {
  in_files = [ "editing/InputModeNames.json5" ]
  outputs = [
    "$blink_core_output_dir/InputModeNames.cpp",
    "$blink_core_output_dir/InputModeNames.h",
  ]
}

# make_qualified_names ---------------------------------------------------------

make_qualified_names("make_core_generated_math_ml_names") {
  in_files = [
    "html/parser/MathMLTagNames.json5",
    "html/parser/MathMLAttributeNames.json5",
  ]
  outputs = [
    "$blink_core_output_dir/MathMLNames.cpp",
    "$blink_core_output_dir/MathMLNames.h",
  ]
}

make_qualified_names("make_core_generated_xlink_names") {
  in_files = [ "svg/xlinkattrs.json5" ]
  outputs = [
    "$blink_core_output_dir/XLinkNames.cpp",
    "$blink_core_output_dir/XLinkNames.h",
  ]
}

make_qualified_names("make_core_generated_xml_ns_names") {
  in_files = [ "xml/xmlnsattrs.json5" ]
  outputs = [
    "$blink_core_output_dir/XMLNSNames.cpp",
    "$blink_core_output_dir/XMLNSNames.h",
  ]
}

make_qualified_names("make_core_generated_xml_names") {
  in_files = [ "xml/xmlattrs.json5" ]
  outputs = [
    "$blink_core_output_dir/XMLNames.cpp",
    "$blink_core_output_dir/XMLNames.h",
  ]
}

# One-off scripts --------------------------------------------------------------

action("make_minimized_css") {
  script = "../build/scripts/minimize_css.py"

  inputs = [
    "css/html.css",
  ]
  outputs = [
    "$blink_core_output_dir/html.css",
  ]

  args = [
    "--output_dir",
    rel_blink_core_gen_dir,
  ]
  args += rebase_path(inputs, root_build_dir)

  deps = make_core_generated_deps
}

# "HTMLEntityTable" in make_core_generated from GYP.
action("make_core_generated_html_entity_table") {
  visibility = []  # Allow re-assignment of list.
  visibility = [ ":*" ]
  script = "html/parser/create-html-entity-table"

  inputs = [
    "html/parser/HTMLEntityNames.csv",
  ]
  outputs = [
    "$blink_core_output_dir/HTMLEntityTable.cpp",
  ]

  args = [ "-o" ] + rebase_path(outputs, root_build_dir)
  args += rebase_path(inputs, root_build_dir)

  deps = make_core_generated_deps
}

action("make_core_generated_css_tokenizer_codepoints") {
  visibility = []  # Allow re-assignment of list.
  visibility = [ ":*" ]
  script = "../build/scripts/make_css_tokenizer_codepoints.py"

  outputs = [
    "$blink_core_output_dir/CSSTokenizerCodepoints.cpp",
  ]

  args = [
    "--output_dir",
    rel_blink_core_gen_dir,
  ]
  if (is_mac && !use_system_xcode) {
    args += [
      "--developer_dir",
      hermetic_xcode_path,
    ]
  }

  deps = make_core_generated_deps
}

action("make_core_generated_css_primitive_value_unit_trie") {
  visibility = []  # Allow re-assignment of list.
  visibility = [ ":*" ]
  script = "../build/scripts/make_css_primitive_value_unit_trie.py"

  input_file = "css/CSSPrimitiveValueUnits.json5"
  inputs = make_trie_helpers_files + [
             input_file,
             "../build/scripts/templates/CSSPrimitiveValueUnitTrie.cpp.tmpl",
           ]
  outputs = [
    "$blink_core_output_dir/CSSPrimitiveValueUnitTrie.cpp",
  ]

  args = [
    rebase_path(input_file, root_build_dir),
    "--output_dir",
    rel_blink_core_gen_dir,
  ]
  if (is_mac && !use_system_xcode) {
    args += [
      "--developer_dir",
      hermetic_xcode_path,
    ]
  }

  deps = make_core_generated_deps
}

action("make_core_generated_html_element_lookup_trie") {
  visibility = []  # Allow re-assignment of list.
  visibility = [ ":*" ]
  script = "../build/scripts/make_element_lookup_trie.py"

  input_file = "html/HTMLTagNames.json5"
  inputs = make_trie_helpers_files + [
             input_file,
             "../build/scripts/templates/ElementLookupTrie.cpp.tmpl",
             "../build/scripts/templates/ElementLookupTrie.h.tmpl",
           ]
  outputs = [
    "$blink_core_output_dir/HTMLElementLookupTrie.cpp",
    "$blink_core_output_dir/HTMLElementLookupTrie.h",
  ]

  args = [
    rebase_path(input_file, root_build_dir),
    "--output_dir",
    rel_blink_core_gen_dir,
  ]
  if (is_mac && !use_system_xcode) {
    args += [
      "--developer_dir",
      hermetic_xcode_path,
    ]
  }

  deps = make_core_generated_deps
}

action("make_core_generated_origin_trials") {
  script = "../build/scripts/make_origin_trials.py"

  inputs = scripts_for_json5_files + [
             "../build/scripts/make_origin_trials.py",
             "../platform/RuntimeEnabledFeatures.json5",
             "../build/scripts/templates/OriginTrials.cpp.tmpl",
             "../build/scripts/templates/OriginTrials.h.tmpl",
           ]
  outputs = [
    "$blink_core_output_dir/origin_trials/OriginTrials.cpp",
    "$blink_core_output_dir/origin_trials/OriginTrials.h",
  ]

  args = [
    rebase_path("../platform/RuntimeEnabledFeatures.json5", root_build_dir),
    "--output_dir",
    "$rel_blink_core_gen_dir/origin_trials",
  ]
  if (is_mac && !use_system_xcode) {
    args += [
      "--developer_dir",
      hermetic_xcode_path,
    ]
  }
}

action_foreach("make_core_generated_bison") {
  script = "../build/scripts/rule_bison.py"
  sources = [
    "xml/XPathGrammar.y",
  ]
  outputs = [
    "$blink_core_output_dir/{{source_name_part}}.cpp",
    "$blink_core_output_dir/{{source_name_part}}.h",
  ]
  args = [
    "{{source}}",
    rel_blink_core_gen_dir,
    bison_exe,
  ]
  if (is_mac && !use_system_xcode) {
    args += [ hermetic_xcode_path ]
  }

  deps = make_core_generated_deps
}

# Targets from above that generate outputs that need to be compiled.
# All sources declared as outputs from these targets will be compiled into one
# target.
targets_generating_sources = [
  ":make_core_generated_bison",
  ":make_core_generated_css_primitive_value_unit_trie",
  ":make_core_generated_css_property_metadata",
  ":make_core_generated_computed_style_base",
  ":make_core_generated_css_value_id_mappings",
  ":make_core_generated_css_property_apis",
  ":make_core_generated_css_property_names",
  ":make_core_generated_cssom_types",
  ":make_core_generated_event_factory",
  ":make_core_generated_event_names",
  ":make_core_generated_event_target_names",
  ":make_core_generated_event_type_names",
  ":make_core_generated_html_element_factory",
  ":make_core_generated_html_element_lookup_trie",
  ":make_core_generated_html_entity_table",
  ":make_core_generated_html_tokenizer_names",
  ":make_core_generated_input_mode_names",
  ":make_core_generated_input_type_names",
  ":make_core_generated_math_ml_names",
  ":make_core_generated_media_feature_names",
  ":make_core_generated_media_type_names",
  ":make_core_generated_origin_trials",
  ":make_core_generated_style_builder",
  ":make_core_generated_style_property_shorthand",
  ":make_core_generated_svg_names",
  ":make_core_generated_xlink_names",
  ":make_core_generated_xml_names",
  ":make_core_generated_xml_ns_names",
  ":make_core_generated_html_element_type_helpers",
  ":make_core_generated_css_value_keywords",
  ":make_core_generated_media_features",
  ":make_core_generated_svg_element_type_helpers",
]

group("all_generators") {
  public_deps = targets_generating_sources
  public_deps += [
    # This target's generated source is #included into another source file.
    # So we don't want to list it in the "generating sources" list above,
    # but it does need to be listed as a dependency here.
    ":make_core_generated_css_tokenizer_codepoints",
  ]
}

# Compiles the code generated by the targets above.
jumbo_target("core_generated") {
  target_type = core_link_small_target_type
  sources = bindings_core_v8_files

  # Add all sources generated by the targets above.
  foreach(current, targets_generating_sources) {
    sources += get_target_outputs(current)
  }
  jumbo_excluded_sources = [
    # Same variables as HTMLElementFactory
    "$blink_core_output_dir/SVGElementFactory.cpp",

    # Same variables (stringpool_t, stringpool_contents) as CSSValueKeywords
    "$blink_core_output_dir/CSSPropertyNames.cpp",

    # Global "using namespace blink" and "using namespace XPath"
    "$blink_core_output_dir/XPathGrammar.cpp",

    # Using global "using namespace WTF"
    "//third_party/WebKit/Source/bindings/core/v8/custom/V8CSSStyleDeclarationCustom.cpp",
  ]
  public_deps = [
    ":all_generators",
    "//third_party/WebKit/Source/bindings/core/v8:bindings_core_impl",
  ]

  configs -= core_config_remove
  configs += core_config_add + [ "..:inside_blink" ]

  # Dependencies required to compile the sources.
  public_deps += [
    ":prerequisites",
    "//gin",
    "//skia",
    "//third_party/WebKit/Source/bindings/core/v8:bindings_core_v8_generated",
    "//third_party/iccjpeg",
    "//third_party/libpng",
    "//third_party/libwebp",
    "//third_party/libxml",
    "//third_party/libxslt",
    "//third_party/sqlite",

    # FIXME: don't depend on bindings/modules http://crbug.com/358074
    "//third_party/WebKit/Source/bindings/modules:bindings_modules_generated",
    "//third_party/WebKit/Source/bindings/modules/v8:bindings_modules_v8_generated",
    "//third_party/WebKit/Source/platform:make_platform_generated",
    "//third_party/WebKit/Source/platform/wtf",
    "//url",
    "//v8",
  ]

  configs += [
    ":core_include_dirs",

    # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    "//build/config/compiler:no_size_t_to_int_warning",
  ]
  include_dirs = [ "$root_gen_dir/blink" ]

  cflags = []
  defines = []

  if (is_win && is_component_build) {
    defines += [ "USING_V8_SHARED" ]
  }

  if (is_win) {
    cflags += [
      # In generated bindings code: "switch contains default but no case".
      # 4701 and 4702 are disabled because of issues in Bison-generated
      # XPathGrammar.cpp.
      "/wd4065",
      "/wd4701",
      "/wd4702",
    ]
  }
}

# Fuzzer for blink::TextResourceDecoder.
fuzzer_test("text_resource_decoder_fuzzer") {
  sources = [
    "html/parser/TextResourceDecoderForFuzzing.h",
    "html/parser/TextResourceDecoderFuzzer.cpp",
  ]
  deps = [
    ":core",
    "../platform:blink_fuzzer_test_support",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "animation/AnimationClockTest.cpp",
    "animation/AnimationEffectReadOnlyTest.cpp",
    "animation/AnimationInputHelpersTest.cpp",
    "animation/AnimationSimTest.cpp",
    "animation/AnimationTest.cpp",
    "animation/AnimationTestHelper.cpp",
    "animation/AnimationTestHelper.h",
    "animation/CompositorAnimationsTest.cpp",
    "animation/DocumentTimelineTest.cpp",
    "animation/EffectInputTest.cpp",
    "animation/EffectStackTest.cpp",
    "animation/InterpolableValueTest.cpp",
    "animation/InterpolationEffectTest.cpp",
    "animation/KeyframeEffectModelTest.cpp",
    "animation/KeyframeEffectTest.cpp",
    "animation/PropertyHandleTest.cpp",
    "animation/TimingCalculationsTest.cpp",
    "animation/TimingInputTest.cpp",
    "clipboard/DataObjectTest.cpp",
    "clipboard/DataTransferTest.cpp",
    "css/ActiveStyleSheetsTest.cpp",
    "css/AffectedByPseudoTest.cpp",
    "css/CSSCalculationValueTest.cpp",
    "css/CSSFontFaceSourceTest.cpp",
    "css/CSSPageRuleTest.cpp",
    "css/CSSSelectorTest.cpp",
    "css/CSSStyleDeclarationTest.cpp",
    "css/CSSTestHelper.cpp",
    "css/CSSTestHelper.h",
    "css/CSSValueTestHelper.h",
    "css/DragUpdateTest.cpp",
    "css/MediaQueryEvaluatorTest.cpp",
    "css/MediaQueryListTest.cpp",
    "css/MediaQueryMatcherTest.cpp",
    "css/MediaQuerySetTest.cpp",
    "css/MediaValuesInitialViewportTest.cpp",
    "css/MediaValuesTest.cpp",
    "css/RuleFeatureSetTest.cpp",
    "css/RuleSetTest.cpp",
    "css/StyleSheetContentsTest.cpp",
    "css/cssom/CSSResourceValueTest.cpp",
    "css/cssom/CSSStyleImageValueTest.cpp",
    "css/cssom/CSSURLImageValueTest.cpp",
    "css/cssom/CSSUnparsedValueTest.cpp",
    "css/cssom/CSSVariableReferenceValueTest.cpp",
    "css/cssom/FilteredComputedStylePropertyMapTest.cpp",
    "css/invalidation/InvalidationSetTest.cpp",
    "css/invalidation/StyleInvalidatorTest.cpp",
    "css/parser/CSSLazyParsingTest.cpp",
    "css/parser/CSSParserFastPathsTest.cpp",
    "css/parser/CSSParserTokenTest.cpp",
    "css/parser/CSSPropertyParserTest.cpp",
    "css/parser/CSSSelectorParserTest.cpp",
    "css/parser/CSSTokenizerTest.cpp",
    "css/parser/MediaConditionTest.cpp",
    "css/parser/SizesAttributeParserTest.cpp",
    "css/parser/SizesCalcParserTest.cpp",
    "css/resolver/FontBuilderTest.cpp",
    "css/resolver/MatchResultTest.cpp",
    "css/resolver/ScopedStyleResolverTest.cpp",
    "css/resolver/SharedStyleFinderTest.cpp",
    "css/threaded/CSSParserThreadedTest.cpp",
    "css/threaded/CSSToLengthConversionDataThreadedTest.cpp",
    "css/threaded/FilterOperationResolverThreadedTest.cpp",
    "css/threaded/FontObjectThreadedTest.cpp",
    "dom/AttrTest.cpp",
    "dom/CSSSelectorWatchTest.cpp",
    "dom/DOMImplementationTest.cpp",
    "dom/DocumentStatisticsCollectorTest.cpp",
    "dom/DocumentTest.cpp",
    "dom/ElementTest.cpp",
    "dom/ElementVisibilityObserverTest.cpp",
    "dom/FlatTreeTraversalTest.cpp",
    "dom/IdleDeadlineTest.cpp",
    "dom/IntersectionObserverTest.cpp",
    "dom/LayoutTreeBuilderTraversalTest.cpp",
    "dom/MockScriptElementBase.h",
    "dom/ModulatorTest.cpp",
    "dom/ModuleMapTest.cpp",
    "dom/MutationObserverTest.cpp",
    "dom/NodeTest.cpp",
    "dom/NthIndexCacheTest.cpp",
    "dom/RangeTest.cpp",
    "dom/ResizeObserverTest.cpp",
    "dom/ScriptModuleResolverImplTest.cpp",
    "dom/ScriptRunnerTest.cpp",
    "dom/ScriptedAnimationControllerTest.cpp",
    "dom/ScriptedIdleTaskControllerTest.cpp",
    "dom/SelectorQueryTest.cpp",
    "dom/ShadowDOMV0Test.cpp",
    "dom/SlotScopedTraversalTest.cpp",
    "dom/SpaceSplitStringTest.cpp",
    "dom/StaticRangeTest.cpp",
    "dom/StyleElementTest.cpp",
    "dom/StyleEngineTest.cpp",
    "dom/SuspendableObjectTest.cpp",
    "dom/TextTest.cpp",
    "dom/TreeScopeTest.cpp",
    "dom/URLSearchParamsTest.cpp",
    "dom/UserGestureIndicatorTest.cpp",
    "dom/WhitespaceAttacherTest.cpp",
    "editing/CaretDisplayItemClientTest.cpp",
    "editing/KeyboardTest.cpp",
    "editing/LinkSelectionTest.cpp",
    "editing/TextFinderTest.cpp",
    "events/EventPathTest.cpp",
    "events/EventTargetTest.cpp",
    "events/ListenerLeakTest.cpp",
    "events/PointerEventFactoryTest.cpp",
    "events/TouchEventTest.cpp",
    "events/WebInputEventConversionTest.cpp",
    "exported/FakeWebPlugin.cpp",
    "exported/FakeWebPlugin.h",
    "exported/PrerenderingTest.cpp",
    "exported/WebAssociatedURLLoaderImplTest.cpp",
    "exported/WebDocumentSubresourceFilterTest.cpp",
    "exported/WebDocumentTest.cpp",
    "exported/WebDragDataTest.cpp",
    "exported/WebElementTest.cpp",
    "exported/WebFrameSerializerTest.cpp",
    "exported/WebHelperPluginTest.cpp",
    "exported/WebMeaningfulLayoutsTest.cpp",
    "exported/WebNodeTest.cpp",
    "exported/WebPluginContainerTest.cpp",
    "exported/WebRangeTest.cpp",
    "exported/WebScopedWindowFocusAllowedIndicatorTest.cpp",
    "exported/WebSearchableFormDataTest.cpp",
    "exported/WebSelectorTest.cpp",
    "exported/WebUserGestureTokenTest.cpp",
    "exported/WebViewTest.cpp",
    "fileapi/FileListTest.cpp",
    "fileapi/FileTest.cpp",
    "frame/BrowserControlsTest.cpp",
    "frame/DOMTimerTest.cpp",
    "frame/DeferredLoadingTest.cpp",
    "frame/DocumentLoadingRenderingTest.cpp",
    "frame/FrameSerializerTest.cpp",
    "frame/FrameTest.cpp",
    "frame/FrameTestHelpers.cpp",
    "frame/FrameTestHelpers.h",
    "frame/HistoryTest.cpp",
    "frame/LocalFrameViewTest.cpp",
    "frame/MHTMLTest.cpp",
    "frame/OriginsUsingFeaturesTest.cpp",
    "frame/PerformanceMonitorTest.cpp",
    "frame/RootFrameViewportTest.cpp",
    "frame/SubresourceIntegrityTest.cpp",
    "frame/UseCounterTest.cpp",
    "frame/VisualViewportTest.cpp",
    "frame/csp/CSPDirectiveListTest.cpp",
    "frame/csp/CSPSourceTest.cpp",
    "frame/csp/ContentSecurityPolicyTest.cpp",
    "frame/csp/MediaListDirectiveTest.cpp",
    "frame/csp/SourceListDirectiveTest.cpp",
    "geometry/DOMMatrixTest.cpp",
    "html/FormDataTest.cpp",
    "html/HTMLDimensionTest.cpp",
    "html/HTMLEmbedElementTest.cpp",
    "html/HTMLFormControlElementTest.cpp",
    "html/HTMLFrameElementTest.cpp",
    "html/HTMLIFrameElementAllowTest.cpp",
    "html/HTMLIFrameElementTest.cpp",
    "html/HTMLImageElementTest.cpp",
    "html/HTMLInputElementTest.cpp",
    "html/HTMLLinkElementSizesAttributeTest.cpp",
    "html/HTMLLinkElementTest.cpp",
    "html/HTMLMediaElementEventListenersTest.cpp",
    "html/HTMLMediaElementTest.cpp",
    "html/HTMLOutputElementTest.cpp",
    "html/HTMLSelectElementTest.cpp",
    "html/HTMLSlotElementTest.cpp",
    "html/HTMLTableRowElementTest.cpp",
    "html/HTMLTextAreaElementTest.cpp",
    "html/HTMLVideoElementPersistentTest.cpp",
    "html/ImageDataTest.cpp",
    "html/ImageDocumentTest.cpp",
    "html/LinkElementLoadingTest.cpp",
    "html/LinkRelAttributeTest.cpp",
    "html/MediaElementFillingViewportTest.cpp",
    "html/TextControlElementTest.cpp",
    "html/TimeRangesTest.cpp",
    "html/canvas/CanvasAsyncBlobCreatorTest.cpp",
    "html/canvas/CanvasFontCacheTest.cpp",
    "html/custom/CustomElementDefinitionTest.cpp",
    "html/custom/CustomElementDescriptorTest.cpp",
    "html/custom/CustomElementReactionQueueTest.cpp",
    "html/custom/CustomElementReactionStackTest.cpp",
    "html/custom/CustomElementReactionTestHelpers.h",
    "html/custom/CustomElementRegistryTest.cpp",
    "html/custom/CustomElementTest.cpp",
    "html/custom/CustomElementTestHelpers.cpp",
    "html/custom/CustomElementTestHelpers.h",
    "html/custom/CustomElementUpgradeSorterTest.cpp",
    "html/forms/EmailInputTypeTest.cpp",
    "html/forms/ExternalPopupMenuTest.cpp",
    "html/forms/FileInputTypeTest.cpp",
    "html/forms/OptionListTest.cpp",
    "html/forms/PasswordInputTypeTest.cpp",
    "html/forms/StepRangeTest.cpp",
    "html/media/AutoplayUmaHelperTest.cpp",
    "html/media/MediaCustomControlsFullscreenDetectorTest.cpp",
    "html/parser/AtomicHTMLTokenTest.cpp",
    "html/parser/CSSPreloadScannerTest.cpp",
    "html/parser/CompactHTMLTokenTest.cpp",
    "html/parser/HTMLDocumentParserLoadingTest.cpp",
    "html/parser/HTMLDocumentParserTest.cpp",
    "html/parser/HTMLEntityParserTest.cpp",
    "html/parser/HTMLParserIdiomsTest.cpp",
    "html/parser/HTMLPreloadScannerTest.cpp",
    "html/parser/HTMLResourcePreloaderTest.cpp",
    "html/parser/HTMLSrcsetParserTest.cpp",
    "html/parser/HTMLTokenizerTest.cpp",
    "html/parser/HTMLTreeBuilderSimulatorTest.cpp",
    "html/parser/HTMLViewSourceParserTest.cpp",
    "html/parser/TextResourceDecoderTest.cpp",
    "html/track/TextTrackListTest.cpp",
    "html/track/vtt/BufferedLineReaderTest.cpp",
    "html/track/vtt/VTTScannerTest.cpp",
    "imagebitmap/ImageBitmapTest.cpp",
    "input/EventHandlerTest.cpp",
    "input/ImeOnFocusTest.cpp",
    "input/TouchActionTest.cpp",
    "inspector/ProtocolParserTest.cpp",
    "layout/CollapsedBorderValueTest.cpp",
    "layout/LayoutBlockTest.cpp",
    "layout/LayoutBoxModelObjectTest.cpp",
    "layout/LayoutBoxTest.cpp",
    "layout/LayoutEmbeddedContentTest.cpp",
    "layout/LayoutInlineTest.cpp",
    "layout/LayoutMediaTest.cpp",
    "layout/LayoutMultiColumnFlowThreadTest.cpp",
    "layout/LayoutObjectTest.cpp",
    "layout/LayoutProgressTest.cpp",
    "layout/LayoutTableCellTest.cpp",
    "layout/LayoutTableRowTest.cpp",
    "layout/LayoutTableSectionTest.cpp",
    "layout/LayoutTableTest.cpp",
    "layout/LayoutTestHelper.cpp",
    "layout/LayoutTestHelper.h",
    "layout/LayoutTextTest.cpp",
    "layout/LayoutThemeTest.cpp",
    "layout/MapCoordinatesTest.cpp",
    "layout/MultiColumnFragmentainerGroupTest.cpp",
    "layout/OverflowModelTest.cpp",
    "layout/PaginationTest.cpp",
    "layout/PaintContainmentTest.cpp",
    "layout/ScrollAnchorTest.cpp",
    "layout/ScrollbarsTest.cpp",
    "layout/TextAutosizerTest.cpp",
    "layout/VisualRectMappingTest.cpp",
    "layout/api/SelectionStateTest.cpp",
    "layout/compositing/CompositedLayerMappingTest.cpp",
    "layout/compositing/CompositingReasonFinderTest.cpp",
    "layout/compositing/CompositorWorkerTest.cpp",
    "layout/compositing/PaintLayerCompositorTest.cpp",
    "layout/line/InlineBoxTest.cpp",
    "layout/line/InlineTextBoxTest.cpp",
    "layout/ng/NGInlineLayoutTest.cpp",
    "layout/ng/geometry/ng_box_strut_test.cc",
    "layout/ng/geometry/ng_logical_offset_test.cc",
    "layout/ng/geometry/ng_physical_rect_test.cc",
    "layout/ng/inline/ng_inline_items_builder_test.cc",
    "layout/ng/inline/ng_inline_layout_algorithm_test.cc",
    "layout/ng/inline/ng_inline_node_test.cc",
    "layout/ng/inline/ng_line_breaker_test.cc",
    "layout/ng/ng_absolute_utils_test.cc",
    "layout/ng/ng_base_layout_algorithm_test.cc",
    "layout/ng/ng_base_layout_algorithm_test.h",
    "layout/ng/ng_block_child_iterator_test.cc",
    "layout/ng/ng_block_layout_algorithm_test.cc",
    "layout/ng/ng_block_node_test.cc",
    "layout/ng/ng_constraint_space_builder_test.cc",
    "layout/ng/ng_constraint_space_test.cc",
    "layout/ng/ng_length_utils_test.cc",
    "layout/ng/ng_min_max_content_size_test.cc",
    "layout/ng/ng_out_of_flow_layout_part_test.cc",
    "layout/ng/ng_relative_utils_test.cc",
    "layout/shapes/BoxShapeTest.cpp",
    "layout/svg/LayoutSVGForeignObjectTest.cpp",
    "layout/svg/LayoutSVGRootTest.cpp",
    "loader/BaseFetchContextTest.cpp",
    "loader/DocumentLoadTimingTest.cpp",
    "loader/DocumentLoaderTest.cpp",
    "loader/FrameFetchContextTest.cpp",
    "loader/LinkLoaderTest.cpp",
    "loader/MixedContentCheckerTest.cpp",
    "loader/NetworkQuietDetectorTest.cpp",
    "loader/PingLoaderTest.cpp",
    "loader/ProgrammaticScrollTest.cpp",
    "loader/ProgressTrackerTest.cpp",
    "loader/TextResourceDecoderBuilderTest.cpp",
    "loader/ThreadableLoaderTest.cpp",
    "loader/modulescript/ModuleScriptLoaderTest.cpp",
    "loader/modulescript/ModuleTreeLinkerTest.cpp",
    "loader/resource/CSSStyleSheetResourceTest.cpp",
    "loader/resource/FontResourceTest.cpp",
    "loader/resource/ImageResourceTest.cpp",
    "loader/resource/MockFontResourceClient.cpp",
    "loader/resource/MockFontResourceClient.h",
    "loader/resource/MockImageResourceObserver.cpp",
    "loader/resource/MockImageResourceObserver.h",
    "loader/resource/MultipartImageResourceParserTest.cpp",
    "origin_trials/OriginTrialContextTest.cpp",
    "page/ChromeClientTest.cpp",
    "page/DragControllerTest.cpp",
    "page/EffectiveNavigationPolicyTest.cpp",
    "page/FocusControllerTest.cpp",
    "page/PageOverlayTest.cpp",
    "page/PagePopupClientTest.cpp",
    "page/PrintContextTest.cpp",
    "page/ViewportTest.cpp",
    "page/WindowFeaturesTest.cpp",
    "page/scrolling/RootScrollerTest.cpp",
    "page/scrolling/ScrollStateTest.cpp",
    "page/scrolling/ScrollingCoordinatorTest.cpp",
    "page/scrolling/SnapCoordinatorTest.cpp",
    "paint/BoxPaintInvalidatorTest.cpp",
    "paint/FirstMeaningfulPaintDetectorTest.cpp",
    "paint/HTMLCanvasPainterTest.cpp",
    "paint/LayerClipRecorderTest.cpp",
    "paint/LayoutObjectDrawingRecorderTest.cpp",
    "paint/LinkHighlightImplTest.cpp",
    "paint/NinePieceImageGridTest.cpp",
    "paint/ObjectPaintInvalidatorTest.cpp",
    "paint/PaintControllerPaintTest.cpp",
    "paint/PaintControllerPaintTest.h",
    "paint/PaintInvalidationTest.cpp",
    "paint/PaintLayerClipperTest.cpp",
    "paint/PaintLayerPainterTest.cpp",
    "paint/PaintLayerScrollableAreaTest.cpp",
    "paint/PaintLayerTest.cpp",
    "paint/PaintPropertyTreeBuilderTest.cpp",
    "paint/PaintPropertyTreeBuilderTest.h",
    "paint/PaintPropertyTreePrinterTest.cpp",
    "paint/PaintPropertyTreeUpdateTests.cpp",
    "paint/PrePaintTreeWalkTest.cpp",
    "paint/SVGInlineTextBoxPainterTest.cpp",
    "paint/StubChromeClientForSPv2.h",
    "paint/TablePainterTest.cpp",
    "paint/TextPainterTest.cpp",
    "paint/TextSelectionRepaintTest.cpp",
    "paint/VideoPainterTest.cpp",
    "scheduler/ActiveConnectionThrottlingTest.cpp",
    "scheduler/FrameThrottlingTest.cpp",
    "scheduler/ThrottlingTest.cpp",
    "streams/ReadableStreamOperationsTest.cpp",
    "style/BorderValueTest.cpp",
    "style/ComputedStyleTest.cpp",
    "style/FilterOperationsTest.cpp",
    "style/SVGComputedStyleTest.cpp",
    "style/StyleDifferenceTest.cpp",
    "svg/SVGPathParserTest.cpp",
    "svg/UnsafeSVGAttributeSanitizationTest.cpp",
    "svg/graphics/SVGImageTest.cpp",
    "testing/sim/SimCanvas.cpp",
    "testing/sim/SimCanvas.h",
    "testing/sim/SimCompositor.cpp",
    "testing/sim/SimCompositor.h",
    "testing/sim/SimDisplayItemList.cpp",
    "testing/sim/SimDisplayItemList.h",
    "testing/sim/SimNetwork.cpp",
    "testing/sim/SimNetwork.h",
    "testing/sim/SimPage.cpp",
    "testing/sim/SimPage.h",
    "testing/sim/SimRequest.cpp",
    "testing/sim/SimRequest.h",
    "testing/sim/SimTest.cpp",
    "testing/sim/SimTest.h",
    "testing/sim/SimWebFrameClient.cpp",
    "testing/sim/SimWebFrameClient.h",
    "testing/sim/SimWebViewClient.cpp",
    "testing/sim/SimWebViewClient.h",
    "timing/MemoryInfoTest.cpp",
    "timing/PerformanceBaseTest.cpp",
    "timing/PerformanceNavigationTimingTest.cpp",
    "timing/PerformanceObserverTest.cpp",
    "timing/PerformanceResourceTimingTest.cpp",
    "timing/PerformanceTest.cpp",
    "workers/DedicatedWorkerTest.cpp",
    "workers/MainThreadWorkletTest.cpp",
    "workers/ThreadedWorkletTest.cpp",
    "workers/WorkerThreadTest.cpp",
    "workers/WorkerThreadTestHelper.h",
    "workers/WorkletModuleResponsesMapTest.cpp",
    "xml/XPathFunctionsTest.cpp",
    "xml/parser/SharedBufferReaderTest.cpp",
  ]

  configs += [
    ":blink_core_pch",
    "//third_party/WebKit/Source:config",
    "//third_party/WebKit/Source:inside_blink",
  ]

  deps = [
    ":core",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/WebKit/Source/core/editing:unit_tests",
  ]

  # FIXME: Enable mojo unittests on Android after fixing data dependency.
  # crbug.com/741925
  if (!is_android) {
    deps += [ "//third_party/WebKit/Source/core/mojo:unit_tests" ]
  }
}

# Fuzzer for blink::StyleSheetContents
fuzzer_test("stylesheet_contents_fuzzer") {
  sources = [
    "css/StyleSheetContentsFuzzer.cpp",
  ]
  deps = [
    ":core",
    "../platform:blink_fuzzer_test_support",
  ]
  seed_corpus = "//third_party/WebKit/LayoutTests/fast/css/resources"
  libfuzzer_options = [ "max_len=2048" ]
}

# Fuzzer for blink::HTMLPreloadScanner.
fuzzer_test("html_preload_scanner_fuzzer") {
  sources = [
    "html/parser/HTMLPreloadScannerFuzzer.cpp",
    "html/parser/TextResourceDecoderForFuzzing.h",
  ]
  seed_corpus = "//third_party/WebKit/LayoutTests/fast/parser"
  deps = [
    ":core",
    "../platform:blink_fuzzer_test_support",
  ]
}

# Fuzzer for blink::ContentSecurityPolicy.
fuzzer_test("content_security_policy_fuzzer") {
  sources = [
    "frame/csp/ContentSecurityPolicyFuzzer.cpp",
  ]
  deps = [
    ":core",
    "//third_party/WebKit/Source/platform:blink_fuzzer_test_support",
  ]
  dict = "//testing/libfuzzer/fuzzers/dicts/content_security_policy.dict"
  seed_corpus = "//testing/libfuzzer/fuzzers/content_security_policy_corpus"
}
