# 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/ComputedStyleBase.cpp.tmpl",
    "../build/scripts/templates/ComputedStyleBaseConstants.h.tmpl",
  ]
  outputs = [
    "$blink_core_output_dir/ComputedStyleBase.h",
    "$blink_core_output_dir/ComputedStyleBase.cpp",
    "$blink_core_output_dir/ComputedStyleBaseConstants.h",
  ]
}

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

# TODO(shend): Need a better way to specify generated output files
css_properties("make_core_generated_css_property_apis") {
  script = "../build/scripts/make_css_property_apis.py"
  other_inputs = [
    "../build/scripts/templates/CSSPropertyDescriptor.cpp.tmpl",
    "../build/scripts/templates/CSSPropertyDescriptor.h.tmpl",
    "../build/scripts/templates/CSSPropertyAPIFiles.h.tmpl",
  ]
  in_files = [ "css/properties/CSSPropertyAPIMethods.json5" ]
  outputs = [
    "$blink_core_output_dir/css/properties/CSSPropertyAPIAlignItems.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIAlignOrJustifyContent.h",
    "$blink_core_output_dir/css/properties/CSSPropertyAPIAlignOrJustifySelf.h",
    "$blink_core_output_dir/css/properties/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/CSSParserThreadedTest.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/HistoryTest.cpp",
    "frame/ImageBitmapTest.cpp",
    "frame/LocalFrameTest.cpp",
    "frame/LocalFrameViewTest.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/LayoutEmbeddedContentTest.cpp",
    "layout/LayoutInlineTest.cpp",
    "layout/LayoutMediaTest.cpp",
    "layout/LayoutMultiColumnFlowThreadTest.cpp",
    "layout/LayoutObjectTest.cpp",
    "layout/LayoutProgressTest.cpp",
    "layout/LayoutTableCellTest.cpp",
    "layout/LayoutTableRowTest.cpp",
    "layout/LayoutTableSectionTest.cpp",
    "layout/LayoutTableTest.cpp",
    "layout/LayoutTestHelper.cpp",
    "layout/LayoutTestHelper.h",
    "layout/LayoutTextTest.cpp",
    "layout/LayoutThemeTest.cpp",
    "layout/MapCoordinatesTest.cpp",
    "layout/MultiColumnFragmentainerGroupTest.cpp",
    "layout/OverflowModelTest.cpp",
    "layout/PaginationTest.cpp",
    "layout/PaintContainmentTest.cpp",
    "layout/ScrollAnchorTest.cpp",
    "layout/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",
  ]
}

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