# 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_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",
    "//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_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/RelatedEvent.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",
  ]
  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/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_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",
    "dom/AttrTest.cpp",
    "dom/CSSSelectorWatchTest.cpp",
    "dom/DOMImplementationTest.cpp",
    "dom/DocumentStatisticsCollectorTest.cpp",
    "dom/DocumentTest.cpp",
    "dom/DocumentUserGestureTokenTest.cpp",
    "dom/ElementTest.cpp",
    "dom/ElementVisibilityObserverTest.cpp",
    "dom/ExecutionContextTaskTest.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/StaticRangeTest.cpp",
    "dom/StyleElementTest.cpp",
    "dom/StyleEngineTest.cpp",
    "dom/SuspendableObjectTest.cpp",
    "dom/TextTest.cpp",
    "dom/TreeScopeTest.cpp",
    "dom/URLSearchParamsTest.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/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/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/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/ContextMenuControllerTest.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",
  ]
}

# 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"
}
