# 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/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/wtf",
    "//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",
    "//third_party/WebKit/Source/platform",
  ]

  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") {
    # Incremental linking doesn't work on this target in debug mode for
    # 64-bit builds - the .ilk file gets too large and the incremental
    # link silently fails. Therefore 32-bit builds or 64-bit release builds
    # (component either way) should be used for fastest incremental build
    # performance. 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/testing/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/ComputedStyleBaseConstants.h.tmpl",
  ]
  outputs = [
    "$blink_core_output_dir/ComputedStyleBase.h",
    "$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",
    "../build/scripts/templates/CSSPropertyAPI.h.tmpl",
  ]
  in_files = [ "css/properties/CSSPropertyAPIMethods.json5" ]
  outputs = [
    "$blink_core_output_dir/css/properties/CSSPropertyAPI.h",
    "$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/CSSPropertyAPIAnimationName.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/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/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/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/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/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/CSSPropertyAPIScrollSnapCoordinate.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/CSSPropertyAPITextDecoration.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/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/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/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",
  ]
}

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.
target(core_link_small_target_type, "core_generated") {
  sources = bindings_core_v8_files

  # Add all sources generated by the targets above.
  foreach(current, targets_generating_sources) {
    sources += get_target_outputs(current)
  }
  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/AnimationTest.cpp",
    "animation/AnimationTestHelper.cpp",
    "animation/AnimationTestHelper.h",
    "animation/AnimationTimelineTest.cpp",
    "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",
    "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/CSSToLengthConversionDataThreadedTest.cpp",
    "css/threaded/FilterOperationResolverThreadedTest.cpp",
    "dom/AttrTest.cpp",
    "dom/CSSSelectorWatchTest.cpp",
    "dom/DOMImplementationTest.cpp",
    "dom/DocumentStatisticsCollectorTest.cpp",
    "dom/DocumentTest.cpp",
    "dom/ElementTest.cpp",
    "dom/ElementVisibilityObserverTest.cpp",
    "dom/IdleDeadlineTest.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/ScriptModuleResolverImplTest.cpp",
    "dom/ScriptRunnerTest.cpp",
    "dom/ScriptedAnimationControllerTest.cpp",
    "dom/ScriptedIdleTaskControllerTest.cpp",
    "dom/SelectorQueryTest.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/custom/CustomElementDefinitionTest.cpp",
    "dom/custom/CustomElementDescriptorTest.cpp",
    "dom/custom/CustomElementReactionQueueTest.cpp",
    "dom/custom/CustomElementReactionStackTest.cpp",
    "dom/custom/CustomElementReactionTestHelpers.h",
    "dom/custom/CustomElementRegistryTest.cpp",
    "dom/custom/CustomElementTest.cpp",
    "dom/custom/CustomElementTestHelpers.cpp",
    "dom/custom/CustomElementTestHelpers.h",
    "dom/custom/CustomElementUpgradeSorterTest.cpp",
    "dom/shadow/FlatTreeTraversalTest.cpp",
    "dom/shadow/SlotScopedTraversalTest.cpp",
    "editing/CaretDisplayItemClientTest.cpp",
    "events/EventPathTest.cpp",
    "events/EventTargetTest.cpp",
    "events/PointerEventFactoryTest.cpp",
    "events/TouchEventTest.cpp",
    "fileapi/FileListTest.cpp",
    "fileapi/FileTest.cpp",
    "frame/DOMTimerTest.cpp",
    "frame/FrameTest.cpp",
    "frame/FrameViewTest.cpp",
    "frame/HistoryTest.cpp",
    "frame/ImageBitmapTest.cpp",
    "frame/LocalFrameTest.cpp",
    "frame/OriginsUsingFeaturesTest.cpp",
    "frame/PerformanceMonitorTest.cpp",
    "frame/RootFrameViewportTest.cpp",
    "frame/SubresourceIntegrityTest.cpp",
    "frame/UseCounterTest.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/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/HTMLTableRowElementTest.cpp",
    "html/HTMLTextAreaElementTest.cpp",
    "html/HTMLVideoElementPersistentTest.cpp",
    "html/ImageDataTest.cpp",
    "html/ImageDocumentTest.cpp",
    "html/LinkRelAttributeTest.cpp",
    "html/TextControlElementTest.cpp",
    "html/TimeRangesTest.cpp",
    "html/canvas/CanvasAsyncBlobCreatorTest.cpp",
    "html/canvas/CanvasFontCacheTest.cpp",
    "html/forms/EmailInputTypeTest.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/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",
    "input/EventHandlerTest.cpp",
    "inspector/ProtocolParserTest.cpp",
    "layout/CollapsedBorderValueTest.cpp",
    "layout/ImageQualityControllerTest.cpp",
    "layout/LayoutBlockTest.cpp",
    "layout/LayoutBoxModelObjectTest.cpp",
    "layout/LayoutBoxTest.cpp",
    "layout/LayoutInlineTest.cpp",
    "layout/LayoutMediaTest.cpp",
    "layout/LayoutMultiColumnFlowThreadTest.cpp",
    "layout/LayoutObjectTest.cpp",
    "layout/LayoutPartTest.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/TextAutosizerTest.cpp",
    "layout/VisualRectMappingTest.cpp",
    "layout/api/SelectionStateTest.cpp",
    "layout/compositing/CompositedLayerMappingTest.cpp",
    "layout/compositing/CompositingReasonFinderTest.cpp",
    "layout/compositing/PaintLayerCompositorTest.cpp",
    "layout/line/InlineBoxTest.cpp",
    "layout/line/InlineTextBoxTest.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/ng/ng_space_utils_test.cc",
    "layout/shapes/BoxShapeTest.cpp",
    "layout/svg/LayoutSVGForeignObjectTest.cpp",
    "layout/svg/LayoutSVGRootTest.cpp",
    "loader/BaseFetchContextTest.cpp",
    "loader/DocumentLoadTimingTest.cpp",
    "loader/FrameFetchContextTest.cpp",
    "loader/LinkLoaderTest.cpp",
    "loader/MixedContentCheckerTest.cpp",
    "loader/PingLoaderTest.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/EffectiveNavigationPolicyTest.cpp",
    "page/FocusControllerTest.cpp",
    "page/PagePopupClientTest.cpp",
    "page/PrintContextTest.cpp",
    "page/WindowFeaturesTest.cpp",
    "page/scrolling/ScrollStateTest.cpp",
    "page/scrolling/SnapCoordinatorTest.cpp",
    "paint/BoxPaintInvalidatorTest.cpp",
    "paint/FirstMeaningfulPaintDetectorTest.cpp",
    "paint/HTMLCanvasPainterTest.cpp",
    "paint/LayerClipRecorderTest.cpp",
    "paint/LayoutObjectDrawingRecorderTest.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/VideoPainterTest.cpp",
    "streams/ReadableStreamOperationsTest.cpp",
    "style/BorderValueTest.cpp",
    "style/ComputedStyleTest.cpp",
    "style/FilterOperationsTest.cpp",
    "style/OutlineValueTest.cpp",
    "style/SVGComputedStyleTest.cpp",
    "style/StyleDifferenceTest.cpp",
    "svg/SVGPathParserTest.cpp",
    "svg/UnsafeSVGAttributeSanitizationTest.cpp",
    "svg/graphics/SVGImageTest.cpp",
    "timing/MemoryInfoTest.cpp",
    "timing/PerformanceBaseTest.cpp",
    "timing/PerformanceNavigationTimingTest.cpp",
    "timing/PerformanceObserverTest.cpp",
    "timing/PerformanceTest.cpp",
    "workers/DedicatedWorkerTest.cpp",
    "workers/MainThreadWorkletTest.cpp",
    "workers/ThreadedWorkletTest.cpp",
    "workers/WorkerThreadTest.cpp",
    "workers/WorkerThreadTestHelper.h",
    "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",
    "//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"
}
