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