blob: a0c14c278e30edcfaf17ff132052d1d38e2ef2ee [file] [log] [blame]
# 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("//testing/libfuzzer/fuzzer_test.gni")
import("//third_party/blink/renderer/bindings/bindings.gni")
import("//third_party/blink/renderer/bindings/core/v8/generated.gni")
import("//third_party/blink/renderer/bindings/generated_in_core.gni")
import("//third_party/blink/renderer/bindings/scripts/scripts.gni")
import("//third_party/blink/renderer/core/core.gni")
import("//third_party/blink/renderer/core/core_idl_files.gni")
visibility = [ "//third_party/blink/renderer/*" ]
blink_core_sources("v8") {
visibility = []
visibility = [ "//third_party/blink/renderer/core" ]
sources = generated_enumeration_sources_in_core
if (use_blink_v8_binding_new_idl_callback_function) {
sources += generated_callback_function_sources_in_core
}
if (use_blink_v8_binding_new_idl_callback_interface) {
sources += generated_callback_interface_sources_in_core
}
if (use_blink_v8_binding_new_idl_dictionary) {
sources += generated_dictionary_sources_in_core
}
if (use_blink_v8_binding_new_idl_interface) {
sources += generated_interface_sources_in_core +
generated_namespace_sources_in_core
}
deps = [
":generated",
"//third_party/blink/renderer/platform",
"//v8",
]
}
source_set("testing") {
testonly = true
visibility = []
visibility = [ "//third_party/blink/renderer/core/*" ]
configs += [
"//third_party/blink/renderer:config",
"//third_party/blink/renderer:inside_blink",
]
sources = generated_enumeration_sources_for_testing_in_core
if (use_blink_v8_binding_new_idl_callback_function) {
sources += generated_callback_function_sources_for_testing_in_core
}
if (use_blink_v8_binding_new_idl_dictionary) {
sources += generated_dictionary_sources_for_testing_in_core
}
if (use_blink_v8_binding_new_idl_interface) {
sources += generated_interface_sources_for_testing_in_core
}
deps = [
":generated",
":testing_internal",
"//third_party/blink/renderer/core",
"//third_party/blink/renderer/platform",
"//v8",
]
}
group("generated") {
visibility = []
visibility = [
"//third_party/blink/renderer/bindings/core/v8/*",
"//third_party/blink/renderer/core/*",
]
public_deps = [
":bindings_core_v8_generated",
"//third_party/blink/renderer/bindings:generate_bindings_all",
]
}
if (use_blink_v8_binding_new_idl_interface) {
group("bindings_core_origin_trial_features") {
}
} else {
generate_origin_trial_features("bindings_core_origin_trial_features") {
sources = core_interface_idl_files_core_only +
core_interface_idl_files_modules_dependent +
core_partial_definition_idl_files +
core_global_constructors_generated_idl_files
component = "core"
output_dir = bindings_core_output_dir + "/v8"
deps = [
"//third_party/blink/renderer/bindings/core:core_global_constructors_idls",
"//third_party/blink/renderer/bindings/core:interfaces_info_core",
]
}
}
group("bindings_core_v8_generated") {
public_deps = [ ":bindings_core_impl_generated" ]
if (is_win && is_official_build) {
public_deps += [ ":generate_bindings_core_v8_all_interfaces" ]
} else {
public_deps += [ ":generate_bindings_core_v8_interfaces" ]
}
}
# IDL file lists; see: http://www.chromium.org/developers/web-idl-interfaces
# Interface IDL files: generate individual bindings (includes testing)
idl_compiler("generate_bindings_core_v8_interfaces") {
sources = core_definition_idl_files + core_testing_definition_idl_files +
generated_webcore_testing_idl_files
if (use_blink_v8_binding_new_idl_callback_interface) {
sources -= core_callback_interface_idl_files
}
if (use_blink_v8_binding_new_idl_dictionary) {
sources -= core_dictionary_idl_files
sources -= core_testing_dictionary_idl_files
}
if (use_blink_v8_binding_new_idl_interface) {
sources -=
core_interface_idl_files_core_only +
core_interface_idl_files_modules_dependent + webcore_testing_idl_files +
webcore_testing_idl_with_modules_dependency_files +
generated_webcore_testing_idl_files
}
output_dir = bindings_core_v8_output_dir
output_name_suffix = ""
target_component = "core"
}
aggregate_generated_bindings("generate_bindings_core_v8_all_interfaces") {
sources =
core_buffer_source_type_idl_files + core_callback_interface_idl_files
if (!use_blink_v8_binding_new_idl_dictionary) {
sources += core_dictionary_idl_files
}
if (!use_blink_v8_binding_new_idl_interface) {
sources += core_interface_idl_files_core_only +
core_interface_idl_files_modules_dependent
}
outputs = [ "$bindings_core_v8_output_dir/v8_generated_core_bindings.cc" ]
component = "core"
public_deps = [ ":generate_bindings_core_v8_interfaces" ]
}
idl_impl("bindings_core_impl_generated") {
if (use_blink_v8_binding_new_idl_dictionary) {
dict_idls = []
} else {
dict_idls = core_dictionary_idl_files + core_testing_dictionary_idl_files
}
non_dict_outputs = bindings_core_generated_union_type_files
if (!use_blink_v8_binding_new_idl_callback_function) {
non_dict_outputs += generated_core_testing_callback_function_files +
generated_core_callback_function_files
}
non_dict_output_dir = bindings_core_v8_output_dir
target_component = "core"
}
# Compile the non-test sources generated above.
blink_core_sources("bindings_core_impl") {
sources = get_target_outputs(":bindings_core_impl_generated") +
bindings_core_generated_interface_files
if (!use_blink_v8_binding_new_idl_callback_function) {
sources -= generated_core_testing_callback_function_files
}
if (!use_blink_v8_binding_new_idl_dictionary) {
sources -= generated_core_testing_dictionary_files
}
if (!use_blink_v8_binding_new_idl_interface) {
sources += get_target_outputs(":bindings_core_origin_trial_features")
}
deps = [
":bindings_core_impl_generated",
":bindings_core_origin_trial_features",
":bindings_core_v8_generated",
":generated",
]
}
# Compile the test sources generated above. This test target doesn't count
# as part of the "core" component so shouldn't use the blink_core_sources for
# linking on Windows.
source_set("testing_internal") {
testonly = true
sources = []
if (!use_blink_v8_binding_new_idl_callback_function) {
sources += generated_core_testing_callback_function_files
}
if (!use_blink_v8_binding_new_idl_dictionary) {
sources += generated_core_testing_dictionary_files
}
idl_files = []
if (!use_blink_v8_binding_new_idl_dictionary) {
idl_files += core_testing_dictionary_idl_files
}
if (!use_blink_v8_binding_new_idl_interface) {
idl_files +=
webcore_testing_idl_files + generated_webcore_testing_idl_files +
webcore_testing_idl_with_modules_dependency_files
}
sources += process_file_template(
idl_files,
[
"$bindings_core_v8_output_dir/v8_{{source_name_part}}.cc",
"$bindings_core_v8_output_dir/v8_{{source_name_part}}.h",
])
configs -= core_config_remove
configs += core_config_add + [ "//third_party/blink/renderer:inside_blink" ] -
[ "//third_party/blink/renderer/core:config" ]
deps = [
":bindings_core_impl_generated",
":bindings_core_v8_generated",
":generated",
"//skia",
"//third_party/blink/renderer/core",
"//third_party/blink/renderer/platform",
"//v8",
]
}
fuzzer_test("v8_serialized_script_value_fuzzer") {
sources = [ "serialization/serialized_script_value_fuzzer.cc" ]
seed_corpus = "serialization/fuzz_corpus"
deps = [
"//third_party/blink/public/common",
"//third_party/blink/renderer/core",
"//third_party/blink/renderer/core:testing",
"//third_party/blink/renderer/platform:blink_fuzzer_test_support",
]
}